用单片机制作学用打铃器本科论文.doc

上传人:仙人指路1688 文档编号:3988589 上传时间:2023-03-30 格式:DOC 页数:42 大小:1.11MB
返回 下载 相关 举报
用单片机制作学用打铃器本科论文.doc_第1页
第1页 / 共42页
用单片机制作学用打铃器本科论文.doc_第2页
第2页 / 共42页
用单片机制作学用打铃器本科论文.doc_第3页
第3页 / 共42页
用单片机制作学用打铃器本科论文.doc_第4页
第4页 / 共42页
用单片机制作学用打铃器本科论文.doc_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《用单片机制作学用打铃器本科论文.doc》由会员分享,可在线阅读,更多相关《用单片机制作学用打铃器本科论文.doc(42页珍藏版)》请在三一办公上搜索。

1、本 科 生 毕 业 论 文学 院 电气信息工程学院 专 业 电子信息工程 届 别 2010级 题 目 用单片机制作学用打铃器 学生姓名 张红兴 学 号 201012409148 指导教师 董永涛 教 务 处 制云南民族大学毕业论文(设计)原创性声明本人郑重声明:所呈交的毕业论文(设计),是本人在指导教师的指导下进行研究工作所取得的成果。除论文中已经注明引用的内容外,本论文没有抄袭、剽窃他人已经发表的研究成果。本声明的法律结果由本人承担。 毕业论文(设计)作者签名: 日期: 年 月 日关于毕业论文(设计)使用授权的说明本人完全了解云南民族大学有关保留、使用毕业论文(设计)的规定,即:学校有权保留

2、、送交论文的复印件,允许论文被查阅,学校可以公布论文(设计)的全部或部分内容,可以采用影印或其他复制手段保存论文(设计)。(保密论文在解密后应遵守)指导教师签名: 论文(设计)作者签名: 日期: 年 月 日摘 要 基于目前广泛应用的传统电铃噪音大,声音刺耳,不符合人们追求。”绿色环保”生活环境的要求,我采用电力电子技术设计了一种新型变流直流电铃,可模拟人工打铃效果,有效地减少了环境噪音污染,有很好的实用价值。在此基础上,采用AT89C52单片机设计了一套智能自动打铃系统该系统由三部分组成:程序控制部分、单片机硬件电路部分和电路仿真部分。+5V、+12V直流分别为各部分电路提供电源。变流直流电铃

3、部分主电路拓扑为断续工作的BUCK电路,使得铃声节奏符合人的听觉习惯。单片机部分由三个模块组成:时钟及其显示模块、响铃定时数据表和打铃控制模块。实时时钟随时与打铃定时数据表进行比较,当二者相吻合时,由P3.7 脚给出响铃信号,再由单稳确定响铃时间长短,驱动继电器吸合从而接通电铃电路的主电源,完成自动定时响铃任务。 关键词 : 单片机;时间设置电路;计时电路;显示电路;定时打铃控制电路 ABSTRACTBased on the current extensive use of the traditional noisy bells, the sound harsh, it does not me

4、et the pursuit. Green living environment of the request, I use power electronics technology, has designed a new type of inverter DC bell, can simulate the effect of artificial rang the bell, effectively reducing the environmental noise pollution; there is a good practical value. On this basis, using

5、 AT89C52 microcontroller designed a set of intelligent automatic rang the bell system, the system consists of three components: process control part of the microcontroller hardware circuit part and the circuit simulation part of the. +5 V, +12 V DC, respectively to provide power for the various part

6、s of the circuited converter topology for the bell part of the main circuit intermittent work, BUCK circuit, making the rhythm ring tones used to meet the persons hearing. SCM in part by three modules: the clock and the display module, ringing bells timing data table and playing control module. Real

7、-time clock and rang the bell at any time to compare tables from time to time, when the two identities coincide, is given by the P3.7 pin ring signal, then determine the ringing duration of a single stable, driver relay pull-in. Bell circuit to connect the main power supply to complete the task of a

