单片机课程设计--基于at89s52的电子钟设计_第1页
单片机课程设计--基于at89s52的电子钟设计_第2页
单片机课程设计--基于at89s52的电子钟设计_第3页
单片机课程设计--基于at89s52的电子钟设计_第4页
单片机课程设计--基于at89s52的电子钟设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机课程设计-基于at89s52的电子钟设 计单片机课程设计-基于at89s52的电子钟设计 摘要本 次数字电子钟课程设计采用ATMEL公司的AT89S52为基本芯片,外配以12MHZ的晶振作为时钟电路,按键与电阻电 容组成的复位电路,通过程序下载软件与数字钟硬件连接, 实现24小时的时,分,秒计时系统。该电子钟设置4个按键,分别实现对时,分,秒加一以及 开启电子钟的作用。在具体数码显示中能够实现自动记时,手动调时,满 24 小时自动清0的作用。关键词 数字电子钟;AT89S52 ;硬件设计;软件设计ABSTRACT The curriculum design, digital electr

2、onic clock with ATMEL Corporation AT89S52 as the basic chips, accompanied by 12MHz crystal as an external clock circuit, composed of key with the resistance and capacitance of the reset circuit, through the program to download software and digital clock hardware connection, to achieve a 24-hours,min

3、utes and seconds,timekeeping system. The electronic clock is set four buttons, respectively, to realize hours, minutes and seconds, plus one and opening the electronic clock role.In specific digital display can be automatic timer, manual transfer, the full 24-hourautomatic cleaning 0 role. Key words

4、 :Digital electronic clock; ; AT89S5; Hardware Design ; SoftwareDesign目 录1设计课题任务、功能要求说明及方案介绍 11.1 设计课题任务 T 1.2 功 能 要 求 说 明 11.3 设计总体方案介绍及原理说明12设计课题硬件系统的设计 22.1设计课题硬件系统各模块功能简要介绍 2 2.2设计课题电路原理图、PCB图、元器件布局图 2 2.3 设计 课 题 元 器 件 清单33设计课 题 软 件 系 统 的 设计 43.1设计课 题 使 用 单 片 机 资 源 的 情况4 3.2设计课题软件系统各模块功能简要介绍 43.

5、3 设计课题软件系统程序流程框 图43.4设计课题软件系统程序清单84设计结论、仿真结果、误差分析、教学建议 94.1设计课题的设计结论及使用说明9 4.2设计课题的仿真结果94.3设 计 课 题 的 误 差 分析104.4设计体会 104.5教学建议 10参考文 献 12致 谢 13附 录 14 1设计课题任务、功能要求说明及方案介绍1.1 设计课题任务 设计一个数码显示的电子钟,具有以下功能: 通电显示扫描字符P,按键实现自动记时,定时报时,手动调时及数码显示的功能。1.2 功能要求说明 对实验板通电后开始进入自动扫描系 统,数码显示为P,按开始键自动进入 24小时计时系统,在 有键干扰下

6、,进入手动调时系统:按调时键对时进行加一,按调分键对分进行加一,按调秒键 对秒进行加一,退由手动调时系统后,计时系统在调整后的 状态下运行。当计时达到24小时后,系统自动清0,重新进入计时系统。1.3 设计课题总体方案介绍及工作原理说明本数字电子钟主要由时钟电路,复位电路,下载电路,4位独立式键盘, AT89S52,限流电阻,74LS245驱动以及数码管组成。具体设计方案如图1.3所示:图1.1总体设计方案图 该数字电子钟由 秒脉冲发生器 工 分脉冲发生器 工 时脉冲发生器”,时调时器”,分调时器” 秒调时器工 译码显示器”键扫描器”组成。1秒定时信号是整个系统的时基信号,它直接决定计时系 统

7、的精度,一般用石英晶体振荡器来实现。将标准秒信号送入 秒计数”缓冲单元, 秒计数”缓冲采用 10进制计数,每累计 60秒产生一个 分脉冲”信号,该信号 送入 分计数”缓冲单元。分计数”缓冲单元也采用10进制计数,每累计 60分钟, 发生一个 时脉冲”信号,该信号将被送到 时计数”缓冲单元。时计数器”采用10进制计时,可实现对一天 24小时的累计。通过对时,分,秒缓冲单元数据进行译码,分时输由送至 七段LED数码管。整点报时电路为根据根据 时计数”缓冲单元的变化产生一 个报时脉冲工开启蜂鸣器报时。在电子钟正常走时过程中,主要使用了单片机内部RAM的四组工作寄存器区,堆栈缓冲区,自定义的数据暂存区

