新颖60秒旋转电子钟_第1页
新颖60秒旋转电子钟_第2页
新颖60秒旋转电子钟_第3页
新颖60秒旋转电子钟_第4页
新颖60秒旋转电子钟_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理及应用单片机原理及应用课程设计实例课程设计实例 应用案例1 新颖60秒旋转电子钟课程设计课程设计 余余 水水 宝宝 数理与信息工程学院数理与信息工程学院 2006年年12月月 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 任任 务务 书书 设计一款基于设计一款基于AT89C2051单片机的电子钟。单片机的电子钟。 设计基本要求设计基本要求 用4只LED数码管输出显示时和分。 可通过按键设置闹钟功能,且停闹无须手工操作。 可通过按键设置分校时。 月计时误差小于45秒。 写出详细的设计报告。 给出全部电路和源程序。 单片机原理及应用单片机原理及应用课程设计实例课

2、程设计实例-余水宝余水宝 发挥部分要求发挥部分要求 用60只LED发光管旋转显示,模拟“秒针”的行走。 模拟“秒针”行走的“嘀哒”声。 增加室温检测和显示功能(可与时间交替显示)。 增加停(掉)电保护功能。 提高计时精度,使年计时误差小于30秒。 可通过按键设置一天两闹(比如早晨、中午各一次)。 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 选题背景 目前市场上提供的无论是机械钟还是石英钟在晚上无照 明的情况下都是不可见的。要知道当前的时间,必须先开灯, 故较为不便。现在市场上也出现了一些电子钟,它以六只 LED数码管来显示时分秒,违背了人们指针式的传统习惯与 理念,

3、而且这类电子钟一般是采用大型显示器件,适用于银 行、车站等公共场所,且外观设计欠美观,很少进入百姓家 庭。此外,无论是机械钟、石英钟还是电子钟,都存在着共 同的问题:时间误差。针对以上存在的问题,我们设计了一 款采用LED显示器件显示的电子时钟,解决了时钟存在的误 差问题,并能在夜间不必其它照明就能看到时间,且以60只 发光管实现秒显示,接近于传统的秒针来显示秒的形式,用 户容易接受,而且美观大方。另加七只装饰用的LED灯,使 整个时钟显的相当美观新颖,故还可作为室内装饰用。 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 1 系统主要功能系统主要功能 电子钟的外观如图

4、1所示。周边60只发光管顺时旋转来显示秒, 中间四只LED数码管用于显示时间,中下方的七只LED灯顺时旋转, 供装饰用。其主要功能有: 整点报时; 四只LED数码管显示当前时分; 每隔一秒钟周边的60只LED发光管旋转一格; 当发生停电事件时,由后备电池供电,系统进入低功耗状态,所 有显示部件停止显示,这样即延长了电池的寿命,同时又保证了 CPU继续计数,不至于因停电而时钟停止运行。 当恢复供电后,系统自动恢复工作状态,不影响计时。 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 2 系统的硬件构成

5、及功能系统的硬件构成及功能 电子钟的原理框图如图2所示。它由以下几个部件组成: 单片机89C2051、电源、时分显示部件、60秒旋转译码驱动电 路。 时分显示采用动态扫描,以降低对单片机端口数的要求, 同时也降低系统的功耗。时分显示模块、60秒旋转译码驱动电 路以及显示驱动都通过89C2051的I/O口控制。 电源:电源部分有二部分组成。一部分是由220V的市电 通过变压、整流稳压来得到+5V电压,维持系统的正常工作; 另一部分是由3V的电池供电,以保证停电时正常计时。正常情 况下电池是不提供电能的,以保证电池的寿命。具体电路参见 “新颖的60秒旋转电子钟参考电路原理图”。 单片机原理及应用单

6、片机原理及应用课程设计实例课程设计实例-余水宝余水宝 图2 电子钟系统原理框图 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 21 AT89C2051单片机及其引脚说明单片机及其引脚说明 AT89C2051单片机是51系列单片机的一个成员,是 8051单片机的简化版。内部自带2K字节可编程FLASH存储 器的低电压、高性能COMS八位微处理器,与Intel MCS-51 系列单片机的指令和输出管脚相兼容。由于将多功能八位 CPU和闪速存储器结合在单个芯片中,因此,AT89C2051 构成的单片机系统是具有结构最简单、造价最低廉、效率最 高的微控制系统,省去了外部的RA

