基于89C51单片机的万历设计.doc
《基于89C51单片机的万历设计.doc》由会员分享,可在线阅读,更多相关《基于89C51单片机的万历设计.doc(20页珍藏版)》请在三一办公上搜索。
1、目 录一、 设计目的二、任务要求三、功能说明四、实时时钟芯片DS13024.1 DS1302主要的性能指标:4.2 DS1302 的基本组成和工作原理4.3 DS1302的寄存器4.4 DS1302的复位五、硬件电路设计模块5.1电源电路5.2控制电路5.3 LED显示电路5.4 DS1302在系统中的硬件电路六、硬件安装及调试6.1安装中注意的问题6.2 布线布局说明6.2安装调试中出现的问题:七、软件调试及设计1.软件设计思想:2.程序流程图:(见下页)八、设计中存在的问题1.DS1302工作的稳定性加入辅助电容实现负载匹配2.乱码显示九、设计总结十、附录附录一:元器件清单附录二:系统电路
2、图附录三:设计PCB板图附录四:万年历实物图附录五:程序清单一、 设计目的通过一个复杂的产品的设计、组装、调试及软件实现,从而将所学的理论知识与实践相结合,进一步巩固专业知识,掌握基本专业技能,切实加强动手能力,通过对实际产品各功能系统的研究,提升对理论知识的认识,两者结合,提高理论指导,解决实际问题的能力 为就业打下坚实的基础。二、 任务要求l 显示准确的北京时间(年、月、日、时、分、秒,年号只显示最后两位),12/24小时显示切换。l 随时可以调校时间。l 可整点报时。l 可掉电储存并记时。l 允许通过转换功能键转换显示时间或日期。三、 功能说明本设计是基于89C51单片机的万年历,特点在
3、于利用DS1302计时。采用两个三位共阴数码管,及7个功能键。主要能实现时、分、秒显示,年、月、日显示,时、分、月、日调整,闹铃设置。可内置时间初值,也可利用按键调整时间初值。系统默认时间为2006年10月21日11时59分50秒。按键P1.3、P1.4、 P1.5、P1.6分别调整时加、时减、分加、分减。按下P1.1键,显示切换到日历显示,LED显示年、月、日,初始值为06年10月21日。按键P1.3、P1.4、 P1.5、P1.6分别调整月加、月减、日加、日减。P1.7为设置键,对应一个红色发光二极管,按下P1.7,设置键启动,红色二极管亮,此时可调整时间日期;再按下P1.7键,设置功能关
4、闭,同时红色发光二极管灭,此时P1.3、P1.4、P1.5、P1.6等调整键失效。P1.0键为闹铃控制键,默认情况下闹铃关,对应的绿色发光二极管灭,按下P1.0,闹铃开,同时绿色发光二极管亮,再按一下,闹铃关。闹铃开时,时间跳到设置的闹铃时间时,蜂鸣器响时1分钟。四、 实时时钟芯片DS1302DS1302是DALLAS公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信,实时时钟/日历电路提供秒分时日日期月年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式,DS1302与单片机之间能简单地采
5、用同步串行的方式进行通信仅需用到三个口线1RES,复位2I/O,数据线3SCLK,串行时钟时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW。DS1302 是由DS1202 改进而来增加了以下的特性双电源管脚用于主电源和备份电源供应Vcc1 为可编程涓流充电电源附加七个字节存储器它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等。4.1 DS1302主要的性能指标:a) 实时时钟具有能计算2100 年之前的秒分时日日期星期月年的能力,还有闰年调整的能力。b) 31 8 位暂存数据存储RAMc) 串行I/O 口
6、方式使得管脚数量最少d) 宽范围工作电压2.0 5.5Ve) 工作电流2.0V 时,小于300nAf) 读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式g) 8脚DIP 封装或可选的8 脚SOIC 封装根据表面装配h) 简单3线接口i) 与TTL 兼容Vcc=5Vj) 可选工业级温度范围-40 +85k) 与DS1202 兼容,在DS1202 基础上增加的特性l) 对Vcc1 有可选的涓流充电能力m) 双电源管用于主电源和备份电源供应,备份电源管脚可由电池或大容量电容输入n) 附加的7字节暂存存储器4.2 DS1302 的基本组成和工作原理DS1302的管脚排列及描述如
7、下图及表所示管脚描述l X1 X2 32.768KHz 晶振管脚l GND 地l RST 复位脚l I/O 数据输入/输出引脚l SCLK 串行时钟l Vcc1,Vcc2 电源供电管脚l DS1302 内部寄存器l CH: 时钟停止位寄存器2 的第7 位12/24 小时标志CH=0 振荡器工作允许bit7=1,12 小时模式CH=1 振荡器停止bit7=0,24 小时模式l WP: 写保护位寄存器2 的第5 位:AM/PM 定义WP=0 寄存器数据能够写入AP=1 下午模式WP=1 寄存器数据不能写入AP=0 上午模式l TCS: 涓流充电选择DS: 二极管选择位TCS=1010 使能涓流充电
8、DS=01 选择一个二极管TCS=其它禁止涓流充电DS=10 选择两个二极管DS=00 或11, 即使TCS=1010, 充电功能也被禁止l RS 位电阻典型位00 没有没有01 R1 2K10 R2 4K11 R3 8K4.3 DS1302的寄存器DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其日历、时间寄存器及其控制字见表2。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元
9、,共31个,每个单元组态为一个8位的字节,其命令控制字为COHFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。4.4 DS1302的复位通过把 输入驱动置高电平来启动所有的数据传送。 输入有两种功能:首先, 接通控制逻辑,允许地址命令序列送入移位寄存器;其次, 提供了终止单字节或多字节数据的传送手段。当 为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置 为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前, 必须
10、保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。五、 硬件电路设计模块5.1电源电路由于C51单片机的工作电压是5V,而我们日常生活中用的电压一般是220V的市电,因此我们需要设计一个电源转换电路,电路见下图。该电路可分为变压电路,整流电路,滤波电路,稳压电路。整个电路输入是220V电压,输出是5V的电压,即为单片机和实时时钟的正常工作电压。图3-2 稳压电源电路5.2控制电路利用AT89C51作为主控制器,在接口充足的情况下,考虑到编程容易,所以外接的7个按键开关采用独立式按键。P1口作为键盘接口。P1口所接电阻起上拉作用,没有键按下时,将P1口置高电平。当有按键按下,该口拉为
11、低电平。P1.0口接的是报警蜂鸣器。 5.3 LED显示电路该显示部分有2个3位共阴数码管和两个驱动(74LS07和74LS48组成)。根据实际经验,虽然在不接驱动的情况下,数码管也可被驱动,但电流太小,亮度不够,因此采用74LS07驱动数码管位选,用74LS48来驱动段选。5.4 DS1302在系统中的硬件电路DS1302与CPU的连接仅需要三条线,即SCLK(7)、I/O(6)、RST(5)。DS1302与CPU连接的电路原理图如图所示。在单电源与电池供电的系统中提供低电源并提供低功率的电池备份。在双电源系统中提供主电源,在这种运用方式下连接到备份电源,以便在没有主电源的情况下能保存时间信
12、息以及数据。DS1302由或两者中的较大者供电。当大于Vcc1+0.2V时,Vcc2给DS1302供电。当小于时,DS1302由供电。六、 硬件安装及调试6.1安装中注意的问题(1)晶体振荡器的接法:尽量要靠近IC插座,接地要尽量短,如果IC插座即89C51的接线太长,而晶体振荡器的频率很高,在这种情况下,接线会呈现感性。(2)三极管(9013)极性判别:在安装过程中切记不能将三极管引脚接错,否则不仅得不到设计想要的结果,还可能会烧坏三极管,影响到整个电路的性能。 (3)在安装集成芯片的过成中,注意不要将芯片反接,否则会将芯片烧坏,引起不必要 的损失。(4)在直接接用220V的市电时应在电源电
13、路设计中考虑到安全问题,在电路中接入保险丝,以便在电流超出电路板的负荷时能自动断开,不会造成事故。6.2 布线布局说明(1)在PCB设计中,布线与布局是一重要步骤:在整个PCB中,输入端与输出端的边线应避免相邻平行, 以免产生反射干扰。必要时应加地线隔离,两相邻层的布线要互相垂直,平行容易产生寄生耦合。(2)电源与地线的外理:尽量加宽电源、地线宽度,最好是地线比电源线宽,它们的关系是:地线电源线信号线,通常信号线宽为:0.20.3mm,最经细宽度可达0.050.07mm,电源线为1.22.5 mm。用大面积铜层作地线用,在印制板上把没被用上的地方都与地相连接作为地线用。(3)大面积导体中连接腿
14、的外理:在大面积的接地(电)中,常用元器件的腿与其连接,对连接腿的处理需要进行综合的考虑,就电气性能而言,元件腿的焊盘与铜面满接为好,但对元件的焊接装配就存在一些不良隐患如:焊接需要大功率加热器。容易造成虚焊点。所以兼顾电气性能与工艺需要,做成十字花焊盘,称之为热隔离(heat shield)俗称热焊盘(Thermal),这样,可使在焊接时因截面过分散热而产生虚焊点的可能性大大减少。(4)数字电路与模拟电路的共地处理:本电路是由数字电路和模拟电路混合构成的。因此在布线时需要考虑它们之间互相干扰的问题,特别是地线上的噪音干扰。数字电路的频率高,模拟电路的敏感度强,对信号线来说,高频的信号线应尽可
15、能远离敏感的模拟电路器件,对地线来说,整个PCB对外界只有一个结点,所以必须在PCB内部进行处理数、模共地的问题,而在板内部数字地和模拟地实际上应该是分开的,它们之间互不相连,只是在PCB与外界连接的接口处(如插头等),数字地与模拟地有一点短接。6.2安装调试中出现的问题:安装完后,各引脚电压正常,电源指示灯亮。进行软件调试过程中,出现以下问题。1)晶振的波形没有出来,原因:芯片的5脚虚焊,并且也存在接地问题解决方法:将5脚重新再焊一次,并纠正接地后就可以正常的工作。测晶振频率、波形,正确测量结果如下:波形为正弦波,f=11.0592MHz本设计测试时的结果如图4-2示图4-2 晶振测试图2)
16、芯片烧入程序后,程序不执行,检查发现31脚ALE没有接+5V,更正后,执行正常。3)有一个数码管的a画不亮。经检查发现,a画的引脚与小数点dp的焊点连在一起了,将焊点断开后即正常。4)蜂鸣器没有工作,原因是电路接法错法,原接法如图(a),改正后的为(b),正确的接法还有图(c)。 (a)错误的 (b)正确的 (c)正确的 七、 软件调试及设计1.软件设计思想:第一步:显示功能测试。利用软件逐个显示LED,从而检查显示电路,确定每个数字所对应的段码值。第二步:按键功能测试。利用软件测试按键部分功能是否第三步:时间显示第四步:时间可调测试第五步:万年历可调测试第六步:程序优化2.程序流程图:(见下
17、页)开始系统初始化送初值显示LOOP时钟自动加1调KEY_SET调功能键处理P1.2按下?开设置,调时间设置模块P1.1按下?P1.7按下?调闹铃设置切换到日历显示调时间显示P1.7按下?开设置,调日历设置模块调日历显示,延时10S,返回LOOP程序流程图八、 设计中存在的问题1.DS1302工作的稳定性加入辅助电容实现负载匹配在实际使用中,我们发现DS1302的工作情况不够稳定,主要表现在实时时间的传送有时会出现误差,甚至整个芯片停止工作。我们对DS1302的工作线路进行了分析。从上图看出,DS1302的外部电路十分简单,唯一外接的元件是32768Hz的晶体。通过实验发现:当外接晶体电路振荡
18、时,DS1302计时正确;当外接晶体电路停振时,DS1302计时停止。因此,我们认为32768Hz晶体是造成DS1302工作不稳定的主要原因。DS1302时钟脉冲的产生依赖外接晶体与其内部的电容配合。由于DS1302在芯片本身集成了6pF的电容,所以,为了获得稳定可靠的时钟,必须选用具有6pF负载电容的晶体。很多设计者在设计时仅注意晶体的额定频率值,而忽视了晶体的负载电容大小。在这里处理的办法是:先测晶体的负载电容(记为CI),若CI6pF,则在晶体的一端增加一串联电容CS以产生所需的负载电容CI,即1/CI=1/6pF1/CS,通过计算即可得出应增加的辅助电容的大小。如此处理,DS1302即
19、可起振。2.乱码显示时间显示时,可正常显示;调整时间时,按加键或减键时,偶有乱码出现,经调试仍没有解决问题。九、 设计总结通过本次万年历的设计,安装及调试,我觉的我基本上完成了从理论到实践的过度,懂的了如何在实际操作中运用所学的专业知识。我了解了贴片产品的工艺流程,焊接、组装技术也得到了很大的提高,认识到无论是在硬件设计还是在软件设计中,都要细心、耐心,每一个细小的环节都不容马虎,比如硬件检查,有的同学未经检查直接接220V电源,结果导致自己的实验板和实验装置一起烧坏。通过实习我学会了理性的去设计、调试,遇到问题不再盲目。十、 附录附录一:元器件清单元器件名称数量元器件名称数量敷铜板115mm
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 89 C51 单片机 万历 设计
链接地址:https://www.31ppt.com/p-4147976.html