自动打铃装置设计_第1页
自动打铃装置设计_第2页
自动打铃装置设计_第3页
自动打铃装置设计_第4页
自动打铃装置设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、 单单片片机机与与接接口口技技术术 课程设计(论文)自自动动打打铃铃装装置置设设计计院(系)名称电子与信息工程学院专业班级 通信 121 班学号120405000学生姓名绝对好用指导教师高影 讲师 起 止 时 间: 2015.7.42015.7.13 课程设计(论文)任务及评语课程设计(论文)任务及评语 院(系):电子与信息工程学院 教研室:通信工程注:成绩:平时注:成绩:平时 20%,论文质量,论文质量 40%,答辩,答辩 40%。学 号 120405000学生姓名 专业班级 通信121课程设计(论文)题目自动打铃装置的设计课程设计(论文)任务完成自动打铃装置的硬件和软件设计。任务包括:1、

2、系统硬件框图设计说明2、采用单片机设计学校自动打铃装置3、可设置 10 个响铃时间4、具有时钟显示功能。5、在 keil 中完成程序的编辑和调试6、通过 keil 和 proteus 进行联合仿真。指导教师评语及成绩平时成绩: 答辩成绩: 论文成绩: 总成绩: 指导教师签字: 年 月 日 单片机与接口技术课程设计(论文)摘 要本设计主要是针对于校园打铃系统要求,介绍了一种基于单片机的自动打铃系统的设计方法。该设计硬件电路通过 Proteus 设计,主要由时钟电路、按键设定电路、单片机电路、显示电路和打铃电路组成。系统以 AT89C51 单片机为控制器,时钟电路由单片机的外接石英晶体振荡器提供,

3、显示电路采用 2 块LED 数码管构成,打铃电路由三极管构成的驱动电路来驱动电铃工作。软件部分通过 Keil 采用汇编语言编程来完成,整个系统在软件作用下工作。同时,该设计在按键的作用下可以进行调时,调分,复位功能,并能在 LED 数码管上显示。通过 Proteus 与 Keil 的联合仿真,本设计能够正常显示时间,并且能够在设定的时间点进行打铃,完成设计的要求。关键词:单片机;显示电路; 打铃电路 单片机与接口技术课程设计(论文)目 录第 1 章 绪论.11.1 设计的发展背景.11.2 设计的要求及技术指标.1第 2 章 方案设计.22.1 系统方案选择.22.2 总体设计框图.32.3

4、基本原理概述.3第 3 章 硬件电路设计.43.1 主控器 AT89C51.43.2 单元电路设计.53.2.1 时钟电路设计.53.2.2 键盘接口电路设计.53.2.3 显示电路设计.63.2.4 响铃电路设计.73.3 整体电路设计.8第 4 章 系统软件设计.94.1 系统软件设计的主要内容.94.2 基本思路概述.94.3 主程序流图设计.9第 5 章 仿真与分析.115.1 系统调试.115.2 仿真结果.11第 6 章 设计总结.12参考文献.13附录 I.14附录 II.15附录 III.16 单片机与接口技术课程设计(论文)第 1 章 绪论1.1 设计的发展背景当今时代是一个

5、新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效的方法就是理论与实践并重,本文用 AT89C51 单片机设计的一个自动打铃系统。打铃器作为一个提醒人们时间的设备,自然离不开提供时间的系统,最原始的打铃器是人工根据时间通过敲钟来提醒,随着技术的发展,开始有了机械时打铃器。随着二十世纪电子技术的发展和二十一世纪半导体技

6、术和集成电路的发展,电子技术开始渗入到各行各业,以电子表为主要基础提供时间基准的打铃器自然也是更新换代的更快,现在各种功能更多、使用更先进的打铃器层出不穷,有的还可以以音乐响铃代替传统的“呤呤”声,打铃器更多的向着智能型转变。设备的智能化离不开单片机的使用。单片机简单的说就是一款微型的计算机,包含中央处理器 CUP、随机存取存储器 RAM、只读存储器 ROM、I/O 口、串行口等部分,可以作为一个系统的主控制器,将其他部分电路整合到一起组成一个系统,为控制提供智能化。1.2 设计的要求及技术指标本设计是以 AT89C51 单片机为核心的一款自动打铃系统,设计要求可设置 10 个响铃时间,并且具

