已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
定时报时控制系统、 数理与信息工程学院毕 业 设 计题 目: 报时定时控制系统 专 业: 计算机科学与技术(专升本) 班 级: 056 姓 名: 学号:实验地点:数理与信息工程学院 电子系统设计室指导老师: 成 绩: ( 2006.6 )目 录第1节 引 言 1. 1技术要求 1. 2计时方案 1. 3键盘/显示方案第2节 硬件设计 2. 1电路原理图 22 系统工作流程第3节 系统软件设计 31 软件设计 32 系统工作流程 第4节 程序清单. 4. 1主程序模块 4. 2定时中断服务程序模块 4. 3扫描显示模块 4. 4键扫描子程序 4. 5键值处理子程序4. 6移位键处理程序模块4. 7报时处理模块 4. 8用户自设定报时时间点处理模块第5节 结束语 参考文献 报时定时控制系统数理与信息工程学院 05计算机专升本 指导教师: 第1节 引 言因为单片机的种类多,而型号杂,也是我们学习中的困难,所以就MCS51系列的产品来说,就是一个典型的学习方法。对于类似汇编的单片机编程过程,也是一个十分有趣的过程。为了更好的说明,我以上介绍先从应用电路切入,同时介绍它们的使用方法,以便能快速掌握它们的应用。1.1技术要求(1) 定时准确,月误差=10%。(2) 掉电时有备用电池继续走时,不能停机。(3) 有显示和校时功能。(4) 作息时间预置36点,可用外置开关选用数套作息时间表。(5) 具备定时起闹功能。(6)1.2计时方案采用软件控制利用MCS-51系列单片机内部的定时/计数器进行中数年定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,且能够使读者在定时/计数器的使用、中数年及程序设计方面得到锻炼与提高,因此本系统将采用软件方法实现计时。1.3键盘/显示方案对于实时时钟而言,显示显然是另一个重要的环节。如前所述,通常有两种显示方式:动态显示和静态显示。直接利用MC51单片机的P0和P2口,LED动态显示。 该方案硬件连接简单,但动态扫描的显示方式需占用CPU较多的时间,在单片机没有太多实时测控任务的情况下可以采用。第2节 硬件设计考虑到在停电时本机仍需正常走时,故单片机选用COMS低功耗产品如MCS51,由于LED显示电路耗电量较大,可将其电源与单片机电源分开,从而使得在停电时蓄电池仅对单片机供电,而不对显示电路供电,延长电池的供电时间。选用典型的并口扫描显示输出。用MCS51的P0口和P2口作为段码和位码输出口,并由2片ULN2003作为每个端口的反相驱动。利用P1口的低六位作为6个功能键的键盘线,P3口部分口作为冬季或夏季作息时间的选择线、临时报时处理设置线和打铃输出控制(输出部分加光电隔离)。2.1电路原理图报时钟电路的核心是MCS51单片机,其内部带有4KB的程序ROM,无须外扩程序存储器。电脑时钟没有大量的运算和暂存数据,现有的128B片内RAM已能满足要求,也不必外扩片RAM。系统配备5位LED显示和6*1键盘,用P1口作为键盘接口电路,P2口作为5位LED 显示的位选通口,P0口则作为字形码输出口。采用共阴极LED数码管,P0口、P2口和数码管之间串接了反相驱动芯片ULN2003,因此P2口输出高电平选中相应的位,而P0口输出低电平点亮相应的段。 P3。2接用户自设定报时/作息时间报时的选择开关,开关闭合(P3。2为低电平)时,仅对用户自设定的时间点进行报时;开关断开时,则进行固定的作息时间表报时。 P3。3端口接夏令/冬令作息时间表,P3。3=1时选择择冬令作息时间表。P3。3端口外接光电隔离器,驱动扩音机电源的控制开关,低电平有效。P3。3端口外接光电隔离器,驱动音乐播放的控制开关,低电平有效。2.2系统工作流程本单片机报时控制系统具备以下功能:(7) 时钟显示。5位LED从左到右依次显示星期、时、分,采用24H计时。(8) 键盘功能。采用6个独立按键,包括:移位键、加1键、减1键、校时置入键、定时设定键、定时显示键。(9) 移位键:(P1。0=0)每按动移位键一次,小数点从左向右移动1位。(10) 加1键:(P1。1=0)对小数点所在位的数什进行十进制加1。(11) 减1键:(P1。2=0)对小数点所在位的数值进行十进制减1。(12) 校时置入键:(P1。3=0)将显示的时间值置入实时时钟的计时缓冲区。(13) 报时设定键:(P1。4=0)根据组编号(LED显示的最高位的值)将用户设定的报时时间点(小时和分)存入内部RAM相应存储单元中。(14) 报时显示键:(P1。5=0)显示组编号(LED最高位)所指定的一组用户报时时间。本单片机报时控制系统工作流程如下:(1) 时间显示。通电后,系统自动进入时钟显示,从00:00:00:开始计时,此时可以设定当前时间。(2) 时间校对。按下“移位”键,小数点从左向右移动,每按动1次,小数点便移动1位;要修改设置哪一位,只需将小数点移到该位,便可用“加1键”或“减1键”对该位进行数字设定;时间的校对设定一共有5位,从左到右依次为星期、小时十位、小时个位、他的十位、分的个位。设置正确后“校时置入键”,时间校正便设置完成,报时钟开始按新设置的时间值开始走时和显示。(3) 用户报时时间设置/显示。用户可以自行设定10组报时时间点,这时LED显示的最高位定义为组编号其他位定义不变;按下“报时设定键”,系统根据“组编号”将用记设定的报时时间点(小时和分)存入内部RAM相应存储单元中,用户如需修改和检查这些报时时间。如需修改,可用“移位键”、“加1键”,“减1 键”来重新设定,然后用“报时设定键”来转入并结束显示。(4) 报时输出的驱动过程。在报时处理程序上中,一旦当前时间与作息时间表中的某一时间点(时、分值)相同时,则建立F0报时标志,建立F1放音标志,扩音机播放报时音乐,并在26H中设置放音时间,放音时间到,则关闭驱动及清除F1标志位,完成1次报时驱动.第3节软件设计3.1系统资源分配 (1)为方便阅读程序,先对系统的资源分配加以说明。1) 定时器。定时器0用作时钟定时,按方式1工作,每隔100MS溢出中断1次。2) 片内RAM及标志位的分配与定义见表1地址功能名称初始化值2FH2BH显示缓冲区,星期、小时、分(高位在前)DISP0DISP400H24H20H计时缓冲区,星期、时、分、秒、100msWEEK,HOUR,MIN,SEC,MSEC00H40H53H用户报时时间值寄存区(时、分)AHOUR、AMIN00H61H7FH堆栈区00HF0H报时开始标志位F0H0F1H放音开始标志位F1H0F3H分钟值变更标志位F3H0F4H键处理标志位F4H025H扩音机预热时间25H00H26H播放报时音乐时间26H00H(2)软件流程。根据上述工作流程,软件设计可分为以下几个功能模块:1) 主程序:初始化与键盘监控。2) 计时:为定时器0中断服务子程序,完成刷新计时缓冲区的功能。3) 时间设置与报时设置:由键盘输入设置当前时间与定时启闭时间。4) 显示:完成5位LED动态显示。5) 键盘扫描:判断是否有键按下,并求取键号。6) 定时比较:判断报时时间到否,如时间到,则启动报时处理程序。7) 其他辅助功能程序,如键盘设置、拆字、合字、冬季或夏季时间表选择及假日停止报时等。 3.2模块进行软件设计1) 计时程序模块。如前所述,系统定时采用定时器与软件循环相结合的方法。定时器0每隔100MS溢出中断1次,则循环中断10次延时时间为1S,上述过程重复60次为1MIN,分计时60次为1H,小时计时24次则时间重新回到00:00:00,同时星期计数加1,如加至7则回复得到0。 设系统使用6MHZ的晶振,定时器0工作在方式1,则100MS定时对应的定时器初值可由下式计算得到定时时间=(2-定时器0初值)*(12/FOSC)如果定时器0初值为30CBH,则TH0=3CH,TL0=0B0H当系统使用其他频率的晶振时,可以由上式计算相应的定时器0初值,也可以改变定时时间。例如当系统晶振为12MHZ时,同样的初值对应的定时时间为50MS,则循环中断次数为20次时,延时时间为1S。这里有两个问题需要特别重视。第一,定时器溢出产生中断请求,CPU并不一定立即响应中煌,而可能需要延迟一定的中断响应时间之后才能响应中断,中断响应时间大约为38个机器周期。显然,这将在定时时间中加入额外的延时时间,导致计时误差。为了保证计时精度,必须采取措施进行补偿。我们采用增大重装的定时器0初值的方法来减少定时器0定时时间。具体应调整为多大,一般需要通过调试来确定。经测试,定时器0重装初值设为3CB7H3CBFH。可以满足精度要求。第二,时间是按十进制递增,而MCS-51系列单片机只有二进制加法指令,因此用加法指令计时必须进行二一十进制转换。2) 时间校对设置程序和定时报时程序模块。将键盘输入的5位时间值合并3位压缩BCD码(星期、时、分)送入计时缓冲区,作为当前计时起始时间或报时定时时间。该 模块的入口为计时缓冲区或报时值寄存区的首地址。程序调用1个键盘设置子程序将键入的5位时间值送入键盘设置缓冲区,然后用合字程序将键盘设置缓冲区中的6位BCD码合并为3位压缩BCD码,送入计时缓冲区或用户自定义报时值寄存区。3) 键盘扫描程序模块。此模块的功能是判断是否有键按下,无键按下则循环等待,有键按下则求承诺键号并将键号送累加器A返回。程序中的去抖延时和循环等待延时都用显示子程序来代替,从而保证随时刷新显示。键盘扫描程序在前面已有详细的叙述,在此不再赘述。4) 显示程序模块。将显示缓冲区中的5位BCD码用动态扫描方式显示。为此,必须首先将3字节计时缓冲区中的星期、时、分秒压缩BCD码拆分为5字节(百位、十位分别占有2字节)BCD码。5) 定时比较程序模块。在主程序中,一旦检测到有分值进位(即计满60S向分钟值进位)标志F3建立,即进入报时处理子程序,首先通过检测外接的INT0、INT1开关来判断当前的报时是选择用户自定义报时间表还是常规报时处理,在常规报时处理时,是选用夏季作息时间表,还是冬季作息时间表,并判断当天是否是周日或周六(休息日不报时)。然后将当前时间(计时缓溃区的值)与预设的报时时间(报时设置寄存区的值)比较,二者完全相同时,启动报时处理子程序,并置位报时标志F0,在定时中断服务程序中进行扩音机预热延时和音乐输出驱动等处理。6) 拆字程序与合字程序。如前所述,拆字程序的功能是将3字节计时缓冲区中的星期、时、分压缩BCD码拆分为5字节(星期值占有1字节,时、分各占有2字节)BCD码并刷新显示缓冲区,合字程序的功能是将键盘设置缓冲区中的5位BCD码合并为3位压缩BCD码,送入计时缓溃区或用户自设定报时值设定报时值寄存区。下面分别对各程序模块进行介绍。1) 主程序。主程序流程图如图22) LED数码管扫描显示程序模块3) 键盘扫描程序模块4) 键值处理程序模块5) 报时处理程序模块流程图开始I/O端口初始化设置栈指针软件陷阱处理RAM区清零定时器、中断初始化报时处理子程序调用键扫描子程序键扫描处理子程序调用显示子程序如有键则进行键处理判断是否有F3标志返回主程序入口N YN Y 报时处理程序模块流程图6) 时处理模块(中断服务程序,流程图如下图)开始定时器初值重置保护中断现场选择工作寄存区3ms计数加1熄灭秒点点亮秒点判ms值6音乐输出延时分加1计数,建立分进位标志扩音机预热延时实时时间送显示缓存秒计数加1小时加1计数中断返回ms计数0AH?A 第4节程序清单4.1 主程序模块(MAIN)在主程序模块中,先对各端口进行初始化,对内部RAM区清零,设置堆栈和定时器初值,关闭显示器,启动定时及其中断。然后检测时钟分值变更标志位F3是否建立,如果已建立,则进行报时处理,否则再检测有无按键按下,若有则进行按键处理,无则返回循环点。 ORG 000H START: AJMP MAIN ;跳转入主程序0030H ORG 000BH AJMP CTCINT ;跳转到定时器T0的中断服务程序入口 ORG 0030HMAIN: NOP ;主程序入口地址:0030H NOP NOP MOV A,#OFFH ;关闭各输出口MOV P0,A ;P0口为字形口,低电平有效MOV P1,A;P1口作为6个键输入口MOV P2,A ;P2口是字位口,低电平有效MOV P3,A ;P3口报时方式控制和驱动输出口SETB T0;关闭报时音乐输出(T0=1)SETB T1 ;关闭报时扩音机电源(T1=1)CJNE SP,#07H,NOT1 ;SP/07H,是软件陷阱转来,不进行RAM清零MOV R0,#7FHMOV R1,#7DH ;否则RAM清零初始化CLR ALOOP0: MOV R0,A DEC R0DJNZ R1, LOOP0 ;从内部RAM区03H到7FH均清零NOT1: MOV SP,#60H ;设置栈指针MOV IP,#02H;设置定时器T0为最高中断优先级MOV IE,#82H;定时器T0开中断MOV TMOD,#01H;设置定时器T0为方式1MOV TL0,#0B0H;设置定时器T0初值MOV TH0,#3CHSETB TR0;启动定时NOPNEXTT: NOP MOV SP,#60H;重置堆栈底位置LCALL DISP;调用显示子程序NOP;检测标志是否出现,F3为定时分钟值变化的标志位JNB 0F3H,NEXT1;F3=0,则转键扫描,判断有无键按下NOP ;F3=1,调用报时处理子程序SETB INT0JNB INT0 , USERS;如INTO=0,则调用用户自设定报时点LCALL TIMERA;INTO=1,调用TIMERA,按作息时间表报时USERS: NOPLCALL TIMERB;TIMERB为用户自设定报时点报时NOPNEXT1:LCALL CHECKEY;调用按键扫描子程序,判断有无键按下JZ NEXTT;无键按下,返回重新扫描NOPLCALL KEYACC;有键按下,调用按键处理子程序NOPSJMP NEXTTNOPNOP4.2定时中断服务程序模块该多好模块完成下述工作:对100毫秒(20H)、秒(21H)、分(22H)、小时(23H)及星期计数单元(24H)进行累计计数,如果分值有计数变化并且无键按下,则将当前的星期、小时和分钟送显示缓冲区更新显示目录;如有报是处理标志,则对报时扩音机电源和报时音乐输出分别进行定时控制。CTCINT:NOP;T0的中断服务子程序MOV TL0,#0B4H;设置定时器T0初值MOV TH0,#3CHPUSH ACC;保护主程序现场数据PUSH PSWNOPSETB RS0;选择新的工作寄存器区(1区)CLR RS1;SELECT 1 AREAINC 20H;0.1S单元加1MOV A,20HJB OF4H,LCA;(F4H)为键处理标志位,在键处理过程中不显示秒点CJNE A,#05H,CTNUCCTNUC: JC LC2;小于0.4S则秒点闪亮,大于0.4S则秒点熄灭CLR 6CHSJMP LCALC2: SETB 6CHLCA: CJNE A,#0AH,RTNH;未计满1S则退出中断MOV 20H,#00H;毫秒计数单元清零JNB 0F0H,NEXTE;F0H=1为报时扩音机预热延时标志位MOV A,25H;(25H)中存放报时扩音机预热延时时间值JNZ NEXTFCLR OFOHCLR OFOHSETB OF1HMOV 26H,#1OH ;(26H)中存放报时放音的延时时间值CLR TONEXTE: JNB OF1H,NEXTF ;(F1H=1)为报时放音的延时标志位MOV A,26HDEC AMOV 26H,AJNZ NEXTF ;判断报时放音延时是否结束CLR OF1H ;延时时间到,清除报时放音标志位,关闭报时电源SETB T1SETB T2SETB TOSETB TONOPNEXTF: NOPMOV A,21H ;对秒计数单元(21H)进行累计计数ADD A,#01HDA AMOV 21H,ACJNE A,#06H,RTNH ;判断分计数是否计满CLR AMOV 21H,ASETB 0F3H ;(F3H)为分值有变更标志位NEXT: MOV A,22H ;对分(22H)进行累计计数ADD A,#01H;DA AMOV 22H,ACJNE A,#60H,RTDNMOV 22H,#00HMOV A,23HADD A,#01H ;时单元加1DA AMOV 23H,A ;对时(23H)进行累计计数CJNE A,#24H,TRNDMOV 23H,#00HMOV A,24HADD A,#01H ;星期计数单元(24H)加1DA AMOV 24H,ACJNE A,#07H,RTDNMOV 24H,#00HRTDN: NOPJNB OF3H,RTDH ;确认(F3=0)分值无变更,则返回JB OF4H,RTNH ;确认(F4=0)正在键处理,则返回LDDA: NOP ;将当前的时间值显示缓冲区NOPMOV R0,#24H ;(24H、23H、22H、)送(2FH2BH)MOV R1,#2FHMOV R2,#02HMOV A,R0ANL A,#0FHMOV R1,ADEC R0DEC R1LD1: MOV A,R0 ;将1字节压缩的BCD码拆成两个字节,数数值存放在低字节内ANL A,#OF0HSWAP AMOV R1,ADEC R1MOV A,R0ANL A,#0FHMOV R1,ADEC R0DEC R1DJNZ R2,LD1NOPRTNH:NOP ;中断返回,并恢复现场数据NOPPOP PSWPOP ACCRETI4.3扫描显示模块 该模块为5位LED扫描显示模块。P0口为字形码输出口,低电平有效;P2口为字位码输出口,高电平有。显示缓冲区为2FH2BH等5个字节,2FH存放显示的星期数,2EH、2DH存放显示的小时数,2CH、2BH存放显示的分钟数,其数值范围在00H0FH内时不显示该位的小数点,在10H1FH时则显示小数点。DISP:NOP ;DISP为显示子程序NOP MOV A,#00H ;关闭显示MOV P2,A ;P2口为字位码输出口MOV A,#0FFH MOV P0,A ;P0口为字形码输出口NOPNOPMOV R0,#2FH ;显示子程序NOP逻辑 MOV R1,#10H ;位控制字LOOP1: MOV A,R1NOPMOV P2,A ;输出位控制字MOV P2,AMOV DPTR,#TABLEMOV A,R0 ;取显示缓冲区中的显示字符数MOVC A,A+DPTR ;查表转换成字型代码CPL AMOV P0,A ;输出字形码MOV R2,#00HLOOP2: DJNZ R2,LOOP2 ;延时2MSDEC R0 ;显示下一个字符MOV A,R1CLR CRRC AMOV R1,AJNZ LOOP1 ;判断5位扫描显示一遍是否完成RET NOPNOPTABLE: DB 3FH,06H,5BH,4FH,66H,7DH,07H ;不带小数点时的字符显示字形表DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H ;带小数点时的字符显示字形表DB 0FFH,0EFH、0F7H,0FCH,0B9H,0F9H,0F1HNOP4.4键扫描子程序 检测P1口,判断是否有键按下,如有键按下,进进行延时去抖动并读取键值,存入A中。CHECKEYA:NOP;键扫描子程序NOPNOPMOV P1,#0FFHMOV A,P1;判断是否有键按下CPL AANL A,#3FHJZ RETXLCALL DISP;延时去抖动LCALL DISPMOV A,P1CPL AANL A,#3FHJZ RETXMOV R6,A;当前值存放在R6中K1: LCALL DISP;等待释放按键MOV A,P1CPL AANL A,#3FHJNZ K1MOV A,R6NOPNOPRETX:RETNOPi. 用户自设定报时时间点置入键程序模块。将显示缓冲区2FH2BH中的内容压缩后存入40H为首地址的片内RAM中,其中2FH为定时时间点的编号,2EH、2DH为小时值,2CH、2BH为分钟数值。USESET:NOPMOV R0,#2FHMOV R1,#40H ;本次用户设定报时点首址为40HMOV A,R0ANL A,#OFHRL AADD A,R1 ;报时点编号乘2加首址,为本次存放的实际地址MOV R1,ADEC R0NOP;定时设定时间置入子程序NOPMOV R2,#02HLDD: MOV A,R0 ;将小时和分钟值压缩后存入相应单元中ANL A,#0FHSWAP AMOV R7,ADEC R0MOV A,R0ANL A,#0FHADD A,R7MOV R1,ADEC R0INC R1DJNZ R2,LDDNOPCLR 0F4HNOPRETNOPii. 减1键处理。在小数点点亮的对应位上进行十进制减1处理。 SUBONE: NOPNOPJNB 7CH,SCH74MOV R0,#2FHSJMP SUB1SCH74: NOPJNB 74H,SCH6CMOV R0,#2EHSJMP SUB1SCH6C:NOP JNB 6CH,SCH64MOV R0,#2DHSJMP SUB1SCH5C: NOP JNB 64H,SCH5CMOV RO,#2CHSJMP SUB1SCH5C: NOPJNB 5CH,ERR1MOV R0,#2BHSJMP SUB1NOPNOPERR1:RETNOPSUB1:NOPMOV A,R0ADD A,#99HDA AXCHD A,R0RETiii. 用户自设定报时时间点显示键处理模块。由(2FH)指定的用户自设定报时点编号,计算其在RAM中存放的地址,再根据此地址找出该报时时间点的2个字节码,将其4个半字节分别存入2EH2BH单元低半字中。DSPUSE:NOPMOV R0,#2FH ;自设定报时点编号由(2FH)指定MOV R1,#40H ;用户设定报时点首址为40HMOV A,R0ANL A,#0FHRL AADD A,R1 ;报时点编号乘2加首址,为其存放的实际地址MOV R1,ADEC R0NOP ;取定时设定时间并置入显示缓冲区NOPMOV R2,#02HLDR: MOV A,R1 ;将小时和分钟值解压缩后装入相应显示单元中SWAP AXCHD A,R0DEC R0INC R1DJNZ R2,LDRNOPCLR 0F4HNOPRETNOP4.5键值处理子程序 KEYACC: NOP;键值处理子程序 NOP;按键处理子程序JB ACC0,SHIFTP ;是移位功能键转SHIFTPJB ACC1,ADDONE ;是加1键,转ADDONEJB ACC2,SUBONE ;是减1键,转SUBONEJBACC3, TIMSET ;是时钟校对键转TIMSETJBACC,USESET ;设置用户定时时间点JB ACC5,DSPUSE ;显示用户定时时间点NOPNOPNOPRETNOPiv. 加1键处理程序。在小数点点亮的对应位上进行十进制加1处理。ADDONE:NOPNOPJNB 7CH,SECH74MOV R0,#2FHSJMP ADD1SECH74:NOPJNB 74H,SECH6CMOV R0,#2EHSJMP ADD1SECH64C:NOPJNP 6CH,SECH64MOV R0,#2BHSJMP ADD1NOPNOPERR2: RETNOPADD1: NOPMOV A,R0ADD A,#01HDA AXCHD A,R0RETv. 校时时间置入程序模块。将设定的时间值置入相应的时间计数单元,并以该时间为起点开始计时。TIMSET:NOP ;校时时间置入程序段NOPMOV R0,#2FHMOV R1,#24HMOV R2,#02HMOV A,R0ANL A,#0FHMOV R1,ADEC R0DEC R1LD1: MOV A,R0ANL A,#0FHSWAP AMOV R7,ADEC R0MOV A,R0ANL A,0FHADD A,R7MOV R1,ADEC R0DEC R1DJNZ R2,LD1MOV 21H,#00HCLR 0F4HRETNOPNOP4.6移位键处理程序模块 将小数点从左向右依次移动1位。 小数点移动哪一位,那一位便可用加1或减1键进行修改数值。小数点如移到最右边1位,若再按1次移位键,小数点自动返回到最左边一位上。SHIFTP:NOPJB 0F4H,NXTERR:SETB 0F4HSETB 5CHCLR 6CHNXT: NOP JNB 7CH,CHK74CLR 7CHSETB 74HRETCHK74: NOPJNB 74H,CHK6CCLR 74HSETB 74HSETB 6CHRETCHK6C: NOPJNB 6CH ,CHK64CLR 6CHSETB 64HRETCHK64: NOPJNB 64H,CHK64CLR 6CHSETB 5CHRETCHK5C: NOPJNB 5CH,ERRCLR 5CHSETB 7CHRET4.7报时处理模块 本程序段处理下述工作:判断当天是否为双休日及判断当前时间是否在午夜,如在上述时间段内,则不进行报时;由INT1端口状态来选择夏季作息时间或是冬季作息时间;从作息时间表中取出各设定报时时间点,与当前时间(小时、分钟值)进行比较,如果完全相同则建立报时标志。TIMERA:NOPMOV A,24HANL A,#0FHJZ BH1CJNE A,#O6H,CNTUXMOV A,23HCJNE A,#12H,CC1CC1:JNC BH1CNTUX: NOP SETB P1。7JB P1。7,SUMMWINTER:MOV DPTR,#TABLE2SJMP COMPSUMM:MOV DPTR ,#TABLE2COMP:CLR ANOPMOV R2,#24HLOP1:MOVC A,A+DPTRCJNE A,#22H,QUITQUIT:JNC QUITACJNE A,#06H,QUITBQUITB:JC QUITACONTUB:CJNE A,23H,QUITAINC DPTRCLR AMOVC A,A+DPTRCJNE A,22H,CONTCNOPSETB 0F0HMOV 25H,#0AHSETB T0CLR T1CLR T1NOPBH1:CLR 0F3HRETQUITA: NOPINC DPTRCONTC: NOPINC DPTRDJNZ R2,LOP1NOPCLR 0F3HRET4.8用户自设定报时时间点处理模块 该模块对换用户自行设定的报时时间点进行判断处理,并对该报时时间的正确性进行判别处理。MTIMERB: NOPMOV R2,#OAHCLR AMOV R0,#40HLOP2:MOV A,R0CJNE A,#22H,QUIT2QUIT2: JNC QUITA2CJNE A,#06H,QUTIB2QUITB2:JC QUITA2CONTUB2:CJNE A,23H,QUITA2INC DPTRCLR AMOVC A,A+DPTRCJNE A,22H,CONTC2NOPSETB 0F0HMOV 25H,#0AHSETB T0CLR T1CLR T1NOPBH12:CLR 0F3H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 密云县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(能力提升)
- 鹤壁市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(满分必刷)
- 2026年兰州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(巩固)
- 濮阳市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(黄金题型)
- 淄博市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(名师系列)
- 开县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及参考答案详解
- 聊城市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(轻巧夺冠)
- 2026年防城港市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(名师系列)
- 无锡市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(综合卷)
- 2025年广东省河源市辅警考试真题及答案
- Turning Red《青春变形记(2022)》完整中英文对照剧本
- 2024年泰州市现代农业发展集团有限公司招聘笔试冲刺题(带答案解析)
- 幼儿园花样跳绳培训
- (正式版)SHT 3224-2024 石油化工雨水监控及事故排水储存设施设计规范
- 《气体绝缘金属封闭输电线路击穿放电监测与定位导则》
- 护理制度与职责
- 《锅炉水容积测试技术规范》
- 《老干妈的成功》课件
- 药物外渗的预防和处理护理课件
- 十大医药代表成功经验分享
- 以工代赈项目技能培训方案
评论
0/150
提交评论