⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 13.lst

📁 单片机实验程序-13种-17.4M-pdf.zip
💻 LST
📖 第 1 页 / 共 4 页
字号:
0153 753209                     MOV   ML, #09H
0156 7835   		    MOV   R0, #HH
0158 316A   		    ACALL ADDBCD
015A D083               OUTT0:  POP   DPH		       		;恢复现场
015C D082   		    POP   DPL
015E D0D0   		    POP   PSW
0160 D0E0   		    POP   ACC
0162 D2AF   		    SETB  EA
0164 32     		    RETI                  		;中断返回
0165 00                         NOP
0166 00     		    NOP
0167 02040D                     LJMP ERR                    ;软件陷阱
            	;
            	;
                        ;**************************
            	    ;   BCD子程序(加1或减1 )  ;
                        ;**************************
016A E6        ADDBCD: MOV   A, @R0           ;移入被操作数的高位
016B 18     	    DEC   R0                ;指针减一
016C C4     	    SWAP  A
016D 46     	    ORL   A, @R0            ;移入被操作数的低位
016E 75F001             MOV   B, #01H           ;B寄存器送立即数#01H
0171 A220               MOV   C, IFDEC          ;若 减法标志位为1,则
0173 92F3               MOV   B.3,  C           ;
0175 92F4               MOV   B.4,  C           ; B寄存器的值被改为#99H


C:\MY DOCUMENTS\2003.02.12书稿\配套光盘源程序\实例13\13.ASM   
 
                                                                    页     6
                                                                    01-29-03
                                                                    02:14:23
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

0177 92F7               MOV   B.7,  C           ;
0179 25F0   	    ADD   A, B              ; 对一个压缩的BCD码加#99H等于对其减一
017B D4     	    DA    A                 ;BCD码调整
017C FB     	    MOV   R3, A             ;暂存结果
017D 540F   	    ANL   A, #0FH           ;取低位码
017F F6     	    MOV   @R0, A           ;存数
0180 EB     	    MOV   A, R3             ;取回结果
0181 08     	    INC   R0                ;指针加一
0182 C4     	    SWAP  A                ;交换
0183 540F   	    ANL   A, #0FH          ;取结果数的高位
0185 F6     	    MOV   @R0, A          ;存数
0186 22     	    RET
0187 00                 NOP
0188 00     	    NOP
0189 02040D             LJMP 	ERR             ;软件陷阱
            	    ;
                    ;**************
            	;   加1程序   ;
                    ;**************
018C A83D   	ADDONE: MOV  R0, ADDRES   ;移入被加数单元的地址
018E C220   	         CLR   IFDEC         ;设定BCD子程序做加法
0190 316A   		 ACALL ADDBCD      ;调用BCD子程序
0192 C3              	 CLR   C             ;判断被加数是否大于
0193 EB                 	 MOV   A,  R3       ;最大值"MAX"
0194 B53E00 	 	 CJNE  A,  MAX, JGOVER
0197 4004            JGOVER: JC    ENDADO
0199 E4     	         CLR   A            ;若大于"MAX",则清零
019A F6                       MOV   @R0, A
019B 18                       DEC   R0
019C F6                       MOV   @R0, A
019D 22     	     ENDADO: RET
019E 00                       NOP
019F 00     		  NOP
01A0 02040D                   LJMP 		ERR       ;软件陷阱
            	    ;
                    ;******************
            	    ;   调时快进程序  ;
                    ;******************
01A3 C239           QUICK:   CLR   LPLMOD	   ;设定显示方式不闪烁
01A5 C23A   		  CLR   HPLMOD
01A7 318C                     ACALL ADDONE      ;调用加1子程序
01A9 8C36                     MOV   L0,  R4       ;将工作模式选择数移入显存
01AB 0536                     INC   L0             ;加1转化成显示值
01AD 71D1                     ACALL KEYDLY       ;延时
01AF 71E9                     ACALL DL100
01B1 30B1EF                   JNB   MKEY, QUICK      ;判断键是否松开
01B4 D239                     SETB  LPLMOD          ;若松开则恢复闪烁显示方式
01B6 BE0204 		  CJNE  R6, #02H, ENDQUK


C:\MY DOCUMENTS\2003.02.12书稿\配套光盘源程序\实例13\13.ASM   
 
                                                                    页     7
                                                                    01-29-03
                                                                    02:14:23
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

01B9 D23A   	          SETB  HPLMOD
01BB C239                     CLR   LPLMOD
01BD 22              ENDQUK: RET
01BE 00                       NOP
01BF 00     		  NOP
01C0 02040D                   LJMP ERR             ;软件陷阱
            	    ;
            ;
                    ;******************
            	    ;   功能菜单程序  ;
            	    ;******************