7、有时间显示功能。完成该设计的整体过程如下:1.分析设计要求,明确性能指标。必须仔细分析课题要求、性能、指标及应用环境等,广开思路,构思出各种总体方案,绘制结构框图。2.确定合理的总体方案。以电路的先进性、结构的繁简、成本的高低及制作的难易等方面作综合比较,并考虑器件的来源,敲定可行方案。3.设计各单元电路。总体方案化整为零,分解成若干子系统或单元电路,逐个设计。4.组成系统。在一定幅面的图纸上合理布局,通常是按信号的流向,采用左进右出的规律摆放各电路,并标出必要的说明。 单片机与接口技术课程设计(论文)第 2 章 方案设计2.1 系统方案选择方案一:采用数字电路来搭建,利用 555 时基电路构

8、成振荡器产生 100Hz 频率的振荡电路,再通过分频器得到 1Hz 频率,即产生 1 秒计时时间,显示部分通过锁存器和驱动芯片将计时时间送入数码管显示。设计框图如图 2.1 所示。这种方案电路结构比较复杂,芯片使用比较多,灵活性不高,而且准确度不够精确,不利于系统的扩展。图 2.1 数字电路设计的自动打铃系统框图方案二:采用 AT89S51 单片机作为系统控制单元,通过时钟芯片来实现计时功能,单片机负责将时间送入显示电路显示。设计框图如图 2.2 所示。这种方案电路设计简单,时间精确,使用方便。而且单片机的强大功能使得系统方便扩展,有利于提高智能性。图 2.2 基于单片机的自动打铃系统框图综上

9、所述,本设计采用方案二。NE555 时基电路分频器数据锁存器数码管驱动数码管显示时钟电路单片机数码管显示 单片机与接口技术课程设计(论文)2.2 总体设计框图本设计是以 AT89C51 单片机为核心的一款自动打铃系统,以时钟芯片来实现计时功能,然后单片机负责将时间送入显示电路显示,整个系统不是很复杂,其设计主要由主控模块,时钟模块,显示模块,键盘接口模块等 4 部分构成。通过内部定时产生中断,从而使驱动电铃打铃。总体设计框图如图 2.3 所示:图 2.3 总体设计框图2.3 基本原理概述单片机的外接石英晶体振荡器能提供稳定、准确的基准频率,并经 12 分频后向内部定时器提供实时基准频率信号,设

10、定定时器工作在中断方式下,连续对此频率信号进行分频计数,便可得秒信号,再对秒信号进行计数便可得到分、时等实时时钟信息。如果石英晶体振荡器的频率信号为 12MHz,设定定时器定时工作方式 1 下,定时器为3CBOH,则定时器每 100ms 产生 1 次中断,在定时器的中断定时处理程序中,每 10次中断,则向秒计数器加 1,秒计数器计数到 60 则向分计数器进位(并建立分进位标志),分计数器计数到 60,则向时计数器进位,如此周而复始的连续计数,便可获得时、分、秒的信号,建立一个实时时钟。接下来便可以进行定时处理和打铃输出,当主程序检测到有分进位标志时,便开始比较当前时间(小时与分、存放在 RAM

11、 中)与信息时间表上的作息时间(小时与分,存放在 ROM)是否相同,如有相同者,则进行报时处理并控制打铃,如有不相同则返回主程序,如此便实现了报时控制的要求。 单片机与接口技术课程设计(论文)第 3 章 硬件电路设计3.1 主控器 AT89C51AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8 位微处理器。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用ATMEL 高密度非易失性存储器制造技术,与工业标准的 MCS-51 指令集和输出管脚相兼容。AT89C51 单片机的硬件结构如下图 3.1 所示:图 3.1 AT89C51 硬件结构图AT8

