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

📄 9t.lst

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

地址  机器码 源程序

            ;                 *************************************
            ;                 *                                   *
            ;                 *       遥控编码控制器              *
            ;                 *                                   *
            ;                 *          采用89C2051             *
            ;                 *************************************
            ;
            ;  P1.0口按纽为前进,P1.1口按纽为后退,P1.2口按纽为左转弯,P1.3口按纽为右转弯,
            ; P1.4口按纽为自动驾驶,P3.5为编码输出
            ;
            ;*************************************
            ;*                                   *
            ;*      主程序和中断程序入口         *
            ;*                                   *
            ;*************************************
            ORG     0000H    		 ;程序执行开始地址
0000 020036 LJMP    START    ;跳至START执行
            ORG     0003H    		 ;外中断0中断入口地址
0003 32     RETI             ;中断返回(不开中断)
            ORG     000BH    		 ;定时器T0中断入口地址
000B 32     RETI             ;中断返回(不开中断)
            ORG     0013H    		 ;外中断1中断入口地址
0013 32     RETI             ;中断返回(不开中断)
            ORG     001BH    		 ;定时器T1中断入口地址
001B 32     RETI             ;中断返回(不开中断)
            ORG     0023H    		 ;串行口中断入口地址
0023 32     RETI             ;中断返回(不开中断)
            ORG     002BH    		 ;定时器T2中断入口地址
002B 32     RETI    		 	 ;中断返回(不开中断)
            ;
            ;*************************************
            ;*                                   *
            ;*       初始化程序中的各变量        *
            ;*                                   *
            ;*************************************
002C E4     CLEARMEMIO:     CLR	A   		 	;清A
002D 14     		DEC	A   		 	;A为#0FFH
002E F590   		MOV     P1,A   		; P1口置1
0030 F5B0                   MOV     P3,A   		; P3口置1
0032 75A800                 MOV     IE,#00H     ;关所有中断
0035 22                     RET   		 		;子程序返回
            ;
            ;
            ;
            ;*************************************
            ;*                                   *
            ;*	    主  程   序                  *
            ;*                                   *


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

地址  机器码 源程序

            ;*************************************
0036 12002C START:          LCALL   CLEARMEMIO      ;调用初始化
            ; 主体程序
0039 120045 MAIN:           LCALL   KEYWORK         ;调用查键子程序
003C 020039 		LJMP	MAIN        		;转MAIN循环
003F 00     		NOP						;PC值出错处理
0040 00     		NOP
0041 00     		NOP
0042 020036 		LJMP	START        	;转START重新启动
            ;
            ;**************************
            ;*                        *
            ;*	键盘工作子程序        *
            ;**************************
0045 7590FF KEYWORK:        MOV     P1,#0FFH         ;置输入状态
0048 309007                 JNB     P1.0,KEY0        ; 读P1.0口,为0转KEY0
004B 30910D                 JNB     P1.1,KEY1        ; 读P1.1口,为0转KEY1
004E 309425                 JNB     P1.4,KEY4        ; 读P1.4口,为0转KEY4
0051 22     KEYOUT:		RET        				 ;没键按下,退出
            ;
0052 12011B KEY0:           LCALL   DL10MS        	;延时10毫秒消抖
0055 2090F9                 JB      P1.0,KEYOUT      ;干扰,退出
0058 020089                 LJMP		KEYFUN00        	 ;转KEYFUN00
005B 12011B KEY1:           LCALL   DL10MS        	 ;
005E 2091F0                 JB      P1.1,KEYOUT      ; 干扰,退出
0061 020098 		LJMP		KEYFUN01        ; 转KEYFUN01
0064 12011B KEY2:           LCALL   DL10MS        	; 延时10毫秒消抖
0067 2092E7                 JB      P1.2,KEYOUT     ; 干扰,退出
006A 0200A7 		LJMP		KEYFUN02        ; 转KEYFUN02
006D 12011B KEY3:           LCALL   DL10MS        	; 延时10毫秒消抖
0070 2093DE                 JB      P1.3,KEYOUT      ; 干扰,退出
0073 0200B9 		LJMP		KEYFUN03        ; 转KEYFUN03
0076 12011B KEY4:           LCALL   DL10MS        	; 延时10毫秒消抖
0079 2094D5                 JB      P1.4,KEYOUT      ; 干扰,退出
007C 0200CE 		LJMP		KEYFUN04         ; 转KEYFUN04
007F 3092E2 KEYWORK1:       JNB     P1.2,KEY2        ;P1.2口为0转KEY2
0082 3093E8                 JNB     P1.3,KEY3        ; P1.3口为0转KEY3
0085 1200DD                 LCALL    KEYFUN05        ;调转弯复位子程序
0088 22                     RET        				;返回
            ;
0089 7402   KEYFUN00:       MOV     A,#02H           ;发2个脉冲赋值
008B 1200E9                 LCALL    REMOTE          ;发射2个脉冲(前进)
008E 12007F WAIT0:          LCALL    KEYWORK1        ;调一次转弯查键子程序
0091 3090FA                 JNB     P1.0,WAIT0       ;等待按键释放
0094 1200E3                 LCALL    KEYFUN06        ;释放时发8个脉冲(停止)
0097 22                     RET          			;返回
            ;
0098 7403   KEYFUN01:       MOV     A,#03H           ;发3个脉冲赋值


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

地址  机器码 源程序

