基于51系列单片机及ds1302时钟芯片的电子时钟_c语言报告内容摘要:
用 keil软件编写源程序。 在 protues中画好其电路图如下图。 软件程序的调试一般可以将重点放在分模块调试上,统调是最后一环。 软件调试可以采取离线调试和在线调试两种方式。 前者不需要硬件仿真器,可借助于软件仿真器即可;后者一般需要仿真系统的支持。 本次课题, Keil软件来调试程序,通过各个模 块程序的单步或跟踪调试,使程序逐渐趋于正确,最后统调程序。 图 实时时钟 仿真图 仿真部分采用 protus 6 professional软件,此软件功能强大且操作较为简单,可以很容易的实现各种系统的仿真。 陕西理工学院课设报告 11 首先打开 protus 6 professional软件,在元件库中找到要选用的所有元件,然后进行原理图的绘制;绘制好后再选择 wave6000已经编译好的 *.hex文件,选择运行,观察显示结果,根据显示的结果和课题的要求再修改程序,再运行查,直到满足要求。 在硬件调试完毕的基础上,需 要进一步完善程序,也就是进入软件调试阶段。 在本设计中,软件调试主要分两大部分:实时时钟日历子程序调试、按键子程序调试。 将这两部分调试成功,那么整个设计的软件部分也就基本完成了。 陕西理工学院课设报告 12 硬件调试与功能说明 单片机应用系统的调试包括硬件和软件两部分,但是他们并不能完全分开。 一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软 /硬件故障。 硬盘调试 拿到电路板后,首先要检查加工质量,并确保没有任何方面的错误,如短路和断路,尤其要避免电源短路;元器件在安装前要逐一检 查,用万用表测其数值,看是否与所用相同;完成焊接后,应先空载上电(芯片座上不插芯片),并检查各引脚的电位是否正确。 若一切正常,方可在断电的情况下将芯片插入,再次检查各引脚的电位及其逻辑关系。 将万用表的探针放到单片机接电源的引脚上检测一下,看是否符合要求。 系统性能测试与功能说明 走时:默认为走时状态,按 24小时制分别显示“时时 分分 秒秒”,有 2个“ ”动态显示,时间会按实际时间以秒为最少单位变化。 走时调整:按 ksec对秒进行调整,按一下加一秒;按 kmin对分进行调整,按一下加一分;按khour对 时进行调整,按一下加一小时,从而达到快速设定时间的目的。 系统时钟误差分析 时间是一个基本物理量,具有连续、自动流逝、不重复等特性。 我国时间基准来自国家授时中心,人们日常使用的时钟就是以一定的精度与该基准保持同步的。 结合时间概念和误差理论,可以定义电子钟的走时误差 S=S1S2,S1表示程序实际运行计算所得的秒; S2表示客观时间的标准秒。 S0时表示电子钟秒单元数值刷新滞后,即走时误差为“慢”;反之, S0表示秒单元数值的刷新超前,即走时误差为“快”。 本次设计的单片机电子钟系统中,其误差主要来源包 括晶体频率误差,定时器溢出误差,延迟误差。 晶体频率产生震荡,容易产生走时误差;定时器溢出的时间误差,本应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟时间过长或过短,都会造成与基准时间产生偏差,造成走时误差。 陕西理工学院课设报告 13 课设心得 本设计利用单片机 AT89C52控制串行实时时钟芯 DS1302构成数字时钟电路,实现计时功能。 该电路使用简单的三线接口,为单片机节省大量的接口资源,时钟芯片带有后备电池。 该时钟功能强大,性能优越,能为很多领域,特别是对时钟工作的准确性和可靠性有较高要求。 软件完成后,把 伟福编译后的文件通过烧录器下载到 AT89S52芯片,加上电源就可以进行调试。 各程序模块具有一定的独立性,因此可以先调试模块,在模块功能都能实现的前提下,再调试总程序,这样能快捷地检查判断硬件或软件上的问题。 调试结果及解决办法如下: 测试显示模块时,液晶屏显示乱码。 利用 Proteus软件仿真,发现仿真时显示正常,再检查硬件,发现电源键接线错误。 按原理图重新焊接后,能正常显示。 测试 DS读写模块时,从 LCD显示表明能正确写入与读取当前时间,但 DS1302的工作情况不太理想,主要表现在实时时间稍微偏快。 DS1302 时钟的产生基于外接的晶体振荡器,振荡器的频率为 ,该晶振通过引脚 XX2 直接连接至 DS1302,即 DS1302 是依靠外部晶振与其内部的电容配合来产生时钟脉冲,由于 DS1302 在芯片本身已经集成了 6pF的电容。 所以,为了获得稳定的可靠的时钟,必须选用具有 6pF 负载电容的晶振。 然而,许多人在选用晶振时仅仅注意了晶振的额定频率值,而忽视了晶振的负载电容大小,甚至连许多经销商也不能提供所售晶振的负载电容,所以即使在使用中选用了符合 32768Hz 的晶振,但如果该晶振的负载电容与 DS1302 提供的 6pF不一致时,就会影响晶振的起振或导致振荡频率的偏移。 当所选的晶振负载电容不是 6pF 时,可以采用增加辅助电容的方法提高或降低 DS1302 振荡器的电容性负载,使之与晶体所需的电容值匹配,如果已知晶体的负载电容为 CI,若 CI 小于 6pF,则可以增加一个并联电容 CS 以产生所需要的总负载电容 CI,即 CI=6pF+CS;若 CI 大于 6pF,则可以在晶体的一端增加一个串联电容 CS,以产生所需要的负载电容 CI,即 1/CI=1/6pF+1/CS,通过计算即可得出应增加的辅助电容大小 通过本次课程设计的全过程使我更加地对单片机系统内部资源的理解与运用,并较好地实现了DS1302芯片与单片机的融合与工作。 单片机的外围设备就是 通过这一周的学习,我感觉有很大的收获:首先,通过这次课程设计使自己对课本上的知识可以应用于实际,使理论与实际相结合,加深自己对课本知识的更好理解,同时也段练了自己的动手能力:能够充分利用电脑去查阅资料,增加了许多课本以外的知识。 更加了解了单片机原理及应用。 增加了对 DS1302和 AT89C52芯片引脚结构和功能的理解及运用,在设计电路过程中,要考虑到整体的美观性,连接电 路时对各线路的连接要细致。 在验证面电路效果时,出现了很多问题,其主要问题各个接线点之间错接没接上等。 在这个过程中,锻炼了我的细心和耐性。 陕西理工学院课设报告 14 参考文献 [1]李全利,仲伟峰,徐军著 .单片机原理及应用 [M]..北京 :清华大学社 ,2020 [2]DS1302中文手册 [3]倪晓军 章韵等 .单片机原理与接口技术教程 .北京:清华大学出版社 .2020 [4]王守忠 聂元铭 .51单片机开发入门与典型实例 .北京:人民邮电出版社 ,2020 陕西理工学院课设报告 15 附录 A 硬件电路原理图 陕西理工学院课设报告 16 附录 B 源程序 /**************DS1302及 1602时钟设计 **********/ include include define uchar unsigned char define uint unsigned int define SECOND 0x81 define MINUTE 0x83 define HOUR 0x85 sbit rs=P2^0。 sbit rw=P2^1。 sbit ep=P2^2。 sbit DS1302_IO= P1^7。 sbit DS1302_SCLK = P1^6。 sbit DS1302_RST = P1^5。 sbit M=P3^1。 //选择 sbit U=P3^2。 // 加 sbit D=P3^3。 // 减 sbit W=P3^4。 //确定 sbit SPK=P3^7。 //蜂鸣器 uchar sel=0。 uch。基于51系列单片机及ds1302时钟芯片的电子时钟_c语言报告
相关推荐
2:MOV 30H,20H MOV 31H,7EH MOV R7,06H SSE1:MOV R1,20H MOV A,30H CPL A MOVX @R1,A。 字位送入 MOV R0,31H MOV A,@R0 MOV DPTR,DDFF MOVC A,@A+DPTR。 取字形代码 MOV R1,21H MOVX @R1,A。 字形送入 MOV A,30H RR A。 右移 MOV 30H,A
器、安全监测系统、空气调节系统和冷冻保鲜系统等,都采用了单片机构成的专用系统。 与通用计算机相比,这些系统由于比较封闭,可以更有效地防止病毒和电磁干扰等,可靠性更高。 ( 4)工业自动化 在工业控制和机电一体化控制系统 中,除了采用工控计算机外,很多都是以单片机为核心的单片机和多机系统。 ( 5)智能仪表与集成智能传感器 目前在各种电气测量仪表中普遍采用了单片机应用系统来代替传统的测量系统
04 图 3- 2 霍尔传感器及后续电路图 ⑵ 定时器 控制计数器计算速度 本系统中采用 8253( I) 作为定时器 , 控制计数器 在 一定 时间内 对脉冲 信号进行计数;采用 8253( II)作为计数器,用于在 规定 时间内计算霍尔传感器传来的脉冲信号。 即定时器 8253( I)确定 1s 时间,在 1s 内,计数器 8253( II)允许计数,并将值保存在计数器 8253(
NG EQU。 南北方向绿灯 ER EQU。 东西方向红灯 EY EQU。 东西方向黄灯 EG EQU。 东西方向绿灯 BREAKRULE EQU。 交通违章模拟信号输入 SOUND EQU。 警报声输出信号 PEAKORNORM EQU。 高峰信 号输入 ALLSTOP EQU。 全部禁行输入 ALLGO EQU。 全部通行输入 NSTHROUGH EQU。 南北通行输入 EWTHROUGH
止新数据输入,在时钟端( CLOCK)脉冲上升沿作用下 Q0为低电平。 当 A、 B 有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定 Q0 的状态。 表 31 74LS164 工作参数 参数 最小值 标准值 最大值 单位 高电平输入电压 2 — — V 低电平输入电压 — — V 高电平输出电压 V 低电平输出电压 — V 时钟频率 0 — 25 MHZ
in)) /*当时间到闹钟的时间时,蜂铃器叫 5次 */ { if(ring5) { ring++。 alarm=0。 delay(100)。 alarm=1。 } } } } void Leap_Nonleap(int aa) /*判断是否为闰年 */ { if(((aa%4==0)amp。 amp。 (aa%100!=0))||(aa%400==0)) {