基于单片机的lcd1602电子时钟设计.pdf
《基于单片机的lcd1602电子时钟设计.pdf》由会员分享,可在线阅读,更多相关《基于单片机的lcd1602电子时钟设计.pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于单片机的基于单片机的 LCD1602LCD1602 电子时钟设计电子时钟设计一、设计任务和目的1.1、设计任务(1):用单片机设计基于 LCD1602 的电子时钟,显示时间和日期;(2):误差精度控制在 1s/天;(3):具有时间和日期的校准功能;(4):能区分某年是闰年或平年,并对应显示 2 月份的天数;(5):根据月份的不同显示不同的最大日数;(6):搭建仿真电路图,模拟单片机要实现的功能;(7):焊接单片机开发板;(8):编写程序,下载并调试,实现要求的功能。1.2、设计目的(1):熟练掌握 KEIL 软件的使用方法;(2):熟练掌握 PROTEUS 软件的使用方法;(3):掌握单片
2、机 I/O 接口的工作原理;(4):掌握 LCD 显示器的工作原理及编程方法;(5):掌握独立式键盘的工作原理及编程使用方法;(6):掌握单片机的下载使用方法。二、设计思路和方案论证2.1、设计思路电路总体上分为控制和显示部分。以单片机最小系统作为核心控制电路,控制 LCD 显示,具体显示内容及方式由软件来完成;由于有时钟和日期的调节功能需要校准电路和基本的复位电路,复位电路采用按键复位,调节键、加 1 键、减 1 键三个按键完成,共需四个按键;计时功能由固定频率的晶振完成(采用11.0592MHz);显示部分主要采用 LCD1602 作为显示。2.2、方案论证(1):时钟芯片的选择和论证方案
3、一:采用 DS1302 时钟芯片实现时钟,DS1302 芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、月、年以及闰年补偿的年进行计数,精度也较高,工作电压 2.5V5.5VX 围内,功耗也较低,但价格比较贵。方案二:直接采用单片机定时计数器提供秒信号,使用程序实现秒、分、时、日、月、年计数。采用此方案实现虽然有一定的时间误差,但可减少芯片的使用,节约成本,易于实现,符合现实选用,所以采用此种作为时钟信号发生器。(2):显示模块选择方案和论证:方案一:采用点阵式图形 LCD12864 液晶显示屏,液晶显示屏的显示功能强大,可显示文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,
4、所以在此设计中不采用点阵式图形 LCD12864 液晶显示屏。方案二:采用点阵式字符型LCD1602 液晶显示屏,LCD1602 是专门用于显示字母、数字、符号等的点阵型液晶显示模块,分4 位和 8 位数据传输方式。提供“57 点阵+光标”和“510 点阵+光标”的显示模式。价格现对便宜,所以用此种作为显示。1/21三、系统的硬件设计与实现3.1 电路设计框图复位电路LCD 显示模块AT89C51主控制模块键盘控制电路时钟振荡电路图 1:整体设计方框图3.2 单片机最小系统的设计以 AT89C51 为核心组成的单片机的最小系统,主要包括时钟振荡电路,复位电路等。正 5V 电源直接接到 89C5
5、1 的 40 脚(VCC),20 脚(GND)接地。时钟振荡电路的 18 脚(XTAL1)和 19 脚(XTAL2)外接 11.0592MHZ 的晶振和二个 30PF 的电容,振荡频率就是晶振的固有频率,经过一定的电路连接实现计时的功能。复位电路采用上电自动复位和手动复位相结合的方式接到 89C51 的 9端(RST)。单片机最小系统原理图如图 2 所示:图 2:单片机最小系统原理图2/213.3 显示电路设计采用 LCD1602 液晶显示,LCD1602 的 D0D7 与单片机的 P0 口相连,P0口作为 I/O 口输出时必须外接 10K的上拉电阻。分别用 P1.0、P1.1、P1.2 作为
6、LCD1602 的 RS、RW、E 控制线。显示电路如图 3 所示:图 3:液晶显示电路3.4 时间调整电路该电路设计有三个轻触式按键,分别命名为:模式设定键 S1、加调整键 S2、减调整键 S3。由 P2.0 口外接 S1,P2.1 外接 S2,P2.2 外接 S3,P2.3 作为公共端。按一下 S1,调整光标开始出现在秒位,再按一下S1 光标移动到分,按一下光标移动一个校准位直到年位。S2 实现调整加 1 功能,S3 实现调整减 1 功能。时间调整电路如图 4 所示:图 4:键盘电路3.5 复位电路及晶振电路该电路采用按键复位,有一个 22uF 的电容、一个按键 S4、一个 10K 的电阻
7、3/21和一个220的电阻构成。在产品工作期间出现错误或死机现象可采用手动复位,即按下 S4,此时无论电路处于何种状态,电路都会恢复到初始状态的显示。晶振电路可以给单片机提供所需要的时钟频率,主要由晶振这个元件固定的精确的频率来实现。复位电路及晶振电路如图 5 所示:图 5 复位电路及晶振电路四、系统软件设计软件系统分四个部分:主函数程序部分,键盘扫描部分,定时器中断部分,LCD 初始化部分。各部分程序流程图如下所示:4.1 主函数程序流程图开始定时器的选择、工作模式设定、给定时器赋值开中断启动定时器调用 LCD 初始化子程序调用键盘扫描子程序4/21图 6 主函数流程图4.2 键盘扫描子程序
8、流程图判断 S1 是NO否按下YES计算 S1 按下次数并执行相应指令NO判断 S2 是判断 S3 是NO否按下否按下YESYES计算 S3 按下次数计算 S2 按下次数并执行相应操作并执行相应操作结束图 7 键盘扫描程序流程图5/21开始4.3 定时器中断子程序流程图开始给定时器再次赋值判断是否计满 18 次NOYES秒加 1,判断是否等于 60返回NOYESNO分加 1,秒置0,判断分是否等于 60YES时加 1,分置0,判NO断时是否等于 24执行年、月、日、时、分、秒的显示YESYES日加 1,时置0,判NO断该年是否为闰年年加 1,YES月置 1,判断年NONO判断日是否到月底是否为
9、100YES月加 1,日置1,判断月是否等于 136/21NOYES4.3 LCD 初始化程序流程图开始RW和 E 都置零设置点阵8位数据接口,两行显示开显示,不显示光标地址指针加一画面不移动刷新,全部清零给地址,表示从第一行开始写显示第一行数据给第二行地址显示第二行数据返回图 9LCD 初始化流程图7/21五、设计结果分析5.1 硬件分析该设计电路系统较大,电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多。另外,买来的元器件要先进行检测,如果有坏的器件要进行更换,还有就是要注意元器件的正确放置与安装以及布线的合理,便于成品电路的检测与维护。为了减少复杂度,可用 Pr
10、oteus 软件进行仿真,按照电路原理图在 Proteus中选择元器件并连接,把生产的 HEX 文件烧入到单片机内部进行仿真,若出现错误及时更改。在本设计中遇到了很多的问题。回想这些问题,其实只要认真思考许多都是可以避免的,以下为主要的问题:(1):在 Proteus 仿真中提示出错,没有仿真结果。在 Proteus 中仿真中,提示出现了R1(R2)错误,经过仔细排查,发现有两个电阻命名,是 R1,两个电阻命名是 R2。修改后就没有出现错误。(2):在 Proteus 仿真中,LCD 不显示在硬件设计上需要用 P0 口来对 LCD 进行指令的读写和数据的输入,由于没有在 P0 口接上拉电阻,L
11、CD 屏就一直不显示。最终将在查阅课本时想起 P0 做输出口使用时外部必须接 10K的上拉电阻,接上后 LCD 就正常显示了。5.2 软件分析该设计的功能虽然比较简单,但程序也较为复杂,所以在编写程序和调试时出现了许多问题。最后经过多次的模块子程序的修改,一步一步的完成,最终在KEIL 调试成功,解决了软件问题。在软件的调试过程中主要遇到的问题如下:(1):烧入程序后,秒、分、时、年能正常工作,但是日、月出错当秒等于 60 时显示为 00,X 围是 059;当分等于 60 时显示 00,X 围是 059;当时等于 24 时显示 00,X 围是 023;年等于100 是显示 00,X 围是 00
12、99;日和月的显示都不包括 0,当由于软件出错,显示时出现了,经过改写最终全能正常显示。(2:):不能正常区分闰年和平年,每月都是 31 天闰年和平年的 2 月份分别是 29 天和 28 天,1、3、5、7、8、10、12 月份显示 X 围是 031,4、6、9、11 月份显示 X 围是 030。刚开始不能区分,最后经过修改能区分显示。六、设计体会通过这次单片机课程设计,发现了自身所学知识存在许多的不足和问题,同时也学到了不少东西,提高了动手实践的能力。在整个设计过程中,从设计方案的确定,到具体电路在 Proteus 中的设计,最后到总体电路的联接构建以及程序的编写烧制,特别是程序的编写,要求
13、对LCD1602 的初始化操作、指令和数据的操作都需要很熟悉。在设计过程中碰到实在不能解决的问题,就问老师或是和同学交流,把问题彻底搞清楚并加以掌握。尽管在这次设计中遇到了许多难题,但也都一一得以解决。比如程序编写中,由于思路不清晰,开始时遇到了许多的问题,经过静下心来思考,和同学们的共8/21同讨论,理清了思路,反而得心应手;在硬件方面虽然没有遇到什么大问题,但从中也学到了许多知识。通过此次设计,也使我知道了做任何事都要有一颗平常心,不要想着走捷径,一步一个脚印,把每一步都认认真真做好了,才能取得最后的成功,同时也锻炼了我的耐心,做什么事都要有耐心,不要遇到困难就退缩,而是要静下心来去寻找解
14、决的办法否则很难有最后的成功。在此过程中更要注重自主学习,发挥自己的主观能动性。总之,这次课设是我的又一次全新的尝试,也是一个小小的成功,更是一次很好的锻炼,让我有了全方位的提高和进步。七、proteus 仿真图图(10)仿真主界面9/21图(11)调节分界面图(12)调节月界面10/21图(13)调节年界面八、参考文献1 周国运。单片机原理及应用(C 语言版)。:中国水利水电,20092 X 齐、朱宁西。单片机应用系统设计技术。:电子工业,20093 汪道辉。单片机系统设计与实践。:电子工业,20064 杨子文。单片机原理及应用。XX:XX 电子科技大学,2006九、程序附录:#includ
15、e#define uchar unsigned char#define uint unsigned int#define datasend P0sbit lcden=P12;/LCD 使能端sbit lcdrs=P10;/LCD 数据/指令(H/L)选择端sbit lcdrw=P11;ucharmytable0=Nan yang li gong;ucharmytable1=liu hai yan DIY!;uchar code line0=2010-12-01;/初始化显示uchar code line1=00:00:00;uchar code month0=31,28,31,30,31,30
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 lcd1602 电子 时钟 设计
限制150内