欢迎来到天天文库
浏览记录
ID:59825766
大小:10.48 KB
页数:6页
时间:2020-11-25
《单片机矩阵键盘1602显示.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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_();_nop_
2、();_nop_();_nop_();};/*************************************************************//**//*延时子程序*//**//*************************************************************/voiddelay(ucharx){ucharj;while((x--)!=0){for(j=0;j<125;j++){;}}}/*************************************************************//**
3、//*检查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);}/**************************************************************
4、*****//**//*写指令数据到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_EN=0;}/***********************************
5、********************************//**//*写显示数据到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;}/*************************
6、************************************//**//*LCD初始化设定*//**//*************************************************************/voidlcd_init(){delay(15);lcd_wcmd(0x38);//16*2显示,5*7点阵,8位数据delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x0c);//显示开,关光标delay(5);lcd_wcmd(0x06);//移动光标dela
7、y(5);lcd_wcmd(0x01);//清除LCD的显示内容delay(5);}/*************************************************************//**//*设定显示位置*//**//*************************************************************/voidlcd_pos(ucharpos){lcd_wcmd(pos
8、0x80);//数据指针=80
此文档下载收益归作者所有