7、M、ROM和接口器件, 减少了硬件开销,节省了成本,提高了系统的性价比。 AT89C2051是一个有20个引脚的芯片,引脚配置如图 3所示。与8051相比,AT89C2051减少了两个对外端口(即 P0、P2口),使它最大可能地减少了对外引脚下,因而芯 片尺寸有所减小。AT89C2051芯片的20个引脚功能为: 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 图3 AT89C2051引脚配置 VCC 电源电压; GND 接地; RST 复位输入。当 RST变为高电平并保持2 个机器周期时,所有I/O 引脚复位至“1”; XTAL1 反向振荡放大 器的输入及内部时钟工 作

8、电路的输入; XTAL2 来自反向振荡 放大器的输出。 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 P1口 8位双向I/O口。引脚P1.2P1.7提供内部上拉,当 作为输入并被外部下拉为低电平时,它们将输出电流,这 是因内部上拉的缘故。P1.0和P1.1需要外部上拉,可用作 片内精确模拟比较器的正向输入(AIN0)和反向输入( AIN1),P1口输出缓冲器能接收20mA的灌电流,并能直 接驱动LED显示器;P1口引脚写入“1” 后,可用作输入。 在闪速编程与编程校验期间,P1口也可接收编码数据。 P3口引脚P3.0P3.5与P3.7为7个带内部上拉的双向I/0引 脚

9、。P3.6在内部已与片内比较器输出相连,不能作为通用 I/O引脚访问。P3口的输出缓冲器能接收20mA的灌电流; P3口写入“1”后,内部上拉,可用作输入。P3口也可用作 特殊功能口,其功能见表1。P3口同时也可为闪速存储器 编程和编程校验接收控制信号。 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 P3口引脚特殊功能 P3.0RXD(串行输入口) P3.1TXD(串行输出口) P3.2(外部中断0) P3.3(外部中断1) P3.4T0(定时器0外部输入) P3.5T1(定时器1外部输入) 表1 P3口特殊功能 单片机原理及应用单片机原理及应用课程设计实例课程设计实

10、例-余水宝余水宝 2.2 60秒旋转译码驱动原理秒旋转译码驱动原理 按常规传统设计,需60进制译码驱动电路才能实现 60秒旋转译码驱动,若用六片十进制计数译码器构成六 十进制计数译码电路,则电路连线多(需要120根连线 ),硬件电路庞大,开销大。为此,我们巧妙地采用了 两片CD4017进行六十进制计数译码,实现60秒旋转译 码驱动。既减少了电路的复杂程度又可降低了成本。图 4为CD4017功能引脚图,图5为其时序图。 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 图5 CD4017时序图 图4 CD4017引脚图 单片机原理及应用单片机原理及应用课程设计实例课程设计实

11、例-余水宝余水宝 CD4017集成电路是十进制计数/时序译码器,共有10 个译码输出Q0Q9;每个译码输出通常处于低电平,且在 时钟脉冲由低到高的上升沿输出高电平;每个高电平输出 维持1个时钟周期;每输入10个时钟脉冲,输出一个进位脉 冲,因此进位输出信号可作为下一级计数器的时钟信号。 在清零输入端(R)加高电平或正脉冲时,只有输出端Q0 为高电平,其余各输出端均为低电平“0”。 为实现对发光二极管的驱动,将每一个译码输出端 口接一只发光二极管,并将二极管串联限流电阻后接地。 当译码端口Q0Q9中任一端口为高电平,则对应的发光 二极管点亮,如图6所示。 单片机原理及应用单片机原理及应用课程设计

12、实例课程设计实例-余水宝余水宝 仔细考查CD4017的功能,可发现其10个输出的高电平 是相互排斥的,即任一时刻只有一只发光二极管点亮,因此 可将图6电路进一步简化为如图7所示,从而简化电路设计。 图6 CD4017控制LED原理图图7 优化后控制LED原理图 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 在本电子钟设计中,每秒点亮一个发光二极管,循环 点亮一周共需60个发光二极管,若用上述的6片CD4017 实现驱动,显然电路复杂。为此我们选用两片CD4017 和一片6反相器,采用“纵横双译码”技术,巧妙地实 现60秒旋转译码驱动,其中一片接成10进制,一片接成 6

13、进制,实现610=60的功能,具体连接方法如图8所 示。 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 图8 发光二极管“纵横双译码”循环点亮LED原理图 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 将周期为1秒的输入脉冲作为其中一片CD4017的时钟 脉冲,而此片的级联进位输出端(QC)作为另一片的时钟 输入,并将Q6与复位端相连。在两片译码输出端交叉点上 接入发光二极管,构成610矩阵。根据CD4017时序特点, 在初始状态,作为高位(纵)的CD4017译码器输出端口Q0 处于高平,经反相器反相后为低电平。当作为低位(横)的 CD401

