51单片机数码管频率计数器代码
时间: 2023-04-03 18:02:54 浏览: 77
以下是51单片机数码管频率计数器代码,供参考:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit D1 = P2^2;
sbit D2 = P2^3;
sbit D3 = P2^4;
sbit D4 = P2^5;
uchar code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void display(uint num)
{
uchar i;
uchar a[4];
for(i=0;i<4;i++)
{
a[i] = num%10;
num /= 10;
}
D1 = 1;
P0 = table[a[3]];
delay(5);
D1 = 0;
D2 = 1;
P0 = table[a[2]];
delay(5);
D2 = 0;
D3 = 1;
P0 = table[a[1]];
delay(5);
D3 = 0;
D4 = 1;
P0 = table[a[0]];
delay(5);
D4 = 0;
}
void main()
{
uint count = 0;
TMOD = 0x01;
TH0 = 0;
TL0 = 0;
TR0 = 1;
while(1)
{
if(TF0 == 1)
{
TF0 = 0;
TH0 = 0;
TL0 = 0;
count++;
display(count);
}
}
}