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

📄 11.lst

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

地址  机器码 源程序

            ;***************************;
            ;     数控调频台控制器      ;
            ;***************************;
            ;
            ;26H-29H放显示小数位、个位、十位、百位BCD码数,24H-25H放频率控制数据(十六进制)
            ;
                         CONBITL  EQU  21H  ;频率控制字节低8位
                         CONBITH  EQU  22H  ;频率控制字节高8位
                         KEYWORD  EQU  23H  ;存放键扫描时P1口值
            ;
            ;
                          ORG	0000H   ;程序开始地址
0000 02005D               LJMP      START    ;转START执行
                          ORG 	0003H       ;
0003 32                   RETI       		;不用中断程序
                          ORG 	000BH       ;
000B 32     	      RETI       		; 不用中断程序
                          ORG 	0013H       ;
0013 32     	      RETI       		; 不用中断程序
            	      ORG 	001BH       ;
001B 32     	      RETI       		; 不用中断程序
            	      ORG 	0023H       ;
0023 32     	      RETI       		; 不用中断程序
            	      ORG	 002BH      ;
002B 32      	      RETI       		; 不用中断程序
            ;
            ;初始化程序
002C 7820   CLEARMEN:    MOV   R0,#20H       ;20H-29H循环清0
002E 790A                MOV   R1,#0AH       ;
0030 7600   CLEARLOOP:   MOV   @R0,#00H      ;
0032 08                  INC   R0       		 ;
0033 D9FB                DJNZ  R1,CLEARLOOP  ;
0035 7580FF              MOV   P0,#0FFH      ;四端口置1
0038 7590FF              MOV   P1,#0FFH      ;
003B 75A0FF              MOV   P2,#0FFH      ;
003E 75B0FF              MOV   P3,#0FFH      ;
0041 C2B0                CLR   P3.0       	;BH1415禁止操作
0043 C2B1                CLR   P3.1       	;
0045 C2B2                CLR   P3.2       	;
0047 12022E              LCALL KEYFUN15      ;置立体声发射方式,开立体声发射指示灯
004A 758700 CLEAR1:      MOV   PCON,#00H    	;控制寄存器清0
004D 752900              MOV   29H,#00H       	; 置初始值为88MHZ(显示为088.0)
0050 752808              MOV   28H,#08H   		;
0053 752708              MOV   27H,#08H       	;
0056 752600              MOV   26H,#00H       	;
0059 12023F              LCALL DISPUPDAT    		;写入BH1415芯片(修改发送频率)
005C 22                  RET       				;子程序返回
            ;


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

地址  机器码 源程序

            ;主程序
005D 12002C START:       LCALL  CLEARMEN       	;上电初始化
0060 12006C MAIN:        LCALL  KEYWORK        	;调查键子程序
0063 12028C              LCALL  DISPLAY        	;LED显示一次
0066 0160                AJMP   MAIN       		;转MAIN循环
0068 00                  NOP       				;PC出错处理
0069 00                  NOP       				;
006A 015D                AJMP   START       		;重新初始化
            ;
            ; 4*4行列扫描查键子程序
