




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、I 智能定时闹钟设计学生:XXX 指导教师:XXX内容摘要:学习和巩固单片机技术、电子技术、传感器技术及智能仪器等知识,使对已学过的基础知识能有更深入的理解,并融会贯通。学会独立思考、独立工作,培养一定的自学能力和独立分析问题能力,以及增强系统地运用已学理论知识去解决实际问题的能力,同时培养成良好的科学态度和严谨的设计习惯本设计采用单片机 AT89C51 作为核心元件,12MHZ 晶振,由 P0 口输出所要显示的字形段码,由 P2 口输出字位信号。在其基础上扩展外围芯片与电路,附加时钟电路及LED 电路。LED 采用共阴极接法,低电平有效选中相应的 LED。 单片机具有集成度高、功能强、通用性
2、好、特别是它能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便等独特的优点,所以单片机现在广泛的应用到家用电器、机电产品、儿童玩具、机器人、办公自动化产品等领域。为了进一步的熟悉并掌握单片机的应用及开发,认真的做好此次课程设计非常必要。 一个单片机的定时闹钟系统离不开软件和硬件,硬件是软件的依托,软件是硬件的内核。设计硬件电路时应该先设计一个单片机的最小系统,它是单片机应用系统的设计基础,然后在此基础上添加外围器件,如显示器、按键等构成闹钟的硬件电路图。在设计应用程序时遵循模块化的设计方法,在明确了设计方向之后按照分成的几大模块分别画出流程图,然后根据流程图写出程序,在每个模块编写好之后分别调
3、试、修改、完善。最后在主程序下调用再次调试、修改。 通过这次设计让我更深入了解单片机基本电路、如何控制和定时器和中断编程的基本方法,从而锻炼了我学习、设计和开发软、硬件的能力。关键词:定时闹钟系统 传感器技术 智能仪器 阴极接法IISmartSmart timertimer alarmalarm clockclock designdesignAbstract:Abstract: Learning and consolidation of the knowledge of microcomputer technology, electronic technology, sensor techno
4、logy 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 s
5、olve 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 t
6、he 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 a
7、nd 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 v
8、ery 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 applicatio
9、n 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.IIIKeywordsKeywords: timing alarm system sensor technology, intelligent ins
10、truments and cathode connection 目 录前言 .1 1 设计目的及意义.1 1.1 设计任务.1 1.2 设计系统的主要功能.12 系统总体方案及硬件设计.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 调时模块设计.93 软件设计.10 3.1 主程序流程图.10 3.2 定时中断子程序流程图.11 3.3 程序设计.124 系统的仿真与调试.13 4.1 PROTEUS软件仿真.13 4.2 系统的调试.135 结束语.1
11、4附录 1:源程序代码.14附录 2:系统原理图.25参考文献.26IV1基于智能定时闹钟系统设计前言学习和巩固单片机技术、电子技术、传感器技术及智能仪器等知识,使对已学过的基础知识能有更深入的理解,并融会贯通。学会独立思考、独立工作,培养一定的自学能力和独立分析问题能力,以及增强系统地运用已学理论知识去解决实际问题的能力,同时培养成良好的科学态度和严谨的设计习惯本设计采用单片机 AT89C51 作为核心元件,12MHZ 晶振,由 P0 口输出所要显示的字形段码,由 P2 口输出字位信号。在其基础上扩展外围芯片与电路,附加时钟电路及 LED 电路。1 设计目的及意义学习和巩固单片机技术、电子技
12、术、传感器技术及智能仪器等知识,使对已学过的基础知识能有更深入的理解,并融会贯通。学会独立思考、独立工作,培养一定的自学能力和独立分析问题能力,以及增强系统地运用已学理论知识去解决实际问题的能力,同时培养成良好的科学态度和严谨的设计习惯。1.1 设计任务完成所选题目的分析与设计,达到技术性能要求。提交正式课程设计总结报告一份。本文设计的定时闹钟的核心模块采用 AT89C51 芯片,时、分、秒用 6 位 LED 数码管显示。在电路中通过四个按键 S1、S2、S3 和 S4 来进行定时、调时和复位,定时时间到通过蜂鸣器发出报警声。1.2 设计系统的主要功能 能显示 时时分分秒秒。 能够设置定时时间
13、、 修改定时时间。 定时时间到能发出报警 单片机的时钟产生方法有两种: 内部时钟方式和外部时钟方式。 本系统中AT89C51单片机采用内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHz12MHz之间。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响修改时间和定时用手动按键控制,报警声通过蜂鸣器发出。这样可以使得硬件电路设计较为简单,且软件设计也易于实现,并能够降低成本其集成度高、功能强、能耗低、通用性好、价格便2宜。该器件采用ATMEL高密度非易失存储器制造技术制造。22 系统总体方案及硬件设计2.1 系统总体
14、方案 由于 LED 显示器相对于其它显示器(如 LCD 显示器)来说其价格要便宜许多,而且亮度更高,耐温范围较广,所以采用 6 位数码管来显示“时时分分秒秒”。 时间的定时用单片机内部时钟电路,在一定的时间内能使其误差较小,如经过一年其误差才仅有数秒。修改时间和定时用手动按键控制,报警声通过蜂鸣器发出。这样可以使得硬件电路设计较为简单,且软件设计也易于实现,并能够降低成本。 核心模块采用 AT89C51 单片机,功能强、通用性好、价格便宜,且易于控制。加上外围器件(数码管、排阻、按键和蜂鸣器)和应用程序,便构成了相应的应用系统。2.2 系统设计总框图(如图 2.2-1 所示)图 2.2-1 定
15、时闹钟系统设计总框图2.3 硬件设计2.3.1 单片机最小系统设计芯片:AT89C51 因为 51 单片机是各单片机中最为典型和最有代表性的一种,在 20 世纪 70 年代问时钟电路和复位电路键盘(按钮) 单片机AT89C51蜂鸣器数码管显示3世以来,以其极高的性能价格比,受到人们的重视和关注,应用广泛,发展很快,推广率和市场利润率较高,且适合于本设计系统中 CPU 内存和 I/O 等资源的要求,所以本设计采用 AT89C51 作为核心控制芯片。AT89C51 是一种带 4KB 闪烁可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read O
16、nly Memory)的单片机,可稳定地工作于 5V 的电源下。其集成度高、功能强、能耗低、通用性好、价格便宜。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器。其组合而成的配件产品在日常生活的使用过程中非常方便、简单且实用,深受着广大消费者的喜爱。AT89C51管脚说明如下: Vic:供电电压端。 God:接地端。 P0口:P0口为三态双向口,能带8个TTL电路。有两种功能:第一功能是一个8位漏极开路型的双向I/O口,这时P
17、0口可看作数据总线;第二功能是在访问外部存储器时,分时提供低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位地址外部数据存储
18、器进行存取时,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串行输出口4P3.20INT外部中断0输入P3.31INT外部中断1输入P3.40T定时/计时器0外部输入P3.51T定时/计时器1外部输入P3.6WR外部数据存储器写信号P3.7RD
19、外部数据存储器读信号RSTVPP:RST为复位信号输入端。当振荡器复位器件时,要保持RST脚两个机器周期(24个时钟周期)以上的高电平时间。VAP为内部RAM的备用电源输入端。当主电源一旦发生断电或电压降到一定值时,可通过VCC为单片机内部RAM提供电源,以保护CCV片内RAM中的信息不丢失,使VCC上电后能继续正常运行。 ALOE/PROG:ALE为地址锁存允许信号,当访问外部存储器时,ALE用来锁存P0口送出的低8位地址信号。在FLSH编程期间,PROG用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。
20、然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR的8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令时才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的读选通信号。在由外部程序存储器取指期间,PSEN产生负脉冲做为外部ROM的选通信号,每个机器周期两次PSEN有效。但在访问外部数据存储器时,不会产生有效的PSEN信号。PSEN可驱动8个LETTEN门输入端。 Earp:访问外部程序存储器控制信号。当EA保持低电平时,则在此期间只访问外部程序存储器(0000H-FFFFH) ,不
21、管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RST。当EA端保持高电平时,CPU访问程序存储器有两种情况:一是访问的地址空间在0到4KB范围内,CUP访问片内程序存储器;二是访问的地址超出4KB时,CPU将自动执行外部程序存储器的程序。在PLSAH编程期间,此引脚也用于施加12V编程电源(App.) 。XTAL1:晶体振荡电路的反向器输入端。 XTAL2:晶体振荡电路的反向器输出端。DIP 封装的 AT89C51 管脚排列如图 2.3.1-1 所示。5P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST9RXD/P3.010TXD/P3.111I
22、NT0/P3.212INT1/P3.313T0/P3.414T1/P3.515WR/P3.616RD/P3.717XTAL218XTAL119GND20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA/Vpp31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039Vcc40U189C51图 2.3.1-1 AT89C51 的管脚排列 时钟电路单片机的时钟产生方法有两种: 内部时钟方式和外部时钟方式。 本系统中AT89C51 单片机采用内部时钟方式。最常用的内部时钟方式
23、是采用外接晶体和电容组成的并联谐振回路。振荡晶体可在 1.2MHz12MHz 之间。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在20pF100pF 之间取值。AT98C51 单片机的时钟电路如图 2.3.1-2 所示。图 2.3.1-2 AT98C51 单片机的时钟电路AT89C51XTAL2XTAL1JZ12MC130PFC230PF6复位电路复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位。其作用是使 CPU 和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。单片机的外部复位电路有上电自动复位和按键手动复位两
24、种。本系统中 AT89C51 单片机采用上电加按键手动复位电路,如图 2.3.1-3 所示。S51KR110KR210uFC3VCCRST9AT89C51图 2.3.1-3 AT89C51 单片机的复位电路2.3.2 报警模块设计为实现设计的定时闹钟系统在定时时间到时发出报警声,采用蜂鸣器作为报警发声装置。在本设计中有多种报警声可供选择,可选择报警时播放音乐当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符当使能为低时,输出将锁存在已建立
25、的数据电平上。报警电路设计如图 2.3.2-1 所示。71KVCCFM12SPEAKERPNP图 2.3.2-1 定时闹钟系统的报警电路2.3.3 显示模块设计本系统中采用6位LED数码管显示时、分、秒,用两片74HC573分别对段码和位码进行锁存,实现动态扫描方式显示,节省单片机I/O口资源,简化硬件电路。 LED 显示器单片机中通常使用 8 段 LED,LED 是发光二极管显示器的缩写。LED 显示器由于结构简单,价格便宜,体积小,亮度高,电压低,耐温范围广,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。LED 显示器是由若干个发光二极管组成显示字段的显
26、示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。LED 显示器有多种形式,如:“米”字型显示器,点阵显示器和七段数码显示器等。在本系统中采用八段数码显示器。因为共阴极的 LED 数码管它的驱动电流是分开的,在单片机进行动态扫描的时候不会影响彼此的电流,故本系统中的 6 位 LED 数码管均用共阴极的数码管。 74HC573 芯片特点:三态总线驱动输出,置数全并行存取,缓冲控制输入,使能输入有改善抗扰度的滞后作用。 原理说明:74HC573 的八个锁存器都是透明的 D 型锁存器,当使能(G)为高时,Q 输出将随数据(D)输入而变。当使能为低时
27、,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。74HC573 引脚说明:8OE:3 态输出使能输入(低电平有效)。D0 - D7:数据输入端。Q0 - Q7:3 态锁存输出。LE:锁存使能输入。GND:接地。VCC:电源电压。74HC573 的引脚图、逻辑图及真值表如下:E1D02D13D24D35D46D57D68D79GND10L11Q012Q113Q214Q315
28、Q416Q517Q618Q719VCC2074HC573图 2.3.3-1 74HC573 引脚图图 2.3.3-2 74HC573 逻辑图9表 2.3.3-1 74HC573 真值表OELeDdHXXZLLXNo changeLHLLLHHh显示电路将两片 74HC573 的数据输入端 D0 - D7 都分别与 AT89C51 单片机的 P0.0 - P0.7和 RESPACK-8 排阻的 2 - 9 引脚连接,两片 74HC573 的锁存使能端 L 分别接至 P2.6和 P2.7,74HC573 的输出端接至数码管,如图 2.3.3-3 所示。f9g10e1d2A3c4DP5b6a7A8D
29、S1VCCB1B2B3B4B5B6B7B8f9g10e1d2A3c4DP5b6a7A8DS2B1B2B3B4B5B6B7B8f9g10e1d2A3c4DP5b6a7A8DS3B1B2B3B4B5B6B7B8f9g10e1d2A3c4DP5b6a7A8DS4B1B2B3B4B5B6B7B8f9g10e1d2A3c4DP5b6a7A8DS5B1B2B3B4B5B6B7B8f9g10e1d2A3c4DP5b6a7A8DS6B1B2B3B4B5B6B7B8E1D02D13D24D35D46D57D68D79GND10L11Q012Q113Q214Q315Q416Q517Q618Q719VCC20U27
30、4HC573E1D02D13D24D35D46D57D68D79GND10L11Q012Q113Q214Q315Q416Q517Q618Q719VCC20U374HC573VCCVCCWE1WE2WE3WE4WE5WE6DB1DB2DB3DB4DB5DB6DB7DB8DB1DB2DB3DB4DB5DB6DB7DB8DULAWELAB1B2B3B4B5B6B7B8WE1WE2WE3WE4WE5WE6DB1DB2DB3DB4DB5DB6DB7DB8DULAWELAP1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST9RXD/P3.010TXD/P3.111INT0
31、/P3.212INT1/P3.313T0/P3.414T1/P3.515WR/P3.616RD/P3.717XTAL218XTAL119Vss20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA/Vpp31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039Vcc40U189C51图 2.3.3-3 定时闹钟系统的显示电路2.3.4 调时模块设计本系统要进行时间的调整和定时,因此用 4 个手动按键对其进行控制。键盘电路设计如图 9 所示。当按下时间调整键 S1 时,系
32、统可进行时间调整的小时设置;当再按下 S1 时,可进行时间调整的分钟设置;再按下 S1 时,可进行时间调整的秒钟设置。103 软件设计3.1 主程序流程图图 3.1-1 主程序流程图3.2 定时中断子程序流程图开始初始化显示时间S1 按下?调整时间减时调整加时调整YYYS2 按下?NNS4 按下?S3 按下?NNYS1 按下?选择报警声S3 按下?定时加时S4 按下?定时减时YYYNNN11图 3.2-1 定时中断子程序流程图3.3 程序设计 根据程序流程图采用汇编语言进行程序设计,其中主程序可根据系统实现的功能划分为以下几个子程序模块。 (程序源代码见附录 1) 时间调整子程序模块; 闹钟时
33、间设置子程序模块; 蜂鸣器报警子程序模块;开始结 束蜂鸣器响分变量加 1,秒变量清零秒变量加 11 秒到?60 秒到?定时到?60 分到?时变量加 1,分变量清零24 时到?时变量清零YNNNYYYNYN12 数码管显示子程序模块。 指示灯信号 LAMP2LAMP0 为独立扩展下载板上 CPLD 器件的第 11、10、9 脚,内部已连接并已锁定,无需外接连线。 蜂鸣器报时信号 SPEAK 为独立扩展下载板 CPLD 器件的第 31 脚,内部已连接并已锁定,无需外接连线。 拨码开关 SW1SW7 内部已连接并已锁定,无需外接连线。数码管七个段位信号 AG 为独立扩展下载板上 CPLD 器件的第8
34、6、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 时,系统恢复正常时间显示。当按下
35、设置定时键 S2 时,系统可进行闹钟定时时间的小时设置,此时 S1 作为报警声选择键,可通过 S1 选择报警声;再按下 S2时,可进行定时时间的分钟设置,此时也可通过 S1 选择报警声;第三次按下 S2 时,系统恢复正常时间显示,此时 S1 恢复为时间调整按键。设置时间时都通过加时按键 S3和减时按键 S4 进行控制。S1S2S3S4S1S2S3S4图 3.3-1 定时闹钟系统的键盘电路134 系统的仿真与调试4.1 proteus 软件仿真使用 WAVE 软件编辑程序,在仿真设置中选择 E6000/T 仿真器,选择 POD-51 仿真头。为方便系统在 proteus 中进行仿真,选择了 7S
36、EG-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 四个按键对时间进行修改和闹钟定时时间
37、的设置,定时时间到能发出报警声。XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/
38、A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC130pC230p234567891RP1RESPACK-8D02D13D24D35D46D57D68D79Q019Q118Q217Q316Q415Q514Q613Q712LE11OE1U274HC573D02D13D24D35D46D57D68D79Q019Q118Q217Q316Q415Q514Q613Q712LE11OE1U374HC573LS1SPEAKERR11kQ1PNP145 结束语设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具
39、体训练和考察过程。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在,作为二十一世纪的大学生来说掌握单片机的开发技术是十分重要的。通过本次单片机原理及应用设计使我充分认识到了设计的重要性和必要性,本次设计使我对已学过的基础知识有了更深入的理解,学会了独立思考、独立工作以及对应用所学基本理论分析和解决实际问题的能力有了很大的提高。另外,本次设计使我的实际操作技能得到了训练, 同时也进一步培养了我严谨的科学作风。回顾起此次单片机课程设计,从选题到定稿,从理论到实践,可以说得是有苦有甜,但是从中却学到很多很多的的东西,不但巩固了以前所学过的知识,而且
40、对单片机原理课外知识也得到了拓展。做的过程中,开始的确遇到了不少困难的问题,比如说芯片管脚不熟悉怎么放置等,同时在这过程中也发现了自己的许多不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 通过单片机设计之后,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我们还学会了如何去培养创新精神和严谨的科学作风,从而不断地战胜自己,超越自己。更重要的是,我在这一设计过程中,学会了坚持不懈,绝不放弃。在本次设计中我遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。尤其要强烈感谢我的毕业设计指导老师 XX 老师,他对我进行了无私的指导和帮助不厌其烦的帮助进行毕业设计修改和
41、改进。XX 老师严谨的治学态度、渊博的学术知识、诲人不倦的敬业精神以及宽容的待人风范使我获益颇多。在此向帮助和指导我的 XX 老师表示最衷心的感谢!15附录 1 源程序代码汇编语言程序:汇编语言程序:;* 引脚及变量定义 * S1 BIT P3.2 ;按键1 S2 BIT P3.3 ;按键2 S3 BIT P3.4 ;按键3 S4 BIT P3.5 ;按键4SPEAKER BIT P2.0 ;蜂鸣器 DULA BIT P2.6 ;段选锁存器锁存端 WELA BIT P2.7 ;位选锁存器锁存端 HOUR1 EQU 20H ;小时 MIN1 EQU 21H ;分钟 SEC1 EQU 22H ;秒
42、钟 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 0000H16 LJMP MAIN ORG 000BH LJMP TIME;* MAIN PROGRAM * ORG 1000HMAIN: M
43、OV SP,#50HSTART: 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 ;启动T0LOOP: MOV A,NUM2 JNZ LOOP1 ;A不为0时转移 LC
44、ALL DISPLAY1 ;显示当前时间 LCALL KEYTIME ;调用时间调整子程序 LCALL SETTIME ;调用定时设置子程序 LJMP LOOPLOOP1: LCALL DISPLAY2 ;显示定时时间 LCALL KEYTIME ;调用时间调整子程序 LCALL SETTIME ;调用定时设置子程序 LJMP LOOP 17;* SETTIME PROGRAM *SETTIME: ;定时设置子程序LL1: JB S2,LL3 ;P3.3=1时转移 LCALL DELAY5 ;延时5MSMSTOP1: JB S2,LL3 ;P3.3=1时转移 MOV C,S2JNC MSTOP
45、1 ;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 ;延时5MSKK1:JB S3,KK2 ;P3.4=1时转移 MOV C,S3 JNC KK1 ;P3.4=0
46、时转移 MOV A,NUM2 CJNE A,#1,MM1 ;判断按键计数是否为1INC 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 ;分钟定时变量加1MOV A,MIN2 CJNE A,#60,KK2 ;分钟定时变量是否为60 MOV MIN2,#0 ;分钟定时变量为60则复位
47、0 LCALL DISPLAY2 ;显示定时时间KK2:LCALL DISPLAY2 ;显示定时时间JB S4,LL5 ;P3.5=1时转移 LCALL DELAY5 ;延时5MSKK3:JB S4,LL5 ;P3.5=1时转移 MOV C,S4 JNC KK3 ;P3.5=0时转移 MOV A,NUM2 CJNE A,#1,MM2 ;判断按键计数是否为1 DEC HOUR2 ;小时定时变量减1 MOV A,HOUR2 CJNE A,#0,MM2 MOV HOUR2,#24 LCALL DISPLAY2 ;显示定时时间MM2:LCALL DISPLAY2 ;显示定时时间 MOV A,NUM2
48、CJNE A,#2,LL5 ;判断按键计数是否为2DEC MIN2MOV A,MIN2 ;分钟定时变量减1CJNE A,#0,LL5MOV MIN2,#60LL5: LCALL DISPLAY2 ;显示定时时间RET ;* KEYTIME PROGRAM *KEYTIME: ;时间调整子程序19L1: JB S2,L3 ;P3.2=1时转移 LCALL DELAY5 ;延时5MSMSTOP2: JB S2,L3 ;P3.2=1时转移 MOV C,S2 JNC MSTOP2 ;P3.2=0时转移 INC NUM1 MOV A,NUM1 CJNE A,#1,L2 ;判断按键计数是否为1 CLR T
49、R0 ;定时器中断关闭L2: CJNE A,#4,L3 ;判断按键计数是否为4MOV NUM1,#0 SETB TR0 ;定时器中断打开L3: MOV A,NUM1 JNZ FF ;A不为0时转移 LJMP L5FF: JB S3,K2 ;P3.4=1时转移 LCALL DELAY5 ;延时5MSK1: JB S3,K2 ;P3.4=1时转移 MOV C,S3 JNC K1 ;P3.4=0时转移 MOV A,NUM1 CJNE A,#1,M1 ;判断按键计数是否为1 INC HOUR1 ;小时设置加1 MOV A,HOUR1 CJNE A,#24,M1 MOV HOUR1,#0 LCALL D
50、ISPLAY1 ;显示调整时间M1: LCALL DISPLAY1 ;显示调整时间 MOV A,NUM1CJNE A,#2,M2 ;判断按键计数是否为2INC MIN1 ;分钟设置加120MOV A,MIN1CJNE A,#60,M2MOV MIN1,#0LCALL DISPLAY1 ;显示调整时间M2: LCALL DISPLAY1 ;显示调整时间MOV A,NUM1CJNE A,#3,K2 ;判断按键计数是否为3INC SEC1MOV A,SEC1CJNE A,#60,K2MOV SEC1,#0LCALL DISPLAY1 ;显示调整时间K2: LCALL DISPLAY1 ;显示调整时间
51、JB S4,L5 ;P3.5=1时转移 LCALL DELAY5 ;延时5MSK3: JB S4,L5 ;P3.5=1时转移 MOV C,S4JNC K3 ;P3.5=0时转移MOV A,NUM1CJNE A,#1,M3 ;判断按键计数是否为1DEC HOUR1MOV A,HOUR1CJNE A,#0,M3MOV HOUR1,#24LCALL DISPLAY1 ;显示调整时间M3: LCALL DISPLAY1 ;显示调整时间MOV A,NUM1CJNE A,#2,M4 ;判断按键计数是否为2DEC MIN1MOV A,MIN1CJNE A,#0,M421MOV MIN1,#60LCALL D
52、ISPLAY1 ;显示调整时间M4: LCALL DISPLAY1 ;显示调整时间MOV A,NUM1CJNE A,#3,L5 ;判断按键计数是否为3INC SEC1MOV A,SEC1CJNE A,#0,L5MOV SEC1,#60L5: LCALL DISPLAY1 ;显示调整时间RET ;* TIMEPRO PROGRAM *TIMEPRO: MOV R7,#50 ;蜂鸣器报警子程序 CLR SPEAKER ;启动蜂鸣器报警 LCALL DELAYN ;延时50MS SETB SPEAKER LCALL DELAYN CLR SPEAKER LCALL DELAYN SETB SPEAK
53、ER;* DISPLAY1 PROGRAM *DISPLAY1: ;显示子程序1 PUSH ACC ;保护现场 MOV A,HOUR1 ;将时间的十位和个位分别赋给显示变量 MOV B,#10 DIV AB MOV A1,A MOV B1,B MOV A,MIN122 MOV B,#10 DIV AB MOV C1,A MOV D1,B MOV A,SEC1 MOV B,#10 DIV AB MOV E1,A MOV F1,BMOV DPTR,#TABLE;指向7段编码表首地址 CLR DULA;关闭段选锁存器锁存端MOV A,A1 MOVC A,A+DPTR MOV P0,A;显示小时十位S
54、ETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0FEH;选择第1位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5 CLR DULA;关闭段选锁存器锁存端MOV A,B1 MOVC A,A+DPTR MOV P0,A;显示小时个位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0FDH;选择第2位数码管23 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5 CLR DULA;关闭段选锁
55、存器锁存端MOV A,C1 MOVC A,A+DPTR MOV P0,A;显示分钟十位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0FBH;选择第3位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5 CLR DULA;关闭段选锁存器锁存端MOV A,D1 MOVC A,A+DPTR MOV P0,A;显示分钟个位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0F7H;选择第4位数码管 SETB WELA;打开位选锁
56、存器锁存端 CLR WELA LCALL DELAY5 CLR DULA;关闭段选锁存器锁存端MOV A,E1 MOVC A,A+DPTR24 MOV P0,A;显示秒钟十位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0EFH;选择第5位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5 CLR DULA;关闭段选锁存器锁存端MOV A,F1 MOVC A,A+DPTR MOV P0,A;显示秒钟个位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选
57、锁存器锁存端 MOV P0,#0DFH;选择第6位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5POP ACC ;恢复现场 RET;* DISPLAY2 PROGRAM *DISPLAY2: ;显示子程序2 PUSH ACC ;保护现场 MOV A,HOUR2 ;将时间的十位和个位分别赋给显示变量 MOV B,#10 DIV AB MOV A2,A MOV B2,B25 MOV A,MIN2 MOV B,#10 DIV AB MOV C2,A MOV D2,B MOV DPTR,#TABLE;指向7段编码表首地址 CLR DULA;关闭段选锁存器锁
58、存端MOV A,A2 MOVC A,A+DPTR MOV P0,A;显示定时时间的小时十位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0FEH;选择第1位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5 CLR DULA;关闭段选锁存器锁存端MOV A,B2 MOVC A,A+DPTR MOV P0,A;显示定时时间的小时个位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0FDH;选择第2位数码管 SETB WEL
59、A;打开位选锁存器锁存端 CLR WELA LCALL DELAY526 CLR DULA;关闭段选锁存器锁存端MOV A,C2 MOVC A,A+DPTR MOV P0,A;显示定时时间的分钟十位SETB DULA;打开段选锁存器锁存端 CLR DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0FBH;选择第3位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5 CLR DULA;关闭段选锁存器锁存端MOV A,D2 MOVC A,A+DPTR MOV P0,A;显示定时时间的分钟个位SETB DULA;打开段选锁存器锁存端 CLR
60、DULACLR WELA;关闭位选锁存器锁存端 MOV P0,#0F7H;选择第4位数码管 SETB WELA;打开位选锁存器锁存端 CLR WELA LCALL DELAY5POP ACC ;恢复现场RET;* DELAY PROGRAM *DELAYN: ;N ms延时子程序,R7为参数NDL00: MOV R5,#05H DL11: MOV R6,#0DFH27DL22: DJNZ R6,DL22 DJNZ R5,DL11 DJNZ R7,DL00 RETDELAY5: MOV R4,#14H ;5ms延时子程序DL001: MOV R5,#0FFHDL111: DJNZ R5,DL11
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海市静安区、青浦区2024-2025学年高三下学期入学考试题生物试题文试题含解析
- 吉林省五地六市联盟2025届高三下学期第二次高考模拟语文试题含解析
- 江西省抚州市临川2024-2025学年初三下学期一模考试数学试题含解析
- 吉林省白城市洮北区第一中学2025届高考诊断性测试物理试题含解析
- 温州市苍南县重点中学2024-2025学年初三第五次调研考试语文试题含解析
- 云南省昆明市晋宁县2025届数学四下期末预测试题含解析
- 山东省临沂市兰山区2025届初三第二次教学质量检测试题语文试题含解析
- 米兰家居全屋定制合同范本
- 吉林省通化市梅河口五中2025届高三上学期12月月考-物理试题(含答案)
- 员工股权激励合同
- [水稳层]旁站监理记录表(范本)√
- 小学四年级上册数学课后训练题:《数字编码》
- 长城牌通用润滑油、脂替代其他品牌产品清单
- 沈萍微生物学第七章
- API-682密封系统-中英文对照版
- 电动葫芦出厂检验报告
- 挖机大中斗油封资料,液压泵资料
- 技术开发部个人技能矩阵图
- Hillstone设备密码与配置恢复方法
- 二年级下册语文教案第六单元部编版
- 废气处理工程施工方案模板
评论
0/150
提交评论