基于单片机的lcd1602电子时钟设计说明
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.2、方案论证
(1):时钟芯片的选择和论证
方案一:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、月、年以及闰年补偿的年进行计数,精度也较高,工作电压2.5V~5.5V围,功耗也较低,但价格比较贵。
方案二:直接采用单片机定时计数器提供秒信号,使用程序实现秒、分、时、日、月、年计数。采用此方案实现虽然有一定的时间误差,但可减少芯片的使用,节约成本,易于实现,符合现实选用,所以采用此种作为时钟信号发生器。
(6):搭建仿真电路图,模拟单片机要实现的功能;
(7):焊接单片机开发板;
(8):编写程序,下载并调试,实现要求的功能。
1.2、设计目的
(1):熟练掌握KEIL软件的使用方法;
(2):熟练掌握PROTEUS软件的使用方法;
(3):掌握单片机I/O接口的工作原理;
(4):掌握LCD显示器的工作原理及编程方法;
(5):掌握独立式键盘的工作原理及编程使用方法;
(6):掌握单片机的下载使用方法。
2、设计思路和方案论证
2.1、设计思路
电路总体上分为控制和显示部分。以单片机最小系统作为核心控制电路,控制LCD显示,具体显示容及方式由软件来完成;由于有时钟和日期的调节功能需要校准电路和基本的复位电路,复位电路采用按键复位,调节键、加1键、减1键三个按键完成,共需四个按键;计时功能由固定频率的晶振完成(采用11.0592MHz);显示部分主要采用LCD1602作为显示。
NO
YES
NO
YES
NO
YES
NO
YES
YES
NO
YES
NO NO
YES
NO
YES
4.3 LCD初始化程序流程图
图9 LCD初始化流程图
5、设计结果分析
5.1 硬件分析
该设计电路系统较大,电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多。另外,买来的元器件要先进行检测,如果有坏的器件要进行更换,还有就是要注意元器件的正确放置与安装以及布线的合理,便于成品电路的检测与维护。
基于单片机的LCD1602电子时钟设计
1、设计任务和目的
1.1、设计任务
(1):用单片机设计基于LCD1602的电子时钟,显示时间和日期;
(2):误差精度控制在1s/天;
(3):具有时间和日期的校准功能;
(4):能区分某年是闰年或平年,并对应显示2月份的天数;
(5):根据月份的不同显示不同的最大日数;
为了减少复杂度,可用Proteus软件进行仿真,按照电路原理图在Proteus中选择元器件并连接,把生产的HEX文件烧入到单片机部进行仿真,若出现错误及时更改。
在本设计中遇到了很多的问题。回想这些问题,其实只要认真思考许多都是可以避免的,以下为主要的问题:
(1):在Proteus仿真中提示出错,没有仿真结果。
5.2 软件分析
该设计的功能虽然比较简单,但程序也较为复杂,所以在编写程序和调试时出现了许多问题。最后经过多次的模块子程序的修改,一步一步的完成,最终在KEIL调试成功,解决了软件问题。在软件的调试过程中主要遇到的问题如下:
图4:键盘电路
3.5 复位电路及晶振电路
该电路采用按键复位,有一个22uF的电容、一个按键S4、一个10K的电阻和一个220Ω的电阻构成。在产品工作期间出现错误或死机现象可采用手动复位,即按下S4,此时无论电路处于何种状态,电路都会恢复到初始状态的显示。
晶振电路可以给单片机提供所需要的时钟频率,主要由晶振这个元件固定的精确的频率来实现。复位电路及晶振电路如图5所示:
(2):显示模块选择方案和论证:
方案一:采用点阵式图形LCD12864液晶显示屏,液晶显示屏的显示功能强大,可显示文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用点阵式图形LCD12864液晶显示屏。
方案二:采用点阵式字符型LCD1602液晶显示屏,LCD1602是专门用于显示字母、数字、符号等的点阵型液晶显示模块,分4位和8位数据传输方式。提供“5×7点阵+光标”和“5×10点阵+光标”的显示模式。价格现对便宜,所以用此种作为显示。
图2:单片机最小系统原理图
3.3 显示电路设计
采用LCD1602液晶显示,LCD1602的D0~D7与单片机的P0口相连,P0口作为I/O口输出时必须外接10KΩ的上拉电阻。分别用P1.0、P1.1、P1.2作为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所示:
在Proteus中仿真中,提示出现了R1(R2)错误,经过仔细排查,发现有两个电阻命名,是R1,两个电阻命名是R2。修改后就没有出现错误。
(2):在Proteus仿真中,LCD不显示
在硬件设计上需要用P0口来对LCD进行指令的读写和数据的输入,由于没有在P0口接上拉电阻,LCD屏就一直不显示。最终将在查阅课本时想起P0做输出口使用时外部必须接10KΩ的上拉电阻,接上后LCD就正常显示了。
图5 复位电路及晶振电路
4、系统软件设计
软件系统分四个部分:主函数程序部分,键盘扫描部分,定时器中断部分,LCD初始化部分。各部分程序流程图如下所示:
4.1 主函数程序流程图
图6 主函数流程图
4.2 键盘扫描子程序流程图
NO
YES
NO NO
YES YES
图7 键盘扫描程序流程图
4.3 定时器中断子程序流ຫໍສະໝຸດ Baidu图
3、系统的硬件设计与实现
3.1 电路设计框图
图1:整体设计方框图
3.2 单片机最小系统的设计
以AT89C51为核心组成的单片机的最小系统,主要包括时钟振荡电路,复位电路等。正5V电源直接接到89C51的40脚(VCC),20脚(GND)接地。时钟振荡电路的18脚(XTAL1)和19脚(XTAL2)外接11.0592MHZ的晶振和二个30PF的电容,振荡频率就是晶振的固有频率,经过一定的电路连接实现计时的功能。复位电路采用上电自动复位和手动复位相结合的方式接到89C51的9端(RST)。单片机最小系统原理图如图2所示:
(1):时钟芯片的选择和论证
方案一:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、月、年以及闰年补偿的年进行计数,精度也较高,工作电压2.5V~5.5V围,功耗也较低,但价格比较贵。
方案二:直接采用单片机定时计数器提供秒信号,使用程序实现秒、分、时、日、月、年计数。采用此方案实现虽然有一定的时间误差,但可减少芯片的使用,节约成本,易于实现,符合现实选用,所以采用此种作为时钟信号发生器。
(6):搭建仿真电路图,模拟单片机要实现的功能;
(7):焊接单片机开发板;
(8):编写程序,下载并调试,实现要求的功能。
1.2、设计目的
(1):熟练掌握KEIL软件的使用方法;
(2):熟练掌握PROTEUS软件的使用方法;
(3):掌握单片机I/O接口的工作原理;
(4):掌握LCD显示器的工作原理及编程方法;
(5):掌握独立式键盘的工作原理及编程使用方法;
(6):掌握单片机的下载使用方法。
2、设计思路和方案论证
2.1、设计思路
电路总体上分为控制和显示部分。以单片机最小系统作为核心控制电路,控制LCD显示,具体显示容及方式由软件来完成;由于有时钟和日期的调节功能需要校准电路和基本的复位电路,复位电路采用按键复位,调节键、加1键、减1键三个按键完成,共需四个按键;计时功能由固定频率的晶振完成(采用11.0592MHz);显示部分主要采用LCD1602作为显示。
NO
YES
NO
YES
NO
YES
NO
YES
YES
NO
YES
NO NO
YES
NO
YES
4.3 LCD初始化程序流程图
图9 LCD初始化流程图
5、设计结果分析
5.1 硬件分析
该设计电路系统较大,电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多。另外,买来的元器件要先进行检测,如果有坏的器件要进行更换,还有就是要注意元器件的正确放置与安装以及布线的合理,便于成品电路的检测与维护。
基于单片机的LCD1602电子时钟设计
1、设计任务和目的
1.1、设计任务
(1):用单片机设计基于LCD1602的电子时钟,显示时间和日期;
(2):误差精度控制在1s/天;
(3):具有时间和日期的校准功能;
(4):能区分某年是闰年或平年,并对应显示2月份的天数;
(5):根据月份的不同显示不同的最大日数;
为了减少复杂度,可用Proteus软件进行仿真,按照电路原理图在Proteus中选择元器件并连接,把生产的HEX文件烧入到单片机部进行仿真,若出现错误及时更改。
在本设计中遇到了很多的问题。回想这些问题,其实只要认真思考许多都是可以避免的,以下为主要的问题:
(1):在Proteus仿真中提示出错,没有仿真结果。
5.2 软件分析
该设计的功能虽然比较简单,但程序也较为复杂,所以在编写程序和调试时出现了许多问题。最后经过多次的模块子程序的修改,一步一步的完成,最终在KEIL调试成功,解决了软件问题。在软件的调试过程中主要遇到的问题如下:
图4:键盘电路
3.5 复位电路及晶振电路
该电路采用按键复位,有一个22uF的电容、一个按键S4、一个10K的电阻和一个220Ω的电阻构成。在产品工作期间出现错误或死机现象可采用手动复位,即按下S4,此时无论电路处于何种状态,电路都会恢复到初始状态的显示。
晶振电路可以给单片机提供所需要的时钟频率,主要由晶振这个元件固定的精确的频率来实现。复位电路及晶振电路如图5所示:
(2):显示模块选择方案和论证:
方案一:采用点阵式图形LCD12864液晶显示屏,液晶显示屏的显示功能强大,可显示文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用点阵式图形LCD12864液晶显示屏。
方案二:采用点阵式字符型LCD1602液晶显示屏,LCD1602是专门用于显示字母、数字、符号等的点阵型液晶显示模块,分4位和8位数据传输方式。提供“5×7点阵+光标”和“5×10点阵+光标”的显示模式。价格现对便宜,所以用此种作为显示。
图2:单片机最小系统原理图
3.3 显示电路设计
采用LCD1602液晶显示,LCD1602的D0~D7与单片机的P0口相连,P0口作为I/O口输出时必须外接10KΩ的上拉电阻。分别用P1.0、P1.1、P1.2作为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所示:
在Proteus中仿真中,提示出现了R1(R2)错误,经过仔细排查,发现有两个电阻命名,是R1,两个电阻命名是R2。修改后就没有出现错误。
(2):在Proteus仿真中,LCD不显示
在硬件设计上需要用P0口来对LCD进行指令的读写和数据的输入,由于没有在P0口接上拉电阻,LCD屏就一直不显示。最终将在查阅课本时想起P0做输出口使用时外部必须接10KΩ的上拉电阻,接上后LCD就正常显示了。
图5 复位电路及晶振电路
4、系统软件设计
软件系统分四个部分:主函数程序部分,键盘扫描部分,定时器中断部分,LCD初始化部分。各部分程序流程图如下所示:
4.1 主函数程序流程图
图6 主函数流程图
4.2 键盘扫描子程序流程图
NO
YES
NO NO
YES YES
图7 键盘扫描程序流程图
4.3 定时器中断子程序流ຫໍສະໝຸດ Baidu图
3、系统的硬件设计与实现
3.1 电路设计框图
图1:整体设计方框图
3.2 单片机最小系统的设计
以AT89C51为核心组成的单片机的最小系统,主要包括时钟振荡电路,复位电路等。正5V电源直接接到89C51的40脚(VCC),20脚(GND)接地。时钟振荡电路的18脚(XTAL1)和19脚(XTAL2)外接11.0592MHZ的晶振和二个30PF的电容,振荡频率就是晶振的固有频率,经过一定的电路连接实现计时的功能。复位电路采用上电自动复位和手动复位相结合的方式接到89C51的9端(RST)。单片机最小系统原理图如图2所示: