毕业论文-单片机作息时间控制器的设计.doc_第1页
毕业论文-单片机作息时间控制器的设计.doc_第2页
毕业论文-单片机作息时间控制器的设计.doc_第3页
毕业论文-单片机作息时间控制器的设计.doc_第4页
毕业论文-单片机作息时间控制器的设计.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

机电工程系毕业设计论文题目:单片机作息时间控制器的设计专业名称:机电一体化技术班 级: 设计论文毕业 任务书一、 设计题目单片机作息时间控制器的设计二、 目的与性质利用51系列单片机,设计一个单片机作息时间控制器,要求能够实现作息时间的基本控制。通过本次设计达到进一步理解和运用单片机技术的能力。三、 任务与要求1、学习单片机的相关知识;2、设计一个单片机作息时间控制系统,要求作息时间能控制电铃;使用4位7段显示器来显示现在的时间,显示格式为“时、分”,有LED闪动来作秒计数,具有4个按键来作功能设置,一旦时间到则电铃发出一阵声响;3、 编写并调试相关程序。四、 设计完成的工作1、 查阅相关资料,根据以上任务与要求,完成总体方案设计;2、 硬件方面,画出所设计系统的电路原理图;3、 软件方面,编写相应程序,并在实验装置上调试通过;4、 论文要求在10000字以上。摘 要本毕业设计完成了用51系列单片机对作息时间控制器的设计。分析了单片机作息时间控制器试验的必要性及试验条件的要求,并着重讲述了其工作原理、结构、硬件以及软件的设计等。该系统利用51系列单片机,来实现对单片机作息时间控制器的设计,能够实现作息时间的基本控制。通过本次设计从而达到进一步理解和运用单片机技术的能力。关键词:单片机;作息时间控制器。目 录第一章 引言.61.1 国内外发展现状.61.2 51系列单片机特点.61.3 课题来源和意义71.4 设计的任务和要求7第二章 总体方案的设计.82.1 芯片比较.82.1.1 单片机选型82.1.2 显示器接口芯片的选择82.1.3 存储器的选择82.2 总体设计及系统原理.9第三章 硬件设计.103.1 单片机部分.103.2 存储器部分.123.3 显示部分.133.4 电源与复位电路部分.15 3.4.1 电源部分.153.4.2 复位电路.153.4.3 时钟电路.163.5 电气原理图.18第四章 软件设计.194.1 程序设计.19第五章 系统安装与调试.215.1 软件调试215.2 系统调试21第六章 结束语与致谢.22参考文献.23附录.24第一章 引言1.1 国内外发展现状单片机是在一块硅片上集成了各种部件是微型计算机。随着大规模集成电路技术的发展,可以将中央处理器(CPU)、数据存储器(RAM)、程序存储器(ROM)、定时器/计数器以及输入/输出(I/O)接口电路等主要计算机部件,集成在一块电路芯片上。虽然单片机只是一个芯片,但从组成和功能上来说,它已具有了微机系统是含义。由于单片机能独立执行内部程序,所以又称它为微型控制器(Microcontroller)。单片微型计算机以其体积小、性价比高、功能强、可靠性高等独有的特点,在各个领域(如工业控制、家点产品、汽车电子、通信、智能仪器仪表)得到了广泛的应用。目前,单片机已随着社会的发展渗透到各个领域之中,家电智能化给我们每个人的生活带来革命性的变化,在我们的生活周围,单片机随处可见,如冰箱、洗衣机、空调、音响、手机、工业控制等等,都用到单片机来智能控制。其中又以80C51系列引用最为广泛。1.2 51系列单片机特点作为MCS-51系列单片机最早是生产厂家,截止2003年初,Intel公司已推出多个不同型号的51系列单片机。其中在我国广泛应用的主要有8051子系列、8052子系列、80C51子系列及80C52子系列等。 MCS-51系列单片机的针对控制优化设计的,适用于低功耗、高集成和高性能要求的控制应用场合。 MCS-51系列单片机具有以下特点:1)集成了对事件控制优化过的8位CPU,可方便地用于需要事件控制的场合。2)均具有布尔处理能力,使工业现场经常需要的为运算和位操作变得非常简单。3)片上集成有最高达32KB的程序存储器,使实现真正的“单片”控制成为可能。4)片上集成有多种外设,例如定时/计数器、串行口、可编程计数器阵列(PCA)等,为低成本、低芯片数、低连线数设计提供了可能。1.3 课题来源和意义随着社会的发展,现代学校和其他工作场合都需要对作息时间有所要求,以便能够更好地来实现学习和工作,提供一个良好的作息时间,不仅能够使人们得到良好的休息,还能更有利于他们的学习和工作,从而也提高了他们的效率。作息时间控制器就是基于这种想法而研制的,但然它可以用不同的技术来实现,可以用PLC、单片机等来实现,可以根据自己的需要来做出合适的选择,本次对它的设计决定采用单片机来设计。所以鉴于现代工作及生活中的需要,我们决定利用51系列单片机设计一个单片机作息时间控制器。该单片机作息时间控制实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的不便,是现代学校及其他工作场合必不可少的设备。1.4 设计的任务和要求1作息时间能控制电铃2. 单片机作息时间控制的功能如下:l 使用4位七段显示器来显示现在的时间。l 显示格式为“时分”l 由LED闪动来作秒计数表示第二章 总体方案设计2.1 芯片比较2.1.1 单片机选型当今单片机厂商琳琅满目,产品性能各异。常用的单片机有很多种:Intel的MCS-51系列、Motorola和M68HC系列、Atmel的AT89系列、台湾Winbond(华邦)W78系列、荷兰Pilips的PCF80C51系列、Microchip公司的PIC系列、Zilog的Z86系列、Atmel的AT90S系列、韩国三星公司的KS57C系列4位单片机、台湾义隆的EM-78系列等。我们最终选用了Intel公司的MCS-51系列中的8031单片机。8031是美国ATMEL公司生产的低电压,高性能HMOS8位单片机。但8031片内无程序存储器,所以8031单片机在工作时需要在芯片外部扩展程序存储器。2.1.2显示器接口芯片的选择LED显示器接口芯片的选择常用的显示器接口芯片有CD4511,CD4513,MC14499,8255等,它们的功能有:1.CPU接受来自键盘的输入数据,并作预处理;2.数据显示的管理和数据显示器的控制。CD4511是BCD锁存,7段译码,驱动器,但在显示6和9时,显示为b和q,不是很好看。CD4513是BCD锁存,7段译码,驱动器(消隐),但现在市面上不好买。MC14499为串行输入BCD码十进制译码驱动器,用它来构成单片机应用系统的显示器接口,可以大大减少I/O口线的占用数量。但是,由片内震荡器经过四分频的信号,经位译码后只能提供4个位控信号,使信号的采集受到限制;并且,MC19944的价格偏高,也不经济。同样,8255为Intel公司生产的通用键盘/显示器接口芯片,其内部设有16*8显示数据RAM,若采用8255管理键盘和显示器,可以减少软件程序,从而减轻主机的负担。所以我们最终选用8255。2.1.3 存储器的选择在MCS-51系列单片机应用系统中,如果单片机内部程序存储器不够用时,特别是对片内无ROM的8031单片机,外扩程序存储器是必不可少的工作。程序存储器容量的扩展可根据实际需要在64KB范围内选择。单片机扩展用程序存储器有紫外光可擦除型(EPROM)、电擦除型(EEPROM)、和闪速存储器FLASH等。EPROM价格低廉,性能稳定可靠,所以,一般程序存储器的扩展均采用它。所以这次设计中我们选用EPROM2764(8K*8)。2.2 总体设计及系统原理经比较我们选定单片机芯片为8031,存储器芯片为EPROM2764。在确定系统的大体形式之后,画出本系统的结构布局,电路原理如图2-1所示。单 片 机自动复位电路接口电路时钟电路显示电路程序存储器电源电路电铃电路图2-1开启电源开关,输入程序后,通过单片机来实现各部分相应功能的具体控制,使用4位7段显示器来显示现在的时间,显示格式为“时、分”,有LED闪动来作秒计数,具有4个按键来作功能设置,一旦时间到则电铃会发出一阵声响。第三章 硬件设计3.1 单片机部分8031的芯片管脚图如图3-1图3-1引脚功能说明:VCC电源电压VSS地P0口P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。P1口P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输出口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P2口P2是一个带内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVXRI指令)时,P2口输出P2锁存器的内容。P3口P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流。此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST/VPD复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。/PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。/EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。3.2 存储器部分在上一章我已选定了存储器芯片EPROM2764(8K*8),下面对其作进一步的介绍:引脚图 (如图3-2)图3-2引脚说明:l A0-A7:地址输入线.l D0-D7:数据线,三态双向,读时为输出线,编程时为输入线,禁止是为高阻。l /CE:片选信号输入线,低电平有效。l /OE:读选通信号输入线,低电平有效。l /PGM:编程脉冲输入线,低电平有效。l Vpp:编程电源输入线。l Vcc:工作电源,一般为+5V。l GND:地线。存储器的扩展图如图3-3:图3-33.3 显示部分本仪器利用8031单片机串行口和8255接口芯片实现多个LED显示的一种简单方法,利用该方法设计的多路LED显示系统具有硬件结构简单、软件编程容易和价格低廉的特点。下面简单的介绍一下8255。引脚图如图3-4:图3-4引脚及功能介绍:RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。 RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。 D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。接口显示部分的连线图如图3-5:图3-53.4 电源与复位电路部分3.4.1 电源部分本次设计应用的电压有+5V。220V交流电源经变压器,整流,滤波后分别进入芯片8031,产生+5V,这些电源的具体应用情况如下:+5V电源:单片机及外围电路所用电源+9V电源:压电喇叭所用电源3.4.2 复位电路当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。 上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如图3-6(a)中左图所示。图中电容C1和电阻R1对电源十5V来说构成微分电路。上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如图3-6(a)中右图所示。图 3-6要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。常用的上电或开关复位电路如图3-6(b)所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。图3-6(a)中:Cl10-30uF,R11k图3-6(b)中:C21uF,Rllk,R210k本系统的复位电路采用上电复位3.4.3 时钟电路时钟电路用于产生单片机工作所需的时钟信号,单片机在时钟信号控制下,各部件协调一致的工作,时钟信号控制着计算机的工作节奏。在图(3-7)中,引脚XTAL1和XTAL2之间跨接晶体震荡器和微调电容,可以和芯片内部的震荡器一起构成一个稳定的自激震荡器,单片机的这种时钟电路,称为内部时钟源方式。电容器C1和C2主要是帮助震荡器其震。且电容器容量大小对震荡器频率有微调作用,其典型值为C1=C2=30皮发。震荡器主要由石英晶振的频率确定。目前,51系列单片机的晶振频率fosc的范围为1.260兆赫兹。图 3-73.5 电气原理图第 四 章 软 件 设 计4.1 程序设计单片机作息时间控制的动作利用时间计时处理来做秒计数,当所设置的时间到了,则发出一阵声响。单片机定时器负责定时的计数,时、分、秒数据是存在变量内并写入七段显示器的缓冲区内,而由显示器扫描程序中定时扫描而显示出时间。软件采用MCS-51汇编语言编写,使用T0长生200ms时基信号,通过软件计数器产生时、分、秒信号。单片机内部RAM:10H为200ms单元、11H为秒单元、12H为分单元、13H为时单元、14H为显示缓冲区分个位、15H为显示缓冲区分十位、16H为显示缓冲区时个位、17H为显示缓冲区时十位、18H为定时分单元、19H为定时时单元、20H-6FH为定时时间表,70H-7FH为堆栈区。主程序开始初始化定时器初始化变量LED闪动,表示程序开始执行扫描显示器更新时间数据,定时时间到K1:校分K2:校时K3:设定K4:结束是否按K1、K2、K3、K4键?图 41第五章 系统安装与调试5.1 软件调试采用模块化程序设计思想,首先调试子程序,然后逐级叠加调试。5.2 系统调试 软硬件结合在一起,看是否能工作正常,由于在模块调试过程中,我们把软硬件所出现的错误都调整过来了,所以系统调试通过。第六章 结束语与致谢在这次毕业设计的过程中,指导老师谭林秋给予了我很大的帮助,提供了相关的资料,使我顺利圆满的完成了此次毕业设计。在此,向谭老师表示衷心的感谢!同时,也要感谢学校提供计算机等设施,使我的设计能够调试。大学三年里,在提高自己科学文化素质的同时也努力提高自己的思想道德素质,使自己成为德智体诸方面全面发展适应21世纪发展要求的复合型人才,做一有理想有道德有纪律的社会主义建设者和接班人。为适应社会需要,促进自我发展,我们除了学好本专业外,还应辅修相关转业知识,积极参加社会实践活动,培养工作能力,努力提高综合素质,同时努力培养特长,形成自身竞争优势。在设计过程参阅了不少的前人的资料,网络的资源也得到利用,在同班同学的大力支持和友情帮助下,毕业设计才得以顺利完成,在此向在设计过程中参阅的相关资料的前辈表示真诚的感谢!是您们的孜孜不倦的追求才是我真正要学习的,在此向谭林秋老师的悉心指导表示真心的感谢!是您严谨治学的态度和宽以待人做人方式使我收获颇多,同样要感谢三年以来的所有的任课老师对我的教诲和同学们的帮助表示感谢!限于资料来源有限,加之个人能力的不足,在设计中难免会出现一些差错与不当之处,恳请广大读者提出宝贵意见和建议,以期来完善本人的设计! 参 考 文 献1 胡汉才编著,单片机原理及其接口技术,北京,清华大学出版社,1996年2 公茂法等编著,单片机人机接口实力集,北京,北京航空大学出版社,1998年3 李朝青编著,单片机原理及其接口技术,北京,北京航空大学出版社,1998年4 邬宽明编著,单片机外围器件实用手册,北京,北京航空大学出版社,1998年 5 先锋工作室编著,单片机程序设计实例,北京,清华大学出版社,2002年 6 张毅刚,彭喜元,孟升卫,刘兆庆编著,MCS-51单片机使用子程序设计,哈尔滨,哈尔滨工业大学出版社,2003年7 陈明荧编著,8051单片机课程设计实训教材,北京,清华大学出版社,2003年8 肖玲妮,袁增贵编著,Protel99SE印刷电路板设计教程,北京,清华大学出版社,2003年9 徐爱均编著,单片机原理及其接口技术实践教程,北京,机械工业出版社,2004年10 求是科技编著,单片机典型模块设计实例导航,人民邮电出版社,2007年附 录程序清单如下:主程序定时时钟,振荡频率为3.58MHz,单片机采用MCS-51K1 EQU P3.0 ;定义校分按钮K2 EQU P3.1 ;定义校时按钮K3 EQU P3.2 ;定义设定保存按钮K4 EQU P3.3 ;定义设定结束按钮 Buzzer EQU P3.4 ;定义蜂鸣器输出口LED EQU P3.5 ;定义秒闪灯输出口DIS EQU P0 ;定义显示器控制口MS EQU 10H ;定义200ms计数器Secs EQU 11H ;定义秒计数器Minute EQU 12H ;定义分钟计数器Hour EQU 13H ;定义时计数器DM EQU 14H ;定义显存首地址T_Minute EQU 18H ;定义定时分单元T_Hour EQU 19H ;定义定时时单元Ttab EQU 1AH ;时间表指针系统复位程序ORG 0000HAJMP Main ;转主程序T0中断入口程序ORG 000BH AJMP T0INT ;转T0计时程序主程序Main: MOV SP,#64H ;设置栈区首地址 MOV P3,#0FFH ;将P3.0P3.3设置为输入口 LCALL CLEAR ;清除时间表 SETB EA ;CPU开中断 SETB ET0 ;允许T0中断 CLR F0 ;清数码管闪亮控制标志 MOV TMOD,#01H ;T0定时方式1、T1定时方式1 MOV TL0,#0F4H ;定时200ms,振荡频率为3.58MHz MOV TH0,#16H MOV B,#50H ;闪亮控制 MOV MS,#0 ;预装200ms初值 MOV Secs,#0 ;预装秒初值 MOV Minute,#0 ;预装分初值 MOV Hour,#12H ;预装时初值 MOV T_Minute,#0 ;预置“定时分” MOV T_Hour,#6H ;预置“定时时” SETB TR0 ;启动T0LOOP1: SETB Buzzer ;关闭蜂鸣器的驱动器 MOV R0,#Minute :送分单元地址 LCALL SPLIT ;调用拆分子程序 LCALL DISP ;显示 MOV A,Secs ;取当前秒值 JNZ SCAN ;判断秒是否为0,不为0则不比较 LCALL COMP ;比较程序 MOV R0,#Minute ;送分单元地址 LCALL SPLIT ;调用拆分子程序 LCALL DISP ;显示SCAN: JB K3,LOOP1 ;判断设定按钮是否有效 LCALL SET ;调用定时时间设置程序 SJMP LOOP1SET: LCALL CLEAR ;调用时间表清除程序 LCALL BBSET0: MOV R0,#Minute ;分单元地址 LCALL SPLIT ;调用拆分子程序 LCALL DISP ;调用显示程序 JNB K3,SET0 ;等待K3释放 SETB F0 ;置数码管闪亮控制标志 MOV Ttab,#20H ;时间表首地址SET1: MOV R0,#T_Minute ;“定时分”单元地址 LCALL SPLIT ;调用拆分子程序 LCALL DISP ;调用显示程序 JNB K1,SETM ;判断分设置按钮是否有效 JNB K2,SETH ;判断时设置按钮是否有效 JNB K3,SAVE ;判断保存设置按钮是否有效 JB K4,SET1 ;判断退出设置按钮是否有效 SJMP SEXITSETM: MOV R0,#T_Minute ;“定时分”单元地址 LCALL SPLIT ;调用拆分子程序 LCALL DISP ;调用显示程序 JNB K1,SETM ;等待K1释放、増亮、延时 MOV A,T_Minute ;取“定时分” ADD A,#1 ;“定时分”加1 DA A ;十进制调整 MOV T_Minute,A ;保存“定时分” CJNE A,#60H,SET1 ;判断“定时分”是否等于60 MOV T_Minute,#0 ;清“定时分” SJMP SET1SETH: MOV R0,#T_Minute ;“定时时”单元地址 LCALL SPLIT ;调用拆分子程序 LCALL DISP ;调用显示程序 JNB K2,SETH ;等待K2释放、増亮、延时 MOV A,T_Hour ;取“定时时” ADD A,#1 ;“定时时”加1 DA A ;十进制调整 MOV T_Hour,A ;保存“定时时” CJNE A,#24H,SET1 ;判断“定时时”是否等于24 MOV T_Hour,#0 ;清“定时时” SJMP SET1SAVE: MOV R0,#T_Minute ;定时分单元地址 LCALL SPLIT ;调用拆分子程序 LCALL DISP ;调用显示程序 JNB K3,SAVE ;等待K3释放、増亮、延时 LCALL BB MOV R0,Ttab ;取时间表指针 MOV R0,T_Hour ;保存“定时时”到时间表 INC R0 MOV R0,T_Minute ;保存“定时分”到时间表 INC R0 MOV Ttab,R0 CJNE R0,#60H,SET1 ;判断时间表是否存满SEXIT: LCALL BB ;提示音 CLR F0 ;清数码管闪亮控制标志 RET提示音发生程序BB: MOV R5,#40H ;时间参数,控制节拍LOOP3: MOV R6,#80H ;时间参数,控制音符 DJNZ R6, CPL Buzzer ;蜂鸣器状态取反 DJNZ R5,LOPP3 SETB Buzzer ;关蜂鸣器 RET拆分子程序SPLIT: MOV R1,#DM ;显存首地址 MOV A,R0 ;取分钟 ANL A,#0FH ;取分钟的个位 MOV R1,A ;送显存 INC R1 MOV A,R0 ;再取分钟 ANL A,#0F0H ;取分钟的十位 SWAP A MOV R1,A ;送显存 INC R1 INC R0 MOV A,R0 ANL A,#0FH ;取小时的个位 MOV R1,A ;送显存 INC R1 MOV A,R0 ;再取小时 ANL A,#0F0H ;取小时的十位 SWAP A MOV R1,A ;送显存 RETDISP: PUSH 00 ;保存现场R0 PUSH 01 ;R1 PUSH 02 ;R2 PUSH 03 ;R3 PUSH ACC MOV R0,#DM ;显示缓冲区首地址 MOV R2,#0EFH ;对应分个位的字位码 JNB F0,DISP0 ;判断闪亮标志 DJNZ B,DISP1 ;闪亮间隔控制 CPL F1 MOV B,#50 SJMP DISP1DISP0: CLR F1DISP1: ORL DIS,#0F0H ;关显示器 MOV R3,#6 DJNZ R3, ;延时40s JB F1,HIDE MOV A,R2 ;取位控码 ANL A,#0F0H ;屏蔽无关位 ORL A,R0 ;字位码与字码组成一个字节 MOV DIS,A ;送显示器HIDE: MOV R3,#40 ;延时 DJNZ R3, INC R0 ;指向下一位显存 MOV A,R2 ;取字位码 RL A ;修改 MOV R2,A JB ACC.0,DISP1 ;判断显示器是否扫描一遍DExit: POP ACC POP 03 POP 02 POP 01 POP 00 RET定时比较程序COMP: MOV R1,#20H ;时间表首地址COMP1: MOV A,R1 ;取时间表的小时 CJNZ A,Hour,COMP5 ;与当前时间的小时比较 INC R1 ;指向时间表的分钟 MOV A,R1 ;取时间表的分钟 CJNZ A,Minute,COMP6 ;与当前时间的分钟比较 MOV R5,#40 ;响铃 MOV R4,#10 MOV R6,#30 MOV R7,#40COMP2: MOV R0,#Minute LCALL SPLIT ;调用拆分程序 LCALL DISP ;调用显示程序 DJNZ R6,COMP2 MOV R6,#30 CPL Buzzer DJNZ R5,COMP2 MOV R5,#40 ;响铃COMP3: MOV R0,#Minute LCALL SPLIT ;调用拆分程序 LCALL

温馨提示

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

评论

0/150

提交评论