用51单片机的外部中断来测频率
    
//晶振:12M
//实验方法:首先要把51hei单片机开发板上的ne555的方波输出信号J7的第一脚用杜邦线
//        引入P3.2口,数码管即可显示ne555震荡电路当前的频率值,旋动PR1电位器可
//        发现数字有变化.
//原理:1秒钟内计数外部脉冲个数,如计数1000次,则表示频率为1000Hz
//1秒钟定时采用51单片机定时器0实现,外部脉冲由外部中断0引脚接入 
#include<reg51.h>
#include"51hei.h"
#define uchar unsigned char
uchar counter1;
sbit duan=P2^6;     //74HC573的LE端  U5  LED的段选端
sbit wei=P2^7;      //74HC573的LE端  U4  LED的位选端
unsigned int counter2,tmp; 
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; // 共阳型数码管0—9显示  
unsigned int dis[6];                
uchar con[]={0xfe,0xfd,0xfb,0xf7,0xef}; //共阳型数码管控制端   
init();
delay(uchar);
display(); 
jishu();


void main()
{guandz();
 init();
 while(1)
 {
    jishu();
    }    
}
//定时器0和外部中断0的初始化 
init()
{  
 EA=1;
 EX0=1;
 ET0=1;
 IT0=1; 
 TMOD=0x01;
 TH0=0x3c;
 TL0=0xaf;
 TR0=1;
}

//延时程序 
delay(uchar x)
{
 uchar a,b;
 for(a=x;a>0;a--)
  for(b=20;b>0;b--);
}
//外部中断0中断程序 
void external0()  interrupt 0
{
    tmp++;
   
}

//定时器0中断程序 
void timer0()  interrupt 1
{ 
 TH0=0x3c;
 TL0=0xaf;
 counter1++; 
}

//显示程序 
display()
{
 uchar i;
    dis[0]=counter2/10000; //获取计数值的万位
 dis[5]=counter2%10000;
 dis[1]=dis[5]/1000;     // 获取计数值的千位
 dis[5]=dis[5]%1000;
 dis[2]=dis[5]/100;    // 获取计数值的百位
 dis[5]=dis[5]%100;
 dis[3]=dis[5]/10;    // 获取计数值的十位
 dis[4]=dis[5]%10;    // 获取计数值的个位
 for(i=0;i<5;i++)  //依次显示万、千、百、十、个位,动态显示
  {
     // P0=0xff;
   P0=con[i];
   wei=1;
   wei=0;
   P0=table[dis[i]];
   duan=1;
   duan=0;
   delay(1);
   P0=0;
   duan=1;
   duan=0;
  }  
}

jishu()
{
  if(counter1==20)   //定时器定时50ms,故20次中断就表示1秒钟到达 
    {
  counter2=tmp;
  display();
  tmp=0;
  counter1=0;
  }
   else
     display();
}
相关阅读
  • 51单片机的外部中断触发方式
  • 【程序】51单片机计时中断与外部中
  • 【程序】【程序】51单片机外部中断
  • 真正的实时操作系统,如何用51单片
  • 关于51单片机外部中断响应
  • 51单片机定时、中断练习:用延时程
  • 跟我学51单片机(六):单片机外部
  • 2013PLM征文:基于Proteus的MCS-51
  • 51单片机的默认中断优先级都是低级
  • 拿来就用单片机的内容简介
  • 51单片机扩展中断的四种方法
  • MCS-51单片机多个中断源中的外中断
  • MCS-51单片机外中断软件编程
  • 用avr单片机来产生正弦波信号
  • 51单片机心得笔记:定时器中断(寄
  • 51单片机实用教程的内容简介
  • 51单片机中断系统结构
  • 【程序】用MCS-51单片机串行口对
  • 用51单片机控制CDROM
  • 基于51单片机之外部中断实验
  • 51单片机的中断系统
  •  



     
     
         

    收录时间:2016年10月17日 16:21:00 来源:单片机教程网 作者:匿名
    上一篇:电机转速测量控制程序  (电脑版  手机版)
     
    创建分享人
    敬中以达彼
    最新问题
     
    喜欢此文章的还喜欢
    Copyright by www.chinabaike.com;All rights reserved. 联系:QQ:469681782