欢迎来到天天文库
浏览记录
ID:58934333
大小:69.73 KB
页数:9页
时间:2020-09-18
《基于51单片机与DS1302时钟芯片和LCD1602液晶显示的数字时钟.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.PROTEUS仿真图:LM016L1DCLDNSDEGSDESW01234567VVVRREDDDDDDDDC1C2RP122pF22pFD12345678901234N11111V1+5VX1U1G5+5V+19392XTAL1P0.0/AD0383P0.1/AD137412MHzP0.2/AD218365XTAL2P0.3/AD3356P0.4/AD4347P0.5/AD5338C3P0.6/AD69329RSTP0.7/AD7D20uF2110KNP2.0/A81k22GP2.1/A9223R15P2.2/A1029C924PSEN8P2.3/A1130T25RV1ALEAP
2、2.4/A12VD+5V31EAP2.5/A1326510kN+GD1.5V1.5V27NP2.6/A1428GP2.7/A15U2110P1.0/T2P3.0/RXD28211X1VCC1+5VP1.1/T2EXP3.1/TXD1312VCC2P1.2P3.2/INT084136P1.3P3.3/INT175142X2P1.4P3.4/T035615RSTP1.5P3.5/T17716SCLKP1.6P3.6/WR36817X2I/OP1.7P3.7/RDDS1302KEILC程序:#include#include"LCD1602.h"#include"DS13
3、02.h"voidDelay1ms(unsignedintcount){unsignedinti,j;for(i=0;i4、urrentTime.TimeString);Delay1ms(400);}}#ifndefLCD_CHAR_1602_2005_4_9#defineLCD_CHAR_1602_2005_4_9#include//PortDefinitions**********************************************************sbitLcdRs=P2^0;sbitLcdRw=P2^1;sbitLcdEn=P2^2;sfrDBPort=0x80;//P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口//内部等待5、函数**************************************************************************unsignedcharLCD_Wait(void){LcdRs=0;LcdRw=1;_nop_();LcdEn=1;_nop_();//while(DBPort&0x80);//在用Proteus仿真时,注意用屏蔽此语句,在调用GotoXY()时,会进入死循环,//可能在写该控制字时,该模块没有返回写入完备命令,即DBPort&0x80==0x80//实际硬件时打开此语句LcdEn=0;returnDBPort;}//向LCD写入命6、令或数据************************************************************#defineLCD_COMMAND0//Command#defineLCD_DATA1//Data#defineLCD_CLEAR_SCREEN0x01//清屏#defineLCD_HOMING0x02//光标返回原点..voidLCD_Write(bitstyle,unsignedcharinput){LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();//注意顺序LcdEn=1;_nop_(7、);//注意顺序LcdEn=0;_nop_();LCD_Wait();}//设置显示模式************************************************************#defineLCD_SHOW0x04//显示开#defineLCD_HIDE0x00//显示关#defineLCD_CURSOR0x02//显示光标#defineLCD_NO_CURSOR0x00//无光标#defineLCD_FLASH0x01//
4、urrentTime.TimeString);Delay1ms(400);}}#ifndefLCD_CHAR_1602_2005_4_9#defineLCD_CHAR_1602_2005_4_9#include//PortDefinitions**********************************************************sbitLcdRs=P2^0;sbitLcdRw=P2^1;sbitLcdEn=P2^2;sfrDBPort=0x80;//P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口//内部等待
5、函数**************************************************************************unsignedcharLCD_Wait(void){LcdRs=0;LcdRw=1;_nop_();LcdEn=1;_nop_();//while(DBPort&0x80);//在用Proteus仿真时,注意用屏蔽此语句,在调用GotoXY()时,会进入死循环,//可能在写该控制字时,该模块没有返回写入完备命令,即DBPort&0x80==0x80//实际硬件时打开此语句LcdEn=0;returnDBPort;}//向LCD写入命
6、令或数据************************************************************#defineLCD_COMMAND0//Command#defineLCD_DATA1//Data#defineLCD_CLEAR_SCREEN0x01//清屏#defineLCD_HOMING0x02//光标返回原点..voidLCD_Write(bitstyle,unsignedcharinput){LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();//注意顺序LcdEn=1;_nop_(
7、);//注意顺序LcdEn=0;_nop_();LCD_Wait();}//设置显示模式************************************************************#defineLCD_SHOW0x04//显示开#defineLCD_HIDE0x00//显示关#defineLCD_CURSOR0x02//显示光标#defineLCD_NO_CURSOR0x00//无光标#defineLCD_FLASH0x01//
此文档下载收益归作者所有