14、7译码器输出端口Q0Q9依次输出高电平后,则对 应的二极管LD1LD10依次点亮;此后由于QC端的进位, 高位CD4017译码输出端口Q1输出高电平,反相后输出低电 平,当低位的CD4017译码输出端口Q0Q9依次输出高电 平后,二极管LD11LD20依次点亮。如此往复,直至高位 Q6向复位端输入高电平,CD4017复位,60秒循环点亮重 新开始。 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 2.3 时分显示部件时分显示部件 由于系统要显示的内容较简单,显示量不多,所以 选用数码管既方便又经济。LED有共阴极和共阳极两种。 如图8所示。 二极管的阴极连接在一起,通常

15、此公共阴极接地, 而共阳极则将发光二极管的阳极连接在一起,接入+5V的 电压。一位显示器由8个发光二极管组成,其中7个发光二 极管构成字型“8”的各个笔划(段)ag,另一个小数点 为dp发光二极管。当在某段发光二极管施加一定的正向电 压时,该段笔划即亮;不加电压则暗。为了保护各段LED 不被损坏,需外加限流电阻。 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 图9 LED数码管结构原理图 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 众所周知,LED显示数码管通常由硬件7段译码集成电路, 完成从数字到显示码的译码驱动。本系统采用软件译码,以减

16、小 体积,降低成本和功耗,软件译码的另一优势还在于比硬件译码 有更大的灵活性。所谓软件译码,即由单片机软件完成从数字到 显示码的转换。从LED数码管结构原理可知,为了显示字符,要 为LED显示数码管提供显示段码,组成一个“8”字形字符的7段, 再加上1个小数点位,共计8段,因此提供给LED数码管的显示段 码为1个字节。各段码位与显示段的对应关系如表2。 段码位D7D6D5D4D3D2D1D0 显示段dpgfedcba 表2 各段码位的对应关系 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 字型共阳段码共阴段码字型共阳段码共阴段码 0C0H3FH990H6FH 1F9H

17、06HA88H77H 2A4H5BHB83H7CH 3BOH4FHCC6H39H 499H66HDA1H5EH 592H6DHE86H79H 682H7DHF84H71H 7F8H07H空白FFH00H 880H7FHP8CH73H 表3 LED显示段码 本表所列各字符的显示段码均为小数点不亮的情况。 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 根据AT89C2051单片机灌电流能力强,拉电流能力 弱的特点,我们选用共阳数码管。将AT89C2051的P1.0 P1.7分别与共阳数码管的ag及dp相连,高电平的位对应 的LED数码管的段暗,低电平的位对应的LED数码管

18、的段亮 ,这样,当P0口输出不同的段码,就可以控制数码管显示 不同的字符。例如:当P0口输出的段码为1100 0000,数码 管显示的字符为0。 数码管显示器有二种工作方式,即静态显示方式和 动态扫描显示方式。为节省端口及降低功耗,本系统采用动 态扫描显示方式。动态扫描显示方式需解决多位LED数码管 的“段控”和“位控”问题,本电路的“段控”(即要显示 的段码的控制)通过P0口实现;而每一位的公共端,即 LED数码管的“位控”,则由P3口控制。 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 这种连接方式由于多位字段线连在一起,因此,要想 显示不同的内容,必然要采取轮流

19、显示的方式,即在某一瞬 间,只让其中的某一位的字位线处于选通状态,其它各位的 字位线处于断开状态,同时字段线上输出这一位相应要显示 字符的字段码。在这一瞬时,只有这一位在显示,其他几位 则暗。在本系统中,字位线的选通与否是通过PNP三极管的 导通与截止来控制,即三极管处于“开关”状态。 系统的时分显示部件由4只7段共阳LED数码管构成, 前两只用于时的显示,后两只用于分的显示。值得一提的是 ,在设计中需要实现时与分之间的两个闪烁点,为此,将第 三只LED数码管倒置摆放,这样就很巧妙地形成了两个很自 然的闪烁点。与此同时,为了能使两点显示能够形象的表示 时钟“秒”的变化,设计时,将两个点由P1.

