资源描述:
《矩阵键盘液晶显示c程序(matrix keyboard lcd c program)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、矩阵键盘液晶显示c51程序(MatrixkeyboardLCDC51program)#includesreg52.h><#includesstdio.h><#includes"1602.h"#includes"delay.h"#includes"keyboard.h"sbitavnipa=p2^0;//这是为了关闭开发板上的数码管实际应用去掉sbitp21^1=0;//这是为了关闭开发板上的数码管实际应用去掉sbitp35=p3^5;//这是为了关闭开发板上的点阵实际应用去掉/*-------------------
2、-----------------------------主程序------------------------------------------------*/main(){unsignedintn,t;unsignedcharnum,sign;unsignedchars[16];//最大输入16个bitsfirstflag;floata=0,b=0.unsignedchard;p1=0x00;//这是为了关闭开发板上的数码管实际应用去掉avnipa=0;//这是为了关闭开发板上的数码管实际应用去掉p21=0;/
3、/这是为了关闭开发板上的数码管实际应用去掉p35=0;//这是为了关闭开发板上的点阵实际应用去掉p1=0xff;//p1口置1lcd_init();//初始化液晶屏delayms(10);//延时用于稳定,可以去掉lcd_clear().lcd_write_string(0.0,"kaiguandianyuan");lcd_write_string(0.1,bujin+-x/1").while(1){num=keypro();if(n!=0xff)//如果扫描是按键有效值则进行处理{if(i==0)//输入是第一个字
4、符的时候需要把改行清空,方便观看lcd_clear().if(('+'==num)
5、
6、(=16)
7、
8、(-==num)
9、
10、(x==num)
11、
12、(/==num)
13、
14、(====num))//输入数字最大值16,输入符号表示输入结束{the=0;//计数器复位if(firstflag==0)//如果是输入的第一个数据,赋值给a,并把标志位置1,到下一个数据输入时可以跳转赋值给b{sscanf(temp,"%f",&);firstflag=1;}elsesscanf(temp,"%f",&b);for(s=0;s<16;s++
15、)//赋值完成后把缓冲区清零,防止下次输入影响结果s[s]=0.lcd_write_char(0,n).if(('+'==num)
16、
17、(-==num)
18、
19、(x==num)
20、
21、(/==num)){sign=num;firstflag=0;switch(sign){case'+':=a+0.1;sprintf(temp,"%d",);lcd_write_string(0.1s).break;houses-is:a=-1;sprintf(temp,"%d",);lcd_write_string(0.1s).break;ho
22、usesx:if(<16){for(n=(150-10*);n>0;n-){a=a+1;sprintf(temp,"%d",);lcd_write_string(0.1s).for(t=0;t<5;t++)delayms(200).if(!=15)(lcd_clear();}};}else{a=15;sprintf(temp,"%d",);lcd_write_string(0.1s).}break;houses/:if(<16){for(n=10*;n>0;n-){if(-0.1-0.2)(lcd_write_str
23、ing(0.1,"0.1");=-0.1;}elseif((-0.1<10)&&(-0.1-9.9)){lcd_write_string(0.1,9.9);a=10;}else{a=a-0.1.sprintf(temp,"%d",);lcd_write_string(0.1s).for(t=0;t<5;t++)delayms(200).lcd_clear().}};}else{a=15;sprintf(temp,"%d",(a);lcd_write_string(0,0,temp);for(n=10*a;n>0;n-
24、-){if(a-0.1<0.2){lcd_write_string(0,1,"0.1");a=a-0.1;}else{a=a-0.1;sprintf(temp,"%d",(a);lcd_write_string(0,1,temp);(t=0;t<5;t++)delayms(200);lcd_clear();}};}break;default:b