1、单 片 机 数 字 时 钟 设 计实 训 报 告系别 专业 姓名 学号 摘 要 单片机是把中央处理器CPU,随即存取存储器RAM,只读存储器ROM,定时器/计数器以及输入/输出即I/O接口电路等主要计算机部件,集成在一块集成电路上的微机。虽然只是一个芯片,但从组成和功能上来看,已具备微型系统的属性。单片机的发展经历了4个阶段,其向着低功耗CMOS化,微型单片化,主流与多品种共存的方向发展。单片机在工业自动化,仪器仪表,家用电器,信息和通讯产品及军事方面得到了广泛应用。另外,其发展前景不错。本次实训以设计制作数字时钟为例,来加深我们对单片机特性和功能的了解,加强我们的编程思想。为今后从事单片机程
2、序产品的开发,打下了良好的理论与实践基础。理论服务于实践,将知识转化为能力,也是本次试训的另一个重要目的。目 录一、 整体设计方案31. 方案设计要求32. 方案设计与论证33. 整体设计框图4二、 数字时钟的硬件设计41. 最小系统设计4 2. LED显示电路83. 键盘控制电路94. 数字时钟的原理图10三、 数字时钟的软件设计111. 系统软件设计流程图112. 数字时钟主程序14四、 调试与仿真181. 数字时钟系统PROTUES仿真182. 软件与硬件调试193. 系统性能测试与功能说明194. 出现问题及解决19五、 实验结论20六、 心得体会21附录:1.原器件清单222.参考文
3、献22一、整体方案设计1. 方案设计要求设计制作一个数字时钟,要求能实现基本走时,并以数字形式显示时、分、秒;采用24小时制;能校时、校分、校秒;也可以添加其他功能.2. 方案设计与论证方案一:采用各种纯数字芯片实现数字时钟的设计。优点:各个模块功能清晰,电路易于理解实现。缺点:各个模块功能已定不能进行智能化调整,整体电路太庞大。方案二:采用 FPGA模块用硬件语言实现功能。优点:运算速度快,走时精度高,算法简单。缺点:成本高,大材小用。方案三:采用单片机最小系统实现功能。优点:电路简单,能通过程序进行随机调整并扩展功能,成本低,易于实现。缺点:走时有一定的误差。经过综合考虑成本问题以及他人接
4、受程度,选择第三种方案实现设计要求。3. 整体设计框图MCU控制芯片(AT89C51)(AT89C51)复 位LED显示时间设置 数字时钟整体框图二、数字时钟的硬件设计1. 最小系统设计 AT89C51的介绍:AT89C51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多种功能的I/O接口电路等一台计算机所需要的基本功能部件,AT89C51单片机内包含下列几个部件:(1) 一个8位CPU;(2)一个片内振荡器及时钟电路;(3)4K字节ROM程序存储器;(4)128字节RAM数据存储器;(5)两个16位定时器/计数器;(6)可寻址64K外部数据存储器和64K外部程序存储器空间
5、的控制电路;(7)32条可编程的I/O线(四个8位并行I/O端口);(8)一个可编程全双工串行口;(9)具有五个中断源、两个优先级嵌套中断结构。其内部结构框图如下图所示: AT89C51单片机的部分管脚说明:AT89C51单片机采用40条引脚双列直插式器件,引脚除5V( 40脚)和电源地( 20脚)外,其功能分为时钟电路、控制信号、输入/输出三大部分,引脚图如下图:最小系统: 单片机最小系统的结构图单片机的最小系统是由电源、复位、晶振、/EA=1组成,下面介绍各个组成部分。 Vcc40 电源端;GND20 接地端。工作电压为5V 。 外接晶振引脚晶振连接的内部、外部方式图XTAL119 ;XT
6、AL218。XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。复位RST9常用复位电路图在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。/E
7、A=1 31脚当/EA=1时,访问内部程序存储器,当PC值超过内ROM范围时,自动转执行外部程序存储器的程序;当/EA=0时,只访问外部程序存储器。另外介绍一下输入输出引脚(本系统只用到P0、P1、P2口):(1) P0端口P0.0-P0.7 是一个8位漏极开路型双向I/O端口,端口置1(对端口写1)时作高阻抗输入端。作为输出口时能驱动8个TTL。对内部Flash程序存储器编程时,接收指令字节;校验程序时输出指令字节,要求外接上拉电阻。在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,访问期间内部的上拉电阻起作用。(2) P1端口P1.0P1.7是一个带有内部上拉电
8、阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收低8位地址信息。(3) P2端口P2.0P2.7是一个带有内部上拉电阻的8位双向I/0端口。输出时可驱动4个TTL。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部Flash程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。2. LED显示电路本实训用到四位一体共阳极数码管和一位共阳极数码管,通过其引脚图,便可顺利完成其连接。3
9、. 键盘控制电路该设计需要校对时间,所以用三个按键来实现。按S3来调节小时的时间,按 S2来调节分针的时间,按 S1来调节秒的时间。下图是按键硬件连接图。当用手按下一个键时,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也会出现类似的情况,这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。很容易想到,抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,再读入键盘码。4. 数字时钟的原理图根据要求画出数字时钟的原理图如下所示:数字时钟的原理图数字时钟的工作原理: 数字时
10、钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。因此,一个基本的数字时钟电路主要由显示器“时”,“分”,“秒”和单片机,及复位校时部分组成。6位一体数码管的段选接到单片机的P0口,位选接到单片机的P2口。数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。“时单元”采用24进制计时器,可实现对一
11、天24小时的累计。显示电路将“时”、“分”、“秒”通过七段显示器显示出来。校时电路是用来对“时”、“分”、“秒”显示数字进行校对调整,按一下S1,秒单元就加1 ,按一下S2,分就加1,按一下S3,时就加1。三、 数字时钟的软件设计1. 系统软件设计流程图 主程序是先开始,然后启动定时器,定时器启动后再进行按键检测,检测完后,就可以显示时间。开 始启动定时器按键检测时间显示主程序流程图时间设置:NYYNY时加1显示时间结 束开 始秒按键按下?秒加1分按键按下?分加1时按键按下? 时间设置流程图 按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如
12、果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。定时器中断:N24小时到?分单元清零,时单元加1NNNYY时单元清零时间显示中断返回开 始一秒时间到?60秒时间到?60分钟到?秒单元加1秒单元清零,分单元加1YY 定时器中断流程图时间显示是从左到右依次是时十位显示、分十位显示、秒十位显示。2. 数字时钟主程序SCAN EQU 28H ORG 0000H LJMP START ORG 0BH LJMP TIM0 ORG 0030HSTART: MOV SP,#70H MOV 2AH,#12 MOV 2BH,#00H MOV 2CH,
13、#00H MOV 20H,#00H MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV 24H,#00H MOV 25H,#00H MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV IE,#10000010B MOV 41H,#20 SETB TR0START_0: LCALL DISPLAY LCALL SCAN_1 LJMP START_0SCAN_1: JB P0.0,N2 LCALL DELAY JB P0.0,N2 LOP1: CLR EA LCALL DATA2 LCALL DATA1 LCALL DISPL
14、AY JNB P0.0,LOP1 MOV A,2CH INC A MOV 2CH,A CJNE A,#60,N6 MOV 2CH,#00N2: JB P0.1,N4 LCALL DELAY JB P0.1,N4LOP_2: CLR EA LCALL DATA2 LCALL DATA1 LCALL DISPLAY JNB P0.1,LOP_2 MOV A,2BH INC A MOV 2BH,A CJNE A,#60,N6 MOV 2BH,#00N4: JB P0.2,N6 LCALL DELAY JB P0.2,N6 LOP_3: CLR EA LCALL DATA2 LCALL DATA1 L
15、CALL DISPLAY JNB P0.2,LOP_3 MOV A,2AH INC A MOV 2AH,A CJNE A,#24,N6 MOV 2AH,#00N6: SETB EA RETTIM0: MOV TH0,#3CH MOV TL0,#0B0H PUSH ACC PUSH B PUSH PSW SETB RS0 DJNZ 41H,X2 MOV 41H,#20 LCALL CLOCK1 LCALL CLOCK2X2: POP PSW POP B POP ACC RETICLOCK1: MOV A,2CH INC A MOV 2CH,A CJNE A,#60,X4 MOV 2CH,#00
16、MOV A,2BH INC A MOV 2BH,A CJNE A,#60,X4 MOV 2BH,#00 MOV A,2AH INC A MOV 2AH,A CJNE A,#24,X4 MOV 2AH,#00 X4: RETCLOCK2: MOV A,2CH MOV B,#10 DIV AB MOV 20H,B MOV 21H,A MOV A,2BH MOV B,#10 DIV AB MOV 22H,B MOV 23H,A MOV A,2AH MOV B,#10 DIV AB MOV 24H,B MOV 25H,A RETDISPLAY: MOV R0,#20H MOV SCAN,#0FEH M
17、OV A,SCANLD0: MOV P2,A MOV A,R0 MOV DPTR,#TAB MOVC A,A+DPTR MOV P1,A ACALL DL1MS INC R0 MOV A,SCAN JNB ACC.5,LD1 RL A MOV SCAN,A AJMP LD0LD1: RETDATA1:MOV A,2CH MOV 2CH,A CJNE A,#60,K4 MOV 2CH,#00 MOV A,2BH MOV 2BH,A CJNE A,#60,K4 MOV 2BH,#00 MOV A,2AH MOV 2AH,A CJNE A,#24,K4 MOV 2AH,#00K4: RETDATA2
18、: MOV A,2CH MOV B,#10 DIV AB MOV 20H,B MOV 21H,A MOV A,2BH MOV B,#10 DIV AB MOV 22H,B MOV 23H,A MOV A,2AH MOV B,#10 DIV AB MOV 24H,B MOV 25H,A RETTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H DB 82H,0F8H,80H,90H,88H,0FFHDL1MS: MOV R6,#14HDL1: MOV R7,#19HDL2: DJNZ R7,DL2 DJNZ R6,DL1 RETDELAY: MOV R6,#20D1: MOV
19、 R7,#248 DJNZ R7,$ DJNZ R6,D1 RET END四、 调试与仿真1.数字时钟系统PROTUES仿真用ISIS软件,根据数字时钟的原理图,画出仿真图,得到的图如下所示:将Keil编译程序产生的HEX文件下载至AT89C51中,通过控制按键来进行仿真测试。2.软件与硬件调试单片机应用系统的调试包括硬件和软件两部分,但是它们并不能完全分开。一般的方法是排除明显的硬件故障,再进行综合调试,排除可能的软/硬件故障。软件调试是指用仿真软件进行仿真调试,验证系统的各项功能;硬件调试即软件调试成功后,将程序下载至AT89C51芯片中,用焊接好的电路来进行各项功能的验证与检测。需要特别
20、注意的是软件调试与硬件调试的差异,软件调试只是初步的估测,硬件的调试才是最真实的。3.系统性能测试与功能说明工作时:默认为走时状态,按24小时制分别显示“时时分分秒秒”,时间会按实际时间以秒为最小单位变化。走时调整:按S1对秒进行调整,按一下加一秒;按S2对分进行调整,按一下加一分;按S3对时进行调整,按一下加一小时,从而达到快速设定时间的目的,按S4进行复位。4.出现的问题及解决编译程序中出现错误,应严格按照汇编语言的语法来编写即可解决。PROTEUS软件仿真时,加上三极管驱动数码管显示时很难找到符合条件的三极管,这很好的说明了软件仿真于硬件的最大区别。解决方法:若去掉三极管,数码管可正常显
21、示,则说明仿真成功,不必过于在寻找三极管上花费工夫。另外,也会出现部分按键功能无法实现的问题,这时应先检查仿真元器件与单片机端口是否连接正确,然后再检查主程序,若以上两项都无误,那么可以通过改变其周围电阻来解决。在本次实训中,我的出现复位键不能用的问题,通过减少其旁边电阻阻值,使问题得到解决。硬件调试出现问题,应仔细检查电路,看是否有桥接、虚焊、少焊和错焊的问题,即要有好的焊接技术和认真的态度来确保硬件焊接无误。五、实验结论本次实训得到了期望中的结果。本次实训意在加强我们对AT89C51单片机主要功能的了解与掌握,数字时钟的设计制作是掌握AT89C51单片机的一个很好的实践,原理能付于实践中,
22、是对原理加深了解的最好方法。A T89C51单片机是一个微型的计算机模型,因为它具备了一台计算机最基本的构成部分:CPU,ROM,RAM,定时器/计数器,I/O口等,它是计算机的完美缩影。AT89C51单片机应用范围很广,例如:在工业自动化方面,在仪器仪表方面,在家用电器方面,在信息和通信产品方面以及军事方面等,总之它与我们的生活密切相关,另外开发前景也很不错。因此,掌握AT89C51单片机等类似芯片,对我们以后的工作与生活非常有用。六、心得体会 近两周的单片机实训,让我获得了很多知识,进一步加深了我对AT89C51单片机的掌握,另外也巩固了我的编程思想和焊接技术。 本次的数字时钟实训,让我对
23、自己在大学二年的知识的到了回顾,例如模电和数电以及做PCB的软件。它也让我充分发挥了对所学知识的理解和设计的书面表达能力。这为今后自己进一步深化学习,积累了一定的宝贵经验。撰写报告的过程是对专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。 本次的实训,让我发现理论必须用于实践,否则只是一张白纸。此外只有理论水平提高了,才能更好的运用于实践。另外,本次实训也考验了我的认真的态度。只有做事拥有认真的态度与科学的方法,才能成功。 来到大学已两年,像这样的实训,已是第三次。我认为实训非常有必要,因为它能让我们主动去寻找遇到问
24、题的解决方法,同时也是对我们严谨认真工作态度的考验与锻炼,为以后我们进入社会参加工作是一个很好的培训与历练。附 录1.原器件清单 AT89C51 1个 LED 绿3个,红1个 按键开关 4个 电解电容 10F 1个瓷片电容 30pF 2个三极管 PNP9015 6个数码管 四位一体共阳极1个,一位共阳极2个排阻 1个电阻 220 12个,1K 7个晶振 12MHz 1个2. 参考文献51系列单片机高级实例开发指南李军 北京航空航天大学出版社MCS51/96系列单片机原理及应用 孙涵芳 徐爱卿 北京航空航天大学出版社 AT89系列单片机原理与接口技术 王幸之 钟爱琴 王雷 北京航空航天大学出版社单片机原理与实用技术 付晓光 清华大学出版社 北京交通大学出版社 数字电子技术 杨志忠 高等教育出版社电路基础 姚年春 侯玉杰 人民邮电出版社模拟电子技术 胡宴如 高等教育出版社单片机实用技术 陶春鸣 人民邮电出版社- 23 -