单片机控制LCD显示时间.doc

上传人:hs****ma 文档编号:558117166 上传时间:2023-06-05 格式:DOC 页数:13 大小:440.50KB
返回 下载 相关 举报
单片机控制LCD显示时间.doc_第1页
第1页 / 共13页
单片机控制LCD显示时间.doc_第2页
第2页 / 共13页
单片机控制LCD显示时间.doc_第3页
第3页 / 共13页
单片机控制LCD显示时间.doc_第4页
第4页 / 共13页
单片机控制LCD显示时间.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《单片机控制LCD显示时间.doc》由会员分享,可在线阅读,更多相关《单片机控制LCD显示时间.doc(13页珍藏版)》请在金锄头文库上搜索。

1、第二章 系统设计方案2.1 系统设计方案 电路原理图如图2.1所示 图2.1 电路原理图2.2 电路模块组成及其工作原理 2.2.1 时钟电路系统时钟源由内部时钟方式产生,时钟电路由12MH晶振和两个30PF瓷片电容组成,构成自激振荡,形成振荡源提供给单片机。电容可在5PF到30PF之间选择,电容的大小对振荡频率有微小影响,可起频率微调作用。时钟电路如图2.2所示图2.2 时钟电路 2.2.2 复位电路 单片机复位有上电复位和手动复位两种方式,上电复位是接通电源后利用RC充电来实现复位。手动复位是通过人为干预,强制系统复位。 复位电路如图2.3所示,可以实现上电复位和手动复位功能。图2.3 复

2、位电路2.2.3 按键电路 在单片机的P1.0、P1.1、P1.2三个I/O口接三个简易按键,通过不断检测按键状态,识别按键的按下顺序和次数即可实现时间的任意修改。 按键电路如图2.4所示。2.2.4 1602液晶显示模块电路 本设计是通过对1602液晶显示屏的控制来实现时间的显示。 1602液晶显示模块的驱动如下所述:图2.4 1602液晶屏实物图1602采用标准的16脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS

3、为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线第1516脚:空脚 1602显示屏的时序图如图2.5。 图2.5 1602时序图1602液晶显示屏与单片机的连线图如图2.6所示。图2.6 1602与单片机连线图第三章 程序设计及其调试3.1 程序设计 程序设计如下:#inclu

4、de#define uchar unsigned char #define uint unsigned intsbit lcdrs=P20;sbit lcswr=P21;sbit lcden=P22;sbit s1=P10;sbit s2=P11;sbit s3=P12;sbit rd=P37;uchar count,s1num;char miao,shi,fen;uchar code table= 2011-6-14 TUN;uchar code table1= 00:00:00;void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-

5、);void write_com(uchar com)lcdrs=0;lcswr=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date)lcdrs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;void init()uchar num; lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(num=0;num15;num+)

6、write_date(tablenum);delay(5);write_com(0x80+0x40);for(num=0;num12;num+)write_date(table1num);delay(5);TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;void write_sfm(uchar add,uchar date)uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_date(0x30+shi);write_da

7、te(0x30+ge);void keyscan()rd=0;if(s1=0)delay(5);if(s1=0)s1num+;while(!s1);if(s1num=1)TR0=0;write_com(0x80+0x40+10);write_com(0x0f);if(s1num=2)write_com(0x80+0x40+7);if(s1num=3)write_com(0x80+0x40+4);if(s1num=4)s1num=0;write_com(0x0c);TR0=1;if(s1num!=0)if(s2=0)delay(5);if(s2=0)while(!s2);if(s1num=1)m

8、iao+;if(miao=60)miao=0;write_sfm(10,miao);write_com(0x80+0x40+10);if(s1num=2)fen+;if(fen=60)fen=0;write_sfm(7,fen);write_com(0x80+0x40+7);if(s1num=3)shi+;if(shi=24)shi=0;write_sfm(4,shi);write_com(0x80+0x40+4);if(s3=0)delay(5);if(s3=0)while(!s3);if(s1num=1)miao-;if(miao=-1)miao=59;write_sfm(10,miao)

9、;write_com(0x80+0x40+10);if(s1num=2)fen-;if(fen=-1)fen=59;write_sfm(7,fen);write_com(0x80+0x40+7);if(s1num=3)shi-;if(shi=-1)shi=23;write_sfm(4,shi);write_com(0x80+0x40+4);void main()init();while(1)keyscan();void timer0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;count+;if(count=18)count=0;miao+;if(miao=60)miao=0;fen+;if(fen=60)fen=0;shi+;if(shi=24)shi=0;write_sfm(4,shi);write_sfm(7,fen);write_sfm(10,miao);3.2 实验调试实验过程中出现了很多的问题,经过反复的程序修改和调试,最终完成了本设计的要求,实现了电子时钟功能。在电路焊接前,通过protues单片机仿真软件多次调试和仿真,得出了正确的实验结果。Protues仿真图如图3.1所示。图3.1 protues仿真图

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号