12、9C51 单片机主要由 8 大部分构成:1 个 8 位的微处理器,完成运算与控制功能片内 128B 的数据存储器,可扩展至片外 64KB64KB 的程序存储器,其类型是 Flash ROM,它的读写速度非常快,电擦除次数可达到 10000 次 4 个 8 位的可编程并行 I/O 口(P0,P1,P2,P3),可提供地址总线,数据总线,以及控制总线 1 个全双工的串行口 2 个16 位的定时/计数器(T0,T1)中断系统:包含 5 个中断源(外部中断 0,定时器 T0,外部中断 1,定时器 1,串行口中断)和 2 个中断优先级(低级,高级)21 个特殊功能寄存器。 单片机与接口技术课程设计(论文

13、)3.2 单元电路设计3.2.1 时钟电路设计89C51 内部有一个用于构成振荡器的高增益反相放大器,它的输入端为芯片引脚XTAL1,输出端为引脚 XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的振荡器。电路中的微调电容的典型值通常选择为 30pF 左右,其大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。晶体振荡频率的范围通常为1.212Hz,本设计采用 12MHz 的石英晶体,并经 12 分频后向内部定时器提供实时基准频率信号。设计电路见图 3.2 所示:图 3.2 时钟电路图3.2.2 键盘接口电路设计 键盘是单片机应用中常用的一种输入器件,键盘的按键有触点式和

14、非触点式之分,按接口原理有编码键盘和非编码键盘之分。常用的按键一般为触点式按键,根据按键所连接的单片机引脚的电平高低来判断其是否按下。按功能分,键盘有独立按键和矩阵按键之分,独立按键每一路按键就占用单片机的一个控制引脚,单片机直接获取其信息矩阵按键将按键排成由行和列组成的行列式,通过确认按键的行号和列号来确定每一路按键,利用少的单片机引脚控制更多的按键。该部分设计由单片机的 P1 口控制按键电路。其按键用于设定定时时间、打铃时间间隔,所以只需 4 路按键即可实现所需功能,采用独立式按键即可。由于键盘只有四个,采用独立式按钮,分别与 8051 的 P1.0, P1.1, P1.2 相连,用普通按

15、钮 10K 上拉电阻,用查询法完成读健功能。当某一个按钮按下的时候,其对应的引脚就由高电平 单片机与接口技术课程设计(论文)变成低电平,然后通过单片机扫描读取引脚的电平来判断按钮是否按下。设计电路见图 3.3 所示:图 3.3 按键电路图注意,由于按键是机械式触点,所以在断开或闭合时,一般都有抖动产生,虽然这个抖动时间在我们看来非常短,但是单片机执行指令的速度为微秒级别,很容易会读取这个时间而将其判断为真正的工作状态,从而引起误判。因此,在设计中必须考虑到按键抖动的影响。常用的去抖动的方法有两种:硬件方法和软件方法。硬件方法一般是加电容或者 RS 触发器软件方法是在单片机在检测引脚所连接的按键

16、的工作状态时加一个延时程序再次确认,通过 2 次的确认就可以确保按键的工作状态不受机械抖动的影响了。本设计采用软件方法。3.2.3 显示电路设计本设计采用的是 LED 显示器,LED 显示器有静态显示和动态显示两种显示方式。LED 显示器工作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或接+5V),每位的段码线分别与一个 8 位的锁存器输出相连。这种显示方式接口编程容易,但是占用口线较多。在多位 LED 显示时,为简化硬件电路,所有位的段码线相应段并联在一起,由一个 8 位 I/O 口控制,形成段码线的多路复用,各位的公共端分别由相应的 I/O 线控制,形成各位的分时选通。由于

17、各位的段码线并联,8 位 I/O 口输出的段码对各个显示位来说都是相同的。本设计需用到 8 位 8 段 LED 数码管,每个数码管的选通由位选线来控制,采用动态显示器电路。设计电路如图 3.4 所示: 单片机与接口技术课程设计(论文)图 3.4 显示电路 显示部分采用普通的共阴极数码管显示,采用动态扫描,以减少硬件电路,数码管分别为十时,时,十分,分,十秒,秒显示,显示时采用串行口输出段码。采用动态扫描方式,通过一组单片机端口驱动并联在一起的 LED 发光管的一端(共阴或共阳端),LED 发光管的另一脚接通用 I/O 口,控制其亮灭。该方法能驱动较多的 LED,控制方式较灵活,而且节省单片机的