006C 7590FF KEYWORK:     MOV    P1,#0FFH     	; 置P1口为输入状态
006F C290                CLR    P1.0       		;扫描第一行(第一行为0)
0071 E590                MOV    A,P1       		;读入P1口值
0073 54F0                ANL    A,#0F0H       	;低四位为0
0075 B4F024              CJNE   A,#0F0H,KEYCON  ;高四位不为全1(有键按下)转KEYCOON
0078 D290                SETB   P1.0       		; 扫描第二行(第二行为0)
007A C291                CLR    P1.1       		;
007C E590                MOV    A,P1       		; 读入P1口值
007E 54F0                ANL    A,#0F0H       	; 低四位为0
0080 B4F019              CJNE   A,#0F0H,KEYCON  ; 高四位不为全1(有键按下)转KEYCOON
0083 D291                SETB   P1.1       		; 扫描第三行(第三行为0)
0085 C292                CLR    P1.2       		;
0087 E590                MOV    A,P1       		; 读入P1口值
0089 54F0                ANL    A,#0F0H       	; 低四位为0
008B B4F00E              CJNE   A,#0F0H,KEYCON   ; 高四位不为全1(有键按下)转KEYCOON
008E D292                SETB   P1.2       		; 扫描第四行(第四行为0)
0090 C293                CLR    P1.3       		;
0092 E590                MOV    A,P1       		; 读入P1口值
0094 54F0                ANL    A,#0F0H       	; 低四位为0
0096 B4F003              CJNE   A,#0F0H,KEYCON   ; 高四位不为全1(有键按下)转KEYCOON
0099 D293                SETB   P1.3       		;结束行扫描
009B 22                  RET       				;子程序返回
009C 1202F5 KEYCON:      LCALL  DL10MS          ;消抖处理
009F E590                MOV    A,P1       		;再读入P1口值
00A1 54F0                ANL    A,#0F0H       	; 低四位为0
00A3 B4F001              CJNE   A,#0F0H,KEYCHE   ; 高四位不为全1,确有键按下,转KEYCHE
00A6 22     KEYOUT:      RET       				;干扰,子程序返回
00A7 E590   KEYCHE:      MOV    A,P1       		;读P1口值
00A9 F523                MOV    KEYWORD,A        ;放入23H暂存
00AB 12028C CJLOOP:      LCALL  DISPLAY       	;调显示子程序
00AE E590                MOV    A,P1       		;读P1口值
00B0 54F0                ANL    A,#0F0H       	;低四位为0
00B2 B4F0F6              CJNE   A,#0F0H,CJLOOP   ;高四位为全1(键还按着),转CJLOOP等待释放
00B5 7F00                MOV    R7,#00H       	;键释放,置R7初值为#00H(查表次数)
00B7 900100              MOV    DPTR,#KEYTAB     ;取键值表首址
00BA EF     CHEKEYLOOP:  MOV    A,R7       		;查表次数入A
00BB 93                  MOVC    A,@A+DPTR       ;查表
00BC 6523                XRL    A,KEYWORD       	;查表值与P1口读入值比较


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

地址  机器码 源程序

00BE 6005                JZ     KEYOK       		;为0(相等)转KEYOK
00C0 0F                  INC    R7       			;不等,查表次数加1
00C1 BF10F6              CJNE   R7,#10H,CHEKEYLOOP   ;查表次数不超过16次转CHEKEYLOOP再查
00C4 22                  RET       					;16次到,退出
            ;
00C5 EF     KEYOK:       MOV    A,R7       		;查表次数入A(即键号值)
00C6 F5F0                MOV    B,A       		;放入B
00C8 23                  RL	    A       			;左移
00C9 25F0   	     ADD    A,B       		;相加(键号乘3处理JMP 3字节指令)
00CB 9000CF 	     MOV    DPTR,#KEYFUNTAB	;取键功能散转表首址
00CE 73     	     JMP    @A+DPTR       	;查表
00CF 020112 KEYFUNTAB:   LJMP   KEYFUN00       	; 键功能散转表。跳至0号键功能程序
00D2 020131 	     LJMP   KEYFUN01       	; 跳至01号键功能程序
00D5 02015C              LJMP   KEYFUN02       	; 跳至02号键功能程序
00D8 02016D 	     LJMP   KEYFUN03
00DB 02017E              LJMP   KEYFUN04
00DE 02018E 	     LJMP   KEYFUN05
00E1 02019E              LJMP   KEYFUN06
00E4 0201AE 	     LJMP   KEYFUN07
00E7 0201BE              LJMP   KEYFUN08
00EA 0201CE 	     LJMP   KEYFUN09
00ED 0201DE              LJMP   KEYFUN10
00F0 0201EE 	     LJMP   KEYFUN11
00F3 0201FE              LJMP   KEYFUN12
00F6 02020E 	     LJMP   KEYFUN13
00F9 02021E              LJMP   KEYFUN14
00FC 02022E 	     LJMP   KEYFUN15       	; 跳至15号键功能程序
00FF 22                  RET       				;散转出错返回
            ;
            ;键号对应P1口数值表(同时按下两键为无效操作)
