基于单片机的电子万历设计1.doc
《基于单片机的电子万历设计1.doc》由会员分享,可在线阅读,更多相关《基于单片机的电子万历设计1.doc(34页珍藏版)》请在三一办公上搜索。
1、基于单片机的电子万年历设计 唐 山 学 院 单片机原理及应用 课 程 设 计 题 目 基于单片机的电子万年历设计系 (部) 信息工程系班 级姓 名学 号指导教师 2013 年 12 月 30 日至 2014 年 1 月 3 日共 1 周2014年 1 月 3 日 课程设计说明书目录1 引言. 12 设计要求与方案论证. 22.1 设计要求 . 22.2 系统基本方案选择和论证 . 22.2.1单片机芯片的选择方案和论证. 22.2.2 显示模块选择方案和论证 . 22.2.3时钟芯片的选择方案和论证. 32.3 电路设计最终方案决定 . 33 系统的硬件设计与实现. 43.1 电路设计框图 .
2、 43.2 系统硬件概述 . 43.3 主要单元电路的设计 . 43.3.1单片机主控制模块的设计. 43.3.2时钟电路模块的设计. 53.3.3 电路原理及说明 . 63.3.4 显示模块的设计 . 84 系统的软件设计. 94.1程序流程框图 . 94.2 子程序的设计 . 125 实验测试部分. 135.1硬件测试 . 135.2软件测试 . 135.3 测试结果分析与结论 . 145.3.1 测试结果分析 . 145.3.2 测试结论 . 15参考文献. 16程序清单. 17 课程设计说明书1 引言单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表
3、的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。单片机是集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、星期、时、分、秒等信息,还具有时间校准等功能。该电路采用AT89C52单片机作为核
4、心,功耗小,能在3V的低压工作,电压可选用3-5V电压供电。电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。数字显示的日历钟已经越来越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和广场等使用,壁挂式LED数码管显示的日历钟逐渐受到人们的欢迎。LED数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。 所以,电子万年历无论作为比赛题目还是练习题目都
5、是很有价值。本次万年历的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C52单片机,LED显示电路,以及调时按键电路等组成。在单片机的选择上本人使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。显示器使用1片7SEG-MPX4-CA、7片7SEG-MPX2-CA和1片7SEG-MPX1-CA。7SEG-MPX4-CA是一种四个共阳二极管显示器,7SEG-MPX2-CA是一种两个共阳二极管显示器,7SEG-MPX1-CA是一种一个共阳二极管显示器。为了能更轻松的控制这些显示器,本人使用了3片74LS47移位寄存器,串行输入数据,然后并行输出。74LS138 是3-
6、8线译码器,用来控制要显示的数字。软件方面主要包括日历程序、时间调整程序,公历转阴历程序,显示程序等。程序采用汇编语言编写,以便更简单地实现调整时间及阴历显示功能。所有程序编写完成后,在看Keil软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。最后,在老师同学的帮助以及自己的努力下完成了此次电子万年历的设计。 1课程设计说明书2 设计要求与方案论证2.1 设计要求(1)具有年、月、日、星期、时、分、秒等功能;(2)时间与阴、阳历能够自动关联;(3)具备年、月、日、星期、时、分、秒校准功能;2.2 系统基本方案选择和论证2.2.1单片机芯片的选择方案和论证方案一:采用
7、89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用AT89C52,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS-51系列单片机相同,该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入
8、程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。所以选择采用AT89C52作为主控制系统.2.2.2 显示模块选择方案和论证方案一:采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED液晶显示屏.方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示.方案三:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。2课程设计
9、说明书所以采用了LED数码管作为数据的显示。2.2.3时钟芯片的选择方案和论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA.2.3 电路设计最终方案决定综上各方案所述,对此次作品的方案选定: 采用AT89C52作为主控制系统;
10、DS1302提供时钟;LED数码管动态扫描作为显示。 3课程设计说明书3 系统的硬件设计与实现3.1 电路设计框图图 3-1 电路设计框图3.2 系统硬件概述本电路是由AT89C52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302如图3-2 所示: 4课程设计说明书 图3-2 主控制系统3.3.2时钟电路模块的设
11、计图3-3示出DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768KHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对D
12、S1302进行操作。如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电动行时,在Vcc大于等于2.5V之前,RST必须保持低电平。中有在SCLK 为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。SCLK始终是输入端。如图3-3所示: 5课程设计说明书 图3-3 DS1302的引脚图3.3.3 电路原理及说明(1) 时钟芯片DS1302的工作原理:DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置 “0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如下图3-4所示。图3-5为DS1302的控制字,此控制字的位7必
13、须置1,若为0则不能把对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。位1至位5指操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。表6为DS1302的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP”是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。(2) DS1302的控制字节DS1302的控制字如表3-1所
14、示。控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出 6课程设计说明书 表3-1 DS1302的控制字格式RAM RD 1 A4 A3 A2 A1 A0/WR(3) 数据输入输出(I/O)在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低
15、位0位到高位7。如下图3-4所示 图3-4 DS1302读/写时序图(4) DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表3-2。表3-2 DS1302的日历、时间寄存器 此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH, 7课程设计说明书其中奇数为读操作,
16、偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。3.3.4 显示模块的设计如图35所示,采用动态扫描显示,由19个数码管,3-8译码器74LS138接1K限流电阻,再接8050三极管接到共阳数码管的CoM端作为选通位码,每位选择相应的列。74LS47接240限流电阻,再接共行的LED数码管的断码。 图3-5 LED动态扫描显示 8课程设计说明书4 系统的软件设计4.1程序流程框图主流程序图如图4-1所示: 图4-1 主程序流程图 9课程设计说明书 图4-2 计算阳历程序流程图 图4-3 阴历程序流程图 10课
17、程设计说明书 图4-4 时间调整程序流程图 11课程设计说明书4.2 子程序的设计 ;写1302程序WRITE: CLR SCLK NOPSETB RST NOPMOV A,32H MOV R4,#8 WRITE1:RRC A ;送地址给1302NOPNOPCLR SCLK NOPNOPNOPMOV IO,C NOPNOPNOPSETB SCLK NOPNOPDJNZ R4,WRITE1 CLR SCLK NOPMOV A,31H MOV R4,#8 WRITE2:RRC ANOP ;送数据给1302CLR SCLK NOPNOPMOV IO,C NOPNOPNOPSETB SCLK NOPN
18、OPDJNZ R4,WRITE2 CLR RST RET ;读1302程序 READ: CLR SCLK NOP NOP SETB RST NOP MOV A,32H MOV R4,#8 READ1: RRC A ;送地址给1302 NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP NOP CLR SCLK NOP NOP DJNZ R4,READ1 MOV R4,#8 READ2: CLR SCLK NOP ;从1302中读出数据 NOP NOP MOV C,IO NOP NOP NOP NOP NOP 12 RRC A NOP NOP NOP NOP S
19、ETB SCLK NOP DJNZ R4,READ2 MOV 31H,A CLR RST RET5 实验测试部分5.1硬件测试电子万年历的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺被带有包皮的导线,则会对电路造成短路现象。在本成电子万年历的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:(1)LED数码管的断码错乱,原因出于没有认真看清 a、b 、c等引脚信息。解决:重新排列74LS47的输出端,相应接入LED数码管,即可解决出现在的断码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 电子 万历 设计

链接地址:https://www.31ppt.com/p-4148672.html