8、, 数据显示缓冲区等。2设计课题硬件系统的设计2.1设计课题硬件系统各模块功能简要介绍数字电子钟的硬件系统模块设计主要分为:时钟电路,复位电路,键盘电路,显示电路,电源电路。(1)时钟电路:系统的时钟电路设计是采用的内部方式,即利用芯片内部的 振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放 大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输由 端。这个放大器与作为反馈元件的片外晶体谐振器一起构成 一个自激振荡器。外接晶体谐振器以及电容 C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影 响震荡器频率的高低、震荡器的稳定

9、性、起振的快速性和温 度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz ,电容应尽可能的选择陶瓷电容,电容值约为22以F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与 单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定 和可靠地工作。(2)复位电路:复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输生在每 个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此 电路系统采用的是上电与按钮复位电路,如图所示。当时钟频率选用 6MHz时,C取22以F, Rs约为200

10、Q, Rk 约为1Ko(3)键盘电路:当非编码键盘的按键较少时,采用独立式键盘比较方便,可 以随意拿硬件作为预处理,各键盘之间不影响,编程相对矩阵式键盘简单,但占用的I/O 口线较多(4)显示电路:显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及生产工艺,单片机应用系统中常用的显示器有:发光二极管LED显示器、液晶LCD显示器、CRT显示器等。LED显示器是现在最常用的显示器之一。LED显示器的显示控制方式按驱动方式可分成静态显示 方式和动态显示方式两种。对于多位LED显示器,通常都是采用动态扫描的方法进行 显示,具硬件连接方式如系统原理图。在动态方式中,逐个地循环地点亮各位

11、显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于人 眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。(5)电源电路:现在市面上销售的编程器有很多都是由PC机的USB 口直接供电,为了降低本设计的成本及节省设计时间,没有另外设 计编程器,而直接购买了市场上的USB供电及下载器。2.2设计课题电路原理图、 PCB图、元器件布局图 设计 课题电路原理图,见附录二; 设计课题电路的 PCB图,见 附录三; 设计课题电路的元器件布局图,见附录四;2.3设计课题元器件清单设计课题元器件清单如表2.1所示表2.1元器件清单 名称数量参 数电阻5个1K共阳 数码管2个4位一体 电阻4个4.

12、7k ISP下载口插座1个 普 通插座1个40PIN电阻8个470电阻5个200按键5个插 针1排40PIN 锁紧插座1个40PIN 驱动一套 74ls245 USB 供电接口及供电线一套 晶振及其插座一套12MHz电容2个 30pF极性电容1个22以F排阻1个10K 芯片1块AT89S52 发光二极管1个六角开关1个 电容各1个470以f 104P铜 柱(带螺母)4个3设计课题软件系统的设计 3.1设计课 题使用单片机资源的情况 单片机资源使用的情况如下:P0 口作为段码输由口,输由数码管显示的段码信号;P3 口作 为位码输由口,输由数码管的位显示;输由数码管位选信号;晶振11.0592M;

13、调整状态键IN_SET:P1.0;通过调整状态键来确定时间是否进入调整时间状态;小时调整键HH_SET :P1.1;按一次使选中位加 1;分钟调整键 MM_SET :P1.2;按一次使选中位加 1;秒钟调整键SS_SET:P1.3;按一 次使选中位加 1;当自动运行到整点,蜂鸣器发声报时; 30H-3FH ; 16个寄存器单元作为数据显示单元;30H用于秒个位数据存储;31H用于秒十位数据存储;32H用于分个位数据存储;33H用于分十位数据存储; 34H用于时个 位数据存储;35H用于时十位数据存储;3FH用于秒个位 显示存储;3EH用于秒十位显示存储; 3DH用于分个位显 示存储;3CH用于

14、分十位显示存储; 3BH用于时个位显示 存储;3AH用于时十位显示存储; 46H用于1秒计时溢由; 堆栈栈底:60H。3.2 设计课题软件系统个模块功能简要介绍本设计的软件系统模块大致分为:主程序模块,中断服务程序,数码驱动显示程序, 键扫程序。主程序:用于对程序进行全局控制,包括信号的输入输由,调用各个 功能的子模块,调配按键的使用。中断服务程序:用于产生1S的脉冲信号。键盘扫描模块: 用于及时校正计时状态。数码驱动模块:用于驱动数码管的正确显示计时。3.3 设计课题软件系统程序流程框图系统软件采用汇编语言按模块化方式进行设计,然后通过 Keil软件开发平台将 程序转变成十六进制程序语言,接

15、着使用 Proteous进行仿 真,读生显示数据。主程序流程框图如 3.1所示;加1子程序如3.2所示;显示子程序框图如3.3所示;中断服务程序程序如 3.4所示; 键盘扫描子程序框图如 3.5所示;图3.1主程序流程框图 图 3.2加1子程序流程框图图3.3显示子程序 图3.4中断子程序图3.5键盘扫描子程序 3.4设计课题软件系统程序清 单设计课题软件系统程序清单,详见附录一。4设计结论、仿真结果、误差分析、教学建议4.1设计课题的设计结论及使用说明本次数字电子钟的设计实现了24小时的计时,在P1 口接四个独立式键盘对时间进行控制。设计使用了 2个四位一体的共阳数码管做为显示器,用于 显示