0100 EEDEBE 
0103 7EEDDD 
0106 BD7D   KEYTAB:      DB     0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH
0108 EBDBBB 
010B 7BE7D7 
010E B777FF 
0111 FF                  DB    0EBH,0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H,0FFH,0FFH
            ;
            ;0号键功能程序
0112 0529   KEYFUN00:    INC    29H          	;百位数加1
0114 E529                MOV    A,29H        	;入A
0116 C3                  CLR    C         		;清进位标志
0117 B40200              CJNE   A,#02H,FUN00     ;
011A 4003   FUN00:       JC     FUN00OUT         ;百位小于2转FUNOO0UT
011C 752900              MOV    29H,#00H         ;大于等于2清为0(百位只能是0或1)
011F E529   FUN00OUT:    MOV    A,29H       		; 判断百位是0还是1
0121 6401                XRL    A,#01H			;
0123 7005                JNZ     F00OUT1			;若百位为0转FOOOUT1


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

地址  机器码 源程序

0125 752800              MOV    28H,#00H			;若百位为1,十位为0
0128 212D                AJMP   F00OUT			;
012A 752808 F00OUT1:     MOV    28H,#08H			;若百位为0,十位数改为8
012D 12023F F00OUT:      LCALL  DISPUPDAT       ;写入控制芯片(修改发射频率)
0130 22                  RET						;返回
            ;
            ;01号键功能程序
0131 0528   KEYFUN01:    INC    28H				;十位数加1
0133 E528                MOV    A,28H			;入A
0135 C3                  CLR    C				;清进位标志
0136 B40A00              CJNE   A,#0AH,FUN01		;判断是否小于10
0139 4003   FUN01:       JC     FUN01OUT			;十位数小于10转FUN01OUT
013B 752800              MOV    28H,#00H			;十位数大于或等于10清为0
013E E529   FUN01OUT:    MOV    A,29H			;判断百位数是0不是1
0140 6401                XRL    A,#01H			;
0142 7005                JNZ     F01OUT			;
0144 752800              MOV    28H,#00H			;百位数为1时,十位数为0
0147 2158                AJMP   F001OUT			;
0149 E528   F01OUT:      MOV    A,28H     		;百 位为0时,十位数只能是8或9
014B 6408                XRL    A,#08H			;判断是不是8
014D 6009                JZ     F001OUT			;十位数是8转F001OUT
014F E528                MOV    A,28H			;
0151 6409                XRL    A,#09H			;判断是不是9
0153 6003                JZ     F001OUT			;十位数是9转F001OUT
0155 752808              MOV    28H,#08H			;不是8也不是9,十位赋值为8
0158 12023F F001OUT:     LCALL  DISPUPDAT       ;写入控制芯片(修改发射频率)
015B 22                  RET						;返回
            ;
            ;02号键功能程序
015C 0527   KEYFUN02:    INC    27H				;个位数加1
015E E527                MOV    A,27H			;
0160 C3                  CLR    C				;
0161 B40A00              CJNE   A,#0AH,FUN02		;判断是否小于10
0164 4003   FUN02:       JC     FUN02OUT			;小于10转FUN02OUT
0166 752700              MOV    27H,#00H			;大于或等于10清为0
0169 12023F FUN02OUT:    LCALL  DISPUPDAT       ;写入控制芯片(修改发射频率)
016C 22                  RET						;
            ;
            ;03号键功能程序
016D 0526   KEYFUN03:    INC    26H				;个位数加1
016F E526                MOV    A,26H			;
0171 C3                  CLR    C				;
0172 B40A00              CJNE   A,#0AH,FUN03		;判断是不小于10
0175 4003   FUN03:       JC     FUN03OUT			;小于10转FUN03OUT
0177 752600              MOV    26H,#00H			;大于或等于10清为0
017A 12023F FUN03OUT:    LCALL  DISPUPDAT       ;写入控制芯片(修改发射频率)
017D 22                  RET      				;返回
            ;


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

⌨️ 快捷键说明

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