8、utomatic timing ring.Key word monolithic integrated circuit: Single chip microcomputer; Time setting circuit; Timing circuit; Display circuit; The timing of ringing the bell control circuit目录摘要- 3 -ABSTRACT- 3 -第一章 绪 论- 4 -第二章 设计方案论证- 5 -1.1 设计要求- 5 -1.2 设计方案选择- 5 -1.2.1 方案一:数字电路设计的自动打铃系统- 5 -1.2.2

9、方案二:基于单片机的自动打铃系统设计- 6 -1.2.3 方案确定- 6 -1.3 基本方案- 6 -1.3.1 设计课题简要概述- 6 -1.3.2 系统软硬件划分- 6 -1.3.3 单片机选型- 7 -1.4 总体设计框图- 7 -第三章 硬件电路设计- 8 -2.1 基本原理概述- 8 -2.2 主要原件参数及功能简介- 8 -2.2.1 主控器AT89C51- 8 -2.2.2 时钟电路DS1302- 9 -2.3 单元电路的设计- 10 -2.3.1显示电路设计- 10 -2.3.2 键盘接口电路设计- 11 -2.3.3 响铃电路设计- 12 -2.4 总体运行进程- 12 -第

10、四章 软件电路设计及流程图- 13 -3.1 基本原理概述- 13 -3.1.1 中断服务程序设计- 13 -3.1.2 显示程序设计和按键判断与按键处理程序设计- 13 -3.2 流程图- 14 -3.2.1 系统主程序流程图- 14 -3.2.2 系统定时中断流程图- 15 -第五章 系统程序设计- 16 -4.1 程序设计概要- 16 -4.2 源程序清单- 17 -第六章 自动打铃硬件原理图- 37 -第七章 毕业设计总结- 38 -参考文献- 39 -致谢- 40 - 第一章 绪 论 校园打铃系统就是利用现代计算机、通讯等技术,以传统的铃声系统为基础,根据用户对铃声系统功能的要求,由

11、单片机来控制、管理、播放的系统。通过把播放的内容以数字形式存放在存储器中,然后单片机通过控制软件,按照学校设定的播放时间和内容控制单片机自动将存储器中的数字音乐文件播放出来。铃声控制系统整体由两部分组成:主控中心和终端电铃。主控中心以单片机为核心,包括控制电路、显示电路、键盘电路和存储电路。终端电铃为响应控制设备,通过其自身的控制系统可以获得清晰、响亮的声响。单片机在电子产品中的应用已经越来越广泛,并且在很多电子产品中也将其用到校园铃声和广播控制。单片机又称单片微控制器,是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供

12、了便利条件。 现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词“智能型”,如智能型洗衣机等。本次设计是实现一个单片机的校园打铃系统,能过设置打铃时间,同时要求能够在系统掉电时,时间能够继续,数据能够保持,能够实现打铃。 第二章 设计方案论证1.1 设计要求 它可以作为时钟电路来显示时间,进行设置,定时打铃。按照自顶向下设计方法划分自动打铃系统的功能。可分为:时间设置电路,计时电路,显示电路和定时打铃控制电路等。1.基本计时和显示功能。2.可设置当前时间(包括上下午标志,时

13、、分的数字显示)。3.能实现基本打铃功能,规定:上午7:30早自习:打铃5秒、停2秒、再打铃5秒。下午10:30熄灯铃:打铃5秒、停2秒、再打铃5秒。1.2 设计方案选择1.2.1 方案一:数字电路设计的自动打铃系统利用函数信号发生器来进行脉冲信号输出,利用74160N来设置十进制和六进制的进位输出。利用数码显示器来显示时间,利用或门、与门、非门、与非门、等电路元件进行组合实现打铃的控制。1.2.2 方案二:基于单片机的自动打铃系统设计单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,没产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零