16、24小时的时间值;设计了 4个按键对时间进行控制: 按键S1有三个作用:第一用于开启自动计时,第二用于退由自动计时并进入调整 时间状态,第三用于退由调整时间状态,开启自动计时状态;按键S2用于对小时进行调整;按键S3用于对分钟进行调整; 按键S4用于对秒钟进行调整。当整点时间到,蜂鸣器报警。4.2 设计课题的仿真结果在Proteus ISIS的80C51中下载程序生成的HEX文件,按开始符号运行,在数码管上观察 程序运行结果,系统仿真结果如图4.1与4.2所示。设计功能如下:(1)、 "P.犬态:未按键之前,上电,数码显示程序运行后,按复位键,显示 P点。(2)、自动运行状态:程序开

17、始显P后,按S1键,系统进入计时状态,此时,按 S2,S3,S4键无效。(3)、调整状态:在自动运行过程中,按 S1键,退由自动运行状态,计时暂 停。此时,按键S2,S3,S4有效,均代表调节时,分,秒。每按一次,对应的数码加一。按键S1,退由调整状态,接着计时。时间显示格式为:时分秒;图4.1 “魅行状态仿真 图4.2时钟运行状态仿真4.3 设计课题的误差分析实际程序下载到实验板中的电子钟显示存在一定的误差,误差来源可能为三个方面:第一,在程序运行过程中,时钟周期的不精确导致机器周期 与理论值存在一定的差别;第二在中断一秒显示过程中,一 些指令需要消耗一定的机器周期,使得一秒延时比实际要 长

18、;第三在键抖动的反应程度在运行中比较慢。4.3 设计体会 本次数字电子钟的课程设计,学习将理论 与实践相结合,对数字器件及集成电路有较深入的认识,初 步掌握综合运用所学知识分析和设计一般数字系统的基本 方法,增强动手解决实际问题的能力。认识到了自身的许多缺点和不足,初步接触到了如何将硬 件与软件相连接来实现一定的自动化。在实验板的焊接过程中,更深地意识到焊接技术的重要 性。使我们明白现实生活中电子钟的工作原理,锻炼了查资料 的能力。4.4 教学建议 在一个学期的相处过程中,通过实践形象 地将抽象化的单片机书本知识具体化,掌握一些与单片机相 关的软件,在王韧老师的教学过程中,课堂气氛轻松愉快,

19、同学们学习单片机的热情高涨,结合自身情况,希望王韧老 师在以后的教学过程中能够多与同学交流思想,讨论课程学 习方法。参考文献1马莹莹.基于Proteus的单片机系统电路设 计与仿真.辽宁工学院学报.2007.8,第 4期.Ma Yingying.Microcontroller-based Proteus system circuit design and simulation.2007 .8 Journal of Liaoning Institute of Technology, No. 4. 2陈刚.张天鹏,数字电子钟的分析与设 计.办公自动化杂志.2009,第152期.Chen Gang.

20、 Zhangtian Peng, digital electronic clock analysis and design. Office utomation magazine .2009, p. 152. 3曹巧媛.单片机原理及 应用M,北京:电子工业由版社,1997.7. Cao Qiao Yuan. MicrocontrollerTheory and Application M, Beijing: Electronic Industry Press, 1997.7. 4李广弟.朱月秀,单片机基础,北京:航 空航天大学生版社,2007.6. Li Guangdi. Zhu Xiu, mic

21、rocontroller-based, Beijing: Aeronautics and Astronautics University Press, 2007.6.致 谢 感谢。o o o o o o o附录附录1 ;本电子钟6位数码管显示时分秒,可整点 报时;显示格式:00-00-00 ;通过4只按键来调整时间;P0 口输由数码管段选信号,P3 口输由数码管位选信号;晶振11.0592M ;P2.1为蜂鸣器发声报时;刘远桃2009年12月31日;;;变量定义段;;; SECGE EQU 30H ;秒个位 存储单元 SECSH EQU 31H ;秒十位存储单元MINGE EQU32H ;分个

22、位存储单元 MINSH EQU 33H ;分十位存储单元 HOUGE EQU 34H ;时个位存储单元 HOUSH EQU 35H ;时 十位存储单元INTCISHU EQU 46H ;要求的计数溢由次数, 即1秒计时的循 环次数IN_SET EQU P1.0 HH_SET EQUP1.1 MM_SET EQU P1.2 SS_SET EQU P1.3 ; 程序起 始;;ORG 0000H ;程序执行开始地址 LJMP DISPP ORG 000BH ;定时器 T0中断程序入口 LJMP INTT0 ;跳至 INTTO 执行 ORG 0030H DISPP:MOV A, #20H ;位选 TT

