智能定时闹钟设计-毕业设计_第1页
智能定时闹钟设计-毕业设计_第2页
智能定时闹钟设计-毕业设计_第3页
智能定时闹钟设计-毕业设计_第4页
智能定时闹钟设计-毕业设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

I 智能定时闹钟设计 学生:XXX 指导教师:XXX 内容摘要:学习和巩固单片机技术、电子技术、传感器技术及智能仪器等知识,使 对已学过的基础知识能有更深入的理解,并融会贯通。学会独立思考、独立工作,培 养一定的自学能力和独立分析问题能力,以及增强系统地运用已学理论知识去解决实 际问题的能力,同时培养成良好的科学态度和严谨的设计习惯 本设计采用单片机 AT89C51 作为核心元件,12MHZ 晶振,由 P0 口输出所要显示的 字形段码,由 P2 口输出字位信号。在其基础上扩展外围芯片与电路,附加时钟电路及 LED 电路。LED 采用共阴极接法,低电平有效选中相应的 LED。 单片机具有集成度高、功能强、通用性好、特别是它能耗低、价格便宜、可靠性高、 抗干扰能力强和使用方便等独特的优点,所以单片机现在广泛的应用到家用电器、机 电产品、儿童玩具、机器人、办公自动化产品等领域。为了进一步的熟悉并掌握单片 机的应用及开发,认真的做好此次课程设计非常必要。 一个单片机的定时闹钟系统离不开软件和硬件,硬件是软件的依托,软件是硬件 的内核。设计硬件电路时应该先设计一个单片机的最小系统,它是单片机应用系统的 设计基础,然后在此基础上添加外围器件,如显示器、按键等构成闹钟的硬件电路图。 在设计应用程序时遵循模块化的设计方法,在明确了设计方向之后按照分成的几大模 块分别画出流程图,然后根据流程图写出程序,在每个模块编写好之后分别调试、修 改、完善。最后在主程序下调用再次调试、修改。 通过这次设计让我更深入了解单片机基本电路、如何控制和定时器和中断编程的 基本方法,从而锻炼了我学习、设计和开发软、硬件的能力。 关键词:定时闹钟系统 传感器技术 智能仪器 阴极接法 II SmartSmart timertimer alarmalarm clockclock designdesign Abstract:Abstract: Learning and consolidation of the knowledge of microcomputer technology, electronic technology, sensor technology and intelligent instruments, and have learned the basics to have a more in-depth understanding and mastery. Learn to think independently, work independently, develop self-learning ability and independent analysis of capacity and enhancing the system the ability to use theoretical knowledge to solve practical problems, while cultivating a good scientific attitude and a rigorous design habits. This design uses AT89C51 microcontroller as the core component, 12MHZ crystal, shaped segment code to be displayed by the P0 port output signal from the P2 port output word. Expansion on the basis of the peripheral chips and circuits, additional clock circuit and the LED circuit. LED common cathode connection, active-low select the appropriate LED. Microcontrollers, high integration, functionality, versatility, its low energy consumption, cheap, high reliability, strong anti-interference ability and ease of use and other unique advantages, so the microcontroller is now widely applied to household appliances, electrical and mechanical products, childrens toys, robots, office automation products and other fields. In order to further familiar with and master MCU application and development of very necessary to do the course design. A single-chip timing alarm system can not be separated from the software and hardware, hardware, software, relying on software is the core of the hardware. Should the design of hardware circuit design the minimum system of a single-chip microcomputer application system design basis, and then on this basis, to add peripheral devices such as displays, buttons, etc. constitute the hardware schematic of the alarm clock. Follow a modular design approach in the design of the application. III KeywordsKeywords: timing alarm system sensor technology, intelligent instruments and cathode connection 目 录 前言 .1 1 设计目的及意义.1 1.1 设计任务.1 1.2 设计系统的主要功能.1 2 系统总体方案及硬件设计.2 2.1 系统总体方案.2 2.2 系统设计总框图.2 2.3 硬件设计.2 2.3.1 单片机最小系统设计.2 2.3.2 报警模块设计.6 2.3.3 显示模块设计.7 2.3.4 调时模块设计.9 3 软件设计.10 3.1 主程序流程图.10 3.2 定时中断子程序流程图.11 3.3 程序设计.12 4 系统的仿真与调试.13 4.1 PROTEUS软件仿真.13 4.2 系统的调试.13 5 结束语.14 附录 1:源程序代码.14 附录 2:系统原理图.25 参考文献.26 IV 1 基于智能定时闹钟系统设计 前言 学习和巩固单片机技术、电子技术、传感器技术及智能仪器等知识,使对已学过 的基础知识能有更深入的理解,并融会贯通。学会独立思考、独立工作,培养一定的 自学能力和独立分析问题能力,以及增强系统地运用已学理论知识去解决实际问题的 能力,同时培养成良好的科学态度和严谨的设计习惯本设计采用单片机 AT89C51 作为 核心元件,12MHZ 晶振,由 P0 口输出所要显示的字形段码,由 P2 口输出字位信号。在 其基础上扩展外围芯片与电路,附加时钟电路及 LED 电路。 1 设计目的及意义 学习和巩固单片机技术、电子技术、传感器技术及智能仪器等知识,使对已学过 的基础知识能有更深入的理解,并融会贯通。学会独立思考、独立工作,培养一定的 自学能力和独立分析问题能力,以及增强系统地运用已学理论知识去解决实际问题的 能力,同时培养成良好的科学态度和严谨的设计习惯。 1.1 设计任务 完成所选题目的分析与设计,达到技术性能要求。提交正式课程设计总结报告一 份。 本文设计的定时闹钟的核心模块采用 AT89C51 芯片,时、分、秒用 6 位 LED 数码 管显示。在电路中通过四个按键 S1、S2、S3 和 S4 来进行定时、调时和复位,定时时 间到通过蜂鸣器发出报警声。 1.2 设计系统的主要功能 能显示 时时分分秒秒。 能够设置定时时间、 修改定时时间。 定时时间到能发出报警 单片机的时钟产生方法有两种: 内部时钟方式和外部时钟方式。 本系统中 AT89C51单片机采用内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成 的并联谐振回路。振荡晶体可在1.2MHz12MHz之间。电容值无严格要求,但电容取值 对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响修改时间和定时用手 动按键控制,报警声通过蜂鸣器发出。这样可以使得硬件电路设计较为简单,且软件 设计也易于实现,并能够降低成本其集成度高、功能强、能耗低、通用性好、价格便 2 宜。该器件采用ATMEL高密度非易失存储器制造技术制造。 2 2 系统总体方案及硬件设计 2.1 系统总体方案 由于 LED 显示器相对于其它显示器(如 LCD 显示器)来说其价格要便宜许 多,而且亮度更高,耐温范围较广,所以采用 6 位数码管来显示“时时分分秒秒” 。 时间的定时用单片机内部时钟电路,在一定的时间内能使其误差较小,如 经过一年其误差才仅有数秒。修改时间和定时用手动按键控制,报警声通过蜂鸣器发 出。这样可以使得硬件电路设计较为简单,且软件设计也易于实现,并能够降低成本。 核心模块采用 AT89C51 单片机,功能强、通用性好、价格便宜,且易于控 制。加上外围器件(数码管、排阻、按键和蜂鸣器)和应用程序,便构成了相应的应 用系统。 2.2 系统设计总框图(如图 2.2-1 所示) 图 2.2-1 定时闹钟系统设计总框图 2.3 硬件设计 2.3.1 单片机最小系统设计 芯片:AT89C51 因为 51 单片机是各单片机中最为典型和最有代表性的一种,在 20 世纪 70 年代问 时钟电路 和复位电路 键盘 (按钮) 单片机 AT89C51 蜂鸣器 数 码 管 显 示 3 世以来,以其极高的性能价格比,受到人们的重视和关注,应用广泛,发展很快,推 广率和市场利润率较高,且适合于本设计系统中 CPU 内存和 I/O 等资源的要求,所以 本设计采用 AT89C51 作为核心控制芯片。 AT89C51 是一种带 4KB 闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的单片机,可稳定地工作于 5V 的电 源下。其集成度高、功能强、能耗低、通用性好、价格便宜。该器件采用 ATMEL 高密 度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于 将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控 制器。其组合而成的配件产品在日常生活的使用过程中非常方便、简单且实用,深受 着广大消费者的喜爱。 AT89C51管脚说明如下: Vic:供电电压端。 God:接地端。 P0口:P0口为三态双向口,能带8个TTL电路。有两种功能:第一功能是一个8位漏极 开路型的双向I/O口,这时P0口可看作数据总线;第二功能是在访问外部存储器时,分 时提供低8位地址和8位双向数据总线,这时先用做地址总线再用做数据总线。在FIASH 编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须 被拉高。P0口内部无上拉电阻,作为I/O口使用时,必须外接上拉电阻。 P1口:P1口是一个内部带上拉电阻的8位准双向I/O口(使用前有一个准备动作) ,负 载能力为4个TTL电路。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部带上拉电阻的8位准双向I/O口,P2口缓冲器可接收、输出4个 TTL门电流。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口 输出地址的高八位。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口是一个内部带上拉电阻的准双向I/O口,可接收输出4个TTL门电流。同时 为闪烁编程和编程校验接收一些控制信号。P3口的8个引脚都有各自的第二功能,可作 为AT89C51的一些特殊功能口,如表2.3.1-1 所示。 表2.3.1-1 P3口第二功能 P3口引脚第二功能注释 P3.0RXD 串行输入口 P3.1TXD 串行输出口 4 P3.2 0INT 外部中断0输入 P3.3 1INT 外部中断1输入 P3.4 0T定时/计时器0外部输入 P3.51T 定时/计时器1外部输入 P3.6 WR 外部数据存储器写信号 P3.7 RD 外部数据存储器读信号 RSTVPP:RST为复位信号输入端。当振荡器复位器件时,要保持RST脚两个机器周 期(24个时钟周期)以上的高电平时间。VAP为内部RAM的备用电源输入端。当主电源 一旦发生断电或电压降到一定值时,可通过VCC为单片机内部RAM提供电源,以保护CCV 片内RAM中的信息不丢失,使VCC上电后能继续正常运行。 ALOE/PROG:ALE为地址锁存允许信号,当访问外部存储器时,ALE用来锁存P0口送 出的低8位地址信号。在FLSH编程期间,PROG用于输入编程脉冲。在平时,ALE端以不 变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出 的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE脉冲。如想禁止ALE的输出可在SFR的8EH地址上置0。此时,ALE只有在执行 MOVX,MOVC指令时才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状 态ALE禁止,置位无效。 PSEN:外部程序存储器的读选通信号。在由外部程序存储器取指期间,PSEN产生 负脉冲做为外部ROM的选通信号,每个机器周期两次PSEN有效。但在访问外部数据存储 器时,不会产生有效的PSEN信号。PSEN可驱动8个LETTEN门输入端。 Earp:访问外部程序存储器控制信号。当EA保持低电平时,则在此期间只访问外 部程序存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式1时,EA将 内部锁定为RST。当EA端保持高电平时,CPU访问程序存储器有两种情况:一是访问的 地址空间在0到4KB范围内,CUP访问片内程序存储器;二是访问的地址超出4KB时,CPU 将自动执行外部程序存储器的程序。在PLSAH编程期间,此引脚也用于施加12V编程电 源(App.) 。 XTAL1:晶体振荡电路的反向器输入端。 XTAL2:晶体振荡电路的反向器输出端。 DIP 封装的 AT89C51 管脚排列如图 2.3.1-1 所示。 5 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 RST 9 RXD/P3.0 10 TXD/P3.1 11 INT0/P3.2 12 INT1/P3.3 13 T0/P3.4 14 T1/P3.5 15 WR/P3.6 16 RD/P3.7 17 XTAL2 18 XTAL1 19 GND 20 P2.0 21 P2.1 22 P2.2 23 P2.3 24 P2.4 25 P2.5 26 P2.6 27 P2.7 28 PSEN 29 ALE/PROG 30 EA/Vpp 31 P0.7 32 P0.6 33 P0.5 34 P0.4 35 P0.3 36 P0.2 37 P0.1 38 P0.0 39 Vcc 40 U1 89C51 图 2.3.1-1 AT89C51 的管脚排列 时钟电路 单片机的时钟产生方法有两种: 内部时钟方式和外部时钟方式。 本系统中 AT89C51 单片机采用内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成 的并联谐振回路。振荡晶体可在 1.2MHz12MHz 之间。电容值无严格要求,但电容取 值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在 20pF100pF 之间取值。AT98C51 单片机的时钟电路如图 2.3.1-2 所示。 图 2.3.1-2 AT98C51 单片机的时钟电路 AT89C51 XTAL2 XTAL1 JZ 12M C1 30PF C2 30PF 6 复位电路 复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位。其 作用是使 CPU 和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。 单片机的外部复位电路有上电自动复位和按键手动复位两种。本系统中 AT89C51 单片 机采用上电加按键手动复位电路,如图 2.3.1-3 所示。 S5 1K R1 10K R2 10uF C3 VCC RST 9 AT89C51 图 2.3.1-3 AT89C51 单片机的复位电路 2.3.2 报警模块设计 为实现设计的定时闹钟系统在定时时间到时发出报警声,采用蜂鸣器作为报警发 声装置。在本设计中有多种报警声可供选择,可选择报警时播放音乐当使能为低时, 输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可 以保持,甚至当输出被关闭时,新的数据也可以置入,相应的一个点或一个笔划发光, 控制不同组合的二极管导通,就能显示出各种字符当使能为低时,输出将锁存在已建 立的数据电平上。报警电路设计如图 2.3.2-1 所示。 7 1K VCC FM 1 2 SPEAKER PNP 图 2.3.2-1 定时闹钟系统的报警电路 2.3.3 显示模块设计 本系统中采用6位LED数码管显示时、分、秒,用两片74HC573分别对段码和位码进 行锁存,实现动态扫描方式显示,节省单片机I/O口资源,简化硬件电路。 LED 显示器 单片机中通常使用 8 段 LED,LED 是发光二极管显示器的缩写。LED 显示器由于结 构简单,价格便宜,体积小,亮度高,电压低,耐温范围广,可靠性高,寿命长,响 应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。LED 显示器是由 若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或 一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。LED 显示器有多种 形式,如:“米”字型显示器,点阵显示器和七段数码显示器等。在本系统中采用八 段数码显示器。 因为共阴极的 LED 数码管它的驱动电流是分开的,在单片机进行动态扫描的时候不 会影响彼此的电流,故本系统中的 6 位 LED 数码管均用共阴极的数码管。 74HC573 芯片 特点:三态总线驱动输出,置数全并行存取,缓冲控制输入,使能输入有改善抗扰度 的滞后作用。 原理说明:74HC573 的八个锁存器都是透明的 D 型锁存器,当使能(G)为高时, Q 输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。 输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的 数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口 并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器 和工作寄存器。 74HC573 引脚说明: 8 OE:3 态输出使能输入(低电平有效)。 D0 - D7:数据输入端。 Q0 - Q7:3 态锁存输出。 LE:锁存使能输入。 GND:接地。 VCC:电源电压。 74HC573 的引脚图、逻辑图及真值表如下: E 1 D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9 GND 10 L 11 Q0 12 Q1 13 Q2 14 Q3 15 Q4 16 Q5 17 Q6 18 Q7 19 VCC 20 74HC573 图 2.3.3-1 74HC573 引脚图 图 2.3.3-2 74HC573 逻辑图 9 表 2.3.3-1 74HC573 真值表 OELeDd HXXZ LLXNo change LHLL LHHh 显示电路 将两片 74HC573 的数据输入端 D0 - D7 都分别与 AT89C51 单片机的 P0.0 - P0.7 和 RESPACK-8 排阻的 2 - 9 引脚连接,两片 74HC573 的锁存使能端 L 分别接至 P2.6 和 P2.7,74HC573 的输出端接至数码管,如图 2.3.3-3 所示。 f 9 g 10 e 1 d 2 A 3 c 4 DP 5 b 6 a 7 A 8 DS1 VCC B1 B2 B3 B4 B5 B6 B7 B8 f 9 g 10 e 1 d 2 A 3 c 4 DP 5 b 6 a 7 A 8 DS2 B1 B2 B3 B4 B5 B6 B7 B8 f 9 g 10 e 1 d 2 A 3 c 4 DP 5 b 6 a 7 A 8 DS3 B1 B2 B3 B4 B5 B6 B7 B8 f 9 g 10 e 1 d 2 A 3 c 4 DP 5 b 6 a 7 A 8 DS4 B1 B2 B3 B4 B5 B6 B7 B8 f 9 g 10 e 1 d 2 A 3 c 4 DP 5 b 6 a 7 A 8 DS5 B1 B2 B3 B4 B5 B6 B7 B8 f 9 g 10 e 1 d 2 A 3 c 4 DP 5 b 6 a 7 A 8 DS6 B1 B2 B3 B4 B5 B6 B7 B8 E 1 D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9 GND 10 L 11 Q0 12 Q1 13 Q2 14 Q3 15 Q4 16 Q5 17 Q6 18 Q7 19 VCC 20 U2 74HC573 E 1 D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9 GND 10 L 11 Q0 12 Q1 13 Q2 14 Q3 15 Q4 16 Q5 17 Q6 18 Q7 19 VCC 20 U3 74HC573 VCC VCC WE1WE2WE3 WE4WE5WE6 DB1 DB2 DB3 DB4 DB5 DB6 DB7 DB8 DB1 DB2 DB3 DB4 DB5 DB6 DB7 DB8 DULAWELA B1 B2 B3 B4 B5 B6 B7 B8 WE1 WE2 WE3 WE4 WE5 WE6 DB1 DB2 DB3 DB4 DB5 DB6 DB7 DB8 DULA WELA P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 RST 9 RXD/P3.0 10 TXD/P3.1 11 INT0/P3.2 12 INT1/P3.3 13 T0/P3.4 14 T1/P3.5 15 WR/P3.6 16 RD/P3.7 17 XTAL2 18 XTAL1 19 Vss 20 P2.0 21 P2.1 22 P2.2 23 P2.3 24 P2.4 25 P2.5 26 P2.6 27 P2.7 28 PSEN 29 ALE/PROG 30 EA/Vpp 31 P0.7 32 P0.6 33 P0.5 34 P0.4 35 P0.3 36 P0.2 37 P0.1 38 P0.0 39 Vcc 40 U1 89C51 图 2.3.3-3 定时闹钟系统的显示电路 2.3.4 调时模块设计 本系统要进行时间的调整和定时,因此用 4 个手动按键对其进行控制。键盘电路 设计如图 9 所示。当按下时间调整键 S1 时,系统可进行时间调整的小时设置;当再按 下 S1 时,可进行时间调整的分钟设置;再按下 S1 时,可进行时间调整的秒钟设置。 10 3 软件设计 3.1 主程序流程图 图 3.1-1 主程序流程图 3.2 定时中断子程序流程图 开 始 初始化 显示时间 S1 按下? 调整时间 减时调整 加时调整 Y Y Y S2 按下? N N S4 按下? S3 按下? N N Y S1 按下? 选择报警声 S3 按下? 定时加时 S4 按下? 定时减时 Y Y Y N N N 11 图 3.2-1 定时中断子程序流程图 3.3 程序设计 根据程序流程图采用汇编语言进行程序设计,其中主程序可根据系统实现的功能 划分为以下几个子程序模块。 (程序源代码见附录 1) 时间调整子程序模块; 闹钟时间设置子程序模块; 蜂鸣器报警子程序模块; 开 始 结 束 蜂鸣器响 分变量加 1,秒变量清 零 秒变量加 1 1 秒到? 60 秒到? 定时到? 60 分到? 时变量加 1,分变量清 零 24 时到? 时变量清零 Y N N N Y Y Y N Y N 12 数码管显示子程序模块。 指示灯信号 LAMP2LAMP0 为独立扩展下载板上 CPLD 器件的第 11、10、9 脚,内部 已连接并已锁定,无需外接连线。 蜂鸣器报时信号 SPEAK 为独立扩展下载板 CPLD 器件的第 31 脚,内部已连接并已 锁定,无需外接连线。 拨码开关 SW1SW7 内部已连接并已锁定,无需外接连线。 数码管七个段位信号 AG 为独立扩展下载板上 CPLD 器件的第 86、87、88、89、90、92、93 脚,应接数码管段位引线接线组 KPL_AH,从左到右依次 对应的 A、B、C、D、E、F、G 引线插孔。 数码管段位译码控制信号 SS0、SS1、SS2 为独立扩展下载板上 CPLD 器件的第 68、69、70 脚,为数码管的位选扫描信号,分别接信号接线组 DS1-8A(T)的 SS0、SS1、SS2 引线插孔(即在电源引线插孔组 GND 孔处) 。复位信号 RESET 为独立扩 展下载板上 CPLD 器件的第 71 脚,应接“多功能复用按键 F1-F12”信号接线组 “F1_12(T)”的 F9F12 的任意一个插孔。 按下 S1 时,系统恢复正常时间显示。当按下设置定时键 S2 时,系统可进行闹钟 定时时间的小时设置,此时 S1 作为报警声选择键,可通过 S1 选择报警声;再按下 S2 时,可进行定时时间的分钟设置,此时也可通过 S1 选择报警声;第三次按下 S2 时, 系统恢复正常时间显示,此时 S1 恢复为时间调整按键。设置时间时都通过加时按键 S3 和减时按键 S4 进行控制。 S1 S2 S3 S4 S1 S2 S3 S4 图 3.3-1 定时闹钟系统的键盘电路 13 4 系统的仿真与调试 4.1 proteus 软件仿真 使用 WAVE 软件编辑程序,在仿真设置中选择 E6000/T 仿真器,选择 POD-51 仿真 头。为方便系统在 proteus 中进行仿真,选择了 7SEG-MPX6-CC-BLUE 数字显示器,并 改变了一些 I/O 连接,如图 4.1-1 所示,然后选择 80C51CPU 进行汇编程序编辑。经 过仿真得知,通过 S1、S2、S3 和 S4 四个按键,可以对时间进行修改和闹钟的设置, 定时时间到能发出报警声,系统非常完善地实现了所有要求的功能。 图 4.1-1 系统的 proteus 仿真图 4.2 系统的调试 将所编程序在 KEIL 软件里进行编译,编译正确后生成 HEX 文件。 在 AT89C51 芯 片中加载此文件后,对完成的实物作品进行调试。系统运行后,能准确的显示时间, 并能通过 S1、S2、S3 和 S4 四个按键对时间进行修改和闹钟定时时间的设置,定时时 间到能发出报警声。 XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.7/RD 17 P3.6/WR 16 P3.5/T1 15 P2.7/A15 28 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 U1 AT89C51 X1 CRYSTAL C1 30p C2 30p 2 3 4 5 6 7 8 9 1 RP1 RESPACK-8 D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9 Q0 19 Q1 18 Q2 17 Q3 16 Q4 15 Q5 14 Q6 13 Q7 12 LE 11 OE 1 U2 74HC573 D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9 Q0 19 Q1 18 Q2 17 Q3 16 Q4 15 Q5 14 Q6 13 Q7 12 LE 11 OE 1 U3 74HC573 LS1 SPEAKER R1 1k Q1 PNP 14 5 结束语 设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实 践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发 展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说 得是无处不在,作为二十一世纪的大学生来说掌握单片机的开发技术是十分重要的。 通过本次单片机原理及应用设计使我充分认识到了设计的重要性和必要性,本次 设计使我对已学过的基础知识有了更深入的理解,学会了独立思考、独立工作以及对 应用所学基本理论分析和解决实际问题的能力有了很大的提高。另外,本次设计使我 的实际操作技能得到了训练, 同时也进一步培养了我严谨的科学作风。 回顾起此次单片机课程设计,从选题到定稿,从理论到实践,可以说得是有苦有 甜,但是从中却学到很多很多的的东西,不但巩固了以前所学过的知识,而且对单片 机原理课外知识也得到了拓展。做的过程中,开始的确遇到了不少困难的问题,比如 说芯片管脚不熟悉怎么放置等,同时在这过程中也发现了自己的许多不足之处,对以 前所学过的知识理解得不够深刻,掌握得不够牢固。 通过单片机设计之后,我不仅加深了对单片机理论的理解,将理论很好地应用到 实际当中去,而且我们还学会了如何去培养创新精神和严谨的科学作风,从而不断地 战胜自己,超越自己。更重要的是,我在这一设计过程中,学会了坚持不懈,绝不放 弃。 在本次设计中我遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。尤 其要强烈感谢我的毕业设计指导老师 XX 老师,他对我进行了无私的指导和帮助不厌其 烦的帮助进行毕业设计修改和改进。XX 老师严谨的治学态度、渊博的学术知识、诲人 不倦的敬业精神以及宽容的待人风范使我获益颇多。在此向帮助和指导我的 XX 老师表 示最衷心的感谢! 15 附录 1 源程序代码 汇编语言程序:汇编语言程序: ;* 引脚及变量定义 * S1 BIT P3.2 ;按键1 S2 BIT P3.3 ;按键2 S3 BIT P3.4 ;按键3 S4 BIT P3.5 ;按键4 SPEAKER BIT P2.0 ;蜂鸣器 DULA BIT P2.6 ;段选锁存器锁存端 WELA BIT P2.7 ;位选锁存器锁存端 HOUR1 EQU 20H ;小时 MIN1 EQU 21H ;分钟 SEC1 EQU 22H ;秒钟 HOUR2 EQU 23H ;小时定时变量 MIN2 EQU 24H ;分钟定时变量 A1 EQU 25H ;显示变量 B1 EQU 26H C1 EQU 27H D1 EQU 28H E1 EQU 29H F1 EQU 30H A2 EQU 31H B2 EQU 32H C2 EQU 33H D2 EQU 34H NUM1 EQU 35H ;按键计数变量1 NUM2 EQU 36H ;按键计数变量2 COUNT EQU 37H ;计时变量 ORG 0000H 16 LJMP MAIN ORG 000BH LJMP TIME ;* MAIN PROGRAM * ORG 1000H MAIN: MOV SP,#50H START: MOV HOUR1,#00H ;初始化时间变量 MOV MIN1,#00H MOV SEC1,#00H MOV HOUR2,#01H ;初始化定时变量 MOV MIN2,#01H MOV COUNT,#00H ;初始化计时变量 MOV NUM1,#00H ;初始化按键计数变量 MOV NUM2,#00H MOV TMOD,#01H ;16位计数器 MOV TH0,#0D8H ;赋初值 MOV TL0,#0EFH SETB ET0 ;中断允许 SETB EA SETB TR0 ;启动T0 LOOP: MOV A,NUM2 JNZ LOOP1 ;A不为0时转移 LCALL DISPLAY1 ;显示当前时间 LCALL KEYTIME ;调用时间调整子程序 LCALL SETTIME ;调用定时设置子程序 LJMP LOOP LOOP1: LCALL DISPLAY2 ;显示定时时间 LCALL KEYTIME ;调用时间调整子程序 LCALL SETTIME ;调用定时设置子程序 LJMP LOOP 17 ;* SETTIME PROGRAM * SETTIME: ;定时设置子程序 LL1: JB S2,LL3 ;P3.3=1时转移 LCALL DELAY5 ;延时5MS MSTOP1: JB S2,LL3 ;P3.3=1时转移 MOV C,S2 JNC MSTOP1 ;P3.3=0时转移 INC NUM2 ;按键计数变量加1 MOV A,NUM2 CJNE A,#1,LL2 ;判断按键计数是否为1 CLR TR0 ;定时器中断关闭 LL2: CJNE A,#3,LL ;判断按键计数是否为3 MOV NUM2,#0 ;按键计数变量清0 SETB TR0 ;定时器中断打开 LL: LCALL DISPLAY2 ;显示定时时间 LL3: MOV A,NUM2 JZ LL5 ;A为0时转移 JB S3,KK2 ;P3.4=1时转移 LCALL DELAY5 ;延时5MS KK1:JB S3,KK2 ;P3.4=1时转移 MOV C,S3 JNC KK1 ;P3.4=0时转移 MOV A,NUM2 CJNE A,#1,MM1 ;判断按键计数是否为1 INC HOUR2 ;小时定时变量加1 MOV A,HOUR2 CJNE A,#24,MM1 ;判断小时定时变量是否为24 MOV HOUR2,#0 ;小时定时变量为24则复位0 LCALL DISPLAY2 ;显示定时时间 MM1:LCALL DISPLAY2 ;显示定时时间 18 MOV A,NUM2 CJNE A,#2,KK2 ;判断按键计数是否为2 INC MIN2 ;分钟定时变量加1 MOV A,MIN2 CJNE A,#60,KK2 ;分钟定

温馨提示

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

评论

0/150

提交评论