完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`用单片机设计频率计k1按下测高频(采用测频法),k2测低频(测周法),测频法可以但是有时误差很大,测周法不可以,电路图代码如下求指点
#include #define uint unsigned int #define uchar unsigned char #define ulong unsigned long uchar tab1[]={"The frequency:"}; //??????????????? uchar tab2[]={" 0.000khz"}; uchar tab3[]={" 0hz"}; /*********************lcd????????????**************************************/ ***it RS=P2^7; ***it E=P2^6; ***it RW=P2^5; /**************************??????????????????????**********************************************/ ***it k1=P1^0; //????????ò??? ***it k2=P1^3; //???????ò??? bit m_flag,t_flag,s_flag; unsigned char m; //???***???? unsigned long tcount; //?????????????????????? unsigned long Mcount; //?????T0???????? uint time_count,TMcount,freqt,freqm; //??????????????????? void delay(uchar ms); //??????? void init_timer1(); //?***????? void init_timer2(); void lcdbegin(); void lcd_init_1(); //lcd????? void lcd_init_2(); void lcd_wcom(uchar com); //lcdд???? void lcd_wdat(uchar dat); //lcdд???? void lcd_disp1(uchar address,ulong dat); void lcd_disp2(uchar address,ulong dat); void main() { lcdbegin(); while(1) { if(k1==0) //????? { lcd_init_1(); init_timer1(); m_flag=1; } if(k2==0) //????? { lcd_init_2(); t_flag=1; init_timer2(); } } } void delay(uchar ms) { uint i,j; for(i=ms;i>0;i--) for(j=0;j<110;j++); } void init_timer1() { TMOD=0x15; //?????1??????????0???? TH1=(65536-50000)/256; //???50ms TL1=(65536-50000)%256; TH0=0; TL0=0; TR0=1; //???????????? TR1=1; ET0=1; ET1=1; EA=1; //?????***? } void init_timer2() { TMOD=0x01; TH0=(65536-65535)/256; //???1us TL0=(65536-65535)%256; ET0=1; //?????????***????? EX0=1; //???***????? IT0=1; //???***??????? EA=1; } void int0() interrupt 0 { TR0=1; m++; if(m==2) { TR0=0; EX0=0; TMcount=(unsigned int)(1000000/(tcount)); freqt=TMcount; lcd_disp1(0x40,freqt); tcount=0; m=0; } } void time0() interrupt 1 { if(m_flag==1) { Mcount++; } if(t_flag==1) { TH0=(65536-65535)/256; TL0=(65536-65535)%256; tcount++; } } void time1() interrupt 3 { if(m_flag==1) { TH1=(65536-50000)/256; TL1=(65536-50000)%256; time_count++; if(time_count==20) { TR0=0; TR1=0; time_count=0; freqm=Mcount*65536+TH0*256+TL0; lcd_disp2(0x40,freqm); Mcount=0; } } } void lcdbegin() { uchar i; lcd_wcom(0x01); lcd_wcom(0x38); lcd_wcom(0x0C); lcd_wcom(0x06); lcd_wcom(0x80); for(i=0;i<16;i++) lcd_wdat(tab1); } void lcd_init_1() { uchar i; lcdbegin(); lcd_wcom(0xC0); for(i=0;i<16;i++) lcd_wdat(tab2); } void lcd_init_2() { uchar i; lcdbegin(); lcd_wcom(0xC0); for(i=0;i<16;i++) lcd_wdat(tab3); } void lcd_wcom(uchar com) { delay(5); E=0;RS=0;RW=0; E=1; P0=com; E=0; } void lcd_wdat(uchar dat) { delay(5); E=0;RS=1;RW=0; E=1; P0=dat; E=0; } void lcd_disp1(uchar address,ulong dat) { uint gw,bw,sw,qw; if(t_flag==1) { qw=dat/1000; bw=dat%1000/100; sw=dat%1000%100/10; gw=dat%1000%100%10; lcd_wcom(0x80+address+0x0A); if(qw!=0) { lcd_wdat(0x30+qw); } else { lcd_wdat(' '); } if(bw!=0) { lcd_wdat(0x30+bw); } else { lcd_wdat(' '); } if(sw!=0) { lcd_wdat(0x30+sw); } else { lcd_wdat(' '); } lcd_wdat(0x30+gw); } } void lcd_disp2(uchar address,ulong dat) { uint gw,sw,bw,qw,ww,sww; sww=dat/100000; ww=dat%100000/10000; qw=dat%100000%10000/1000; bw=dat%100000%10000%1000/100; sw=dat%100000%10000%1000%100/10; gw=dat%100000%10000%1000%100%10; lcd_wcom(0x80+address+0x06); if(sww!=0) { lcd_wdat(0x30+sww); } else { lcd_wdat(' '); } if(ww!=0) { lcd_wdat(0x30+ww); } else { lcd_wdat(' '); } lcd_wdat(0x30+qw); lcd_wdat('.'); lcd_wdat(0x30+bw); lcd_wdat(0x30+sw); lcd_wdat(0x30+gw); } `
频率计.zip
(29.01 KB, 下载次数: 97
)
|
|
相关推荐
3个回答
|
|
|
|
|
|
楼主最好将程序当中的注释标记一下
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
464 浏览 0 评论
478 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
439 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
994 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1056 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11783 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 11:54 , Processed in 0.748916 second(s), Total 79, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号