18、资源。3.2.4 响铃电路设计本设计中的蜂鸣器驱动模块用到了蜂鸣器(SPEAKER)、三极管、100 欧姆的电阻。将蜂鸣器的一段接地,另一端接三极管的发射极,三极管的基极通过 100 欧姆的电阻接在三极管的 P3.7 引脚,三极管的集电极接+5V 的电源。其电路图如图 3.5 所示: 单片机与接口技术课程设计(论文)图 3.5 打铃电路3.3 整体电路设计整体电路由个部分单元电路组合而成。总体运行过程如下:实现 24 小时制电子钟,在 8 位数码管显示,显示为时分秒,实现的格式为:23-59-59。到达预定时间启动蜂鸣器开始打铃,打铃的方式分为起床、熄灯和上下课铃两种。系统使用了 4 个按键,

19、3 只按键用来调整时间,另一只为强制打铃按钮。通过选择键选择调整位,选中位闪烁,按增加键为选中位加 1,按减少键为选中位减 1。按强制打铃按钮是实现强制打铃或者强制关闭打铃。整体电路图见附录 II. 单片机与接口技术课程设计(论文)第 4 章 系统软件设计4.1 系统软件设计的主要内容软件是该 LED 显示屏控制系统的重要组成部分,在系统的软件设计中我们也才用了模块化设计,将系统的各部分功能编写成子模块的形式,这样增强了系统软件的可读性和可移植性。统软件设计由三个模块编程组成:蜂鸣器打铃编程,七段显示管显示编程,按键编程。4.2 基本思路概述主程序首先是初始化部分,主要是计时单元清零,中断初始

20、化,堆栈指针初始化,启动定时器工作,然后是调用显示子程序。主程序的起始存储地址是 0000H 单元,但由于本系统用了定时器 T0 的中断,中断服务程序入口地址为 000BH,因此从 0000H单元起存放一条短调转指令 AJMP,使真正的主程序从 0300H 单元开始存放。4.3 主程序流图设计主程序初始化,并打开中断,然后执行中断服务程序。实现24小时制电子钟,8位数码管显示,显示时分秒显示格式:23-59-59(小时十位如果为0则不显示)。到预定时间启动蜂鸣器模拟打铃,蜂鸣器 BEEP:P3.7打铃方式分起床、熄灯铃和上、下课铃两种系统使用4只按键,3只按键用来调整时间,另一只为强制打铃按钮

21、,调整选择键SET_KEY:P1.0通过选择键选择调整位,选中位闪烁增加键 ADD_KEY:P1.1按一次使选中位加1减少键 DEC_KEY:P1.2按一次使选中位减1,如果长按 ADD_KEY 或DEC_KEY,识别后则进行调时快进,此时停止闪烁。如图 4.1 所示,主程序开始初始化后,就跳转到中断服务程序,如正常走时,则往下进行打铃时间的比较,继续向下执行对打铃的判断程序如不正常走时,则直接转到显示程序。这以后,继续执行按键的检测,若有键按下,则取值打铃反之,则返回到中断服务程序的开始继续执行。 单片机与接口技术课程设计(论文)图 4.1 主程序流图开始初始化是否正常走时时?打铃时间比较打

22、铃判断,执行显示按键检测有键按下吗吗?获取键值按键处理YYNN 单片机与接口技术课程设计(论文)第 5 章 仿真与分析5.1 系统调试 根据系统设计方案,本系统的调试共分为三大部分:硬件调试,软件调试和软硬件联调。由于在系统设计中采用模块设计法,所以方便对各电路模块功能进行逐级测试:LED 驱动模块的调试,数据存储模块的调试,PC 机通信模块的调试等,最后将各模块组合后进行整体测试。5.2 仿真结果 此系统的仿真效果很好,能实现设计要求和目的所规定的内容。仿真结果图如图5.1 所示:图 5.1 仿真结果图仿真结果分析:如上图所示,LED 数码管显示时钟为 11-28-07,准确显示时、分、秒信

23、息,实现显示实时时钟的指标要求。通过 4 个按键,能够实现调整时间功能,以便于观察仿真结果。通过 Proteus 软件,可实现对打铃电路的仿真。 单片机与接口技术课程设计(论文)第 6 章 设计总结本次课程设计题目为自动打铃装置设计,首先通过查阅资料,确定整个设计的总体设计方案,然后,对整体方案的各个部分进行详细分析。整个设计主要分为五大模块:时钟电路、按键设定电路、单片机电路、显示电路和打铃电路。分别对子模块的硬件部分和软件部分进行设计与仿真,最后组成一个整体设计电路。通过对整体电路进行仿真,能够实现时钟显示和 10 个时间点的自动打铃,达到本设计的要求指标。通过此次课程设计,本人对所学的知