23、:MOV P3, A MOV P0, #0CH ;段码 “P.LYT2:JB IN_SET, TT ;键是否按下,没按下贝U转移LCALL DL JNB IN_SET,LYT2 ;键是否松开,松开往下走 MAIN:MOV R0, #30H ;RAM 区首地址 MOV R7, #16 ;RAM 区单元个数 TT1:MOV R0, #00H INC R0 DJNZ R7, TT1 MOV SP, #60H ; 确立堆栈区 MOV IP, #02H SETB EA SETB ET0 ; MOV TMOD, #01H ;设定定时器 0工作方式1 MOV TL0, #0DCH ; 装计数初值 MOV T

24、H0, #0BH SETB TR0 ;启动定时器 0 START:LCALL DISP ;开始计时显示 JNB IN_SET, SETTIME; 判断是否进入时间调整状态LJMP START ;时间调整段;; SETTIME:CLR TR0;暂停计时 LCALL DISP; 调显示JNB IN_SET, SETTIME;判键是否松开,松开则往下 走 LYT:LCALL DISP;调显示 JNB IN_SET, OUT_SET;判断 调整键是否再次按下,按下则跳由 调整状态,正常计时JNB SS_SET, S1;IN-SET没有再次按下,判断调秒键是否按下,按下则转移到秒加一程序JNB MM_S

25、ET, S2;调秒键没有再次按下,判断调分键是否按下,按下则转移到分加一程序JNB HH_SET, S3;调分键没有再次按下,判断调时健是否按 下,按下则转移到时加一程序 LJMP LYT S1:LCALL DL ;去 抖动 S11:LCALL DISP;调显示 JNB SS_SET, S11;判调秒键 是否松开,松开则往下执行 MOV R0, #SECSH ;秒十位存储 单元地址 LCALL DADD1 ;秒加 1 LCALL DISP;调显示 MOV A, R2 XRL A, #60H ;判是否至U 60 秒 JNZ LYT1 ;是贝U往 下走,没到则跳转 LCALL CLR0 LJMP

26、LYT S2:LCALL DL ;去抖动 S22:LCALL DISP JNB MM_SET, S22 MOV R0, #MINSH ;秒十位存储单元地址LCALL DADD1 ;分加 1LCALL DISP MOV A, R2 XRL A, #60H ; 判是否至U 60 分 JNZ LYT1 LCALL CLR0 LJMP LYT S3:LCALLDL ;去抖动 S33:LCALLDISP JNBHH_SET, S33 MOV R0, #HOUSH ; 秒十 位存储单元地址 LCALL DADD1 ;时加1 LCALL DISP MOV A, R2 XRL A, #24H ;判是否至U 2

27、4H JNZ LYT1 LCALL CLR0 LJMPLYT OUT_SET:LCALLDISP JNB IN_SET, OUT_SET ; 判键是否松开SETB TR0 ;松开则继续计时LJMPSTARTLYT1:LJMP LYT ;1 秒中断程序;INTT0:PUSHDPL PUSHDPH PUSHPSW PUSHACC SETB RS1 ;改变当前寄存器组为组 3 SETB RS0 CLR ET0 CLR TR0 MOV TL0, #0DCH ;装计数初值 MOV TH0, #0BH SETB TR0 MOV A, INTCISHU ;循环次数减 1 DEC A MOV INTCISHU

28、,A JNZ RET0 ;不满 20 次,转 RET0 返回 SETB P2.1 MOV INTCISHU,#14H ; 满 20 次,开始计时操作 MOVR0, #SECSH ;秒十位存储单元地址LCALL DADD1 ;十进制秒力口 1 MOV A, R2 XRL A, #60H ;判是否至U 60 秒 JNZ RET0 ; 不至L 转RET0返回LCALL CLR0 ;至U 60秒,秒显示缓冲单 元清 0 MOV R0, #MINSH ;分十位存储单元地址LCALLDADD1 ;十进制分力口 1 MOV A, R2 XRL A, #60H ;判是否至U60分JNZ RET0 ;不到,转 RET0返回 CLRP2.1;开蜂鸣器 LCALL CLR0 倒 60分,分显示缓冲单元清0 MOV R0,#HOUSH ;时十位存储单元地址 LCALL DADD1 ;十进制时 力口 1 MOV A, R2 XRL A, #24H ;判是否至U 24 时 JNZ RET0 ;不至L 转RET0返回LCALL CLR0 ;到24时,时显示缓冲单 元清0 RET0:POP ACC POP PSW ;恢复当前寄存器组的组号POP DPH POP DPL SETB ET0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论