《基于电子闹时钟的单片机课程设计论文.doc》由会员分享,可在线阅读,更多相关《基于电子闹时钟的单片机课程设计论文.doc(14页珍藏版)》请在三一文库上搜索。
1、目 录1 选题背景11.1 设计背景11.2 设计要求11.3 指导思想12 基本方案选择与论证12.1 单片机芯片的选择方案及论证12.2 显示模块选择方案及论证22.3 时钟芯片选择方案及论证23 系统硬件设计与实现23.1 电路设计框图23.2 系统硬件概述33.3 单元电路分析及设计33.3.1 主控制模块的设计33.3.2 时钟电路模块的设计43.3.3 键盘模块的设计53.3.4 显示模块的设计53.3.5 蜂鸣器模块的设计73.3.6 时钟仿真图73.4 晶振电路和复位电路设计73.4.1 晶振电路73.4.2 复位电路73.5 电源电路83.6 时钟仿真图84 系统的软件设计8
2、4.1 程序流程框图84.2 程序的设计105 总结及心得体会10附录:源程序11参考文献资料1 选题背景1.1 设计背景 现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人们忘记时间,甚至错过一些重要的时刻。所以电子闹钟的出现,显得十分必要,在重要的时间进行必要的提醒,给人们的生活带来了极大的方便。通过课程设计的设计与制作,更加熟练地掌握DS1302的读写操作以及LCD1602的写操作,为以后运用这类芯片打下基础,增加了对SPI的总线的认
3、识。1.2 设计要求(1)用单片机设计基于AT89C51,DS1302,LCD1602的电子钟,显示时间和日期。(2)具有时间和日期的校准。(3)熟练掌握相关软件的使用方法,以及各个器件的基本工作原理。(4)编写程序,实现要求的功能。1.3 指导思想单片机在电子产品中的应用越来越广泛,特别是51系列的单片机,由于其使用方便、价格低廉等优势,在市场上占有很大的份额。AT89C52就是51系列中的一个比较成熟的型号。本设计是一个多功能的实时时钟,带秒表、整点报时、闹铃、调整时间等功能。可按键直接设置闹铃时间。由AT89C51单片机、DS1302、LCD1602等模块组成。现代社会,时间就是金钱,时
4、钟是每个人的必备品。本设计实现了所需功能,给大家带来方便,整体性好、人性化强、可靠性高,实现了时钟的多功能应用。2 基本方案选择与论证2.1 单片机芯片的选择方案和论证方案一: 采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二: 采用AT89S52,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS
5、-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。 相比之下,我们在实验箱实际仿真时选择采用AT89S52作为主控制系统,由于proteus库中没有AT89S52,在原理图仿真时采用了AT89C51.2.2 显示模块选择方案和论证方案一:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示.方案二:采用LCD液
6、晶显示屏,液晶显示屏的显示功能强大,显示多样,清晰可见.所以本设计采用LCD1602.2.3 时钟芯片的选择方案和论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。方案二: 采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA.综上各方案所述,对此次作品的方案选定: 采用AT89C52作为主控制
7、系统, DS1302提供时钟计时,LCD1602屏幕显示.3 系统硬件设计与实现3.1 电路设计框图图3-1 电路设计框图3.2 系统硬件概述本电路是由AT89C51单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作,时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、时、分、秒进行计时,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特
8、点,同时具有掉电自动保存功能;显示部份由LCD1602构成.3.3 单元电路分析及设计3.3.1 主控制模块的设计 采用AT89C51作为主控制器。AT89C51单片机是一款低功耗,高性能的单片机,片内含4KB在线可编程(ISP)的可反复擦写只读存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功能。主要引脚功能介绍如下:(1)I/O接口:P0.0P0.7,P0口是8位准双向I/O口;P1.0P1.7,P1口是8位准双向I/O口;P2.0P2.7,P2口是8位准双向I/O口;P3.0P3.7,P3口是8位准双向I
9、/O口;其中,P0口有两种工作方式:一是作为普通I/O端口使用,需要输出高电平时要接上拉电阻;二是在访问片外存储器时,它是标准的双向I/O接口。分时复用作为低8位地址线和8位双向数据总线使用。P1口只做I/O口使用,内部有上拉电阻。P2口有两个功能:扩展外部存储器时,当地址总线使用;做一般I/O口使用时,内部有上拉电阻。P3口除了作为I/O使用外,还有一些特殊功能,由特殊寄存器来设置。(2)ALE/PROG 地址锁存控制信号:在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器存起来,以实现地位地址和数据的隔离。当ALE是高电平时,允许地址锁存信号,当访问外部存储器时,ALE信号负跳变
10、将P0口上低8位地址信号送入锁存器。当ALE为低电平时,P0口上的内容和锁存器输出一致。(3)PROG为编程脉冲的输入端。(4)PESN为外部程序存储器读选通信号:在读外部ROM时PSEN低电平有效,以实现外部ROM单元的操作。(5)RST复位信号:当输入的信号连续2个机器周期以上高电平时即有效,用以完成单片机复位初始化操作,当复位后程序计数器PC=0000H。(6)XTAL1和XTAL2:外接晶振引脚,当使用芯片内部时钟时,此引脚用于接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。(7)VCC: 电源+5V输入。(8)VSS: GND接地。MCS-51是标准的40引脚双列直插
11、式电路芯片,引脚见图3-2。图3-2 AT89C51引脚图时钟电路: 8051单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。 在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。电容器Col,Co2起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。晶振频率的典型值为12MH2,采用6MHz的情况也比较多。内部振荡方式所得的时钟情号比较稳定,实用电路中使用较多。本设计采用内部震荡方式。3.3.2 时钟电路模块的设计DS1302是美国DAL
12、LAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟提供秒、分、时、日、周、月、年以及闰年补偿功能,工作电压在2.5V5.5V范围内,2.5V时耗电小于300nA。采用双电源供电,可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。有主电源和备份电源双引脚,而且备份电源可由大容量电容来代替,DS1302需要使用32.768KHZ晶振,并在任何数据传送时必须先初始化,把RST脚置为高电平。DS1302包含以下一些功能部件:(1)实时时钟,可对秒、分、时、日
13、、周、月以及带闰年补偿的年进行计数。 (2)用于高速数据暂存的318位RAM。(3)SLK:串行时钟,输入,控制数据的输入与输出。(4)I/O:三线接口时的双向数据线。(5)用于时钟或RAM数据读/写的单子节数据传送方式。DS1302的引脚图,如图3-3:图3-3 DS1302的引脚图图3-4 DS1302的模块设计其引脚功能如下表:引脚号名称功能1Vcc1备份电源输入2X132.768KHZ晶振输入3X232.768KHZ晶振输出4GND接地5RST控制移位寄存器/复位6I/O数据输入/输出7SCLK串行时钟8Vcc2主电源输入表3-13.3.3 键盘模块的设计本部分采用独立式键盘通过键盘对
14、时钟预置时间、星期,如图3-5所示。独立式键盘是一键一线,各键相互独立,每个按键各接一条I/O口线,通过检测线独立,识别按下的按键。它适用于键盘按键数目较少的场合,故此处选用独立式键盘。 图3-5 AT89C513.3.4 显示模块的设计LCD1602是一种用57点阵图形来显示字符的液晶显示器模块,它显示的容量为2行16个字共32个字符。它由若干个57或者511点阵字符组成,每个点阵字符位都可以显示一个字符。模块采用数字式接口,能够方便地与单片机等控制类芯片进行通信。由于体积小、重量轻、显示质量高、功耗低等诸多优点而被广泛使用。LCD1602引脚及功能:(1)GND:接地。 (2)VCC:接+
15、5v电源。 (3)VL:液晶显示器对比度调整端。接+5V电源时对比度最弱,接地电源时对比度最高,使用时可以通过一个10K的精密电位器调整对比度。(4)RS:寄存器选择。 高电平时选择数据寄存器,否则选择指令寄存器。(5)RW:读写信号。(6)E:使能端。当E端由高电平跳变成低电平时,液晶模块执行命令。(7)D1-D8:8位双向数据线。(8)BLK:背光源正极。(9)BLK:背光源负极。LCD1602采用标准的14或16脚接口,各个引脚如图3-6所示。图3-6 LCD16023.3.5 蜂鸣器的设计蜂鸣器使得时钟具有整点报时功能,如下图:图 3-7 时钟整点报时3.4 晶振电路和复位电路设计单片
16、机的时钟信号用来提供单片机片内各种微操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。3.4.1 晶振电路晶振电路两端分别接单片机的XTAL1和XTAL2两端口。 图 3-8 晶振电路3.4.2 复位电路当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。 根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。图 3-9 复位电路上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。常用开关复
17、位电路如图3-9所示。上电后,由于电容C2的充电作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。3.5 电源电路电源电路设计如图:图 3-10 电源电路3.6 时钟仿真图图3-11 时钟仿真图4 系统的软件设计4.1 程序流程框图蜂鸣器发出声音闹钟时间?用LCD1602显示时间读DS1302的时间等于40ms ?初始化DS1302初始化LCD1602开始开始初始化LCD1602初始化DS1302等于40ms ?读DS1302的时间用LCD1602显示时间开始蜂鸣器发出声音初始化DS1302闹钟时间?初
18、始化LCD1602Y等于40ms ?NN用LCD1602显示时间Y读DS1302的时间图4-1 主流程图4.3 程序的设计:见附录。5 体会及改进意见这次课程设计我们选择的是电子定闹时钟设计。实习任务包括理论设计、时钟的仿真、写设计报告等。其中理论设计又包括选择总体方案,硬件系统设计、软件系统设计;硬件设计包括单元电路,选择元器件等;软件设计包括模块化层次结构图,程序流程图。程序设计是课程设计的关键环节,开始以为时钟会很简单,就算遇到问题应该也很好解决,但当自己真正去做的时候,发现了好多困难,于是查资料,问同学,经过和同学的探讨,通过进一步完善程序设计,基本达到课题所要求的指标。完成了实习任务
19、。这次实习我更加了解了单片机的应用,更加牢牢的掌握了书本知识与现实应用的结合,总之这次课程设计试一次很好的锻炼,让我有了全方位的提高,受益匪浅,基本掌握了单片机,为我以后的工作学习打下了很好的基础,而且积累了丰富的经验。课程设计结束了,但从中学到的知识会让我受益终身。发现问题、提出问题、分析问题、解决问题和实践能力的提高都会使我在以后的学习、工作和生活中受益。设计过程中,常有一些顽固的问题不好解决,但毕竟这是第一次做,难免会遇到各种各样的问题。我在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,不能灵活运用。在今后的课程学习与实践中,要不断的学习,尤其是对于
20、掌握不够的知识,同时要养成自我学习的习惯,与别人合作汲取知识,虚心向别人请教,做到互帮互助,共同进步。10附录:源程序DS1302_WRB:MOV 40H,#8MOV A,BRRC AMOV B,AMOV DS1302_IO,CSETB DS1302_CLKCLR DS1302_CLKDJNZ 40H,LPWRETDS1302_RDB:MOV 40H,#8LPR:MOV C,DS1302_IORRC ASETB DS1302_CLKCLR DS1302_CLKDJNZ 40H,LPRRET DS1302_READSEC:CLR DS1302_RSTCLR DS1302_CLKSETB DS13
21、02_RSTMOV B,#81HCALL DS1302_WRBCALL DS1302_RDBMOV 30H,ASETB DS1302_CLKCLR DS1302_RSTRETLCD1602_WRC:CLR LCD1602_RWCLR LCD1602_RSCLR LCD1602_RWMOV P0,ACALL DELAYSETB LCD1602_ECALL DELAYCLR LCD1602_ECALL DELAYCLR LCD1602_ECALL DELAYRETLCD1602_INIT:MOV A,#01HCALL LCD1602_WRCMOV A,#38HCALL LCD1602_WRCMOV
22、 A,#08HCALL LCD1602_WRCMOV A,#06HCALL LCD1602_WRCMOV A,#0cHCALL LCD1602_WRCRETLCD1602_WRD:SETB LCD1602_RSCLR LCD1602_RWCLR LCD1602_EMOV P0,ACALL DELAYSETB LCD1602_ECALL DELAYCLR LCD1602_ERET参 考 文 献1陈华兵.基于单片机的高精度时钟设计J.中国西部科技.2009.20:16-17+8.2冯乔.基于单片机的时钟设计J.机械制造与自动化.2009.06:41-42.3滕凯凯.基于单片机的实时时钟设计J.电子技术与软件工程.2014.23:58.4刘建英.基于单片机的时钟设计J.内蒙古石油化工.2010.01:12-13.5程一风.基于单片机的电子时钟的设计J.无线互联科技.2013.08:88.6胥开芳.基于单片机的时钟设计J.常州信息职业技术学院学报.2012.05:31-32+45.13