单片机矩阵键盘程序

单片机矩阵键盘程序

ID:15542270

大小:42.50 KB

页数:5页

时间:2018-08-03

单片机矩阵键盘程序_第1页
单片机矩阵键盘程序_第2页
单片机矩阵键盘程序_第3页
单片机矩阵键盘程序_第4页
单片机矩阵键盘程序_第5页
资源描述:

《单片机矩阵键盘程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#include#defineucharunsignedchar#defineuintunsignedintuchardis_buf;//显示缓存uchartemp;ucharkey;//键顺序吗voiddelay0(ucharx);//x*0.14MSsbitLCD_RW=P2^5;sbitLCD_RS=P2^6;sbitLCD_EN=P2^7;ucharcdis1[16]={"KEYNUMBER"};ucharcdis2[16]={"KEY-CODE:H"};#definedelayNOP();{_nop_();_n

2、op_();_nop_();_nop_();};/*延时子程序*/voiddelay(ucharx){ucharj;while((x--)!=0){for(j=0;j<125;j++){;}}}/**//*检查LCD忙状态*//*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据*//**/bitlcd_busy(){bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=1;delayNOP();result=(bit)(P0&0x80);LCD_EN=0;return(result);}/**********************

3、*********************************************//**//*写指令数据到LCD*//*RS=L,RW=L,E=高脉冲,D0-D7=指令码。*//**//*******************************************************************/voidlcd_wcmd(ucharcmd){while(lcd_busy());LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_();P0=cmd;delayNOP();LCD_EN=1;delayNOP();LCD

4、_EN=0;}/**//*写显示数据到LCD*//*RS=H,RW=L,E=高脉冲,D0-D7=数据。*//**/voidlcd_wdat(uchardat){while(lcd_busy());LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}*//*LCD初始化设定*/voidlcd_init(){delay(15);lcd_wcmd(0x38);//16*2显示,5*7点阵,8位数据delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x3

5、8);delay(5);lcd_wcmd(0x0c);//显示开,关光标delay(5);lcd_wcmd(0x06);//移动光标delay(5);lcd_wcmd(0x01);//清除LCD的显示内容delay(5);}/*************************************************************//**//*设定显示位置*//**//*************************************************************/voidlcd_pos(ucharpos){lcd_wcmd(pos

6、

7、0x80);//数据指针=80+地址变量}/*************************************************************//**//*键扫描子程序(4*3的矩阵)P1.4P1.5P1.6P1.7为行*//*P1.1P1.2P1.3为列*//**//*************************************************************/voidkeyscan(void){temp=0;P1=0xF0;//高四位输入行为高电平列为低电平delay(1);temp=P1;//读P1口temp=temp

8、&0xF0;//屏蔽低四位temp=~((temp>>4)

9、0xF0);if(temp==1)//p1.4被拉低key=0;elseif(temp==2)//p1.5被拉低key=1;elseif(temp==4)//p1.6被拉低key=2;elseif(temp==8)//p1.7被拉低key=3;elsekey=16;P1=0x0F;//低四位输入列为高电平行为低电平delay(1);temp=P1;//读P1口temp=temp&0x0F;temp=~(temp

10、0xF0);if(temp==2

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。