009A 1200E9                 LCALL    REMOTE          ;发射3个脉冲(前进)
009D 12007F WAIT1:          LCALL    KEYWORK1        ;调一次转弯查键子程序
00A0 3091FA                 JNB     P1.1,WAIT1       ;等待按键释放
00A3 1200E3                 LCALL    KEYFUN06        ;释放时发8个脉冲(停止)
00A6 22                     RET          			;
            ;
00A7 7404   KEYFUN02:       MOV     A,#04H        	;发4个脉冲赋值
00A9 1200E9                 LCALL    REMOTE          ;发射4个脉冲(左转)
00AC 30921C                 JNB     P1.2,KEYOUT1     ;键按下不放,转KEYOUT1返回
00AF 12011B                 LCALL   DL10MS           ;左转键放开,延时10毫秒
00B2 309216                 JNB     P1.2,KEYOUT1     ;为0(干扰),转KEYOUT1返回
00B5 1200DD                 LCALL    KEYFUN05        ;左转键放开发7个脉冲(转弯复位)
00B8 22                     RET          			;返回
            ;
00B9 7405   KEYFUN03:       MOV     A,#05H    		;发5个脉冲赋值
00BB 1200E9                	LCALL    REMOTE          ;发射5个脉冲(右转)
00BE 30930A                	JNB     P1.3,KEYOUT1     ;键按下不放,转KEYOUT1返回
00C1 12011B                 LCALL   DL10MS           ;右转键放开,延时10毫秒
00C4 309304                 JNB     P1.3,KEYOUT1     ;为0(干扰),转KEYOUT1返回
00C7 1200DD                	LCALL    KEYFUN05       ;右转键放开发7个脉冲(转弯复位)
00CA 22                     RET         			    ;返回
00CB 020051 KEYOUT1:         LJMP    KEYOUT          ;跳至KEYOUT返回
            ;
00CE 3094FD KEYFUN04:       JNB     P1.4,KEYFUN04   ;等待按键释放
00D1 12011B                 LCALL   DL10MS          ;延时消抖动
00D4 3094F7                 JNB     P1.4,KEYFUN04   ;P1.4为0,系干扰,转KEYFUN04再等待
00D7 7406                   MOV     A,#06H          ;按键释放,发6个脉冲(进入自动驾驶)
00D9 1200E9                 LCALL    REMOTE         ;发射一次
00DC 22                     RET          			;返回
            ;
00DD 7407   KEYFUN05:       MOV     A,#07H           ;发7个脉冲程序(转弯复位)
00DF 1200E9                 LCALL    REMOTE          ;发射一次
00E2 22                     RET          			;返回
00E3 7408   KEYFUN06:       MOV     A,#08H           ;发8个脉冲程序(停车)
00E5 1200E9                 LCALL    REMOTE           ;发射一次
00E8 22                     RET           			 ;返回
            ;
            ;
            ;*************************************
            ;*                                   *
            ;*         编码发送程序              *
            ;*                                   *
            ;*************************************
            ;按A中数值发射脉冲
00E9 F9     REMOTE:         MOV     R1,A      ;发射脉数入A
00EA 020111                 LJMP    OUT3      ;第一个脉冲处理
00ED 7855   OUT:            MOV     R0,#55H   ;1MS脉宽定时值
00EF C2B5   OUT1:           CLR     P3.5      ;发低电平脉宽


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

地址  机器码 源程序

00F1 00                     NOP      		 ;延时循环(周期约为21微秒)
00F2 00                     NOP
00F3 00                     NOP
00F4 00                     NOP
00F5 00                     NOP
00F6 00                     NOP
00F7 00                     NOP
00F8 00                     NOP
00F9 00                     NOP
00FA D8F3                   DJNZ    R0,OUT1   ;定时时间未到,转OUT1循环
00FC 7855                   MOV     R0,#55H   ;1MS脉宽定时值
00FE D2B5   OUT2:           SETB     P3.5     ;发高电平脉宽
0100 00                     NOP      		 ;延时循环(周期约为21微秒)
0101 00                     NOP
0102 00                     NOP
0103 00                     NOP
0104 00                     NOP
0105 00                     NOP
0106 00                     NOP
0107 00                     NOP
0108 00                     NOP
0109 D8F3                   DJNZ    R0,OUT2     ;定时时间未到,转OUT2循环
010B D9E0                   DJNZ    R1,OUT      ;脉冲数未发完转OUT再循环
010D 12011B                 LCALL   DL10MS      ;脉冲发完延时10毫秒
0110 22                     RET          		;返回
0111 78FF   OUT3:           MOV     R0,#0FFH     ;3MS脉宽定时值
0113 0200EF                 LJMP    OUT1        ;转OUT1红外线发射
            ;
            ;
            ;
            ;*************************************
            ;*                                   *
            ;*      延时 255 X 2 = 512 us       *
            ;*                                   *
            ;*************************************
0116 7AFF   DELAY:          MOV     R2,#0FFH
0118 DAFE   DELAY1:         DJNZ    R2,DELAY1
011A 22     		RET
            ;
            ;*************************************
            ;*                                   *
            ;*           延时10ms程序           *
            ;*          (消按键抖动用)         *
            ;*************************************
011B 7B14   DL10MS:         MOV     R3,#14H
011D 120116 DL10MS1:        LCALL   DELAY
0120 DBFB                   DJNZ    R3,DL10MS1
0122 22     		RET


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

⌨️ 快捷键说明

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