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

📄 13.lst

📁 单片机实验程序-13种-17.4M-pdf.zip
💻 LST
📖 第 1 页 / 共 4 页
字号:
                                                                    页     1
                                                                    01-29-03
                                                                    02:14:23
伟福汇编器 V5.00                             Copyright (c) 1989, 2001 by CHY

地址  机器码 源程序

                            ;******************;
                            ;    定时器程序    ;
                            ;    采用89c2051   ;
                            ;    2001.10       ;
                            ;******************;
            	    ;
                        ;******************
            	    ;      伪定义     ;
            	    ;******************
            	    SL     EQU   30H       	   ;SL存放秒的个位数
            	    SH	   EQU   31H       	   ;SH存放秒的十位数
            	    ML    EQU   32H       		   ;ML存放分的个位数
            	    MH	   EQU   33H       	   ;MH存放分的十位数
            	    HL     EQU   34H       	   ;HL存放时的个位数
            	    HH	   EQU   35H    	       ;HH存放时的十位数
            	    ;
            	    L0     EQU   36H       	   ;L0~L3:显示数据存储器
                        L1	   EQU   37H
            	    L2     EQU   38H
            	    L3	   EQU   39H
            	    DSPLYP    EQU   3AH         ;显示数据指针(DISPLAY-POINT)
            	    PLYTS     EQU   3BH         ;显示次数计数器(DISPLAY-TIMES)
            	    ;
            	    LPLMOD   BIT   39H          ;低两位显示方式(LOW-PLAY-MOD)
            	    HPLMOD   BIT   3AH         ;高两位显示方式(HIGH-PLAY-MOD)
            	    BRIGHT    BIT   3BH         ;DISPLAY子程序参数:亮灭指示位
                    ;
                    TCOUNT   EQU   3CH         ;时间计数器(TIME-COUNT)
                    ;
                    ADDRES	 EQU   3DH           ;加1子程序参数
                    MAX     EQU   3EH           ;加1子程序参数
            	    IFDEC    BIT   20H            ;BCD加法子程序参数
                        ;
                    R_MOD  EQU   3FH          ;响铃方式参数
            	    ;
            	    LED4     BIT   30H            ;发光管状态位
            	    BELL     BIT   P1.7           ;蜂鸣器
            	    SWITCH  BIT   P3.7           ;继电器
            	    FKEY     BIT   P3.0           ;功能键 (S1)
            	    MKEY    BIT   P3.1           ;修改键 (S2)
            	    ;
            	    WORKIN BIT   38H           	;工作状态指示位
            	    ;
            
                        ;******************
                        ;     中断入口    ;
            	        ;******************
            		    ORG  	 0000H


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

地址  机器码 源程序

0000 020030             START:  LJMP	 MAIN         		; 0000H  引向主程序
0003 02040D 		    LJMP	 ERR          		; 0003H
0006 00     		    NOP
0007 00     		    NOP
0008 02040D 		    LJMP 	ERR          		; 引向出错处理程序
000B 02010F 		    LJMP 	PGT0         		; 000BH  引向中断处理程序PGT0
000E 00     		    NOP
000F 00     		    NOP
0010 02040D 		    LJMP 	ERR          		; 引向出错处理程序
0013 02040D 		    LJMP 	ERR          		; 0013H  INT1
0016 00     		    NOP
0017 00     		    NOP
0018 02040D 		    LJMP 	ERR
001B 02040D 		    LJMP 	ERR          		; 001BH  T1
001E 00     		    NOP
001F 00     		    NOP
0020 02040D 		    LJMP 	ERR
0023 02040D 		    LJMP 	ERR          		; 0023H
0026 00     		    NOP
0027 00     		    NOP
0028 02040D                     LJMP 	ERR
002B 02040D 	            LJMP 	ERR          		; 002BH
002E 00     		    NOP
002F 00     		    NOP
            	        ;
                            ;************
                            ;   主程序  ;
            	    	;************
0030 75A800 	       MAIN:   MOV   IE,  #00H            ;关中断
0033 758157                     MOV   SP,  #57H            ;设置堆栈指针
0036 75D000                     MOV   PSW,  #00H          ;选用寄存器组0
0039 758911                     MOV   TMOD, #11H          ;设定中断工作方式为T0和T1
                        ;