20、7单独控制,每 隔一秒使P1.7发送一个正脉冲,从而实现了两个点的闪烁显 示,闪烁周期为一秒。 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 3 系统的软件构成及功能系统的软件构成及功能 本系统的软件系统主要可分为主程序和定时器中断程序两大 模块。在程序过程中,加入了抗干扰措施。下面对部分模块作介绍 。 31 系统主程序设计系统主程序设计 主程序的功能是完成系统的初始化,在显示时间之前,对系 统是否停电状态进行检测;若停电,将系统进入低功耗状态,用电 池电压维持单片机计时工作,但此时不显示时间,用节省用电;若 不停电,则将时分发送显示。程序流程如图9所示。 32 中断

21、程序设计中断程序设计 中断程序(如图10所示)完成时间计数,时间调整,误差消除等 功能。中断采用AT89C2051内部T0中断实现,定时时间为125ms, 当时间到达125ms8,即1分钟时,分计数缓冲器MINBUFFER增加1 ,到达1小时,则时计数缓冲器HOURBUFFER增加1,并将分、时 的个位、十位放入显示缓冲器。当分计数缓冲器和时计数缓冲器分 别到达60min、24h时,则对它们清零,以便从新计数。在中断设计 中,还通过软件实现了累计误差消除功能,使整个系统时间的精确 度得到保证。 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 图10 系统主程序流程图 单

22、片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 图11 定时中断程序 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 4 结束语结束语 上述电子钟,无论在外观上还是功能上都实现了较为 完善的设计。特别值得一提的是本系统在精度上的设计,突 破传统的方法,对可能产生的积累误差采用“抵消法”,从 而有效地降低了时间误差。 由于计数时产生的积累误差所导致的时间误差,是所 有的电子计时系统共同存在的问题。但在目前市场上的电子 时钟产品,如计算机中的时钟,手机中的时钟等并没有有效 的采取消除误差的措施。本系统设计的消除积累误差来减少 时间误差的软件方法,并不需

23、要任何的硬件,因此在不增加 成本的情况下,可以普遍用于所有的电子时钟产品。 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 名称型号数量 单片机AT89C20511 数字集成芯片CD40172 数字集成芯片CD40691 超高亮数码管共阳 尺寸0.5inch4 超高亮发光二极管直径3 红、透明13 超高亮发光二极管直径3 绿、透明50 普通二极管IN40014 普通二极管IN41482 稳压二极管C4V3( 4.3V)1 三极管90125 三极管90131 新颖新颖60秒旋转电子钟器件秒旋转电子钟器件清单清单 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余

24、水宝余水宝 新颖新颖60秒旋转电子钟器件清单秒旋转电子钟器件清单 名称型号数量 轻触按键小(尺寸66mm5.5)3 蜂鸣器5 V1 晶振6M(小体积)1 底座14脚1 底座16脚2 底座20脚1 底座40脚1 电阻220欧姆,1/8瓦8 电阻4.7K,1/8瓦5 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 名 称型号数量 电阻100欧姆,1/8瓦1 电阻270欧姆,1/8瓦2 电容100微法/25伏2 电容220微法/25伏1 电容30P 瓷片3 电容104(0.1微法)3 变压器5 V/100 M A1 电源线150cm1 固定脚铜3套 PCB线路板直径1151

25、热缩管直径20.2米 新颖新颖60秒旋转电子钟器件清单秒旋转电子钟器件清单 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 电子钟电源电子钟电源 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 新颖新颖60秒旋转秒旋转 电子钟实物电子钟实物 1 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 新颖新颖60秒旋转秒旋转 电子钟实物电子钟实物 2 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 60秒旋转电子钟部分参考程序清单秒旋转

26、电子钟部分参考程序清单 ALARMHBUFF2 EQU 77H ;闹铃时间的时十位计时绶冲 ALARMHBUFF1 EQU 76H ;闹铃时间的时个位计时绶冲 ALARMMBUFF2 EQU 75H ;闹铃时间的分十位计时绶冲 ALARMMBUFF1 EQU 74H ;闹铃时间的分个位计时绶冲 HBUFF2 EQU 73H ;时十位计时绶冲 HBUFF1 EQU 72H ;时个位计时绶冲 MBUFF2 EQU 71H ;分十位计时绶冲 MBUFF1 EQU 70H ;分个位计时绶冲 DP EQU 6FH ;控制数码管点的亮暗 NUM EQU 78H ;前四秒还是后四秒计数 SBUFF EQU

