硬件课程设计基于DS1302数字万历的设计.doc
-
资源ID:4150353
资源大小:266KB
全文页数:19页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
硬件课程设计基于DS1302数字万历的设计.doc
数字万年历学生学号: 05520133 学生姓名: 专业班级: 计算0501 指导教师: 职 称: 起止日期: 2008.3.242008.4.11 吉林化工学院Jilin Institute of Chemical Technology课程设计任务书一、设计题目:基于DS1302数字万年历的设计二、设计目的1、掌握DS1302时钟芯片的硬件电路构成原理及软件编程方法,熟悉DS1302时钟芯片的性能指标及特点;2、熟悉AT89C51单片机的性能特点,并掌握使用AT89C51单片机控制DS1302读写时间、日期的硬件电路组成及软件编程方法;3、了解LED显示及按键电路的组成原理,熟悉LED动态显示原理及实现方法;4、了解7805构成直流稳压电源的电路组成及工作原理。5、了解MAX232接口芯片构成的串行通信。三、设计任务及要求 设计并实现具有显示日期和时间的数字万年历,数字万年历具有以下基本功能:1、使用6位LED显示时间和日期,正常显示时、分、秒,使用按键可切换显示年、月、日;2、具有时间校准(调时或对时)功能,通过键盘可进行时间、日期的校准;四、设计时间及进度安排设计时间共两周(2008.03.242008.04.11),具体安排如下表:周安排设 计 内 容设计时间第一周硬件电路设计2008.03.242008.03.28第二周硬件电路焊接与调试2008.03.312008.04.042006.10.27第三周编写课程设计说明书,课程设计答辩。2008.04.072008.04.11五、指导教师评语及学生成绩指导教师评语:年 月 日成绩指导教师(签字):目 录课程设计任务书I第1章 数字万年历摘要3第2章 数字万年历硬件设计说明书221 单片机单元222 电源电路部分323 显示部分(共阴极7段数码管)324 数码管驱动部分(CD4511)425 时钟芯片(DS1302)部分626 键盘输入部分727 串行通信(MAX232)8第3章 数字万年历软件设计说明书1031 数字万年历软件程序设计思想10311 数据与代码转换10312 定时功能的实现与中断服务程序10第4章 数字万年历附录1141 主程序的流程图115.1 纸型125.2 版心设置125.3 装订12第6章 题目(黑体,小二,1.5倍行距,段后11磅)136.1 第6章第一节题目(黑体,小三,1.5倍行距,段前1行)136.1.1第6章第一节一级题目(黑体,四号,1.5倍行距,段前0.5行)13结 论14参考文献15第1章 数字万年历摘要单片计算机即单片微型计算机。(Single-Chip Microcomputer ),是 集CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。而51 单片机是各单片机中最为典型和最有代表性的一种。这次数字万年历硬件设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。系统由AT89C51、七段LED 数码管、按键、DS1302、MAX232等部分构成,能实现时间和日期的调整、输出等功能。系统的功能选择由K1、K2、K3、K4 完成。其中K1是功能切换键,第一轮按动K1 依次进入分、秒、时、日、月、年设置程序。不管是进入时钟状态还是日期状态,按动K2皆可以使被调整位进行不进位增量加1 变化。按动K3皆可以使被调整位进行不借位减1变化。各预置量设置完成后,系统将所有的设置写入DS1302的RAM 中,按K4 退出调整状态。上电后,系统自动进入计时状态,起始于08年02月29日23时59分33秒。若是在时钟状态,则K4为年月日显示转换键,可使原来显示时分秒转换显示年月日。第2章 数字万年历硬件设计说明书该数字万年历具有定时作用。可以显示时、分、秒,而且用按键还可以实现时间和日期的调整及显示。整个电子时钟系统电路可分为五大部分:单片机单元、电源电路部分、显示部分、数码管驱动部分(CD4511)、时钟芯片(DS1302)部分、键盘输入部分、串行通信部分。21 单片机单元CPU选用AT89C51(如图2-1所示)对整个系统进行控制:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。1)它将定时数据输出到LED,实现时间的显示;2)根据键盘输入调用相应键处理子程序,实现时间的调整和日期和星期的显示;3) XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度89C51的最小系统即是芯片构成最小系统简单、可靠系统,只要将单片机接上时钟电路和复位电路即可。图2-1 AT89C51引脚图22 电源电路部分在各种电子设备中,直流稳压电源是必不可少的组成部分,它是电子设备唯一能量来源,它的设计思路是根据我们以前学过的模电电子技术,要想得到我们所要的+5V输出电压,就需将交流220V的电压经过变压器、整流电路、滤波电路和稳压电路四个部分。这称为线性稳压电源,电路图如图2-2:图2-2 5V稳压电源电路图23 显示部分(共阴极7段数码管)单片机应用系统中使用的显示器件主要有发光二极管数码显示器(LED)和液晶显示器(LCD)。LED具有价格低廉,亮度高、配置灵活,与单片机接口简单但功耗大;LCD可进行字符或图形显示,但成本高,与单片机接口也复杂,并且亮度低但功耗低。在用作数字万年历时应该使它的亮度高,易于观看。显示部分是这个数字万年历中重要的组成部分,它分为时间的显示和日期显示两部分,共需要6位LED显示器。采用动态扫描显示方式(如图2-3),图2-3 数码管的动态显示所谓动态显示方式即在某一时刻,只让某一位的为选线处于选通状态,而其他各位的位选线处于关闭状态,同时,段码线上输出相应位要显示的字符的段码。这样,在同一时刻,6位LED中只有选通的那1位显示出字符,而其他5位则是熄灭的。同样,在下一时刻,只让下一位的位选线处于选通状态,而其他各位的位选线处于关闭状态,在段码线上输出将要显示字符的段码,则同一时刻,只有选通位显示出相应的字符,而其他各位则是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的。而在同一时刻,只有一位显示,其他各位是熄灭,但由于LED数码管的余晖和人眼的视觉暂留作用,只要每位显示间隔足够短,则可以造成多为同时亮的假象,达到同时显示的效果。由于端口的问题以及动态扫描显示方式的优越性,在此设计的连接方式上采用共阴级接法。显示器LED有段选和位选两个端口,首先说段选端,它由LED六个端口构成,通过对这六个端口输入的不同的二进制数据使得它的时间(或日期)显示也不同,从而可以得到我们所要的时间显示和日期。而为了避免LED的电流灌入AT89C51,因而在6个LED的COM端都接了电子开关(三极管)。24 数码管驱动部分(CD4511)为了驱动6个LED数码管,于是我选用CD4511(如图2-4)芯片,因为CD4511具有锁存、译码、消隐功能,通常以反相器作输出级,通常用以驱动LED。CD4511的内部有上拉电阻,在输入端与数码管笔段端接上限流电阻就可工作。 图2-4 CD4511的引脚图其功能介绍如下:BI:4脚是消隐输入控制端,当BI=0 时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。LT:3脚是测试输入端,当BI=1,LT=0 时,译码输出全为1,不管输入 DCBA 状态如何,七段均发亮,显示“8”。它主要用来检测数码管是否损坏。LE:锁定控制端,当LE=0时,允许译码输出。 LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。CD4511的真值表如下: 输入输出LEBILIDCBAabcdefg显示 XX0XXXX11111118X01XXXX0000000消隐 01100001111110001100010110000101100101101101201100111111001301101000110011401101011011011501101100011111601101111110000701110001111111801110011110011901110100000000消隐 01110110000000消隐 01111000000000消隐 01111010000000消隐 01111100000000消隐 0111111000000消隐 111XXXX锁 存 锁存 CD4511与数码管的连接如图2-5:图2-5 CD4511与六个数码管的连接25 时钟芯片(DS1302)部分DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32.768kHz晶振。DS1302 有12 个寄存器,其中有7 个寄存器与日历、时钟相关,存放的数据位为BCD 码形式,其日历、时间寄存器及其控制字见表1:此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302 与RAM 相关的寄存器分为两类:一类是单个RAM 单元,共31 个,每个单元组态为一个8 位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM 寄存器,此方式下可一次性读写所有的RAM 的31 个字节,命令控制字为FEH(写)、FFH(读)。DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。图2-6示出DS1302与89C2051的连接图,图2-6 DS1302与89C51的连接图其中,时钟的显示用LED。实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。 DS1302 存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是,如果在系统中采用时钟芯片DS1302,则能很好地解决这个问题。26 键盘输入部分它是整个系统中最简单的部分,根据功能要求,本系统共需四个按键:功能键(S1)、加一键(S2)、减一键(S3)、确定键(在正常显示时钟时通过该键可以查看日期)(S4)。键盘的方式有两种:独立式和矩阵式。独立式键盘就是各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可以很容易的判断哪个按键被按下。而矩阵式键盘用于按键数目较多的场合,它由行线和列线组成,按键位于行列的交叉点上。由于该系统的输入功能简单,只需四个按键,因此采用独立查询式按键。在处理按键的抖动时采用软件消抖,具体实现见第三章软件部分。按下某键时,对应的功能键解释程序得到执行,如操作者没有释放按键,则对应的功能会反复执行,好象连续执行,在这里我们采用软件延时250ms,当按键没释放则执行下一条对应程序。利用连击功能,能实现快速调时操作。该系统的四个按键与单片机的连接如图2-7:图2-7 按键与单片机的连接图27 串行通信(MAX232)MAX232,MAX232i产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。 该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。满足或超过TIA/EIA-232-F 规范要求,符合ITU v.28标准 电池供电系统 单5-V电源供电和4个1.0uF充电泵电容 计算机外设 包含2个驱动器和2个接收器 Modems 低工作电流典型值为8mA 手持设备 2000-V ESD保护 计算机 有工业级和商业级的型号选择 。MAX232引脚图如图2-8所示:图2-8 MAX232的引脚图引脚功能如下表:引脚符号功能引脚符号功能1,3C1+,C1-正电荷泵电容端8,13RinRS-232接受器输入端2U+有电荷泵产生的+2VCC电压9,12RoutRS-232接受器输出端4,5C2+,C2-负电荷泵电容端10,11TinRS-232驱动器输入端6U-有电荷泵产生的-2VCC电压15GND电源地7,14ToutRS-232驱动器输出端16VCC电源正RS232传输协议标准的电平是:正逻辑是+7v+15v,负逻辑是-7v-15v。 通过MAX232芯片外接的四个电容,把输入的05V信号改变到-15V+15V,通过串口线发送出去。单片机通过MAX232与PC机的连接图如图2-9:图2-9 单片机通过MAX232与PC机的连接图第3章 数字万年历软件设计说明书31 数字万年历软件程序设计思想本系统的主程序主要完成键盘扫描和四个按键的处理程序以及设定模式下的闪烁功能。而日期和时间显示在中断服务程序中完成。311 数据与代码转换由前述可知,从P2 口输出位选码,从P0 口输出段选码,LED 就会显示出数字来。但P0口的输出的数据是要BCD 码,各存储单元存储的是二进制数,也就是和要显示出的字符表达的含义是不一致的。可见,将要显示的存储单元的数据直接送到P0 口去驱动LED 数码管显示是不能正确表达的,必须在系统内部将要显示的数据经过BCD 码行转换后,将各个单元数据的段选代码送入P0 口,给CD4511 译码后去驱动数码管显示。具体转换过程如下:我们先将要显示的数据装入累加器A 中,再将A 中的数据转换成高低两位的BCD 码,再放回A 中,然后将A 中的值输出。如:有一个单元存储了45 这样一位数,则需转换成四位的BCD 码:(0100)(0101)然后放入A 中。 A 中BCD 码,高位四位代表¡4¡低四位代表¡5¡同时送给两个译码器中,译码后¡ 45¡ 字就在两个LED 中显示出来。312 定时功能的实现与中断服务程序动态刷新六个LED数码管依靠定时中断子程序来实现的,每隔10MS(或50MS刷新一次)。计数器T0 打开后,进入计时,满10 毫秒后,重装定时。中断一次,就刷新一次数码管,此时有一个数码管被选通,但由于LED的余晖及人眼的视觉暂留效应就会感觉六个数码管同时显示,这就达到了显示时、分、秒(或年、月、日)的目的了。这样得到年、月、日、时、分、秒存储单元的值,并经译码后,通过扫描程序送LED 中显示出来,实现时钟计时功能。第4章 数字万年历附录41 主程序的流程图主程序开始系统初始化及设置定时常数并开中断扫描键盘是否有按键处理按键IsSet=1?进入调时间和日期程序日期显示或进行下一位的设置是是显示时间第5章 打印说明5.1 纸型纸型:A4。文稿采用激光打印机输出。5.2 版心设置正文版心设置为:上边距2.54cm,下边距2.54cm,左边距2.09cm,右边距1.59cm,页眉1.5cm,页脚1.75cm。这部分工作模板中已经自动设置为缺省值。5.3 装订单面打印,左侧装订。第6章 题目(黑体,小二,1.5倍行距,段后11磅)6.1 第6章第一节题目(黑体,小三,1.5倍行距,段前1行)6.1.1第6章第一节一级题目(黑体,四号,1.5倍行距,段前0.5行)正文内容(宋体,小四,行距为固定值18,段前、段后均为0行)结 论学了两周的课程设计,有很多的心得体会,有关于单片机方面的,更多的是关于人与人之间关系方面的。在这期间,我得到了很多同学的帮助。我本人对单片机也并不是很熟悉,学的东西好像它是它,我是我似的,理论联系不了实际。以前的汇编语言没学好,一开始的程序这块儿就要令我束手无策了。后来请教我们班的一个男生,每次跟他一起到试验室调试程序,看他边做边给我讲解。最后在计算机上调试成功,后来自己又抽空做了些拓展,完成了本程序。后来,我发现自己对单片机也有了很大兴趣,想暑假回家以后自己去买一些东西来做,再补一补汇编语言。最后说明自己对这门课程的感受,课堂教学考虑到大多数同学的需求,主要强调“基本”基本知识、基本理论、基本方法、基本技能。而这次设计正是为我们提供了一个深入学习、探索的机会,成为课堂教学的有益补充。参考文献1 翟玉文,梁伟,艾学忠,施云贵电子设计与实践北京:中国电力出版社,20052 张毅刚,彭喜元,董继成单片计算机及应用北京:高等教育出版社, 2006.113 翟玉文.Altera可编程逻辑器件设计与实验. 吉林化工学院校内讲义. 2001.12