14、,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。建立完一个实时时钟后接下来进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间与信息时间表上的作息时间是否相同,相同者,则进行报时处理并控制打铃,不相同则返回主程序。1.2.3 方案确定方案一的设计只能事先设定打铃时间不能完全自动打铃,且在修改打铃时间上存在一定的困难。而方案二中的设计能完全实现自动化,诠释了我们这次毕业设计的主题。并在修改打铃时间上有了很大的方便,只需修改一部分程序便能实现不同的需要。因此我选择方案二进行设计。1.3 基本方案1.3.1 设计课题简要概

15、述自动打铃装置用于工厂、学校等地的时间控制,本设计是按照学校作息时问设定的,模拟了电了钟显示时、分、秒。还根据学校的作息时间按时打铃,本系统有4 个按钮,分别用来调时、调分、秒和强制打铃及强制关铃,以保证始终与标准时间相吻合。首先设计出本系统的硬件基本框图,根据框图设计电气原理图,简要概述基本原理,按照设计技术参数设计出各部分程序。1.3.2 系统软硬件划分由于需要最小系统设计,因此,极大地介于系统的硬件成本,所有能用软件实现的功能都用软件完成,如按键的去抖,采用延时,显示部分用动态显示等,这样硬件部分的设计可以采用单片机最小系统,所谓最小系统时仅有程序存储器和时钟及复位电路的单片机系统。1.

16、3.3 单片机选型根据课题的具体内容,任务要求,计时、校时、定时、键盘显示等功能,经多方面考虑,所选系统选项用与MSC-51单片机完全兼容的AT89C51 低功耗单片机。1.4 总体设计框图图一 整体框图第二章 硬件电路设计2.1 基本原理概述本系统主要由主控模块,时钟模块,显示模块,键盘接口模块等4 部分构成。通过内部定时产生中断,从而使驱动电铃打铃。设定51 单片机工作在定时器工作方式1 ,每100ms产生一次中断,利用软件将基准100ms 单元进行累加,当定时器产生10 次中断就产生lS 信号,这是秒单元加1 。同理,对分单元和时单元计数从而产生秒,分,时的值,通过六位七段显示器进行显示

17、。由于动态显示法需要数据所存等硬件,接口较复杂,考虑显示只有六位,且系统没有其他浮躁的处理程序,所有采用动态扫描LED 的显示。本系统采用四个按键,当时钟时间和设置时间一直时,驱动程序动作,进行打铃,每次打铃30S2.2 主要原件参数及功能简介2.2.1 主控器AT89C51AT89C51 公司生产的AT89C51 单片机用高性能的静态89C51 设计,由先进工艺制造,并带有非易失性FLASH 程序存储器,它是 种高性能、低功耗的8 位CMOS 微处理芯片,市场应用最多。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能

18、够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P3.0(RXD):串行输入口P3.1(TXD):串行输出口图二 AT89C512.2.2 实时时钟DS1302寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关

19、,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。1)性能特性DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:1.R

20、SE复位,2.I/O数据线,3.SCLK 串行时钟。时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信。DS1302 工作时功耗很低,保持数据和时钟信息时功率小十1mW 。提供秒分时日日期。月年的信息,每月的天数和闰年的天数可自动调整时钟,操作可通过AM/PM 指示决定采用24 或12 小时格式。 2)管脚描述XI XZ 32.768KHz 晶振管脚GND 接地RST 复位脚I/O 数据输入/输出引脚SCLK 串行时钟Vcc1,Vcc2 电源供电管脚DS1302 串行时钟芯片8 脚 DIPDS1302S 串行时钟芯片8 脚 SOIC 200milDS1302Z 串行时钟芯片

