此帖出自51单片机论坛
最新回复
写好了!
不知道对呢,对呢,对呢,还是对呢!
要是不对!
再说吧!
好吧!
#include
#define uchar unsigned char
#define uint unsigned int
uchar qian,bai,shi,ge;
long f;
bit flag;
uint count;
sbit fin=P1^3;
sbit fout=P1^7; //用导线将P1_7脚(发生频率引脚)的频率输出连接P1_3脚(测量频率管脚)
uchar code dutable[]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display(uchar qian,uchar bai,uchar shi,uchar ge)
{
P2=0X01;
P0=dutable[qian];
delay(5);
P2=0X02;
P0=dutable[bai];
delay(5);
P2=0X04;
P0=dutable[shi];
delay(5);
P2=0X08;
P0=dutable[ge];
delay(5);
}
void main()
{
uint temp;
EA=1;
IT0=1;
TMOD=0X11;
TH1=(65535-500)/256;
TL1=(65535-500)%256;
ET0=1;
ET1=1;
TR1=1;
while(1)
{
bit fin_before=0;
bit fin_now=0;
uchar flag=0;
// uint count;
// TH0=0;
// TL0=0;
while(1)
{
fin_now=fin;
if(fin_before&&!fin_now)
{
flag++;
EX0=1;
}
if(flag==2)
{
EX0=0;
f=1000000/count;
return;
}
fin_before=fin_now;
}
qian=f/1000;
bai=f%1000/100;
shi=f%100/10;
ge%10;
display(qian,bai,shi,ge);
}
}
void timer0() interrupt 0
{
count++;
}
void timer1() interrupt 3
{
TH1=(65535-1000)/256;
TL1=(65535-1000)%256;
}
详情
回复
发表于 2011-10-10 12:38
| ||
|
||
此帖出自51单片机论坛
| ||
个人签名
强者为尊,弱者,死无葬身之地 |
||
回复 沙发 辛昕 的帖子
此帖出自51单片机论坛
| ||
|
||
单片机频率计
此帖出自51单片机论坛
| ||
|
||
呵呵,对不住了,晚了
此帖出自51单片机论坛
| ||
|
||
此帖出自51单片机论坛
| ||
|
||
曾经的版主且威望大于2000,或对EEWORLD论坛有突出贡献的坛友
EEWorld Datasheet 技术支持