27、79H ;秒十进制计时绶冲(低四位对应个位, 高四位对应十位) 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 MBUFF EQU 7AH ;分十进制计时绶冲 HBUFF EQU 7BH ;时十进制计时绶冲 ALARMMBUFF EQU 7CH ;闹铃时间的分十进制计时绶冲 ALARMHBUFF EQU 7DH ;闹铃时间的时十进制计时绶冲 NUMT1 EQU 67H ;用于控制时间调整时按键p3.2 一次按 下时,计数器T1中断的次数 NUMT2 EQU 68H ;用于控制时间调整时按键p3.3 一次按 下时,计数器T1中断的次数 KEYNUMT1 EQU 69H ;

28、用于存储NUMT1已经计数到第几个半秒 KEYNUMT2 EQU 6AH ;用于存储NUMT1已经计数到第几个半秒 STOREKEYNUMT2 EQU 6BH ;用于存储当前KEYNUMT1的值,以 和下次做比较,看是否有变化 STOREKEYNUMT1 EQU 6CH ;用于存储当前KEYNUMT2的值,以 和下次做比较,看是否有变化 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 ORG 0000H AJMP START ORG 000BH MOV TH0 , #0BH ;设置计数初值 ,R4用来存储低位的初值 MOV TL0 , R4 AJMP INTERT0 O

29、RG 001BH AJMP INTERT1 ORG 0040H START: MOV NUMT1 , #00H MOV NUMT2 , #00H MOV KEYNUMT1 , #00H MOV KEYNUMT2 , #00H MOV STOREKEYNUMT2 , #00H MOV STOREKEYNUMT1 , #00H MOV NUM , #8 MOV DPTR , #TAB 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 MOV ALARMHBUFF , #18H ;置闹铃时间初始值为18:55 MOV ALARMMBUFF , #55H MOV ALARMHBU

30、FF2, #01H MOV ALARMHBUFF1, #08H MOV ALARMMBUFF2 , #05H MOV ALARMMBUFF1 , #05H MOV HBUFF2, #01H ;置闹钟时间为18:53 MOV HBUFF1, #08H MOV MBUFF2 , #05H MOV MBUFF1 , #03H MOV HBUFF , #18H MOV MBUFF , #53H MOV SBUFF , #3CH ;置初始秒为60,计时时减 MOV TCON , #05H ;下降沿触发 MOV TMOD , #11H ;初始化定时器,T0 ,T1 16位计时 MOV TH0 , #0BH

31、 ;设置计数初值,125ms计时 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 MOV TL0 , #0DBH MOV TH1 , #3CH ;T1置初值,进行100ms计时,用于调整时间 MOV TL1 , #0B0H MOV IE , #82H ;开T0中断 SETB PT0 ;T0中断优先级最高 SETB TR0 ;允许T0计数 SETB P3.2 SETB P3.3 START1: MOV A , HBUFF ; 显示时,7点以前及21点以后亮度调暗 SUBB A , #7H JC START2 MOV A , HBUFF SUBB A , #21H JNC

32、START2 ACALL DISPLAY ACALL ZDBS AJMP START3 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 START2: ACALL NIGHTDISPLAY START3: MOV A ,ALARMHBUFF ;检测是否是定闹时间 CJNE A , HBUFF , START4 MOV A , ALARMMBUFF CJNE A , MBUFF ,START4 MOV C, DP ;若是定闹时间,则利用dp的值来决定蜂鸣 MOV P3.2, C MOV A , SBUFF JNZ START1 ;若还没到1分钟,则继续蜂鸣 SETB P3

33、.2 START4: JNB P3.2,ADJUSTTIME1 ;循环等待中断,并检测是否 键按下,若是,则进入相应程序 JNB P3.3,ADJUSTTIME2 AJMP START1 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 INT0中断子程序 ADJUSTTIME1: NOP MOV KEYNUMT1 ,#00H MOV TH1 , #3CH ;T1置初值,进行100ms计时, 用于调整时间 MOV TL1 , #0B0H SETB ET1 ;开T1中断 SETB PT1 ;设T1中断优先级最高 SETB TR1 ;允许T1计时 MOV STOREKEYNU

34、MT1 , KEYNUMT1 ;存储当前 次KEYNUMT1的值 TIME1_1:ACALL DISPLAY MOV A , KEYNUMT1 CJNE A , STOREKEYNUMT1,TIME1_2 ;若当前 KEYNUMT1的值与上一次的值不等,则时间加1分,否则 继续循环,等等至半分钟 AJMP TIME1_3 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 TIME1_2: MOV STOREKEYNUMT1 , KEYNUMT1 ;加1后存储 当前的KEYNUMT1的值 ACALL ADDBUFF0 ;分加1 TIME1_3: JNB P3.2,TIME1