24、识有了很好的回顾和实践,提高了自己的动手和思考能力,这对本人自身的发展有很大的帮助,同时在此期间本人查阅了很多的书籍和资料,从中学到了很多课本上没有的知识,拓展了自己的知识面,如果没有前期的准备工作是没法很好的完成此次设计的,所以多学、多看、多想、多动手才是学好知识的必要素质,这对本人未来的发展和进步有着至关重要的作用。 本人签字:本人签字: 单片机与接口技术课程设计(论文)参考文献1 张毅刚、彭喜元单片机原理与应用设计电子工业出版社,20142 张鑫、华臻、陈书谦单片机原理及应用M电子工业出版社,2005 3 丁元杰、吴大伟单片机实题集与实验指导书M机械工业出版社,20044 李群芳,肖看单

25、片机原理接口与应用北京:清华大学出版社,20055 周权基于单片机的出租车计费器设计和实现J中山大学研究生学刊:自然科学医学版,2011 6 林游,张俊杰,易凡霍尔传感器信号采集与显示系统设计J现代电子技术,2009 7 杜春树基于 Proteus 和 Keil C51 的单片机设计与仿真电子工业出版社,20098 王君单片机原理及控制技术机械工业出版社,2012 单片机与接口技术课程设计(论文)附录 I 整体电路图 单片机与接口技术课程设计(论文)附录 II元器件清单器件名称数量AT89C51 单片机1 片BU208 三极管1 个晶振1 个按键4 个LED 显示器1 个10K 电阻4 个10

26、0 电阻1 个蜂鸣器1 个30pF 电容2 个10uF 电容1 个 单片机与接口技术课程设计(论文)附录 III程序清单BEEP EQU P3.7 ;定义蜂鸣器(电铃)控制信号输出口 ORG 0000H ;程序入口地址 LJMP START ORG 000BH ;定时器 0 中断入口地址 LJMP TIMER_0 ORG 0100H/*程序开始,初始化*/ START: SETB BEEP ;关闭蜂鸣器(电铃) SETB 48H ;使用一个 bit 位用于调时闪烁标志 SETB 47H ;用一个 bit 位用于产生脉冲用于调时快进时基 CLR 45H ;关闭响铃方式 1 标志 CLR 44H

27、;关闭响铃方式 2 标志 MOV R1,#0 ;调整选择键功能标志:0 正常走时、1 调时、2 调分、3 调秒 MOV 20H,#00H ;用于控制秒基准时钟源的产生 MOV 21H,#00H ;清零秒寄存器 MOV 22H,#00H ;清零分寄存器 MOV 23H,#00H ;清零时寄存器 MOV 24H,#00H ;用于控制调时闪烁的基准时钟的产生 MOV R2,#00H ;强制打铃标志 MOV R3,#00H ;强制打铃时长标志 MOV IP,#02H ;IP,IE 初始化 MOV IE,#82H MOV TMOD,#01H ;设定定时器 0 工作方式 1 MOV TH0,#3CH MO

28、V TL0,#0B0H ;赋定时初值,定时 50ms SETB TR0 ;启动定时器 0 MOV SP,#40H ;重设堆栈指针/*主程序*/ MAIN: 单片机与接口技术课程设计(论文) CJNE R1,#00H ;是否为正常走时状态 LCALL BIJIAO2 ;调用上、下课打铃比较子程序 LCALL DALING2 ;调用响铃方式 2 执行子程序 LCALL DALING3 MAIN1: LCALL DISPLAY ;调用显示子程序 LCALL KEY_SCAN ;调用按键检测子程序 JZ MAIN ;无键按下则返回重新循环 LCALL SET_KEY ;调用选择键处理子程序 JB 46

