1、图9-1LCD1602资料:1602采用标准的16脚接口,其中:第1脚:GND为电源地第2脚:VCC接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极
2、。16脚背光负极。特性:3.3V或5V工作电压,对比度可调含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM建有192个5X7点阵的字型的字符发生器CGROM8个可由用户自定义的5X7的字符发生器CGRAM特征应用微功耗、体积小、显示容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。操作控制关于E=H脉冲开始时初始化E为0,然后置E为1。2-4矩阵键盘模块图10-1键盘输入部分使用矩阵键盘的设计原理。3系统软件设计3-1源程序#include#define uint unsigned int#define uchar unsign
3、ed charsbit rs=P26;sbit en=P27;sbit rw=P25;sbit Key=P24;uchar code table_Receive=Receive:;uchar code table_Send= Send:uchar code table=0,123456789uchar num,temp,temp2,a,flag,add;uchar n,m;void delay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;yy-);void write_lcd_(uchar ) rs=0; P0=; delay(5); en=1; en
4、=0;void write_data(uchar date) rs=1; P0=date; en=(1);void lcdinit() write_lcd_(0x38); write_lcd_(0x0c); write_lcd_(0x06); write_lcd_(0x01); for(m=0;m8;m+) write_data(table_Receivem); delay(1); write_lcd_(0x80+0x40); for(n=0;nn+) write_data(table_Sendn);void keyscan() P1=0xfe; temp=P1; temp=temp&0xf0
5、; while(temp!=0xf0) delay(2); temp=P1; temp=temp& while(temp! temp=P1; switch(temp) case 0xee:num=1;break; case 0xde:num=2; case 0xbe:num=3; case 0x7e:num=4; temp=P1; temp=temp& num=num-1; P1=0xfd; case 0xed:num=5; case 0xdd:num=6; case 0xbd:num=7; case 0x7d:num=8; P1=0xfb; case 0xeb:num=9; case 0xd
6、b:num=10;void Key1()if(Key=0) delay(2); if(Key=0) switch(num) case 0:SBUF=0x00; while(!TI); TI=0; case 1:SBUF=0x01; case 2:SBUF=0x02; case 3:SBUF=0x03; case 4:SBUF=0x04; case 5:SBUF=0x05; case 6:SBUF=0x06; case 7:SBUF=0x07; case 8:SBUF=0x08; case 9:SBUF=0x09; while(!Key); void get() if(RI=1) RI=0; s
7、witch(SBUF) case 0x00:temp2=0; case 0x01:temp2=1; case 0x02:temp2=2; case 0x03:temp2=3; case 0x04:temp2=4; case 0x05:temp2=5; case 0x06:temp2=6; case 0x07:temp2=7; case 0x08:temp2=8; case 0x09:temp2=9; write_lcd_(0x80+add); write_data(tabletemp2); add+; void main() SCON = 0x50; TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; REN=1; SM0=0; SM1=1; add=8; Key=1; rw=0; lcdinit(); while(1) keyscan(); write_lcd_(0x80+0x40+8); write_data(tablenum); get(); Key1(); (以上为所有容)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1