1、LCD1602显示模块单片机C语言程序设计报告题目:基于LCD1602的时间显示姓名:佚名学号:080211999班级:2011级电信2班指导老师:佚名一、设计目的 1、学习单片机开发环境Keil的使用;2、学习使用Proteus仿真软件进行仿真;3、了解LCD1602的具体功能并会使用其实现一定功能.二、设计内容设计一个基于LCD1602的时间显示模块、要求显示出当前时间。三、所需器件硬件:XP86型兼容机 软件:Proteus和Keil四、关于LCD1602介绍1、简介1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等
2、点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形.2、主要引脚功能介绍第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端.3、其他引脚功能简介:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号1
3、4D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极五、Proteus仿真LCD1602显示模块时钟显示Proteus仿真结果六、参考程序#includereg51。h include #includeabsacc。h #define com8155 XBYTE0xfd00 define PA P2sbit RS=P30;sbit RW=P31;sbit EN=P32;unsigned int hour=10,min=20,sec=2,cnt=0;unsigned char time10=,,:,,,:,,;unsigned char cdoe10=0,1,2,3,4,5,6
4、,7,8,9;void trans();void delayms(unsigned int); bit LCDBusy();void LCDWriteCMD(unsigned char);void LCDWriteDAT(unsigned char);void LCDInit(); void LCDShowString(unsigned char ,unsigned char,unsigned char);void main() IE=0X82; TMOD=0xf1;TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)256; com8155=
5、0x0f; delayms(500); LCDInit(); delayms(500); TR0=1; while(1) trans(); LCDShowString(time,4,1); void trans() if(sec59) sec=0; min+=1; time1=cdoehour10; time0=cdoehour/10; time7=cdoesec10; time6=cdoesec/10; time4=cdoemin10; time3=cdoemin/10; bit LCDBusy() bit busy; EN=0; RS=0; RW=1; PA=0xff; _nop_();_
6、nop_();_nop_(); EN=1; _nop_();_nop_();_nop_(); busy=(bit)(PA0x80); EN=0; return busy; void LCDWriteCMD(unsigned char cmd) /向1602写指令函数 unsigned char i=0xff; /定义i while(LCDBusy()&i-); /检测1602是否忙 EN=0; /EN脚送0 RS=0; /RS脚送0 RW=0; /RW脚送0 PA=cmd; /向1602送命令 _nop_();_nop_();_nop_();/nop延时 EN=1; /EN脚送1 _nop_(
7、);_nop_();_nop_();/nop延时 EN=0; /EN脚送0void LCDWriteDAT(unsigned char dat) /向1602写数据函数 unsigned char i=0xFF; /定义i while(LCDBusy()i-); /检测1602是否忙 EN=0; /EN脚送0 RS=1; /RS脚送1 RW=0; /RW脚送0 PA=dat; /向1602送数据dat _nop_();_nop_();_nop_();/nop延时 EN=1; /EN脚送1 _nop_();_nop_();_nop_();/nop延时 EN=0; /EN脚送0void LCDIn
8、it() LCDWriteCMD(0x38); /设置两行显示、字形5X7 LCDWriteCMD(0x08); /关闭显示功能 LCDWriteCMD(0x01); /清屏指令 LCDWriteCMD(0x06); /设置输入模式 LCDWriteCMD(0x0C); /开启显示功能void LCDShowString(unsigned char dat,unsigned char x,unsigned char y) /让1602显示一个字符串的函数的声明 unsigned char p=dat; /定义指针变量,并指向要显示的字符串 x|=y?0xc0:0x80; /将写第y行第x列转换为1602的指令
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1