欢迎来到天天文库
浏览记录
ID:39347493
大小:35.00 KB
页数:4页
时间:2019-07-01
《LCD12864显示矩阵键盘输入的任意两位数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、/**********************************************************用矩阵按键输入任意两位数并显示在12684上。如先输入2,再输入5液晶上显示25。用矩阵按键0-9共10个按键。LCD12864用串行方式操作,如果用并行,请自行修改。***********************************************************/#include#include#defineucharunsignedchar#defineuintunsignedint#define
2、NOP_nop_();sbitLCD_CS=P1^0;//片选,高电平有效(RS)sbitLCD_SID=P1^1;//串行数据输入端(R/W)sbitLCD_SCLK=P1^2;//串行同步时钟,上升沿读取SID数据(E)sbitLCD_PSB=P1^3;//并/串选择H并行L串行sbitLCD_RST=P1^4;//复位,低电平有效ucharkeynum;ucharcodedis1[]={"请输入任意两位数"};ucharcodedis2[16]={"0123456789ABCDEF"};uchardis_buf[]={0,0};uchargetkey();voiddisp
3、lay();voiddelay(uintx){uchari;while(x--){for(i=0;i<110;i++);}}/*写指令程序,指令由3个字节组成,第一个为写指令*//*第二个为指令高4位,第三个为指令低4位*/voidsend_cmd(ucharcmd_dat){uchari;uchari_dat;i_dat=0xf8;LCD_CS=1;LCD_SCLK=0;for(i=0;i<8;i++){LCD_SID=(bit)(i_dat&0x80);LCD_SCLK=0;LCD_SCLK=1;i_dat=i_dat<<1;}i_dat=cmd_dat;i_dat&=0x
4、f0;for(i=0;i<8;i++){LCD_SID=(bit)(i_dat&0x80);LCD_SCLK=0;LCD_SCLK=1;i_dat=i_dat<<1;}i_dat=cmd_dat;i_dat<<=4;for(i=0;i<8;i++){LCD_SID=(bit)(i_dat&0x80);LCD_SCLK=0;LCD_SCLK=1;i_dat=i_dat<<1;}LCD_CS=0;delay(10);}/*写数据程序,指令由3个字节组成,第一个为写数据*//*第二个为数据高4位,第三个为数据低4位*/voidsend_dat(ucharcmd_dat){uchari
5、;uchari_dat;i_dat=0xfa;LCD_CS=1;for(i=0;i<8;i++){LCD_SID=(bit)(i_dat&0x80);LCD_SCLK=0;LCD_SCLK=1;i_dat=i_dat<<1;}i_dat=cmd_dat;i_dat&=0xf0;for(i=0;i<8;i++){LCD_SID=(bit)(i_dat&0x80);LCD_SCLK=0;LCD_SCLK=1;i_dat=i_dat<<1;}i_dat=cmd_dat;i_dat<<=4;for(i=0;i<8;i++){LCD_SID=(bit)(i_dat&0x80);LCD_S
6、CLK=0;LCD_SCLK=1;i_dat=i_dat<<1;}LCD_CS=0;delay(10);}voidLCD_INIT(){LCD_PSB=0;//串行方式操作send_cmd(0x30);//基本指令操作delay(5);send_cmd(0x0c);//显示开,关游标,游标位置反白禁止delay(5);send_cmd(0x06);//光标右移,整体显示不移动delay(5);send_cmd(0x01);//清除LCD显示内容delay(5);}uchargetkey(){unsignedcharrow,col,k;for(row=0;row<4;row++)
7、//行值依次为0xfe,0xfd,0xfb,0xf7{P2=~(1<
此文档下载收益归作者所有