版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 DIY 爱好者任 务 书摘要前言说 明 书毕业论文ShaoguanUniversity作者:kesion 目录第一章电路原理分析 1- 1 显示原理 1- 2 数码管结构及代码显示 1- 3 键盘及读数原理 第1- 4 二 章连击功能的实现 程序设计思想和相关指令介绍 2- 1 数据与代码转换 2-2计时功能的实现与中断服务程序 2- 3 时间控制功能与比较指令 2-4 时钟误差的分析 附录 A 电路图 附录 B 存储单元地址表 附录 C 输入输出口功能分配表附录 D 定时中断程序流程图附录 F 调时功能流程图 附录 G 程序 D
2、IY 爱好者 Created with novaPDF Printer (www.novaPDF.com). Please register to remove this message. DIY 爱好者摘要单片计算机即单片微型计算机。(Si ngl e- Chi p Mi cr ocomput er ), 是 集 CPU , RAM , ROM ,定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。而 51 单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬
3、的能力。 前言本文通过用对一个能实现定时,时钟,日历显示功能的时间系统的设计学习,详细介绍了 51 单片机应用中的数据转换显示,数码管显示原理,动态扫描显示原理,单片机的定时中 断原理、从而达到学习,了解单片机相关指令在各方面的应用。系统由 AT89C51、LED 数码管、按键、二极管等部分构成,能实现时钟日历的功能:能进行时、分、秒的显示。也具有日历计算、显示和时钟,日历的校准、定时时间的设定,实现三路开关定时输出等功能。文章后附有电路图 ,程序,各数据存储单元的所在地址,输入输出口对应表。以供读者参考。因作者本人也是个初学者,水平有限,难免有疏落不足之处,敬请老师和同学能给与批评正。 说明
4、书系统由 AT89C51、LED 数码管、按键、发光二极管等部分构成,能实现时间的调整、定时时间的设定,输出等功能。系统的功能选择由 SB0、SB1、SB2、SB3、SB4 完成。其中 SB0 为时间校对,定时器调整功能键,按 SB 0 进入调整状态。SB1 为功能切换键。第一轮按动SB1 依次进入一路、二路、三路定时时间设置提示程序,按 SB3 进入各路定时调整状态。定时时间到,二极管发亮。到了关断时间后灭掉。如果不进入继续按 SB1 键,依次进入时间 年 位校对、 月 位校对、 日 位校对、 时 位校对、 分 位校对、 秒 位校对状态。不管是进入那种状态,按动 SB2 皆可以使被调整位进行
5、不进位增量加 1 变化。各预置量设置完成后,系统将所有的设置存入 RAM 中,按 SB1 退出调整状态。上电后,系统自动进入计时状态,起始于 00 时 00 分。SB4 为年月日显示转换键,可使原来显示时分秒转换显示年月日。 二、电路原理分析 1. 显示原理 电原理图见附图 1。由 6 个共阴极的数码管组成时、分、秒的显示。P0 口的 8 条数据线P0. 0 至 P0. 7 分别与两个 CD4511 译码的 ABCD 口相接,P2 口的 P2. 0 至 P2. 2 分别通过电阻R10 至 R13 与 VT1 至 VT3 的基极相连接。这样通过 P0 口送出一个存储单元的高位、低位 BCD 显示
6、代码,通过 P2 口送出扫描选通代码轮流点亮 LED1 至 LED6,就会将要显示的数据在数码管中显示出来。从 P0 口输出的代码是 BCD 码,从 P2 口输出的就是位选码。这是扫描显示原理。 2. 数码管结构及代码显示 www . DIY 爱好者 Created with novaPDF Printer (www.novaPDF.com). Please register to remove this message. DIY 爱好者共阴 LED 数码管结构、字段及引脚排列见图 2图 2 共阴 LED 数码管由 8 只发光二极管 VD1
7、至 VD8 共阴连接并按 8 字形结构排列而成。这样,我们将这些二极管的正极接高低不同的电位,把所有的负极接地,当正极为高电位时相应的二极管就会导通而发光,从而使数码管呈现不同的字符。而只有 P2 相应呈现高电位, VT 个管导通,LED1 的 GND 与地相接,LED 位被选中才具备发光的使能条件;可见,在利用P2 口送出位选码,使各位轮流得到发光使能条件的同时,通过 P0 口分别送出不同的段选码, 就会在LED1 至 LED4 中显示出不同的数字来。 3 键盘及读数原理 键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生
8、抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间 20ms. 4 连击功能的实现 按下某键时,对应的功能键解释程序得到执行,如操作者没有释放按键,则对应的功能会反复执行,好象连续执行,在这里我们采用软件延时 250ms, 当按键没释放则执行下一条对应程序。利用连击功能,能实现快速调时操作。 三、程序设计思想和相关指令介绍 本系统的主程序主要完成时间显示和定时输出判断功能。而年月日显示和各时间单元进位, 时间设定时,调定时间设定时等功能全部在中断服务程序中完成。 1. 数据与代码转换。 由前述可知,从 P2 口输
9、出位选码,从 P0 口输出段选码,LED 就会显示出数字来。但 P0 口的输出的数据是要BCD 码,各存储单元存储的是二进制数,也就是和要显示出的字符表达的含义是不一致的。可见,将要显示的存储单元的数据直接送到 P0 口去驱动 LED 数码管显示是不能正确表达的,必须在系统内部将要显示的数据经过 BCD 码行转换后,将各个单元数据的段选代码送入 P0 口,给 CD4511 译码后去驱动数码管显示。 具体转换过程如下: DIY 爱好者 Created with novaPDF Printer (www.novaPDF.com). Please register t
10、o remove this message.我们先将要显示的数据装入累加器 A 中,再将 A 中的数据转换成高低两位的 BCD 码, 再放回 A 中,然后将 A 中的值输出。如:有一个单元存储了 45 这样一位数,则需转换成四位的 BCD 码:(0100)(0101)然后放入 A 中。 A 中BCD 码,高位四位代表 4 低四位代表 5 同时送给两个译码器中,译码后 45 字就在两个 LED 中显示出来。 2. 计时功能的实现与中断服务程序 时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。计数器 T0 打开后, 进入计时,满 100 毫秒后,重装定时。中断一次,满一秒后秒进位,满
11、60 秒后即为 1 分钟, 分钟单元进位,60 分到了后,时单元进位,24 小时满后,天单元进位。这样然后根据进率, 得到年、月、日、时、分、秒存储单元的值,并经译码后,通过扫描程序送 LED 中显示出来, 实现时钟计时功能。累加是用指令 I NC 来实现的。 进入中断服务程序以后,执行 PUSH PSW 和 PUSH A 将程序状态寄存器 PSW 的内容和累加器 A 中的数据保存起来,这便是所谓的 保护现场 . 以保护现场和恢复现场时存取关键数据的存储区叫做堆栈。在软件的控制之下,堆栈可在片内 RAM 中的任一区间设定,而堆栈的数据存取与一般的 RAM 存取又有区别,对它的操作,要遵循 后进
12、先出 的原则。 3 时钟误差分析 开启定时器/ 计数器 0,使之开始计时,中断后进入中断程序。自停止计数到、计数又开始,中间执行了 7 条指令,也就是延迟了 13 个单周期共用时间 26us,这样,每个中断的总时间应为为 100. 026sm,而原来定时是 100ms,所以,也就是说每次中断定时多了 26um. 这样,可改变计数重装值,使每次中断定时时间为 99. 974sm,加上原来的 7 条指令所用的 时间,正好 100sm. 计数 10 次得 1s. 这样就可得到较精确的计时秒数,然后根据进率,得到时、分的值。 4 时间控制功能与比较指令 系统的另能就是实现对执行设备的定时开关控制,其主
13、要控制思想是这样的:先将执行设备开启的时间和关闭时间置入 RAM 某一单元,在计时主程序当中执行几条比较指令, 如果当前计时时间与执行设备的设定开启时间相等,就执行一条 CLR 指令,将对应的那路 P3 置为高电位,开启;如果当前计时时间与执行设备设定的关闭时间相等,就执行 SETB 对应的 P3 置低电位,二极管截止,。实现此控制功能用到的比较指令为CJNE A,#di r ect , r el ,其转移条件是累加器 A 中的值与立即数不等则转移。 参考文献 1、 谢自美,电子线路设计、实验、测试 武汉:华中理工大学,2000 2、 何书森、何华斌实用数字电路原理与设计速成福州:福建科学技术
14、,2000. 6 3、 白驹衍, 单片计算机及应用北京:电子工业, 1999. 2 RES2WR803130p29101130RXD TXD ALE/P PSEN 16RESET 17 RDRES2 R?RES29X1 X2U? CAPRES2 C?P20 P21 P22 P23 P24 P25 P26 P271918CAP 2k CAP2k CAP2kCAP2122232425262728EA/VP30p31T1 T01514INT0+5 12 INT1U?CAPU?CAP 13 U?BI LE4511 4 53938373635343332P00 P01 P02 P03 P04 P05 P
15、06 P07 3 LTU?P10 P11 P12 P13 P14 P15 P16 P1712345678U?CUA? P U?CUA? PCAPCAP1312111091514A B C D E F GU?CAP7126dpb a c f b gde e cf dg dpRES2b a c f b gde e cf d g dpRES2b a c f b gde e cf d g dpRES2U?DPY12345678dpDPY12345678dpDPY12345678U?A B C DCAPU?+5RES2 DS?aRES2 DS?aRES2 DS?aLE4511 4 BI500RES2 5
16、00RES2 500RES2CAPCAP 3 LTU?dpDS?a DPYb a c f bd ge e cf dg dp12345678dpDS?a DPYb a c f bd ge e cf d g dp12345678dpDS?a DPYb a c f bd ge e cf d g dp123456781312111091514A B C D E F G5U?A B C D7126+5 DIY 爱好者主程序开始 显示/ 定时判断/ 开定时中断 与 设 定时同? 调 用 程序条件 中断T0按 SB4?按SB0? 进入定时中断 程序(最高级)中断 0中断 1秒分
17、时日月年 进位 对 P0.3P0.4P0.5输出 应转换 显示年月日 (3S 返回)调整时间 (改变时间存储值) 设定定时(三 路定时) 返回主程序 DIY 爱好者 Created with novaPDF Printer (www.novaPDF.com). Please register to remove this message.定时中断程序流程图 重装定时常数 定时中断 整秒整分整时整日整月月判断整年 DIY 爱好者 调整年单元 调整月单元 调整日单元 调整时单元 调整分单元 调整秒单元 加 100ms按 键 扫描开始 按
18、SB1按 SB3进入 1 路调 中断开始(SB0调时功能流程图 年单按元 SB3调整 2 路按 SB1按SB2调整 3 路 单元加 1单元加 1月单元 按SB2按 SB3日单元 按SB2按 SB1调整年单元 单元加 1调 整 月 单 按 SB1按 SB3单元加 1按SB2调整日单元 时单元 按 SB1按 SB3单 元 加 按SB2分单元 按 SB1按 SB3按 SB1按 SB3按SB2按 SB1按 SB1调整秒单元 调整分单元 关定时 开 调整时单元 中断返回 按SB2 DIY 爱好者 调时功能流程图 存储单元分配表读取按键代码表 16 进制 码 P1.0P1.1
19、P1.2P1.3P1.4P1.5P1.6P1.7SB1SB2SB3*FE01111111FD10111111FB11011111存储单元分配表 时间单元 1 组开 定时单元 1 组关 2 组开 2 组关 3 组开 3 组关 Sec32h秒 Min31h分 414051506160Hour30h时 424652566266Day35h日 434753576367Mou34h月 444854586468Year33h年 454955596569Sb0Sb1Sb2Sb3Sb41 组输 出 2 组输 出 3 组输 出 各 P 口功能连接.P3.3P1.0P1.1P1.2P3.2p3.0P3.1P3.4
20、调 整 +-年月日 二极管 二极管 二极管 时间、 显示转 定时中 断 换 DIY 爱好者 DIY 爱好者程序 SEC EQU 32H ;秒 即时时间 伪指令 MIN EQU 31H ; 分 HOUR EQU 30H ; 时 DAY EQU 35H ; 日 MON EQU 34H ; 月 YEAR EQU 33H ; 年 MIN_1 EQU 41H ;分 定时器 1 路、开存储单元 HOUR_1 EQU 42H ;时 DAY_1 EQU 43H ; MON_1 EQU 44H ; YEAR_1 EQU 45H ; MIN_11 EQ
21、U 40H ;分 定时器 1 路、关存储单元 HOUR_11 EQU 46H ;时 DAY_11 EQU 47H ; 日 MON_11 EQU 48H ; 月 YEAR_11 EQU 49H ;年 ;* ORG 0000H ljmp MAIN ORG 0003H ;中断转换显示年月日、INT0(SB4 键) LJMP SHOW ORG 000BH ;计数中断 T0、方式 1 LJMP TIME ORG 0013H LJMP CHANGE; 调整时间、定时、INT1(SB0 键) ;主程序 ORG 0030H MAIN: ;初始化付值 MOV YEAR , #02 MOV MON , #05 M
22、OV DAY , #01 MOV HOUR , #00 MOV MIN , #00 MOV SEC , #00 CLR 40H ;定时单元 1 路清零 CLR 41H CLR 42H CLR 43H DIY 爱好者 Created with novaPDF Printer (www.novaPDF.com). Please register to remove this message. CLR 44H CLR 45H CLR 46H CLR 47H CLR 48H CLR 49H ;开中断 MOV TMOD , #01H ;计数、模式 1、T0 MOV TL0
23、, #0B0H ;100SM 计数定时 MOV TH0, #3CH ; clr p3.0 MOV 20H, #0AH ;10 次*100SM SETB PT0 ;T0 为最高级 SETB TR0 ;允许计数 SETB ET0 ;允许T0 中断 SETB EX0 ;允许INT0 中断 SETB EX1 ;允许INT1 中断 SETB EA ;开总中断 ;显示、定时器启动判断 LOOP: MOV R1, #30H; 存储单元 MOV R4, #01H; 位选通 MOV R3, #03H; 三组显示NEXT: MOV A , R1 ; MOV B , #10 ;将存储单元转换成两高低两组的BCD 码
24、 DIV AB SWAP A ORL A, B MOV P0, A;输出 MOV P2, R4 INC R1 ;下一单元 MOV A, R4 ; RL A ; 位 移 MOV R4, A LCALL DE5SM ;延时0.5SM DJNZ R3, NEXT ;全扫描显示一偏 ;判断定时输出(只编写了一路) CJNE R7, #88H,LOOP ;是 8 则开,否则、定时已关、转 ;开 MOV A, YEAR CJNE A, YEAR_1, LOOP_1;年比较,不等转关 MOV A, MON CJNE A, MON_1, LOOP_1 MOV A, DAY CJNE A , DAY_1,LOO
25、P_1 MOV A, HOUR CJNE A, HOUR_1,LOOP_1 MOV A, MIN CJNE A, MIN_1, LOOP_1 CPL P3.0 ;关LOOP_1: MOV A, YEAR CJNE A, YEAR_11, LOOP;年比较 MOV A, MON CJNE A, MON_11, LOOP MOV A, DAY CJNE A , DAY_11,LOOP MOV A, HOUR CJNE A, HOUR_11,LOOP MOV A, MIN CJNE A, MIN_11, LOOP CPL P3.0 LJMP LOOP ;年月日显示中断子程序 SHOW: PUSH P
26、SW push ACC PUSH B PUSH 01H PUSH 02H PUSH 03H PUSH 04H MOV R2, #0FFH ;中断扫描次数TURN: MOV R1 , #33H MOV R4 , #01H MOV R3 , #03H NEXT_1: MOV A, R1 MOV B , #10 DIV AB SWAP A ORL A, B MOV P0, A MOV P2, R4 INC R1 RL A MOV R4 ,A LCALL DE5SM DJNZ R3, NEXT_1 DJNZ R2, TURN ;反复显示一定时间后返回 POP 04H POP 03H POP 02H P
27、OP 01H POP B POP ACC POP PSW RETI ;计数中断服务子程序 TIME: PUSH PSW PUSH ACC PUSH B PUSH 06H MOV TH0 , #3CH;重装计数 MOV TL0 , #0BH; DJNZ 20H, OUT ;转到中断跳出pop 程序 MOV 20H, #0AH ; 重 装 :100*10=1000 ;进位程序 INC SEC MOV R6, SEC ; CJNE R6, #60, OUT;比较 MOV SEC , #00 ; INC MIN MOV R6, MIN CJNE R6, #60, OUT MOV MIN , #00 I
28、NC HOUR MOV R6 , HOUR CJNE R6 , #25 , OUT MOV HOUR ,#00 INC DAY MOV R5, MON CJNE R5, #1, MON_22;是否 1 月、不是转 2 月 MOV R5, DAY CJNE R5, #32, OUT ; 本月是否益出 INC MON MOV DAY,#1 LJMP OUT OUT: POP 06H POP B POP ACC POP PSW RETI MON_22: MOV R5, MON CJNE R5 , #2 , MON_33;是否 2 月、不是转 3 月 MOV A, YEAR ;判断是否瑞年 MOV B
29、, #4 DIV AB MOV A , B JNZ OUT_1;不是则转(A 不为零则转) MOV R5 ,DAY CJNE R5,#30, OUT;如是瑞年、判断是否到 29 天 INC MON MOV DAY ,#1 LJMP OUT OUT_1: MOV R5, DAY CJNE R5, #29, OUT ;平年二月判断 INC MON MOV DAY , #1 LJMP OUT MON_33: MOV R5, MON CJNE R5, #3 , MON_44 MOV R5, DAY CJNE R5 , #32, OUT INC MON MOV DAY , #1 LJMP OUT MON
30、_44: MOV R5, MON CJNE R5,#4, MON_55 MOV R5, DAY CJNE R5 ,#31,OUT INC MON MOV DAY , #1 LJMP OUT MON_55: MOV R5,MON CJNE R5,#5, MON_66 MOV R5,DAY CJNE R5,#32,OUT INC MON MOV DAY,#1 LJMP OUT MON_66: MOV R5, MON CJNE R5,#6, MON_77 MOV R5, DAY CJNE R5 ,#31,OUT INC MON MOV DAY , #1 LJMP OUT MON_77: MOV R5
31、, MON CJNE R5,#7, MON_88 MOV R5, DAY CJNE R5,#32,L1 INC MON MOV DAY , #1 L1: LJMP OUT MON_88: MOV R5, MON CJNE R5,#8, MON_99 MOV R5, DAY CJNE R5 ,#32,L2 INC MON MOV DAY , #1 L2: LJMP OUT MON_99: MOV R5, MON CJNE R5,#9, MON_00 MOV R5,DAY CJNE R5 ,#31,L3 INC MON MOV DAY , #1 L3: LJMP OUT MON_00: MOV R
32、5, MON CJNE R5,#10, MON_AA MOV R5, DAY CJNE R5 ,#32,L4 INC MON MOV DAY , #1 L4: LJMP OUT MON_AA: MOV R5, MON CJNE R5,#11, MON_BB MOV R5,DAY CJNE R5,#31,L5 INC MON MOV DAY , #1 L5: LJMP OUT MON_BB: MOV R5, DAY CJNE R5 ,#32,L6 INC YEAR MOV MON, #1 MOV DAY , #1 L6:LJMP OUT ;校对时间、定时调整中断 CHANGE : PUSH PS
33、W PUSH ACC PUSH B PUSH 00H mov p2,#00h SHOW_1: MOV A , #01H;显示 1 MOV P0, A MOV P2, #0FFH;三组数码管都显示 1 路 LCALL READ ;调用读p1 口键程序 CJNE A, 01H, SHOW_1;去抖后比较 LCALL DE250SM ; 延时 250 秒 CJNE A, #0FBH,ttT1 LJMP SB3_1 ttT1: CJNE A, #0FEH,SHOW_1 AJMP SHOW_2 ;二组显示 SHOW_2: MOV A, #02H; 显示 2 MOV P0, A MOV P2, #0FFH
34、; LCALL READ CJNE A, 01H, SHOW_2 ;去抖后比较 LCALL DE250SM; 延时 250 秒 CJNE A, #0FBH,T2;不等转去判断此时SB3 按了没 LJMP SB3_2 T2: CJNE A, #0FEH, SHOW_2 AJMP SHOW_3 ;_三组显示 SHOW_3: MOV A, #03H; 显示 3 MOV P0, A MOV P2, #0FFH;位码 LCALL READ CJNE A, 01H,SHOW_3;去抖后比较 LCALL DE250SM;延时 250 秒 CJNE A, #0FBH, T3;不等转去判断此时SB3 按了没 L
35、JMP SB3_3 T3: CJNE A, #0FEH, SHOW_3 AJMP SHOW_4;即时年单元调时、显示 SHOW_4: MOV A , YEAR ;调出年单元 MOV B, #10 ;BCD 转 换 DIV AB SWAP A ORL A, B MOV P0, A ; MOV P2, #01H; LCALL READ LCALL DE250SM CJNE A, 01H, SHOW_4 ;去抖 CJNE A, #0FEH, KEY2_1 ;按SB2 转年调整 AJMP MON_CH ;按SB1 往下调月单元KEY2_1:CJNE A, #0FDH, SHOW_4 LCALL YEA
36、R_AD ; 调用年调整 AJMP SHOW_4 ; MON_CH: MOV A , MON ; 月单元调整 MOV B, #10 DIV AB SWAP A ORL A, B MOV P0, A ; MOV P2, #02H; LCALL READ LCALL DE250SM CJNE A, 01H, MON_CH ;去抖 CJNE A, #0FEH, KEY2_2 ;按SB2 转月调整 LJMP DAY_CH ;按SB1 往下调日单元KEY2_2:CJNE A, #0FDH, MON_CH LCALL MON_AD ; 调用月调整 LJMP MON_CH ; DAY_CH: MOV A ,
37、 DAY ; 日单元调整 MOV B, #10 DIV AB SWAP A ORL A, B MOV P0, A ; MOV P2, #04H; LCALL READ LCALL DE250SM CJNE A, 01H, DAY_CH ;去抖 CJNE A, #0FEH, KEY2_3 ;按SB2 转日调整 LJMP HOUR_CH ;按SB1 往下调时单元KEY2_3:CJNE A, #0FDH, DAY_CH LCALL DAY_AD ; 调用日调整 LJMP DAY_CH HOUR_CH: MOV A , HOUR ; 时单元调整 MOV B, #10 DIV AB SWAP A ORL
38、 A, B MOV P0, A ; MOV P2, #01H; LCALL READ LCALL DE250SM CJNE A, 01H, HOUR_CH ;去抖 CJNE A, #0FEH, KEY2_4 ;按SB2 转时调整 AJMP MIN_CH ;按SB1 往下调分单元KEY2_4:CJNE A, #0FDH, HOUR_CH LCALL HOUR_AD ; 调用时调整 AJMP HOUR_CH ; MIN_CH: MOV A , MIN ; 分单元调整 MOV B, #10 DIV AB SWAP A ORL A, B MOV P0, A ; MOV P2, #02H; LCALL
39、READ LCALL DE250SM CJNE A, 01H, MIN_CH ;去抖 CJNE A, #0FEH, KEY2_5 ;按SB2 转分调整 AJMP SEC_CH ;按SB1 往下调秒单元KEY2_5:CJNE A, #0FDH,MIN_CH LCALL MIN_AD ; 调用分调整 LJMP MIN_CH ; SEC_CH: MOV A , SEC ; 秒单元调整 MOV B, #10 DIV AB SWAP A ORL A, B MOV P0, A ; MOV P2, #04H; LCALL READ LCALL DE250SM CJNE A, 01H, SEC_CH ;去抖
40、CJNE A, #0FEH, KEY2_6 ;按SB2 秒调整 LJMP OUT_A ;按SB1 跳出KEY2_6: CJNE A, #0FDH, SEC_CH CLR SEC ; 归 零 LJMP SEC_CH ; ;按 SB2定时器年单元加 1 子程序 SB3_2: LJMP SHOW_2 ;二路没编返回SB3_3: LJMP SHOW_3 ;三路没编返回SB3_1: MOV A , YEAR_1 ; 调时年单元 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #01H LCALL READ LCALL DE250SM CJNE A,
41、01H, SB3_1 CJNE A, #0FBH, KEY2_7 ;按SB2 转年调整 LJMP MON_111 ;按SB1 往下调月单元KEY2_7:CJNE A, #0FDH, SB3_1 INC YEAR_1 ; 1 路年单元加 1 MOV R5,YEAR_1 CJNE R5,#09,SB3_1 ;益出 MOV YEAR_1, #00H AJMP SB3_1 ; ;月单元加 1 子程序 MON_111: MOV A , MON_1 ; 调时月单元显示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #02H LCALL READ LC
42、ALL DE250SM CJNE A, 01H, MON_111 CJNE A, #0FBH, KEY2_8 ;按SB2 转月调整 LJMP DAY_111 KEY2_8: CJNE A,#0FDH,MON_111 INC MON_1 ;1 路月单元加 1 MOV R5,MON_1 CJNE R5,#13,MON_111;益出 MOV MON_1, #01H AJMP MON_111 ; 转到月显 ;_日单元加 1 子程序 DAY_111: MOV A , DAY_1 ; 调时日单元显示提示 MOV B ,#10 DIV AB SWAP A ORL A,B MOV P0, A MOV P2, #04H LCALL READ LCALL DE250SM CJNE A, 01H,DAY_111 CJNE A, #0FBH, KEY2_9 ;按SB2 转日调整 LJMP HOUR_111 KEY2_9: CJNE A,#0FDH,DAY_111 INC DAY_1 ;1 组日单元加 1 MOV R5, DAY_1 CJNE R5,#32,DAY_111;益出 MOV DAY_1, #01H AJMP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年医疗废物流失防控试题及答案
- 胸痛中心、卒中中心建设方案
- 心理辅导教师责任制度
- 我国缔约过失责任制度
- 打捞漂浮物责任制度
- 扩口机安全生产责任制度
- 承运人员责任制度规定
- 抚顺市耕地保护责任制度
- 护理首接责任制度
- 控制要建立责任制度
- 《上海市房屋建筑养护维修预算定额 第二册居住房屋养护(小修)工程》
- 桥梁道路绿化施工方案
- OCAI组织文化评估
- 2025年初中信息科技测试题及答案
- 招聘放射技师考试题库及答案
- 行业协会换届选举工作流程指导
- 炼钢厂应急救援知识培训课件
- 劳技课 做面条教学课件
- 征兵考试试题及答案
- DB5301∕T 58-2021 机械式停车场(库)建设管理技术规范
- 场景造型基础知识培训课件
评论
0/150
提交评论