35、_1 ;若p3.2已关,则退出增时, 否则继续循环 CLR ET1 CLR PT1 CLR TR1 AJMP START1 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 时间增1分 ADDBUFF0: MOV A , MBUFF ; 若按键小于1s,则分增1 ADD A , #1 DA A MOV MBUFF , A ANL A , #0FH MOV MBUFF1 , A MOV A , MBUFF SWAP A ANL A , #0FH MOV MBUFF2 , A MOV A , MBUFF CJNE A , #60H , ADDBUFF1 MOV MBUFF ,

36、 #00H MOV MBUFF2 , #00H MOV MBUFF1 , #00H MOV A , HBUFF ;时增1 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 ADD A , #1 DA A MOV HBUFF , A ANL A , #0FH MOV HBUFF1 , A MOV A , HBUFF SWAP A ANL A , #0FH MOV HBUFF2 , A MOV A , HBUFF CJNE A , #24H , ADDBUFF1 ;若没到24小时, 则不必初值置0 MOV HBUFF , #00H MOV HBUFF2 , #00H MOV

37、HBUFF1 , #00H ADDBUFF1: RET 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 INT1中断子程序 ADJUSTTIME2: NOP ACALL DL100MS MOV C , P3.3 JC TIME2_6 ;如果(P3.3按键100ms以上) 则不做处理 MOV KEYNUMT2 , #00H ;否则进入定闹设置 MOV STOREKEYNUMT2 , KEYNUMT2 ;记录当前NUMT2的 数据,以看下次有没改变 TIME2_1: NOP MOV TH1 , #3CH ;T1置初值,进行100ms计时, 用于调整时间 MOV TL1 ,

38、#0B0H SETB ET1 ;开T1中断 SETB PT1 ;设T1中断优先级最高 SETB TR1 ;允许T1计时 TIME2_2: ACALL ALARMDISPLAY MOV A , KEYNUMT2 CJNE A , STOREKEYNUMT2 ,TIME2_3 AJMP TIME2_4 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 TIME2_3: MOV STOREKEYNUMT2 , KEYNUMT2 MOV A , ALARMMBUFF ; 若按键小于1s,则分增1 ADD A , #1 DA A MOV ALARMMBUFF , A ANL A ,

39、 #0FH MOV ALARMMBUFF1 , A MOV A , ALARMMBUFF SWAP A ANL A , #0FH MOV ALARMMBUFF2 , A MOV A , ALARMMBUFF CJNE A , #60H , TIME2_4 MOV ALARMMBUFF , #00H MOV ALARMMBUFF2 , #00H MOV ALARMMBUFF1 , #00H MOV A , ALARMHBUFF ;时增1 ADD A , #1 DA A 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 MOV ALARMHBUFF , A ANL A , #

40、0FH MOV ALARMHBUFF1 , A MOV A , ALARMHBUFF SWAP A ANL A , #0FH MOV ALARMHBUFF2 , A MOV A , ALARMHBUFF CJNE A , #24H , TIME2_4 ;若没到24小时,则初值不必置0 MOV ALARMHBUFF , #00H MOV ALARMHBUFF2 , #00H MOV ALARMHBUFF1 , #00H TIME2_4: NOP JNB P3.3,TIME2_2 ;若按键已经未按,则退出循环 CLR ET1 CLR TR1 MOV KEYNUMT2 , #00H MOV NUMT

41、2 , #00H 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 MOV R2 , #10 ; 直到p3.3 20s钟内都是未按, 此时复原数据,即退出设置 TIME2_7: MOV R1 , #200 TIME2_5: ACALL ALARMDISPLAY ACALL DL1MS JNB P3.3 , TIME2_1 DJNZ R1 , TIME2_5 DJNZ R2 , TIME2_7 TIME2_6: CLR ET1 CLR PT1 CLR TR1 LJMP START1 单片机原理及应用单片机原理及应用课程设计实例课程设计实例-余水宝余水宝 T1中断子程序 INTERT1: NOP MOV TH1 , #3CH ;T1置初值,进行100ms计时, 用于调整时间 MOV TL1 , #0B0H PUSH ACC PUSH PSW CLR ET0 CLR ET1 ;关T1中断 MOV A , NUMT1 INC A MOV NUMT1 , A ;中断一次则相应的增加NUMT1 CJNE A , #5 , INTERT1NEXT ;每中断五次,即半秒, 都增加KEYNUMT1

温馨提示

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

评论

0/150

提交评论