21、8 脚 SOIC 150mil3)引脚连接图图三 图3-5 DS1302引脚连接图2.3 单元电路的设计2.3.1时钟电路设计(2)工作原理DS1302在任何数据传送时必须先初始化,把RST引脚置为高电平,然后把8位地址和命令装入移位寄存器,数据在SCLK的上升沿被输入,无论是读周期还是写周期开始8位指定40个寄存器中哪个将被访问到,在开始8个时钟周期,把命令字节装入揿位寄存器之后,另外的时钟周期在闱时操作时输出数据,在写操作时写入数据,时钟脉冲的个数在单位字节下为8加8,在多字节方式下为8加字节数,最大可达248字节数。为了提高对32个地址的寻址能力,可以把时钟或RAM寄存器规定为多字节方式

22、,在多字节方式中,读或写从地址0的位0开始,必须管按数据传送的次序电先的8个寄存器。但是当以多个字节写RAM时,为了传送数据不必写所有31字节,不管是否写了全部31字节,所写的每个字节都将传送至RAM。时钟暂停:秒寄存器的位7定义位时钟暂停位,当它为1时,DS1302停止振荡,进入低功耗的备份方式,通常在对DS1302进行写操作时,停止振荡,当它为0时时钟将开始启动。8051通过串口向DS1302写数据的程序框图如图3.2,其中,Px可以是8051单片机的任何一位I/O口,注意因为DS1302的数据发送或接收时序和8051的串行口不完全一致,因此,需要在TXD的输出端加反相器,另外,接收数据时

23、,不能以串行口的接收方式接收,必须将串行口当作普通I/O口进行数据接收.DS1302的晶振选用32.768KHZ,电容推荐值为6PF,因为振荡频率较低,也可以不接电容, 对计时精度影响不大。8051 PX TXDRXDVcc1Vcc2 DS1302RSTSCLKI/O X2 图3.2 DS1302写数据的程序框图2.3.1显示电路设计 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a、b、c、d、e、f、g、dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形

24、码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。数码管动态显示连接图四 显示电路2.3.2 键

25、盘接口电路设计由于键盘只有四个,采用独立式按钮,分别与8051 的P1.0, P1.1, P1.2 相连,用普通按钮10K 上拉电阻,用查询法完成读健功能。图五 按键电路2.3.3 响铃电路设计响铃电路用到了蜂鸣器、三极管、1K电阻。蜂鸣器两端分别接地和三极管。三极管一段电源另一端与电阻相连并接入AT89C51的P3.7接口。图六 响铃电路2.4 总体运行进程首先实现24小时制电子钟,在8位数码管显示,显示为时分秒,实现的格式为:23-59-59。到达预定时间启动蜂鸣器开始打铃,打铃的方式分为起床、熄灯和上下课铃两种。系统使用了4个按键,3只按键用来调整时间,另一只为强制打铃按钮。通过选择键选

26、择调整位,选中位闪烁,按增加键为选中位加1,按减少键为选中位减1。按强制打铃按钮是实现强制打铃或者强制关闭打铃。第三章 软件电路设计及流程图3.1 基本原理概述主程序首先是初始化部分,主要是计时单元清零,中断初始化,堆栈指针初始化,启动定时器工作,然后是调用显示子程序。主程序的起始存储地址是0000H单元,但由于本系统用了定时器T0的中断,中断服务程序入口地址为000BH,因此从0000H单元起存放一条短调转指令AJMP,使真正的主程序从0300H单元开始存放。3.1.1 中断服务程序设计单片机内部的定时/计数器T0定时100ms,即0.1s,10次中断即为1秒,60秒为1分,60分为1小时,

27、24小时为一天,如此循环,从而实现计时功能。编写中断服务程序关键要注意:1.现场保护,本系统中是累加器A和程序状态字PSW值的保护。2.计时处理时采用的确十进制,因此时,分,秒单元加1后要进行十进制调整,即要执行DAA指令,还要注意的是时计到24就回零,分和秒计到60就回零。3.中断返回前的现场恢复。3.1.2 显示程序设计和按键判断与按键处理程序设计显示采用的是动态显示,段控和位控都经过反相器,显示的字形代码是共阳的显示代码,位控信号输出时是高电平有效,在校时时,采用的是点亮小数点信位调节器标志,哪位小数点亮表示调整的是该为的值。显示子程序的第一部分是拆字,显示缓冲区是2FH2AH;第二部分