003C E556                       MOV   A, 56H
003E B4AA0C                     CJNE  A, #0AAH, CSTART     ;判上电复位标志,无标志转冷启动
0041 E557                       MOV   A, 57H
0043 B45507                     CJNE  A, #55H,  CSTART      ; 无标志转冷启动
0046 0198                       AJMP  HSTART               ;有上电复位标志转热启动
0048 00                         NOP
0049 00     		    NOP
004A 02040D                     LJMP 	ERR                  ;软件陷阱,引向出错处理程序
004D 7590FF             CSTART: MOV   P1, #0FFH             ;冷启动,全面初始化
0050 75B0FF                     MOV   P3, #0FFH
0053 758800                     MOV   TCON,  #00H          ;计时停止
0056 758AB0                     MOV   TL0, #0B0H            ;赋中断T0初值
0059 758C3C                     MOV   TH0, #3CH
005C 753C0A                     MOV   TCOUNT, #0AH          ;赋定时器初值
005F 7D00                       MOV   R5, #00H              ;R5为一空单元(备用)


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

地址  机器码 源程序

0061 7C00                       MOV   R4, #00H              ; R4 为工作模式选择寄存器
0063 753000 		    MOV   SL, #00H              ;定时单元清零
0066 753100                     MOV   SH, #00H              ;秒
0069 753200                     MOV   ML, #00H             ;
006C 753300                     MOV   MH, #00H             ;分
006F 753400                     MOV   HL, #00H             ;
0072 753500                     MOV   HH, #00H             ;时
0075 753B64 		    MOV   PLYTS,  #64H        	;赋显示次数初值为100次
0078 753A36 		    MOV   DSPLYP,  #L0		;显示指针指向显存单元
007B 75360A                     MOV   L0,  #0AH           ;送显示数据"-----"
007E 75370A                     MOV   L1,  #0AH
0081 75380A                     MOV   L2,  #0AH
0084 753904                     MOV   L3,  #04H
0087 D230                       SETB   LED4                 ;LED4为数码管之间的发光二极管
0089 D239                       SETB   LPLMOD              ;设定显示方式为闪烁
008B D23A                       SETB   HPLMOD              ;
008D D23B                       SETB   BRIGHT               ;允许显示
008F C238   		    CLR	   WORKIN	             ;清工作标志 , 待命
0091 01AB                       AJMP  SETUP                ;转开始工作
0093 00                         NOP
0094 00     		    NOP
0095 02040D                     LJMP 	ERR          ;软件陷阱
0098 759800          HSTART:    MOV   SCON, #00H    ; 有上电标志,热启动,清串行口控制寄存器
009B 75B800                     MOV   IP,  #00H      ; 清中断优先控制寄存器
009E D2B0                       SETB   FKEY           ;重设按键
00A0 D2B1                       SETB   MKEY
00A2 D2AF                       SETB   EA              ;开中断
00A4 01BD                       AJMP  BEGIN           ;转向继续工作
00A6 00                         NOP
00A7 00     		    NOP
00A8 02040D                     LJMP	  ERR            ;软件陷阱
00AB D2AF               SETUP:  SETB  EA               ;开中断
                        ;
00AD 711F   	      MAIN1:   ACALL  DISPLY          ;调用显示
00AF 20B035         	    	JB	   FKEY,  JUDGE    ;按键扫描
00B2 71D1   		    	ACALL  KEYDLY        ;延时消抖动
00B4 20B030 		    	JB	   FKEY,  JUDGE    ;无键按下转向判断是否到点
00B7 C2A9   		    	CLR   ET0              ;功能键被按下,则
00B9 C28C   		    	CLR   TR0		        ;暂停计时
00BB 31C3               	        ACALL MENU           ; 调用菜单设置程序
00BD D238                  BEGIN:  SETB  WORKIN          ;置工作标志位,开始工作
00BF D2A9               		SETB  ET0              ;开中断
00C1 D28C   			SETB  TR0              ;开始计时
00C3 EC     			MOV   A, R4            ;移入工作模式选择
00C4 23     			RL    A 		        ;指针放大
00C5 9000C9             	        MOV   DPTR,  #M_TAB
00C8 73     		    	JMP   @A+DPTR        ;根据工作模式跳转到相应程序段
00C9 01D6                   M_TAB:  AJMP  WORK1


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

地址  机器码 源程序

