资源描述:
《液晶显示程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、单片机液晶显示程序硬件电路:51最小系统,没有采用总线方式,直接的I/O形式,包括矩阵键盘,1602液晶,一个数码管,LED4个,蜂鸣器等.//单片机液晶秒表计算器完整修改版本可以实现两种功能的切换,其他功能自行对照代码研究。4*4矩阵键盘,第一排前三列是实现小时分钟秒的加.第二排前三列是实现小时分钟秒的减.当然还可以通过设置矩阵键盘的键值,来实现加减乘除四则运算,由数码管显示参与运算的数字以及最终的运算结果#include#include#include#include<
2、intrins.h>#include#defineucharunsignedchar#defineuintunsignedint#definewc0x8fff#definewd0xdfff#definerc0xbfffvoiddisplayListChar(unsignedcharX,unsignedcharY,ucharDData);uchardispbuf[]={''0'',''1'',''2'',''3'',''4'',''5'',''6'',''7'',''8'',''9'','':''};ucharcodetab
3、le[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e,0x00};ucharsecond;uchartemp1; ucharminute;ucharhour;uinttcnt,g;ucharsuanfa;bitflag2;bitflag1=1;//////控制计算器还是液晶调整的状态灯uinti=0,f,m,g,s
4、,t;// for里的计数值,用于循环 //用来标记按了什么,如+,-.*,或是/sbitP2_0=P2^0;//定义P2.0口用来,当计算值超过15时,P2.0所对应的灯闪几下sbitP2_1=P2^1;//定义P2.1口用来,当除数为0时,P2.1所对应的灯闪几下sbitP2_2=P2^2;sbitP2_3=P2^3;uintnum[4]={0};//用于记录外面输入的数字uintTablenum;sbitP3_4=P3^4;sbitP3_5=P3^5;voidjieguo(void);voidSettime(ucharverif
5、y);ucharkbscan(void);///键盘扫描voidShow_Time(void);////显示时间voidSettime(ucharverify);//verify在这里为调整的意思uinttransfor(ucharkey1);voiddelay400ms(void);voiddelay200ms(void);voiddelay5ms(void);voiddelay_1s(void);voiddlms(void);voiddlms1(void){ uintg=20000; while(--g); //延时
6、100mS钟}voidclr(void){ i=0; suanfa=0; Tablenum=0; for(f=0;f<4;f++) { num[f]=0; } P2_0=1; P2_1=1; P2_2=1; P2_3=0; P3_4=0; P3_5=1; P0=0xc0; P3_5=0;}//***************************************以下单片机液晶显示****************************************************vo
7、idwaitLcd() //justwaituntil液晶不忙为止 { chartemp; bitflag=1; while(flag==1) { temp=XBYTE[rc]; if(temp>>7==0)flag=0; P1=temp; } P1=0xff; } //justwaituntil液晶不忙为止voidWriteCommand_Lcd(bitisCheck,charc
8、) { if(isCheck==1)waitLcd(); XBYTE[wc]=c; }voidwritedata(charc){ waitLcd