28、是查字型码,输出段控和位控信号,由于采用的是动态显示,所以每出输出一位的段控和位控信号要延时一定的时间,使LED显示器显示的字符时稳定的。按键判断程序有编写时应注意按键的去抖动,该系统采用的是延时去抖动的方法,延时是通过调用子程序来实现的,每个按键按下后都要等待释放后再返回。按键处理程序中的按键式校时的,所以进入按键处理程序后就关闭定时中断,对于动能键注意设置显示标志。3.2 流程图3.2.1 系统主程序流程图第四章 系统程序设计4.1 程序设计概要程序名称:51 单片机自动扫铃机控制系统说明:实现24 小时制电子钟,8 位数码管显示,显示时分秒显示格式:23-59-59(小时十位如果为0 则

29、不显示)。到预定时问启动蜂鸣器模拟打铃,蜂鸣器BEEP: P3.7。打铃方式分起床、熄幻铃和上、下课铃两种。系统使用4 只按键,3 只按键用来调整时间,另一只为闹钟按钮即定时扫铃。键SET_KFY: PI.0;通过选择键选择调整位,选中位闪烁。增加键ADD_KEY:PI.1;按一次使选中位加1。减少键DEC_KEY: PI.2;按一次使选中位位。1如果长按ADD_KEY 或DEC_KEY,识别后则进行调时快进,此时停止闪烁。如果选中位是秒,则按增加键或减少键都是将秒清零。定时扫铃键DALING_KEY: P1.3;用来强制打铃或强制关闭铃声PO 口输出数码管段选信号,P2 口输出数码管位选信号

30、。晶振12M4.2 源程序清单根据以上流程图思想,现设计系统程序思路描写如下系统的主程序如下所示:BEEP EQU P3.7 ;定义蜂l 鸣器(电铃)控制信号输出口ORG 0000H ;程序入日地址LJMP STARTORG 000BH ;定时器0中断入日地址LJMP TIMER_OORG 0300H/ * * * * 程序开始,初始化* * * * /START :SETB BEEP ;关闭蜂鸣器(电铃)SETB 48H ;使用一个bit 位用于调时闪烁标志SETB 47H ;使用一个bit 位用十产生脉冲用十调时快进时基CLR 45H ;关闭响铃方式标志MOV RI,#0 调整选择键功能标

31、志:0正常走时、1 调时、2 调分、3 调秒MOV 20H,#00H;用于控制秒基准时钟源的产生MOV 21H,#00H;清零秒寄存器MOV 22H,#00H;清零分寄存器MOV 23H,#00H;清零时寄存器MOV 24H,#00H;用于控制调时闪烁的基准时钟的产生MOV IP, #02H; IP,IE 初始化MOV IE, #82HMOV TMOD, #olH;设定定时器01 作方式1MOV THO, #3CHMOV TLO, #oBoH;赋定时初值,定时50msSETB TRO;启动定时器0MOV SP, #4OH;重设堆栈指针/ * * * * 主程序* * * * /MAIN :CJ

32、NE R1, #00H, MAINl;是否为正常走时状态LCALL BIJIAO1;调用起床、熄灯打铃比较子程序LCALL BIJIAO2;调用上、下课少打铃比较子程序LCALL DALING ;调用响铃方式执行子程序MAIN1 :LCALL DlSPLAY;调用显示子程序LCALL KEY_SCAN;调用按键检测子程序JZ MAIN;无键按下则返回重新循环LCALL SET_KEY;调用选择键处理子程序JB 46H, MAIN ;如果已进行长按调招(调时快进),则不再执行下面的单步调整LCALL ADD_KEY;调用增加键处理子程序LCALL DEC_KEY; 躺用减少键处理子程序LCALL