00CB 01D6   		    	AJMP  WORK2
00CD 01DF   		    	AJMP  WORK3
00CF 01DF               		AJMP  WORK4
00D1 00                 		NOP
00D2 00                 		NOP
00D3 02040D             		LJMP  ERR               ;软件陷阱
            WORK1:  ;
00D6 C2B7     WORK2:  CLR   SWITCH            ;工作方式1和2:开继电器
00D8 01E1             AJMP  MAIN2
00DA 00               NOP
00DB 00     	  NOP
00DC 02040D           LJMP 	ERR                ;软件陷阱
              WORK3:  ;
00DF D2B7   WORK4:  SETB  SWITCH             ;工作方式3和4:不开继电器
00E1 C297     MAIN2:  CLR   BELL                 ;蜂鸣器短鸣一声,以示开始工作
00E3 71F3              ACALL  DL05S
00E5 D297              SETB  BELL
00E7 3038C3    JUDGE:  JNB WORKIN, MAIN1           ;判断是否在定时之中
00EA E530               MOV   A, SL                  ;判断秒是否为零
00EC 70BF               JNZ   MAIN1
00EE E531               MOV   A, SH                ;判断秒是否为零
00F0 70BB               JNZ   MAIN1
00F2 E532               MOV   A, ML                ;判断分是否为零
00F4 70B7               JNZ   MAIN1
00F6 E533               MOV   A, MH                ;判断分是否为零
00F8 70B3               JNZ   MAIN1
00FA E534               MOV   A, HL                ;判断时是否为零
00FC 70AF               JNZ   MAIN1
00FE E535               MOV   A, HH                ;判断时是否为零
0100 70AB               JNZ   MAIN1                ;若时分秒全为零则
0102 C2A9               CLR   ET0                  ; 停止计时
0104 C28C               CLR   TR0                  ;
0106 5186               ACALL ACTION              ; 调用到点工作子程序
0108 0130               AJMP  MAIN                ; 返回
010A 00                 NOP
010B 00     	    NOP
010C 02040D             LJMP ERR                   ;软件陷阱
            	    ;
                    ;******************
            	    ;    倒计时程序   ;
            	    ;******************
010F C2AF               PGT0:   CLR   EA            		 ;关中断
0111 C0E0                       PUSH  ACC		      		 ;保护现场
0113 C0D0   		    PUSH  PSW
0115 C082   		    PUSH  DPL
0117 C083   		    PUSH  DPH
0119 75D008 		    MOV   PSW, #08H	      	 ;选用寄存器组1
011C C28C   		    CLR   TR0                	 ;暂停计时


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

地址  机器码 源程序

011E 74B7   		    MOV   A,#0B7H           	 ;中断同步修正
0120 258A   		    ADD   A,TL0
0122 F58A   		    MOV   TL0,A
0124 743C   		    MOV   A,#3CH
0126 258C   		    ADD   A,TH0
0128 F58C   		    MOV   TH0,A
012A D28C                       SETB  TR0                	 ;恢复计时
012C 153C                       DEC   TCOUNT             	 ;定时器T0每50 000毫秒溢出一次,则
012E E53C   		    MOV   A,  TCOUNT         	 ; 溢出10次为0.5秒
0130 7028   	            JNZ   OUTT0	          	 ;判断是否到半秒
0132 753C0A 		    MOV   TCOUNT, #0AH       	 ;
0135 B230   		    CPL   LED4		           	 ; 若到半秒LED取反
0137 303020 		    JNB   LED4, OUTT0         ;LED每闪烁一次是一秒
013A 7831   		    MOV   R0, #SH             ;移入秒位的地址
013C D220   		    SETB  IFDEC                ;BCD子程序参数,使其做减法
013E 316A   		    ACALL ADDBCD            ;调用BCD子程序, 秒减1
0140 BB9917 		    CJNE  R3, #99H, OUTT0      ;判断秒要否借位
0143 753105                     MOV   SH, #05H            ;要借位则
0146 753009                     MOV   SL, #09H            ; 送数据59(否则显示99)
0149 7833   		    MOV   R0, #MH             ;移入分位的地址
014B 316A   		    ACALL ADDBCD	           ;分减1
014D BB990A 		    CJNE  R3, #99H, OUTT0     ;判断分要否借位
0150 753305                     MOV   MH, #05H

⌨️ 快捷键说明

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