51单片机制作简易数字频率计程序
发布网友
发布时间:2022-04-29 05:40
我来回答
共2个回答
热心网友
时间:2022-06-19 22:12
这里有一个四位数码管的频率计,供参考
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar an[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //所需的段的位码
//uchar wei[4]={0XEf,0XDf,0XBf,0X7f}; //位的控制端(开发板)
uchar wei[4]={0X80,0X40,0X20,0X10}; //位的控制端(仿真)
uint z,x,c,v, date;//定义数据类型
uint dispcount=0;
uint lck=0;
uint disp=0;
/******************************************************************
延时函数
******************************************************************/
void delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
{
for(j=13;j>0;j--);
{ ;
}
}
}
/**********************************************************************
数码管动态扫描
*********************************************************************/
void xianshi()
{
/*****************数据转换*****************************/
z=date/1000; //求千位
x=date%1000/100; //求百位
c=date%100/10; //求十位
v=date%10; //求个位
P2=wei[0];
P0=an[z];
delay(50);
P2=wei[1];
P0=an[x];
delay(50);
P2=wei[2];
P0=an[c];
delay(50);
P2=wei[3];
P0=an[v];
delay(50);
}
/*************************************************************************
定时器初值1ms
**************************************************************************/
void initTimer(void)
{
TMOD=0x0;
TH0=0xe3;
TL0=0xc;
}
/*************************************************************************
定时器函数
**************************************************************************/
void timer0(void) interrupt 1
{
TH0=0xe3;
TL0=0xc;
lck++;
if(lck==1000)
{
disp=dispcount;
lck=0;
dispcount=0;
}
}
/*************************************************************************
中断函数
**************************************************************************/
void int0(void) interrupt 0
{
dispcount++; //每一次中断,计数加一
}
/*************************************************************************
主函数
**************************************************************************/
void main(void)
{
IT0=1; //INT0下降沿中断
EX0=1; //允许INT1中断
initTimer(); //装入初值
TR0=1;
ET0=1;
EA=1;
while(1)
{
date=disp;
xianshi();
}
}
热心网友
时间:2022-06-19 22:12
1MHz,这个频率要求的高了一些。
先看看:
http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/b20572ca80ebe3f053664f7b.html/cmtid/7f5d2259d585a88f810a184e#7f5d2259d585a88f810a184e