29、H,MAIN ;如果已进行长按调整,则不再执行下面的单步调整 LCALL ADD_KEY ;调用增加键处理子程序 LCALL DEC_KEY ;调用减少键处理子程序 LCALL DALING_KEY ;处理强制打铃/强制关闭铃声键 LJMP MAIN ;重新循环 /*定时中断服务程序*/ TIMER_0: PUSH ACC PUSH PSW ;保护现场 MOV TH0,#3CH MOV TL0,#0B0H ;重新赋定时初值 CPL 47H ;产生脉冲用于调时快进时基 INC 24H MOV A,24H CJNE A,#10,ADD_TIME ;产生 0.5 秒基准时钟,用于调时闪烁 CPL 4

30、8H ;取反调时闪烁标志位 MOV 24H,#00HADD_TIME: INC 20H MOV A,20H CJNE A,#20,RETI1 ;产生 1 秒基准时钟 MOV 20H,#00H ;一秒钟时间到,清零 20H CJNE R2,#01H,ADD_M INC R3ADD_M: MOV A,21H 单片机与接口技术课程设计(论文) ADD A,#01H DA A ;作十进制调整 MOV 21H,A CJNE A,#60H,RETI1 MOV 21H,#00H ;一分钟到 MOV A,22H ADD A,#01H DA A MOV 22H,A CJNE A,#60H,RETI1 MOV 2

31、2H,#00H ;一小时到 MOV A,23H ADD A,#01H DA A MOV 23H,A CJNE A,#24H,RETI1 MOV 23H,#00H ;到 24 点,清零小时 RETI1: POP PSW POP ACC ;恢复现场 RETI ;中断返回 /*显示处理*/ DISPLAY: MOV A,21H ;秒 ANL A,#0FH MOV 2FH,A ;转换出秒个位,存入 2FH MOV A,21H ANL A,#0F0H SWAP A MOV 2EH,A ;转换出秒十位,存入 2EH JB 46H,MIN ;如果长按按键(调时快进),则跳过闪烁处理 CJNE R1,#3,M

32、IN ;如果 R1 为 3,闪烁秒位待调整 JB 48H,MIN MOV 2FH,#0AH ;使该位为 10,查表得到使该位不显示的输出 MOV 2EH,#0AH 单片机与接口技术课程设计(论文)MIN: MOV A,22H ;分 ANL A,#0FH MOV 2DH,A ;转换出分个位,存入 2DH MOV A,22H ANL A,#0F0H SWAP A MOV 2CH,A ;转换出分十位,存入 2CH JB 46H,HOUR ;如果长按按键(调时快进),则跳过闪烁处理 CJNE R1,#2,HOUR ;如果 R1 为 2,闪烁分位待调整 JB 48H,HOUR MOV 2DH,#0AH

33、;使该位为 10,查表得到使该位不显示的输出 MOV 2CH,#0AH HOUR: MOV A,23H ;时 ANL A,#0FH MOV 2BH,A ;转换出时个位,存入 2BH MOV A,23H ANL A,#0F0H SWAP A MOV 2AH,A ;转换出时十位,存入 2AH JB 46H,DISP ;如果长按按键(调时快进),则跳过闪烁处理 CJNE R1,#1,DISP ;如果 R1 为 1,闪烁时位待调整 JB 48H,DISP MOV 2BH,#0AH ;使该位为 10,查表得到使该位不显示的输出 MOV 2AH,#0AH /*数码管动态扫描显示*/ DISP: MOV D

34、PTR,#TABLE MOV A,2FH MOVC A,A+DPTR MOV P0,A CLR P2.7 LCALL DELAY SETB P2.7 ;显示秒个位 单片机与接口技术课程设计(论文) MOV A,2EH MOVC A,A+DPTR MOV P0,A CLR P2.6 LCALL DELAY SETB P2.6 ;显示秒十位 MOV A,#40H MOV P0,A CLR P2.5 LCALL DELAY SETB P2.5 ;显示“-” MOV A,2DH MOVC A,A+DPTR MOV P0,A CLR P2.4 LCALL DELAY SETB P2.4 ;显示分个位 M