01C3 7E00   	    MENU: MOV   R6,  #00H	        ; 初始化;  R6 计功能键按键次数
01C5 753D05 	       MOV   ADDRES,  #05H   ; 将 R5 的地址送入,以便于改变 R4 的值
01C8 753E04                MOV   MAX, #04H        ; 定义工作模式选择寄存器R4 的最大值
01CB 753A36                MOV   DSPLYP, #L0       ;定义显示指针指向显存
01CE D239                  SETB  LPLMOD	    		;设定低两位数闪烁
01D0 C23A   	       CLR   HPLMOD
01D2 8C36                  MOV   L0,  R4          	;送显示数据"F-0X"
01D4 0536                  INC    L0
01D6 753700                MOV   L1,  #00H
01D9 75380B                MOV   L2,  #0BH
01DC 753900                MOV   L3,  #00H
01DF D230                  SETB  LED4
                        ;
01E1 711F          WAITFK: ACALL DISPLY              ;等待F键释放
01E3 30B0FB 	       JNB   FKEY,  WAITFK
01E6 711F          MENU1:  ACALL DISPLY
01E8 20B130                 JB    MKEY,  JGFKEY       ;M键扫描
01EB 71D1                   ACALL KEYDLY             ;延时消抖动
01ED 20B12B                 JB    MKEY,  JGFKEY       ; 未按下则转F键扫描
01F0 BE0012                 CJNE  R6, #00H, NEXT1      ;
01F3 753000                 MOV   SL, #00H            ;若中途改变定时方式,则清除原计时数据
01F6 753100                 MOV   SH, #00H
01F9 753200                 MOV   ML, #00H
01FC 753300                 MOV   MH, #00H
01FF 753400                 MOV   HL, #00H
0202 753500                 MOV   HH, #00H
0205 7A00          NEXT1:  MOV   R2,  #00H            ;R2用于判断按键时间是否超过0.5秒
0207 318C          NEXT2:  ACALL ADDONE             ;调用加1程序
0209 8C36                   MOV   L0,  R4              ;移入工作方式选择数
020B 0536                   INC    L0
                            ;
020D 711F          WAITMK: ACALL DISPLY	            ;等待M键释放
020F 0A                     INC   R2                    ;R2自增一
0210 C3                     CLR   C
0211 BAC800                 CJNE  R2, #0C8H, JGQUIC    ;若R2大于等于200则调用快进子程序
0214 4002          JGQUIC:  JC    WATMK1
0216 31A3                    ACALL QUICK


C:\MY DOCUMENTS\2003.02.12书稿\配套光盘源程序\实例13\13.ASM   
 
                                                                    页     8
                                                                    01-29-03
                                                                    02:14:23
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

0218 30B1F2 	   WATMK1: JNB   MKEY,  WAITMK      ; R2小于200则等待M键释放
                            ;
021B 20B0C8        JGFKEY: JB    FKEY,  MENU1        ;功能(F)键扫描
021E 71D1                  ACALL KEYDLY             ;延时消抖动
0220 20B0C3                JB    FKEY,  MENU1        ;键未按下则转修改(M)键扫描
0223 0E                    INC   R6                   ;F键按键次数加1
0224 EE                    MOV   A,  R6              ;移入按键次数
0225 23                    RL    A		              ;指针放大
0226 90022A                MOV   DPTR,  #FUNTAB
0229 73     	       JMP   @A+DPTR            ;根据按键次数跳转到相应的程序段
022A 21E1   	  FUNTAB: 	AJMP  WAITFK
022C 4136   	    	AJMP  SETLOW
022E 415B   	    	AJMP  SETHI
0230 417E                   AJMP  ENDMEN
0232 00                     NOP
0233 00                     NOP
0234 417E                   AJMP  ENDMEN
            	;STWKMD:                             ;工作模式设定,不需另外改变菜单
            	;
0236 753E60 	SETLOW:   MOV   MAX, #60H         ;设置低位(秒位或分位)
0239 EC                       MOV   A,  R4             ;移入工作模式选择数
023A 23     		  RL    A		              ;指针放大
023B 90023F                   MOV   DPTR,  #FTAB1
023E 73     		  JMP   @A+DPTR          ;根据工作模式选择数跳转到相应的程序段
023F 414B   	   FTAB1:  AJMP  SETSS
0241 4153   		AJMP  SETM60
0243 414B   		AJMP  SETSS
0245 4153                   AJMP  SETM60
0247 00                     NOP
0248 00                     NOP
0249 21E1                  AJMP  WAITFK
024B 753A30 SETSS: 	    MOV   DSPLYP, #SL          ;设定显示区域为MM:SS
024E 753D31 	    	MOV   ADDRES, #SH
0251 21E1                   AJMP  WAITFK
0253 753A32 	SETM60:	 MOV   DSPLYP,  #ML       ; 设定显示区域为HH:MM
0256 753D33 	   	MOV   ADDRES,  #MH
0259 21E1                   AJMP  WAITFK
            	    ;