33、 DALING_KEY;处理强制打铃/强制关闭铃声键LJMP MAIN;重新循环程序结束(主程序中引用到的字程序如下)/ * * * * 定时中断服务程序* * * * * /TIMER_O: PUCH ACC PUCH PSW;保护现场MOV THO,#3CHMOV TLO, #0B0H;重新赋定时初值CPL 47H;产生脉冲用于调时快进时基INC 24HMOV A, 24HCJNEA, #l0, ADD_TIME;产0.5秒基准时钟,用于调时闪烁CPL 48H;取反调时闪烁标志位MOV 24IJ, #00HADD_TIME:INC 20HMOV A,20HCJNEA, #20, RETI1

34、;产生l秒基准时钟MOV 20H, #O0H;一秒钟时间到,清零20HMOV A ,21HADD A,#01HDA A ;做十进制调整MOV 21H, ACJNEA, #60H, RETIlMOV 21H,#00H;一分钟到MOV A,22HADD A,#01HDA AMOV 22H,ACJNE A,#60H,RETI1MOV 22H,#00H;一小时到MOV A,23HADD A,#01HDA AMOV 23H,ACJNE A,#24H,RETI1MOV 23H,#00H;到24点,清零小时RETI1:POP PSWPOP ACC;恢复现场RET1;中断返回/ * * * * 显示处理* *

35、 * * /DISPLAY:MOV A,#21H;秒ANL A,#0FHMOV 2FH,A;转换出秒个位,存入2FHMOV A,21HANL A, #OFOHSWAP AMOV 2EH, A;转换出秒十位,存入2EHJB 46H, MIN;如果长按按键(调时快进),则跳过闪烁处理CJNE R1, #3, MIN;如果R1为3,闪烁秒位待调整JB 48H,MINMOV ZFH, #OAH;使该位为10 ,查表得到使该位不显示的输出MOV 2EH,#0AHMIN:MOV A,#22H;分ANL A,#0FHMOV 2DH,A;转换出分个位,存入2DHMOV A,22HANL A, #OFOHSWA

36、P AMOV 2CH, A;转换出分十位,存入2CHJB 46H, HOUR;如果长按按键(调时快进),则跳过闪烁处理CJNE R1, #2, HOUR;如果R1为2,闪烁秒位待调整JB 48H,HOURMOV ZDH, #OAH;使该位为10 ,查表得到使该位不显示的输出MOV 2CH,#0AHHOUR:MOV A,#23H;时ANL A,#0FHMOV 2BH,A;转换出时个位,存入2BHMOV A,23HANLA, #OFOHSWAP AMOV 2AH, A;转换出时十位,存入2AHJB 46H, DISP;如果长按按键(调时快进),则跳过闪烁处理CJNE R1, #1, DISP;如果

37、R1为1,闪烁秒位待调整JB 48H,DISPMOV ZBH, #OAH;使该位为10 ,查表得到使该位不显示的输出MOV 2AH,#0AH/ * * * * 数码管动态扫描显示* * * * /DISP:MOV DPTR,#TABLEMOV A,2FHMOVC A,A+DPTRMOV P0,ACLR P2.7LCALL DELAYSETB P2.7;显示秒个位MOV A,2EHMOVC A,A+DPTRMOV P0,ACLR P2.6LCALL DELAYSETB P2.6;显示秒十位MOV A,#0BFHMOV P0,ACLR P2.5LCALL DELAYSETB P2.5;显示“-”M

38、OV A,2DHMOVC A,A+DPTRMOV P0,ACLR P2.4LCALL DELAYSETB P2.4;显示分个位MOV A,2CHMOVC A,A+DPTRMOV P0,ACLR P2.3LCALL DELAYSETB P2.3;显示分十位MOV A,#0BFHMOV P0,ACLR P2.2LCALL DELAYSETB P2.2;显示“-”MOV A,2BHMOVC A,A+DPTRMOV P0,ACLR P2.1LCALL DELAYSETB P2.1;显示时个位MOV DPTR,#TABLE1;该位使用TABLE1以消除前置0MOV A,2AHMOVC A,A+DPTRM