35、OV A,2CH MOVC A,A+DPTR MOV P0,A CLR P2.3 LCALL DELAY SETB P2.3 ; 显示分十位 MOV A,#40H MOV P0,A CLR P2.2 LCALL DELAY SETB P2.2 ;显示“-” MOV A,2BH MOVC A,A+DPTR MOV P0,A CLR P2.1 LCALL DELAY SETB P2.1 ;显示时个位 MOV DPTR,#TABLE1 ;该位使用 TABLE1 以消除前置 0 单片机与接口技术课程设计(论文) MOV A,2AH MOVC A,A+DPTR MOV P0,A CLR P2.0 LCA

36、LL DELAY SETB P2.0 ;显示时十位 RET/*按键检测子程序*/ KEY_SCAN: CLR 46H ;关闭长按调整(调时快进)标志 MOV P1,#0FFH ;将 P1 口设置成输入状态 MOV A,P1 CPL A ANL A,#0FH ;P1 口低 4 位连接 4 个按键,只判断该 4 位 JZ EXIT_KEY ;无键按下则返回 LCALL DELAY ;延时去抖动 MOV A,P1 ;重新判断 CPL A ANL A,#0FH JZ EXIT_KEY ;键盘去抖动 MOV R5,A ;临时将键值存入 R5 MOV R4,#00H ;用于控制调时快进速度 LOOP: ;

37、进入长按处理 LCALL DISPLAY ;使长按时显示正常 MOV A,P1 CPL A ANL A,#0FH JB 47H,LOOP1 INC R4 ;调时快进间隔时间基准加 1 LOOP1: CJNE R1,#03H,LOOP2 ;如果调秒时长按,则不处理 LJMP LOOP3 LOOP2: CJNE R4,#99H,LOOP3 MOV R4,#70H ;确认用户长按后,重新设定起始值,加快调时快进速度 单片机与接口技术课程设计(论文) SETB 46H ;长按调整(调时快进)标志 LCALL ADD_KEY LCALL DEC_KEY LOOP3: JNZ LOOP ;等待键释放 MO

38、V A,R5 ;输出键值 RET EXIT_KEY: RET /*延时子程序*/ DELAY: MOV R7,#150 DJNZ R7,$ RET /*选择键处理子程序*/ SET_KEY: CJNE R5,#01H,EXIT ;选择键键值 INC R1 ;调整选择功能标志加一 SETB BEEP CJNE R1,#4,EXIT MOV R1,#0 MOV 24H,#00H ;调时闪烁基准清零 RET /*增加键处理子程序*/ ADD_KEY: CJNE R5,#02H,EXIT ;增加键键值 CJNE R1,#01H,NEXT1 ;选择键功能标志为 1,调时,否则跳出 MOV A,23H A

39、DD A,#01H DA A MOV 23H,A CJNE A,#24H,EXIT MOV 23H,#00H NEXT1: CJNE R1,#02H,NEXT2 ;选择键功能标志为 2,调分,否则跳出 单片机与接口技术课程设计(论文) MOV A,22H ADD A,#01H DA A MOV 22H,A CJNE A,#60H,EXIT MOV 22H,#00H NEXT2: CJNE R1,#03H,EXIT ;选择键功能标志为 3,调秒,否则跳出 MOV 21H,#00H ;如增加键按下直接清零秒 RET /*减少键处理子程序*/ DEC_KEY: CJNE R5,#04H,EXIT ;

40、减少键键值 CJNE R1,#01H,NEXT3 ;选择键功能标志为 1,调时,否则跳出 MOV A,23H ADD A,#99H DA A MOV 23H,A CJNE A,#99H,EXIT MOV 23H,#23H NEXT3: CJNE R1,#02H,NEXT4 ;选择键功能标志为 2,调分,否则跳出 MOV A,22H ADD A,#99H DA A MOV 22H,A CJNE A,#99H,EXIT MOV 22H,#59HNEXT4: CJNE R1,#03H,EXIT ;选择键功能标志为 3,调秒,否则跳出 MOV 21H,#00H ;如较少键按下直接清零秒 RET /*强制响铃键处理子程序*/ DALING_KEY: CJNE R5,#08H,EXIT ;选择键键值 单片机与接口技术课程设计(论文) JNB 45H,LP1 ;判断是否正在响铃 CLR 45H RETLP1: JNB 44H,LP2 CLR 44H RETLP2: MOV R2,#01H RET /*万用返回程序*/ EXIT: RET /*数码管字形编码表*/ TABLE

温馨提示

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

评论

0/150

提交评论