025B C239   	SETHI: 	   CLR   LPLMOD               ;设置高位(分位或时位)
025D D23A   		SETB  HPLMOD              ;高两位数码管闪烁
025F 753E31 		MOV   MAX, #31H           ;最大数为30
0262 EC                     MOV   A,  R4              ;移入工作模式选择数
0263 23     		RL    A                    ;指针放大
0264 900268                 MOV   DPTR,  #FTAB2      ;移入表首地址
0267 73     		JMP   @A+DPTR           ;根据工作模式选择数跳转到相应的程序段
0268 4174   	FTAB2:      AJMP  SETM30
026A 4179   		    AJMP  SETHH
026C 4174   	       	    AJMP  SETM30


C:\MY DOCUMENTS\2003.02.12书稿\配套光盘源程序\实例13\13.ASM   
 
                                                                    页     9
                                                                    01-29-03
                                                                    02:14:23
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

026E 4179                       AJMP  SETHH
0270 00                         NOP
0271 00                         NOP
0272 21E1                       AJMP  WAITFK           ;返回等待键释放
0274 753D33          SETM30:    MOV   ADDRES,  #MH   ;移入分位的地址
0277 21E1                       AJMP  WAITFK           ;转向等待键释放
0279 753D35 	    	SETHH:  	MOV   ADDRES,  #HH   ;移入时位的地址
027C 21E1   	            		AJMP  WAITFK          ;转向等待键释放
                                ;
027E C23A   	    	ENDMEN: 	CLR   HPLMOD         ;恢复不闪烁显示方式
0280 22     		    		RET
0281 00                         NOP
0282 00                         NOP
0283 02040D                     LJMP ERR              ;软件陷阱
            	    ;
            	    ;****************
            	    ;  到点工作程序 ;
            	    ;****************
0286 8C36           ACTION: MOV   L0,  R4           ;移入工作模式选择数
0288 0536                   INC   L0                  ;送显示数"F-0X"
028A 753700                 MOV   L1,  #00H
028D 75380B                 MOV   L2,  #0BH
0290 753900                 MOV   L3,  #00H
0293 D230   		SETB  LED4
0295 753A36 		MOV   DSPLYP, #L0         ;指针指向显存
0298 D239                   SETB  LPLMOD             ;设定显示方式不闪烁
029A D23A                   SETB  HPLMOD
029C EC                     MOV   A,  R4            ;移入工作模式选择数
029D 23     		RL    A                  ;
029E 9002A2                 MOV   DPTR,  #A_TAB
02A1 73     		JMP   @A+DPTR          ;根据工作模式选择数跳转
02A2 41AF   	    	A_TAB: AJMP  ACTF1              ;工作模式一
02A4 41AF   		AJMP  ACTF1             ;工作模式二
02A6 41CA   		AJMP  ACTF3             ;工作模式三
02A8 41CA                   AJMP  ACTF3              ;工作模式四
02AA 00                     NOP
02AB 00                     NOP
02AC 02040D                 LJMP  ERR                ;软件陷阱
02AF D2B7           ACTF1: SETB  SWITCH             ;工作模式一(或二): 关继电器
02B1 753F82                MOV   R_MOD,  #82H      ;响铃模式参数#82H
02B4 7A96                  MOV   R2, #96H            ;响铃次数参数#96H
02B6 7102   	  ACTF11:  ACALL RING   	          ;调用响铃子程序
02B8 30B135                 JNB   MKEY,  ENDACT    ;等待键按下
02BB 30B032                 JNB   FKEY,  ENDACT    ; 有键按下则结束响铃
02BE DAF6                       DJNZ  R2, ACTF11       ;次数未满继续响铃
02C0 753FFF                     MOV   R_MOD, #0FFH    ;参数#0FF使响铃无效
02C3 41B6                       AJMP  ACTF11           ;无键按下返回
02C5 00                         NOP


C:\MY DOCUMENTS\2003.02.12书稿\配套光盘源程序\实例13\13.ASM   
 
                                                                    页    10

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -