您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 述职报告 > 51单片机测频率(C语言)
基于51单片机测方波频率用单片机的定时器和外部中断资源,将定时器设置为一秒定时,信号接到INT0,设置为下降沿触发。在一秒内计算外部中断的次数即为方波的频率。源程序:#includereg52.h#defineuintunsignedint#defineucharunsignedcharsbitq=P2^3;sbitb=P2^2;sbits=P2^1;sbitg=P2^0;sbitflog=P2^4;intnum=0;intt=0;intcount=0;ucharcodetable0[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};voiddelay(intk){inti,j;for(i=0;ik;i++)for(j=0;j100;j++);}voidinit(){TMOD=0x01;//定义T0定时方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;IT0=1;EX0=1;TR0=1;ET0=1;EA=1;}voidinter0()interrupt0{count++;}voidtimer0()interrupt1{t++;if(t==20){t=0;num=count;count=0;}TH0=(65536-50000)/256;TL0=(65536-50000)%256;}voiddisplay(intn){intge,shi,bai,qian;if(n=1000){flog=0;qian=(n/1000)/1000;bai=((n/1000)/100)-10*qian;shi=((n/1000)%100)/10;ge=(n/1000)%10;}else{flog=1;qian=n/1000;bai=(n/100)-10*qian;shi=(n%100)/10;ge=n%10;}q=b=s=g=1;q=0;b=s=g=1;P0=table0[qian];delay(4);q=b=s=g=1;b=0;q=s=g=1;P0=table0[bai];delay(4);q=b=s=g=1;s=0;q=b=g=1;P0=table0[shi];delay(4);q=b=s=g=1;g=0;q=b=s=1;P0=table0[ge];delay(4);}voidmain(){init();while(1)display(num);}
本文标题:51单片机测频率(C语言)
链接地址:https://www.777doc.com/doc-5223654 .html