基于单片机的作息时间控制钟系统设计_第1页
基于单片机的作息时间控制钟系统设计_第2页
基于单片机的作息时间控制钟系统设计_第3页
基于单片机的作息时间控制钟系统设计_第4页
基于单片机的作息时间控制钟系统设计_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

课程设计任务书单片机作息时间控制系统设计的目的和意义:随着计算机技术的发展和在控制系统中的广泛应用,以及设备向小型化、智能化发展,作为高新技术之一的单片机以其体积小、功能强、价格低廉、使用灵活等优势,显示出了很强的生命力。进入21世纪以来,开发推出单片机的公司很多,各种高性能单片机芯片市场也异常活跃,新技术的不断采用,更加使单片机的种类、性能以及应用领域不断扩大和提高。因其功耗低,超高型,低成本,功能完整,在国内越来越受到用户的重视和广泛使用。随着科技的进步和技术不断的提升。一块大而复杂的模拟电路花费了您巨大的精力,繁多的元器件增加了您的成本。而现在,只需要一块几厘米见方的单片机,写入简单的程序,就可以使您以前的电路简单很多。相信您在使用并掌握了单片机技术后,不管在您今后开发或是工作上,一定会带来意想不到的惊喜。以AT89S52为核心控制器件的作息时间控制钟,由键盘、声音输出模块、电源转换模块和存储模块四部分组成。它利用AT89S52的定时/计数器来计算时间,并用存储器记录数据,保证了系统的可靠性。AT89S52单片机是整个设计的核心控制器件,根据从键盘接受的数据控制整个系统的工作流程。整体性好,人性化强、可靠性高,实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的不便,是现代学校必不可少的设备。本次校园作息时间控制系统主要用于学校,对一些以24小时为周期的开关量进行自动控制。如上下课打铃及扩音设备的开与关。采用AT89S52单片机来实现对上述开关量的控制,利用24C02芯片来存储数据,设有六位数码管、可以实时显示时间、系统还设有输入键盘,用以修改实时时钟,体现了系统简单、工作稳定可靠、价廉、控制时间精确及系统体积小等优点。关键词:作息时间控制;AT89S52;24C021绪论..............................................................11.1背景介绍.................................................................错误!未定义书签。1.2作息时间控制钟概述...............................................................................12硬件介绍....................................................................................................................22.1硬件仿真环境介绍...................................................................................22.2系统整体设计...........................................................................................22.3控制钟硬件设计.......................................................................................32.4系统整体电路图......................................................................................43作息时间控制钟软件设计.........................................................................................63.1总体介绍...................................................................................................63.2软件环境介绍...........................................................................................63.3流程图介绍...............................................................................................63.3.1系统主程序.......................................................................................63.3.2系统数据读写子程序.....................................................................103.3.3显示子程序.....................................................................................143.3.4报警扫描子程序.............................................................................193.3.5键盘扫描子程序.............................................................................203.3.6设置时钟子程序.............................................................................223.3.7T1定时器中断子程序...................................................................254系统调试..................................................................................................................285结论...........................................................................................................................296附录...........................................................................................................................246.1参考文献.........................................................................................306.2主要元件列表..................................................................................311绪论1.1背景介绍随着计算机技术的发展和在控制系统中的广泛应用,以及设备向小型化、智能化发展,作为高新技术之一的单片机以其体积小、功能强、价格低廉、使用灵活等优势,显示出了很强的生命力。进入21世纪以来,开发推出单片机的公司很多,各种高性能单片机芯片市场也异常活跃,新技术的不断采用,更加使单片机的种类、性能以及应用领域不断扩大和提高。16位单片机的问世,使得单片机的科技含量及应用跃上一个新的台阶。因其功耗低,超高型,低成本,功能完整,在国内越来越受到用户的重视和广泛使用。本设计是一个具有报时功能的作息时间控制钟。它利用AT89S52单片机的定时器计时,进行时间计算;在进行时间计算,分每加一时,都与规定的作息时间比较,如果相等则进行相应的控制或动作。由键盘和显示部分组成,系统扩展八个按键用于报时及校正时间。现代机关企业,特别是学校要求对时间加以控制,要按时打铃及播放广播,以保证学习与工作的正常运行。本设计实现了这些功能,给学校及其他机关企业带来方便,整体性好,人性化强、可靠性高,实现了对时间控制的智能化。1.2作息时间控制钟概述科技的进步需要技术不断的提升。一块大而复杂的模拟电路花费了您巨大的精力,繁多的元器件增加了您的成本。而现在,只需要一块几厘米见方的单片机,写入简单的程序,就可以使您以前的电路简单很多。相信您在使用并掌握了单片机技术后,不管在您今后开发或是工作上,一定会带来意想不到的惊喜。该系统以AT89S52为主体的设计,整体性好,人性化强、可靠性高,实现了对时间控制的智能化,摆脱了传统由人来控制时间的长短的不便,是现代学校必不可少的设备。2硬件介绍2.1硬件仿真环境介绍:Protues软件是英国Labcenterelectronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。支持当前的主流单片机,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。1)提供软件调试功能2)提供丰富的外围接口器件及其仿真RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。这样很接近实际。在训练学生时,可以选择不同的方案,这样更利于培养学生。3)提供丰富的虚拟仪器利用虚拟仪器在仿真过程中可以测量外围电路的特性,培养学生实际硬件的调试能力。4)具有强大的原理图绘制功能2.2系统整体设计根据设计要求画出系统框图,如图1.1所示:图2.1系统总体框图该系统是由微处理器、存储器、数码显示部分以及键盘输入部分所组成。该控制系统用LED数码管显示时、分、秒时间,可以显示实时时钟,显示闹铃时间,尽量减少时间积累误差,具有秒闪功能。显示电路采用了7407芯片来完成驱的功能,利用上拉电阻共同驱动数码管显示时间。系统采用AT89S52作为处理器,利用24C02芯片作为数据存储器,打铃时间点数据存储于非易失存储器存储24C02中,防止掉电丢失数据;能逐个检查、修改、删除已设置的打铃时间点和增加打铃时间点。系统还设有输入键盘,用以校正实时时钟,设定闹铃时间,键盘设计简单、易于操作。输出驱动电路部分,利用220V电源为系统提供供电,利用继电器驱动,便于控制220V的电铃。同时利用直流——交流转换模块为整个系统提供电源,更方便实际应用。2.3控制钟硬件设计按系统框图分五个部分设计如下图2.1。图2.2硬件系统框图系统以单片机为基本核心,利用24C02芯片可以记录40个闹铃时间,并且可以长时间记录时间,不会造成时间混乱,可以满足正常的作息时间设置,简单实用,可以满足正常的生活。根据学校作息时间,可以得到需要打铃的时间如下表所示:表2.1作息时间控制表2.4系统整体电路图系统的整体的电路图如下图所示:图2.3作息时间控制钟系统整体电路图3作息时间控制钟软件设计3.1总体介绍硬件平台结构一旦确定,大的功能框架即形成。软件在硬件平台上构筑,完成各部分硬件的控制和协调。系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,软件是本系统的灵魂。软件采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。同时,对软件进行全面测试也是检验错误排除故障的重要手段。本程序用汇编语言设计。3.2软件环境介绍:KeiluVision2是美国KeilSoftware公司出品的51语言软件开发系统,使用接近于传统C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全会使用keilc51来开发您的单片机应用程序。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。3.3流程图介绍软件设计以定时器T1、T2定时、内存读取、时钟显示、键盘扫描、报警程序为主程序。在设计中利用单片机时钟计时集成电路完成计时的任务,并500ms向单片机发一个中断,中断子程序有时钟显示及时间比较,如比较相等,则说明作息时间已到,发出指令控制电铃开、关操作。3.3.1系统主程序根据控制钟的设计要求,设计的程序的主流程图如图所示:图3.1主程序流程图流程图程序如下:TF2EQU0CFH;T2中断标志控制位TR2EQU0CAH;T2启动/停止控制位ET2EQU0ADH;T2允许中断控制位PT2EQU0BDH;T2优先级控制位RCAP2LEQU0CAH;T2自动重载低位RCAP2HEQU0CBH;T2自动重载高位TL2EQU0CCH;T2计数器低位TH2EQU0CDH;T2计数器高位I2cStartEQU55H;I2C开始标志I2cStopEQU0AAH;I2C结束标志SDAEQU0B2H;I2C数据线SCLEQU0B3H;I2C时钟线SHOW_CODEEQU80H;显示段码SHOW_BITEQU0A0H;显示位码KeyFlagEQU00H;按键标志位S_FlashEQU01H;秒闪标志位LED_FLAGEQU02H;LDE显示模式标志位BeforKeyEQU22H;上次采样键值NowKeyEQU23H;现在次采样键值LS_SEQU24H;临时变量1LS_MEQU25H;临时变量2LS_HEQU26H;临时变量3CLOCK_DATA0EQU27H;时钟秒CLOCK_DATA1EQU28H;时钟分CLOCK_DATA2EQU29H;时钟时SHOW_MOUDEEQU2AH;显示模式SHOW_PCEQU2BH;显示数据指针RingCountEQU2CH;报警数据个数ShowRingEQU2DH;显示报警数据地址RINGDATAHEQU2EH;报警数据高位起始地址RINGDATALEQU57H;报警数据低位起始地址ORG0000HMOVSP,#10HSJMPSTARTORG0001BHAJMPINT_T1ORG0002BHCPLP3.5CLRTF2RETIORG00035HSTART:MOVTH2,#3CH;设置T2定时50msMOVTL2,#0B0HMOVRCAP2H,#3CHMOVRCAP2L,#0B0HSETBPT2SETBET2MOVTMOD,#60H;设置T1定时500ms(T2中断10次,T1中断5次MOVTH1,#0FBHMOVTL1,#0FBHSETBET1ACALLREAD_DATASETBEASETBTR2SETBTR1MOVCLOCK_DATA0,#0MOVCLOCK_DATA1,#0MOVCLOCK_DATA2,#12SETBLED_FLAGCLRP3.4AGAIN:MOVSHOW_MOUDE,#0;显示模式0MOVSHOW_PC,#CLOCK_DATA0;显示时钟(传时钟地址指针ACALLDISPLAY;调用动态扫描子程序ACALLCOMP_DATA;调用报警扫描子程序MOVBeforKey,NowKeyACALLGETKEY;调用键盘扫描子程序MOVNowKey,ACJNEA,BeforKey,AGAINCJNEA,#0,NEXT_KEY0SETBKeyFlagSJMPAGAINNEXT_KEY0:JNBKeyFlag,AGAINCLRKeyFlagCJNEA,#1,NEXT_KEY2ACALLSetTimer;调用设置时钟子程序SJMPAGAINNEXT_KEY2:CJNEA,#2,AGAINACALLSetRing;调用设置报警子程序SJMPAGAIN;--------------------//主程序结束//3.3.2系统数据读写子程序系统中利用24C02存储系统数据,该芯片为单电源供电,工作电压范围为1.8-5.5V,低功耗CMOS技术,自定时写周期,页面写周期的典型值为2ms,具有硬件写保护。通过串行I2C总线扩展技术对数据进行读写操作,节省了接口引脚数,只利用两根传输总线就可以实现全双工同步数据传送。其程序流程图如下:24C02图3.2数据读写子程序流程图程序如下:I2C_START:;I2C开始SETBSDASETBSCLNOPCLRSDANOPCLRSCLRETI2C_STOP:;I2C结束CLRSDANOPSETBSCLNOPSETBSDARETI2C_SEND:;I2C发送一个字节MOVR7,#08CLRCSEND_BIT:RLCAMOVSDA,CNOPSETBSCLNOPCLRSCLDJNZR7,SEND_BITSETBSDANOPSETBSCLNOPCLRSCLRETI2C_RECEIVE:;I2C接收一个字节MOVR7,#08RECEIVE_BIT:SETBSCLNOPMOVC,SDARLCACLRSCLDJNZR7,RECEIVE_BITSETBSDANOPSETBSCLNOPCLRSCLRETREAD_24C02:;读24C02ACALLI2C_STARTMOVA,#0A0HACALLI2C_SENDMOVA,R0ACALLI2C_SENDACALLI2C_STARTMOVA,#0A1HACALLI2C_SENDACALLI2C_RECEIVEACALLI2C_STOPRETWRITE_24C02:;写24C02ACALLI2C_STARTMOVA,#0A0HACALLI2C_SENDMOVA,R0ACALLI2C_SENDMOVA,R1ACALLI2C_SENDACALLI2C_STOPRETREAD_DATA:;--------------------从24C02中读取数据更新内存MOVR2,#10READ_START_AGAIN:;读开始标志位MOVR0,#0CLREAACALLREAD_24C02SETBEACJNEA,#I2cSTART,READ_SUBSJMPWRITE_STOPREAD_SUB:DJNZR2,READ_START_AGAIN;读开始位错误刷新24C02WRITE_STOP:XRLA,#I2cSTARTJZREAD_NEXT1MOVR0,#0MOVR1,#I2cStartCLREAACALLWRITE_24C02;写开始字节SETBEAMOVR7,#5ACALLDelay1msMOVR0,#1MOVR1,#I2cStopCLREAACALLWRITE_24C02;写结束字节SETBEAMOVR7,#5ACALLDelay1msREAD_NEXT1:MOVR0,#1;读数据地址;R1为间地址寻址寄存器MOVR3,#0;读数据总数;R2为数据缓存器READ_DATA_AGAIN:CLREAACALLREAD_24C02;读高位SETBEAINCR0CJNEA,#I2cStop,READ_NEXT2;判断是否是结束标志SJMPREAD_EXITREAD_NEXT2:MOVR2,AMOVA,#RINGDATAHADDA,R3MOVR1,AMOVA,R2MOV@R1,ACLREAACALLREAD_24C02;读低位SETBEAINCR0MOVR2,AMOVA,#RINGDATALADDA,R3MOVR1,AMOVA,R2MOV@R1,AINCR3CJNER3,#40,READ_DATA_AGAINREAD_EXIT:MOVRingCount,R3;更新报警数据个数RET3.3.3显示子程序对多位LED显示器的动态显示,通常都是采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于间隔时间较短,且人眼具有视觉残留效应,看起来与全部显示器持续点亮一样。为了实现LED显示器的动态扫描,除了要给显示器提供的输入之外,还要对显示器加位选择控制,这就是通常所说的段控和位控。因此多位LED显示器接口电路需要有两个输出口,其中一个用于输出8位信号;另一个用于输出段控制信号。其显示模式有五种:0:正常显示数据;1:显示调试模式(0,1位闪烁);2:显示调试模式(2,3位闪烁);3:显示调试模式(4,5位闪烁);4:显示特殊字符模式。其程序流程图如下:图3.3显示子程序流程图程序如下:SHOW_NUMBER:;段码DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDB40HSHOW_NULL:;空码DB00H,38H,38H,3EH,37H,00HSHOW_BIT_CODE:;位码DB0DFH,0EFH,0F7H,0FBH,0FDH,0FEH;------------------DISPLAY:;显示子程序MOVR1,#6SHOW_AGAIN:MOVA,SHOW_MOUDEXRLA,#4JZSHOW_CHARMOVA,R1ACALLGETCODE;调用得到位数据子程序MOVDPTR,#SHOW_NUMBERMOVCA,@A+DPTRSJMPSHOW_TO_CODESHOW_CHAR:;显示模式为4则显示字符NULLMOVDPTR,#SHOW_NULLMOVA,R1DECAMOVCA,@A+DPTRSHOW_TO_CODE:MOVSHOW_BIT,#0FFH;-------显示数据屏蔽MOVSHOW_CODE,AMOVA,R1MOVDPTR,#SHOW_BIT_CODE-1MOVCA,@A+DPTRMOVSHOW_BIT,AMOVR7,#1ACALLDelay1msDJNZR1,SHOW_AGAINMOVSHOW_BIT,#0FFH;--------显示数据屏蔽RETDelay1ms:;-----------延时1MSMOVR5,#2DELAY:MOVR6,#0DJNZR6,$DJNZR5,DELAYDJNZR7,Delay1msRETGETCODE:;得到位数据子程序MOVB,#10DECARLAMOVDPTR,#FIND_BITJMP@A+DPTRFIND_BIT:;位散转SJMPSHOW_0SJMPSHOW_1SJMPSHOW_2SJMPSHOW_3SJMPSHOW_4SJMPSHOW_5SHOW_0:;得到位0数据MOVR0,SHOW_MOUDECJNER0,#1,SHOW_LED_0JBS_Flash,SHOW_LED_0MOVA,#10RETSHOW_LED_0:MOVR0,SHOW_PCMOVA,@R0DIVABMOVA,BRET;得到位1数据SHOW_1:MOVR0,SHOW_MOUDECJNER0,#1,SHOW_LED_1JBS_Flash,SHOW_LED_1MOVA,#10RETSHOW_LED_1:MOVR0,SHOW_PCMOVA,@R0DIVABRETSHOW_2:;得到位2数据MOVR0,SHOW_MOUDECJNER0,#2,SHOW_LED_2JBS_Flash,SHOW_LED_2MOVA,#10RETSHOW_LED_2:MOVR0,SHOW_PCINCR0MOVA,@R0DIVABMOVA,BRETSHOW_3:;得到位3数据MOVR0,SHOW_MOUDECJNER0,#2,SHOW_LED_3JBS_Flash,SHOW_LED_3MOVA,#10RETSHOW_LED_3:MOVR0,SHOW_PCINCR0MOVA,@R0DIVABRET;得到位4数据SHOW_4:MOVR0,SHOW_MOUDECJNER0,#3,SHOW_LED_4JBS_Flash,SHOW_LED_4MOVA,#10RETSHOW_LED_4:MOVR0,SHOW_PCINCR0INCR0MOVA,@R0DIVABMOVA,BRETSHOW_5:;得到位5数据MOVR0,SHOW_MOUDECJNER0,#3,SHOW_LED_5JBS_Flash,SHOW_LED_5MOVA,#10RETSHOW_LED_5:MOVR0,SHOW_PCINCR0INCR0MOVA,@R0DIVABRET3.3.4报警扫描子程序通过扫描时钟与定时时间是否相同来控制电铃,其程序流程图如下:图3.4报警扫描子程序流程图程序如下:COMP_DATA:;报警扫描子程序MOVA,RingCountJZCOMP_EXITMOVA,CLOCK_DATA0JNZCOMP_EXITMOVR2,RingCountCOMP_LOOP:MOVA,RINGDATAHCJNEA,CLOCK_DATA2,NEXT_COMPMOVA,RINGDATALCJNEA,CLOCK_DATA1,NEXT_COMPSETBP3.4SJMPCOMP_EXITNEXT_COMP:INCR0INCR1DJNZR2,COMP_LOOPCOMP_EXIT:RET3.2.5键盘扫描子程序系统利用独立式键盘,作为系统的输入设备,可以实现对时钟的调整,以及对响铃报警时间的设置,具有设计简单,方便,使用的特点。程序如下:GETKEY:;扫描键盘得到键值子程序MOVA,P1CJNEA,#0FEH,GOTO_KEY2MOVA,#1RETGOTO_KEY2:CJNEA,#0FDH,GOTO_KEY3MOVA,#2RETGOTO_KEY3:CJNEA,#0FBH,GOTO_KEY4MOVA,#3RETGOTO_KEY4:CJNEA,#0F7H,GOTO_KEY5MOVA,#4RETGOTO_KEY5:CJNEA,#0EFH,GOTO_KEY6MOVA,#5RETGOTO_KEY6:CJNEA,#0DFH,GOTO_KEY7MOVA,#6RETGOTO_KEY7:CJNEA,#0BFH,GOTO_KEY8MOVA,#7RETGOTO_KEY8:CJNEA,#07FH,KEY_EXITMOVA,#8RETKEY_EXIT:MOVA,#0RET3.3.6设置时钟子程序:利用键盘设置,通过模式左移右移来实现对时间的修改设置以及保存。其程序流程图如下:等图3.6设置时钟子程序流程图程序如下:SetTimer:;时钟设置子程序MOVLS_S,CLOCK_DATA0;时钟数据放临时变量MOVLS_M,CLOCK_DATA1MOVLS_H,CLOCK_DATA2MOVSHOW_MOUDE,#1;显示模式1MOVSHOW_PC,#LS_S;显示数据指针转临时变量SetTimer_Again:ACALLDISPLAY;调用显示扫描子程序ACALLCOMP_DATA;调用报警扫描子唾弃MOVBeforKey,NowKeyACALLGETKEY;调用键值扫描子程序MOVNowKey,ACJNEA,BeforKey,SetTimer_AgainCJNEA,#0,SetTimer_KEY0SETBKeyFlagSJMPSetTimer_AgainSetTimer_KEY0:JNBKeyFlag,SetTimer_AgainCLRKeyFlag;健值控制CJNEA,#03,SetTimer_KEY4;模式左移MOVA,SHOW_MOUDECJNEA,#3,SHOW_MOUDE_ADDMOVSHOW_MOUDE,#1AJMPSetTimer_AgainSHOW_MOUDE_ADD:INCSHOW_MOUDEAJMPSetTimer_AgainSetTimer_KEY4:CJNEA,#04,SetTimer_KEY5MOVA,SHOW_MOUDECJNEA,#1,ADD_M;秒加MOVA,LS_SCJNEA,#59,NOT_RESET_SMOVLS_S,#0AJMPSetTimer_AgainNOT_RESET_S:INCLS_SAJMPSetTimer_AgainADD_M:;分加CJNEA,#2,ADD_HMOVA,LS_MCJNEA,#59,NOT_RESET_MMOVLS_M,#0AJMPSetTimer_AgainNOT_RESET_M:INCLS_MAJMPSetTimer_AgainADD_H:;时加MOVA,LS_HCJNEA,#23,NOT_RESET_HMOVLS_H,#0AJMPSetTimer_AgainNOT_RESET_H:INCLS_HAJMPSetTimer_AgainSetTimer_KEY5:CJNEA,#05,SetTimer_KEY6MOVA,SHOW_MOUDECJNEA,#1,SUB_M;秒减MOVA,LS_SCJNEA,#0,NOT_SET_SMOVLS_S,#59AJMPSetTimer_AgainNOT_SET_S:DECLS_SAJMPSetTimer_AgainSUB_M:;分减CJNEA,#2,SUB_HMOVA,LS_MCJNEA,#0,NOT_SET_MMOVLS_M,#59AJMPSetTimer_AgainNOT_SET_M:DECLS_MAJMPSetTimer_AgainSUB_H:;时减MOVA,LS_HCJNEA,#0,NOT_SET_HMOVLS_H,#23AJMPSetTimer_AgainNOT_SET_H:DECLS_HAJMPSetTimer_AgainSetTimer_KEY6:;模式右移CJNEA,#06,SetTimer_KEY7MOVA,SHOW_MOUDECJNEA,#1,SHOW_MOUDE_SUBMOVSHOW_MOUDE,#3AJMPSetTimer_AgainSHOW_MOUDE_SUB:DECSHOW_MOUDEAJMPSetTimer_Again;退出SetTimer_KEY7:CJNEA,#07,SetTimer_KEY8SJMPEXIT_SetTimerSetTimer_KEY8:;保存退出CJNEA,#08,RETURN_SetTimerMOVCLOCK_DATA0,LS_SMOVCLOCK_DATA1,LS_MMOVCLOCK_DATA2,LS_HSJMPEXIT_SetTimerRETURN_SetTimer:AJMPSetTimer_AgainEXIT_SetTimer:RET3.3.7T1定时器中断子程序主程序利用T1定时器的中断来修改时间值,同时修改秒闪状态、数码管的闪烁,同时修改响铃的状态,当响铃经过20S后断电。其流程图如下:图3.7T1定时器中断子程序流程图程序如下:INT_T1:;T1中断子程序PUSHPSWPUSHACCCPLS_FlashJBLED_FLAG,NOT_CONTROL0SETBP3.1SJMPNOT_CONTROLNOT_CONTROL0:MOVC,S_FlashMOVP3.1,CNOT_CONTROL:JBS_Flash,INT_TI_EXITMOVA,CLOCK_DATA0CJNEA,#59,INC_CLOCK_DATA0MOVCLOCK_DATA0,#0MOVA,CLOCK_DATA1CJNEA,#59,INC_CLOCK_DATA1

温馨提示

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

评论

0/150

提交评论