39、OV P0,ACLR P2.0LCALL DELAYSETB P2.0;显示时十位RET/ * * * * 按键检测子程序* * * * /KEY_SCAN :CLR 46H;关闭长按调整(调时快进)标志MOV P1, #OFFH;将P1口设置成输入状态MOV A,P1CPL AANLA, #OFH;P1口低4位连接4个按键,只判断该4位JZ FXIT_KFY;无键按下则返回LCALL DELAY;延时去抖动MOV A, P1;重新判断CPL AANL A,#OFHJZ EXIT_KEY;键盘去抖动MOV R5, A;临时将键值存入R5MOV R4, #0OH;用于控制调时快进速度;设置为OO

40、H 是为了在进入长按处理前加长延时区分用户的长按与短按,防止误快进LOOP: ;进入长按处理LCALL DISPLAY;使长按时显示正常MOV A, PlCPL AANLA, #OFHJB 47H, LOOP1INC R4;调时快进间隔时间基准加lLOOP1:CJNE R1, #03H, LOOP2;如果调秒时长按,则不处理LJMP LOOP3LOOP2:CJNE R4, #99H, LOOP3MOV R4, #7OH;确认用户长按后,重新设定起始值,加快调时快进速度SETB 46H;长按调整 调时快进)标志LCALL ADD KEYLCALL DEC KEYLOOP3:JNZ LOOP;等待

41、键释放MOV A, R5;输出键值RETEXIT_KEY;RET/ * * * * 延时子程序* * * * /DELAY:MOV R7, #150DJNZ R7, $RET/ * * * * 选择键处理子程序* * * * /SET_KEY:CJNE R5,#01H,EXIT;选择键键值INC R1;调整选择功能标识加一SETB BEEPCJNE R1,#4,EXITMOV R1,#0MOV 24H,#00H;调时闪烁基准清零RET/ * * * * 增加键处理子程序* * * * /ADD_KEY:CJNE R5, #02H, EXIT;增加键键值CJNE R1,#01H, NEXT1;选

42、择键功能标志为l,调时,否则跳出MOV A,23HADD A,#01HDA AMOV 23H,ACJNE A,#24H,EXITMOV 23H,#00HNEXT1:CJNE R1,#02H, NEXT2;选择键功能标志为2,调分,否则跳出MOV A,22HADD A,#01HDA AMOV 22H,ACJNE A,#260H,EXITMOV 22H,#00HNEXT2:CJNE R1,#03H, EXIT;选择键功能标志为3,调秒,否则跳出MOV 21H, #00H;如增加键按下一自接清零秒RET/ * * * * 减少键处理子程序* * * * /DEC KEY:CJNE R5,#04H,

43、EXIT;减少键键值CJNE R1, #01H, NEXT3;选择键功能标志为l,调时,古则跳出MOV A, 23HADD A, #99HDA AMOV 23H, ACJNE A, #99H ,EXITMOV 23H, #23HNEXT3:CJNE R1,#02H,NEXT4;选择键功能标志为2 ,调分,否则跳出MOV A,22HADD A,#99HDA AMOV 22H,ACJNE A,#99H,EXITMOV 22H,#59HNEXT4:CJNE R1,#03H,EXIT;选择键功能标志为3,条秒,否则跳出MOV 21H,#00H;如较少键按下直接清零秒RET/ * * * * 强制响铃键处理子程序* * * * /DALING_KEY:CJNE R5,#08H,EXIT;选择键键值CPL BEEPRET/ * * * * 万用返回程序* * * * /EXIT:RET/ * * * * 数码管字形编码表* * * * /TABLE:DB OCOH, OFGH, OA4H, OBOH, 99H, 92H, 82H, OFSH, 80H, 90H, OFFH;字型显示编码TABLE1:DB OFFH, OFGH, OA4H, OBOH, 99H, 92H, 82H, OFSH,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号