完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
/**************************************************/
/* ÍⲿÖжϲⷽ²¨ÆµÂÊ */ /*************************************************/ #include #include #include #define uint unsigned int //¶¨Òåuint´úÌæunsigned int #define uchar unsigned char //¶¨Òåuchar´úÌæunsigned char #define ulong unsigned long //¶¨Òåulong´úÌæunsigned long uchar code count[]="0123456789"; uint counter=0; //¼Ç¼Ï½µÑصĸöÊý uint ge,shi,bai,qian,wan,calsp,f,a; // ÖжÏʱ¼ä ulong Fre; ***it rs=P3^5; ***it rw=P3^6; ***it en=P3^4; ***it LCD_PSB = P3^7; ***it wela = P2^6; ***it dula = P2^7; void delay(uint z); void lcd_init(); void timer_Fre_init(); bit lcd_busy() ; void write_cmd(uchar); void write_data(uchar); void display_num(); void lcd_pos(uchar X,uchar Y); void read_frequency(); void display_ceshi(); void display(); /**************************************************/ /* Ö÷º¯Êý */ /*************************************************/ void main() { EA=1;//¿ªÆô×ÜÖÐ¶Ï lcd_init(); //read_frequency(); timer_Fre_init(); //¶¨Ê±Æ÷ºÍÍⲿÖжϳõʼ»¯ while(1) { if(f==1) { f=0; display_num(); } } } /**************************************************/ /* ÑÓʱº¯Êý 1ms */ /*************************************************/ void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /**************************************************/ /* 12864³õʼ»¯ */ /*************************************************/ void lcd_init() { wela=0; dula=0; LCD_PSB = 1; write_cmd(0x34); //À©³äÖ¸Áî²Ù×÷ delay(5); write_cmd(0x30); //»ù±¾Ö¸Áî²Ù×÷ delay(5); write_cmd(0x0c); //ÏÔʾ¿ª£¬¹Ø¹â±ê delay(5); write_cmd(0x01); //Çå³ýLCDµÄÏÔʾÄÚÈÝ delay(5); } /*******************************************************************/ /* */ /*¼ì²éLCDæ״̬ */ /*lcd_busyΪ1ʱ£¬Ã¦£¬µÈ´ý¡£lcd-busyΪ0ʱ,ÏУ¬¿ÉдָÁîÓëÊý¾Ý¡£ */ /* */ /*******************************************************************/ bit lcd_busy() { bit result; rs = 0; rw = 1; en = 1; delay(5); result = (bit)(P0&0x80); en = 0; return(result); } /*******************************************************************/ /* */ /*дָÁîÊý¾Ýµ½LCD */ /*RS=L£¬RW=L£¬E=¸ßÂö³å£¬D0-D7=Ö¸ÁîÂë¡£ */ /* */ /*******************************************************************/ void write_cmd(uchar cmd) { while(lcd_busy()); rs = 0; //ÃüÁî rw = 0; // ¶Á en = 0; P0 = cmd; delay(5); en = 1; delay(5); en = 0; } /*******************************************************************/ /* */ /*дÏÔʾÊý¾Ýµ½LCD */ /*RS=H£¬RW=L£¬E=¸ßÂö³å£¬D0-D7=Êý¾Ý¡£ */ /* */ /*******************************************************************/ void write_data(uchar dat) { while(lcd_busy()); rs = 1; rw = 0; en = 0; P0 = dat; delay(5); en = 1; delay(5); en = 0; } /**************************************************/ /* Öжϳõʼ»¯ */ /*************************************************/ void timer_Fre_init() //¶¨Ê±Æ÷ºÍÍⲿÖжϳõʼ»¯ { EX0=1;//¿ªÍⲿÖжÏ0 IT0=1; //ÉèÖóÉϽµÑØ´¥·¢·½Ê½ TMOD=0x01; //ÉèÖö¨Ê±Æ÷0Ϊģʽ1£¬¼´16λ¼ÆÊýģʽ TH0=(65536-50000)/256; //¼ÆÊýʱ¼äΪ50ms TL0=(65536-50000)%256; ET0=1;//¿ªÆô¶¨Ê±Æ÷0ÖÐ¶Ï TR0=1;//Æô¶¯¶¨Ê±Æ÷0 } /**************************************************/ /* ¶¨Ê±Æ÷0ÖÐ¶Ï */ /*************************************************/ void timer0() interrupt 1 { TH0=(65536-50000)/256; ;//ÖØÐÂ×°Èë³õÖµ£¬¼ÆÊýʱ¼äΪ50ms TL0=(65536-50000)%256 ; calsp++; if(calsp==20) { calsp=0; f=1; //EX1=0; //IT1=0; //ET0=0; // TR0=0; } } /**************************************************/ /* ÍⲿÖжÏ0 */ /*************************************************/ void IN_T0() interrupt 0 { counter++; } /*******************************************************************/ /* */ /*¶ÁƵÂÊ */ /*¿ª¶¨Ê±Æ÷ÖжÏ0£¬¶ÁȡƵÂÊ */ /* */ /*******************************************************************/ void read_frequency() { timer_Fre_init(); //¶¨Ê±Æ÷ºÍÍⲿÖжϳõʼ»¯ while(1) { if(f==1) { f=0; display_num(); } } } /*********************************************************/ /* */ /* ÏÔʾ³ÌÐò */ /* */ /*********************************************************/ void display(uchar x,uchar y,uchar dat) //Òº¾§ÐкÍÁÐÏÔʾ£¬X£ºÐÐ Y£ºÁÐ dat:ÒªÏÔʾµÄÊý¾Ý { lcd_pos(x,y); write_data(dat); } void display_num() { //EX1=0; // ET0=0; // TR0=0; //IT1=0; Fre=counter; counter=0; ge=Fre%10000%1000%100%10; shi=Fre%10000%1000%100/10; bai=Fre%10000%1000/100; qian=Fre%10000/1000; wan=Fre/10000; display(0,4,count[ge]); delay(5); display(0,3,count[shi]); delay(5); display(0,2,count[bai]); delay(5); display(0,1,count[qian]); delay(5); display(0,0,count[wan]); delay(5); //EX1=1; // IT1=1; // ET0=1; // TR0=1; } /*********************************************************/ /* */ /* ²âÊÔÏÔʾ */ /* */ /*********************************************************/ void display_ceshi() { a++; display(0,1,count[a]); } /*********************************************************/ /* */ /* É趨ÏÔʾλÖà */ /* */ /*********************************************************/ void lcd_pos(uchar X,uchar Y) { uchar pos; if (X==0) {X=0x80;} else if (X==1) {X=0x90;} else if (X==2) {X=0x88;} else if (X==3) {X=0x98;} pos = X+Y ; write_cmd(pos); //ÏÔʾµØÖ· } |
|
相关推荐
8个回答
|
|
|
说清楚,什么问题,帖个程序怎么找?
|
|
|
|
|
|
你这粘一大段程序,又问了一个如此笼统的问题,谁能知道你问题出来哪里了呀
|
|
|
|
|
|
程序注释都是乱码,注释写清楚了,我们看了也方便,节约时间
|
|
|
|
|
|
您好,我做的是读方波频率显示到液晶屏上,贴出来不知道为什么是乱码,问题已经解决了,谢谢你哦~ |
|
|
|
|
|
|
|
|
|
|
|
嘿嘿,发出来才知道是乱码,问题解决了,不过还是非常感谢你啊~ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
265 浏览 0 评论
【原创】【RA4M2-SENSOR开发板评测】低功耗+USB综合测试
789 浏览 0 评论
1306 浏览 2 评论
787 浏览 0 评论
【RA4M2-SENSOR开发板评测】Analogue+Timers综合测试
1587 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16901 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 03:37 , Processed in 0.894846 second(s), Total 87, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4486