1、硬件按时液晶显示时钟设计 单片机课程设计报告题 目 硬件按时液晶显示时钟设计学 院 电信学院 专 业 电气工程及其自动化 学生姓名 学 号 6122 年级 09 级 指导教师 职称 讲师 2012 年 6 月 25 日硬件按时液晶显示时钟的设计摘要:本设计的主要任务是实现液晶按不时钟的显示,用到的硬件有微控制器AT89C51, 时钟芯片DS1302,液晶显示屏LCD1602. DS1302时钟芯片内含有一个实不时钟/日历和31个字节静态RAM,实不时钟/日历能提供2100年之前的秒、分、时、日、日期、月、年等信息,时钟操作可通过AM/PM指示决定采用24小时或12小时格式。第一设按时钟DS13
2、07的各寄放器地址,然后对LCD初始化,在对时钟读写时刻,最后在LCD上显示。而且通过按键来修改和按时日期和时刻,咱们的显示结果在实验台上显示结果,通过连接实验台上的相关器件,运行仿真以后会在液晶显示屏上显示相关内容,其中第一行显示年月日,第二行显示时分秒。关键词: AT89C51单片机 DS1302 LCD1602第1章 引言1 研究背景1课程设计的目的1课程设计内容1第2章 整体方案设计2 硬件按时液晶显示时钟的设计方案证2 方案选择2第3章 硬件系统设计3总电路设计3器件的介绍3 3.2.1 MCS-51系列单片机3 3.3.2 钟芯片DS1302简介 7 3.3.3 键盘的介绍8第4章
3、 软件系统设计10软件程序思想10流程图10 汇编语言源程序清单 11第5章 系统仿真18 KEIL 51介绍18 PROTEUS介绍18 仿真进程及仿真结果 19 5.3.1硬件调式195.3.2 软件调试 195.3.3 仿真结果 20第 6 章 结束语 21参考文献221.1研究背景随着运算机科学与技术的飞速进展,运算机的应用已经渗透到国民经济与人们生活的各个角落,正在日趋改变着传统的人类工作方式和生活方式,而单片机技术又作为运算机技术中的一个独立分支,有着性价比高,集成度高,体积小,靠得住性高,控制功能壮大,低功耗,低电压,便于生产,便于携带等特点,所以取得愈来愈普遍的应用,专门是在工
4、业控制和仪表仪器智能化中起极为重要的作用.本文利用单片机壮大的控制功能和内部按时重视要部件,设计了一款把时、分、秒用LCD显示的而且通过用按键来修改日期火热时刻的电子钟。数字电子钟系统设计已经成熟,可是目前系统设计时大体都是采用LED作为显示电路,造成硬件电路复杂、功耗高、产品体积庞大等特点;液晶显示模块由于具有低功耗、寿命长、体积小、显示内容丰硕、价钱低、接口控制方便等长处,因此在各类电子产品中被极普遍地推行和应用。字符型液晶显示模块是一类专门用于显示字母、数字、符号等点阵式液晶显示模块。本系统设计采用字符型液品显示模块LCD1602作为显示器件,如此不仅简化了系统的硬件设计,而且极大地提高
5、了系统的靠得住性。1LCD1602简介字符型液晶显示模块LCD1602已是单片机应用设计中最常常利用的信息显示器件。LCD1602能够显示两行,每行16个字符,采用+5V电源供电,外围电路配置简单,价钱廉价,具有很高的性价比。单片机课程设计是单片机课程后续学习阶段的一个重要的实践学习环节,它既能增强学生对所学课程内容的理解和综合,也能培育学生的综合应用及设计能力,同时,还能够拓宽课程内容和培育创新意识。设计一个单片机硬件按时液晶显示时钟。要求:1、采用应用普遍的微控制器AT89C51,系统采用12MHz的晶振;2、时钟芯片采用DS1302;3、显示器采用LCD1602;4、实时显示年、月、日和
6、秒、分、时,时刻以24小时为一个周期;5、通过按键K1,K2,K3来修改日期和时刻,达到按时的目的。第2章 整体方案设计硬件按时液晶显示时钟的设计方案单片机电子时钟方案选择主要涉及两个方面:计时方案和显示方案。方案一:计时方案单片机电子时钟计时有两种方式:第一种是通过单片机内部的按时器/计数器,采用软件编程来实现时钟计时,这种实现的时钟一般称为软时钟,这种方式的硬件线路简单,系统的功能一般与软件设计相关,通常常利用在对时刻精度要求不高的场合;第二种是采用专用的硬件时钟芯片计时,这种实现的时钟一般称为硬时钟。专用的时钟芯片功能比较壮大,除自动实现大体计时外,一般还具有日历和闰年补偿等功能,计时准
7、确,软件编程简单,但硬件本钱相对较高,通常常利用在对时钟精度要求较高的场合。方案二:显示方案对于电子时钟而言,显示是另一个重要的环节。显示通常采用两种方式:LED数码管显示和LCD液晶显示。其中LED数码管显示亮度高,显示内容清晢,按照具体的连接方式可分为静态显示和动态显示,在多个数码管时一般采用动态显示,动态显示时须要占用CPU的大量时刻来执行动态显示程序,显示效果往往和显示程序的执行相关。LCD液晶显示一般能显示的信息多,显示效果好,而且液晶显示器一般都带控制器,显示进程由自带的控制器控制,不须要CPU参与,但液晶显示器造价相对较高。软件计时LED数码管显示的单片机电子时钟整体设计框图,硬
8、件按时LCD液晶显示的单片机电子时钟整体设计框图如图、所示。 图 软件计时LED显示时钟整体框图 图 硬件按时LCD显示时钟整体框图方案选择从节省功耗,体积,I/O口的节省,本设计采用硬件按时LCD液晶显示的单片机电子时钟整体设计,如上图所示。单片机扩展的LCD显示器用来显示秒、分、时计数单元中的值。整个设计包括两大部份: 硬件部份和软件部份,以单片机为核心, 配以必然的外围电路和软件。硬件是整个系统的基础, 软件部份则要合理、充分地支持和利用系统的硬件, 从而完成系统所要完成的任务。该时钟系统主要由时钟模块、液晶显示模块、键盘控制模块组成。能够准确显示时刻(显示格式为不时:分分:秒秒,24小
9、时制),可随时进行时刻调整。设计以硬件软件化为指导思想,充分发挥单片机功能,大部份功能通过软件编程来实现,电路简单明了,系统稳固性高。第3章 硬件系统设计 总电路设计 图3-1硬件按时LCD显示时钟硬件电路图硬件按时LCD液晶显示时钟的具体硬件电路如图3-1所示,其中单片机采用应用普遍的AT89C52,系统时钟采用12MHz的晶振,时钟芯片采用DS1302,显示器采用LCD1602,DS1302复位线 与89C 52单片机的相连,时钟线SCLK与相连,数据线I/O与相连,DS1302的X1和X2接32kHz晶体,VCC2接主电源Vcc,VCC1接备用电源(3V的电池)。LCD1602的数据线与
10、89C 52的P2口相连,RS与相连,R/ 与相连,E端与相连。也只设定3个开关K0、K1和K2,通过P1口低3位相连。其中K0键为模式选择键, K1为加1键,K2为减1健。K0没有按下,则正常走时,K0按第一次,则可调年,按第二次,则可调月,按第三次,则可调日,按第四次,则可调小时,按第五次,则可调分,按第六次,则又回到正常走时。 器件的介绍3.2.1 MCS-51系列单片机AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位按时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路2。同时,AT89C52可降
11、至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,按时/计数器,串行通信口及中断系统继续工作。掉电方式保留RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。系列单片机的大体组成虽然MCS-51系列单片机的芯片有多种类型,但它们的大体组成相同。MCS-51单片机的大体结构如图3-2所示。 图3-2 MCS-51的大体结构2. MCS-51系列单片机的内部结构MCS-51单片机的内部结构框图如图3-3所示。 图3-3 MCS-51内部结构图由图3-3能够看到:它集成了中央处置器(CPU)、存储器系统(RAM和ROM)、按时/计
12、数器、并行接口、串行接口、中断系统及一些特殊功能寄放器(SFR)。它们通过内部总线紧密地联系在一路。它的整体结构仍是通用CPU加上外围芯片的总线结构。只是在功能部件的控制上与一般微机的通用寄放器加接口寄放器控制不同,CPU与外设的控制再也不分开,采用了特殊功能寄放器集中控制,利用更方便。内部还集成了时钟电路,只需外接石英晶体就可形成时钟。另外注意,8031和8032内部没有集成ROM。 系列单片机的中央处置器(CPU)MCS-51单片机的中央处置器包括运算部件和控制部件。运算部件以算术逻辑运算单元ALU为核心,包括累加器ACC、B寄放器、暂存器、标志寄放器PSW等许多部件,且能实现算术运算、逻
13、辑运算、位运算、数据传输等处理。控制部件是单片机的控制中心,它包括按时和控制电路、指令寄放器、指令译码器、程序计数器PC、堆栈指针SP、数据指针DPTR和信息传送控制部件等。它先以振荡信号为基准产生CPU的时序,从ROM中掏出指令到指令寄放器,然后在指令译码器中对指令进行译码,产生执行指令所需的各类控制信号,送到单片机内部的各功能部件中,指挥各功能部件产生相应的操作,完成对应的功能。具体控制进程本书不作描述。系列单片机的存储器结构MCS-51单片机的存储器结构与一般微机的存储器结构不同,分为程序存储器ROM和数据存储器RAM。程序存储器寄存程序、固定常数和数据表格,数据存储器用作工作区及寄存数
14、据,二者完全分开。程序存储器和数据存储器都有各自的寻址方式、寻址空间和控制系统。程序存储器和数据存储器从物理结构上可分为片内和片外两种。它们的寻址空间和访问方式也不相同。5. MCS-51单片机中断系统在运算机执行程序的进程中,由于运算机内部事件或外部事件,软件事件或硬件事件,使CPU从当前正在执行的程序中暂停下来,而转去执行预先安排好的、处置该事件所对应的服务程序(中断服务程序),执行完服务程序后,再返回被暂停的位置继续执行原来的程序,那个进程称为中断。图3-4 中断进程示用意 1)中断源MCS-51单片机提供5个(52子系列提供6个) 硬件中断源:两个外部中断源和,两个按时/计数器T0和T
15、1的溢出中断TF0和TF1;1个串行口发送T1和接收R1中断。1) 外部中断和外部中断源和的中断请求信号从外部引脚和输入,主要用于自动控制、实时处置、单片机掉电和设备故障的处置。外部中断请求和有两种触发方式:电平触发及跳变(边沿)触发。这两种触发方式能够通过对特殊功能寄放器TCON编程来选择。特殊功能寄放器TCON在按时/计数器中利用过,其中高4位用于按时/计数器控制,前面已介绍。低4位用于外部中断控制,形式如图3-5所示。TCON D7D6D5D4D3D2D1D0(88H) TF1TR1TF0TR0IE1IT1IE0IT0 图3-5 按时/计数器控制寄放器TCON2) 按时/计数器T0和T1
16、中断当按时/计数器T0(或T1)溢出时,由硬件置TF0(或TF1)为“1”,向CPU发送中断请求,当CPU响应中断后,将由硬件自动清除TF0(或TF1)。3) 串行口中断MCS-51的串行口中断源对应两个中断标志位:串行口发送中断标志位TI和串行口接收中断标志位RI。无论哪个标志位置“1”,都请求串行口中断。究竟是发送中断TI仍是接收中断RI,只有在中断服务程序中通过指令查询来判断。串行口中断响应后,不能由硬件自动清零,必需由软件对TI或RI清零。2)中断允许控制MCS-51单片机中没有专门的开中断和关中断指令,对各个中断源的允许和屏蔽是由内部的中断允许寄放器IE的列位来控制的。中断允许寄放器
17、IE的字节地址为A8H,能够进行位寻址,列位的概念如图3-6所示。IED7D6D5D4D3D2D1D0(A8H)EAET2ESET1EX1ET0EX0图3-6 中断允许寄放器IE各项说明具体如下。EA:中断允许总控位。ET2:按时器/计数器T2的溢出中断允许位,只用于52子系列,51子系列无此位。 ES:串行口中断允许位。ET1:按时器/计数器T1的溢出中断允许位。EX1:外部中断的中断允许位。ET0:按时器/计数器T0的溢出中断允许位。EX0:外部中断的中断允许位。若是置“1”,则开放的相应的中断;若是清“0”,则禁止相应的中断。系统复位时,中断允许寄放器IE的内容为00H,若是要开放某个中
18、断源,则必需使IE中的总控位置位和对应的中断允许位置“1”。3) 优先级控制MCS-51单片机有5个中断源,为了处置方便,每一个中断源有两级控制:高优先级和低优先级。通过由内部的中断优先级寄放器IP来设置,中断优先级寄放器IP的字节地址为B8H,能够进行位寻址,列位概念如图3-7所示。IPD7D6D5D4D3D2D1D0(B8H)PT2PSPT1PX1PT0PX0图3-7 中断优先级寄放器IP各项说明具体如下。PT2:按时器/计数器T2的中断优先级控制位,只用于52子系列。PS:串行口的中断优先级控制位。PT1:按时器/计数器T1的中断优先级控制位。PX1:外部中断的中断优先级控制位。PT0:
19、按时器/计数器T0的中断优先级控制位。PX0:外部中断的中断优先级控制位。若是某位被置“1”,则对应的中断源被设为高优先级;若是某位被清零,则对应的中断源被设为低优先级。对于同级中断源,系统有默许的优先权顺序,默许的优先权顺序如表3-1所示。表3-1 同级中断源的优先级顺序中断源优先级顺序外部中断0定时/计数器T0中断外部中断1定时/计数器T1中断串行口中断定时/计数器T2中断最高最低通过中断优先级寄放器IP改变中断源的优先级顺序能够实现两个方面的功能:改变系统中断源的优先级顺序和实现二级中断嵌套。通过设置中断优先级寄放器IP能够改变系统默许的优先级顺序。例如,要把外部中断的中断优先级设为最高
20、,其他的按系统默许的顺序,则把PX1位设为1,其余位设为0,五个中断源的优先级顺序就为:T0T1ES。3.2.2钟芯片DS1302简介DS1302时钟芯片内含有一个实不时钟/日历和31个字节静态RAM,实不时钟/日历能提供2100年之前的秒、分、时、日、日期、月、年等信息,每一个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24小时或12小时格式。内部含有31个字节静态RAM,可提供用户访问。DS1302与单片机之间能简单地采用同步串行的方式进行通信,使得管脚数量最少,与单片机通信只需RES(复位线)、I/O(数据线)和SCLK(串行时钟)三根信号线;对时钟、RAM的读/
21、写,能够采用单字节方式或多达31个字节的字符组方式;工作电压范围宽:;与TTL兼容,VCC=5V;温度范围宽,可在-40 C+85 C正常工作;采用主电源和备份电源双电源供电,备份电源可由电池或大容量电容实现;DS1302工作时功耗很低,维持数据和时钟信息时功率小于1mW。DS1302可采用8脚DIP封装或SOIC封装,引脚图如图3-8所示。图3-8 DS1302的引脚图引脚功能如下。X一、X2:晶振接入引脚。GND:地。 :复位引脚,低电平有效。I/O:数据输入/输出引脚,具有三态功能。SCLK:串行时钟输入引脚。VCC1:电源1引脚。VCC2:电源2引脚。在单电源与电池供电的系统中,VCC
22、1提供低电源并提供低功率的备用电源。双电源系统中,VCC2提供主电源,VCC1提供备用电源,以便在没有主电源时能保留时刻信息和数据,DS1302由VCC1和VCC2二者中较大的供电。3.2.3键盘的介绍1. 键盘的大体原理键盘实际上是一组按键开关的集合,平时按键开关老是处于断开状态,当按下键时它才闭合,按下后可向运算机产生一脉冲波。按键开关的结构和产生的波形如图3-9示。 (a) 键盘开关的结构 (b) 键盘产生的波形 图3-9 键盘开关及波形示用意在图3-9(a)中,当按键开关未按下时,开关处于断开状态,向输入高电平;当按键开关按下时,开关处于闭合状态,向输入低电平。因此可通过读入的高低电平
23、状态来判断按键开关是不是按下。2抖动的消除在单片机应用系统中,通常按键开关为机械式开关,由于机械触点的弹性作用,一个按键开关在闭合时往往不会马上稳固地接通,断开时也不会马上断开,因此在闭合和断开的刹时都会伴随着一串的抖动,如波形如图3-10所示。按下键位时产生的抖动称为前沿抖动,松开键位时产生的抖动称为后沿抖动。若是对抖动不作处置,会出现按一次键而输入多次,为确保按一次键只确认一次,必需消除按键抖动。消除按键抖动通常有硬件消抖和软件消抖两种方式。图3-10 抖动波形示用意硬件消抖是通过在按键输出电路上添加必然的硬件线路来消除抖动,一般采用R-S触发器或单稳态电路,图3-11是由两个与非门组成的
24、R-S触发器消抖电路。平时,没有按键时,开关倒向下方,上面的与非门输入高电平,下面的与非门输入低电平,输出端输出高电平。当按下按键时,开关倒向上方,上面的与非门输入低电平,下面的与非门输入高电平,由于R-S触发器的反馈作用,使输出端迅速的变成低电平,而不会产生抖动波形,而当按键松开时,开头回到下方时也一样,输出端迅速的回到高电平而不会产生抖动波形。通过图中的R-S触发器消抖后,输出端的信号就变成标准的矩形波。图3-11 硬件消抖电路软件消抖是利用延时程序消除抖动。由于抖动时刻都比较短,因此能够如此处置:当检测到有键按下时,执行一段延时程序跳过抖动,再去检测,通过两次检测来识别一次按键,如此就可
25、以够消除前沿抖动的影响。对于后沿抖动,由于在接收一个键位后,一般都要通过一按时刻再去检测有无按键,如此就自然跳事后沿抖动时刻而消除后沿抖动了。固然在第二次检测时有可能发觉又没有键按下,这是怎么回事呢?这种情形一般是线路受到外部电路干扰使输入端产生干扰脉冲,这时就以为没有键输入。在单片机应用系统中,一般都采用软件消抖。第4章 软件系统设计 软件程序思想按照系统的功能将软件程序划分为以下几个部份:系统主程序、DS1302驱动程序、LCD驱动程序。在主程序中挪用DS1302驱动程序和LCD驱动程序,另外在主程序中还包括按键处置。 流程图主程序流程图如图4-1所示,先是将LCD初始化,第二在LCD显示
26、日期和时刻的提示信息,然后进入死循环,在循环中先判断是不是有键按下,如按下K0键,则功能单元加1;如按下K1键,则按照功能单元的内容把日期时刻相应位加1;如按下K2键,则按照功能单元的内容把日期时刻相应位减1;并把修改后的日期时刻写入1302(在那个进程中注意日期时刻的数据格式的转换)。第二读DS1302日历时钟寄放器,读出的内容存入日期、时刻缓冲区;最后把日期、时刻缓冲区数转化为ASCII码放入LCD显示缓冲区并挪用LCD显示程序显示。图4-1主程序流程图汇编语言源程序清单 汇编语言程序:T_RST Bit ;DS1302复位线引脚T_CLK Bit ;DS1302时钟线引脚 T_IO Bi
27、t ;DS1302数据线引脚RS BIT ;LCD1602控制线概念RW BIT E BIT K0 BIT ;概念按键 K1 BIT K2 BIT ;40h46h寄存秒、分、时、日、月、礼拜、年的初值;格式按寄放器中的格式;30h36h寄存1302读出的秒、分、时、日、月、礼拜、年的大小。;37H单元为功能计数器。;* ORG 0000H AJMP MAIN ORG 0030HMAIN: MOV SP,#50H ACALL INIT MOV A,#80H ;写入显示缓冲区起始地址为第1行第1列开始显示DATE: ACALL WC51R MOV A,#D ACALL WC51DDR MOV A,
28、#A ACALL WC51DDR MOV A,#T ACALL WC51DDR MOV A,#E ACALL WC51DDR MOV A,#: ACALL WC51DDR MOV A,#0C0H ;写入显示缓冲区起始地址为第2行第1列开始显示TIME: ACALL WC51R MOV A,#T ACALL WC51DDR MOV A,#I ACALL WC51DDR MOV A,#M ACALL WC51DDR MOV A,#E ACALL WC51DDR MOV A,#: ACALL WC51DDRREP: LCALL KEYSCAN ;调键盘程序修改日期时刻 LCALL GET1302 ;读取当前日期时刻到40H46HMOV R0,#40H ;40H46H日期时刻格式转换成日期时刻数据放
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1