?? 9r.lst
字號:
頁 1
01-29-03
01:49:24
偉福匯編器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 機器碼 源程序
; *************************************
; * *
; * 遙 控 接 收 解 碼 *
; * 采用AT89C2051 *
; * *
; *************************************
;
; P1.0-P1.1為電機前后驅動,P1.2-P1.3為左右轉彎驅動,P1.4為自動駕駛指示,
; 編碼輸入從P3.1和p3.2(int0)口,P3.0和P3.5分別為前后紅外線探頭,在自動
; 駕駛時以控制小汔車前進倒退。
;*************************************
;* *
;* 主程序和中斷程序入口 *
;* *
;*************************************
ORG 0000H ;程序執行開始地址
0000 02003E LJMP START ;跳至START執行
ORG 0003H ;外中斷0中斷入口地址
0003 02004F LJMP INTEX0 ;跳至INTEX0中斷服務程序
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 F590 MOV P1,A ;P1口置0
002F 14 DEC A ;A為#0FFH
0030 F5B0 MOV P3,A ;P3口置1
0032 D294 SETB P1.4 ;關自動駕駛指示燈
0034 C200 CLR 00H ;自動駕駛標志位清0
0036 75A800 CLEARMEM: MOV IE,#00H ;關所有中斷
0039 D2A8 SETB EX0 ;開外中斷
003B D2AF SETB EA ;開總中斷允許
003D 22 RET ;返回
;
;*************************************
;* *
C:\MY DOCUMENTS\2003.02.12書稿\配套光盤源程序\實例9\9R.ASM
頁 2
01-29-03
01:49:24
偉福匯編器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 機器碼 源程序
;* 主 程 序 *
;* *
;*************************************
003E 12002C START: LCALL CLEARMEMIO ;上電初始化
0041 200008 MAIN: JB 00H,AUTO2 ;00H位標志為1轉自動駕駛
0044 020041 LJMP MAIN ;主程序循環
0047 00 NOP ;PC值出錯處理
0048 00 NOP
0049 02003E LJMP START ;重新上電啟動
004C 0200BD AUTO2: LJMP AUTO ;至自動駕駛程序
;******************************
; ;
; 中斷接收程序 ;
; ;
;******************************
004F C2A8 INTEX0: CLR EX0 ;關中斷
0051 30B103 JNB P3.1,READ1 ;P3.1為0轉READ1
0054 D2A8 READOUTT0: SETB EX0 ;干擾,中斷退出
0056 32 RETI ;中斷返回
;
0057 E4 READ1: CLR A ;清A
0058 F583 MOV DPH,A ;清DPTR
005A F582 MOV DPL,A ;
005C 20B105 HARD1: JB P3.1,HARD11 ;P3.1為高電平時轉HARD11
005F A3 INC DPTR ;低電平脈沖寬度時間計數
0060 00 NOP ;空操作延時
0061 00 NOP
0062 015C AJMP HARD1 ;跳回循環(周期約為8微秒)
0064 E583 HARD11: MOV A,DPH ;取DPTR高8位計數值
0066 60EC JZ READOUTT0 ;若為0,則脈寬不足3毫秒退出中斷
0068 E4 CLR A ;脈寬大于2MS,是第一個肪沖
0069 04 READ11: INC A ;脈沖計數加1
006A 30B1FD READ12: JNB P3.1,READ12 ;低電平等待,
006D 7906 MOV R1,#06H ;高電平脈寬判斷用
006F 30B1F7 READ13: JNB P3.1,READ11 ;低電平轉READ11(脈沖計數)
0072 1200FC LCALL DELAY ;延時512微秒
0075 D9F8 DJNZ R1,READ13 ;高電平脈寬小于3MS,轉READ13循環
0077 14 DEC A ;高電平脈寬大于3MS,計數結束,A減1
0078 14 DEC A ;再減1
0079 6017 JZ FUN0 ;收到2個肪沖,執行前進功能
007B 14 DEC A
007C 6019 JZ FUN1 ;收到3個肪沖,執行后退功能
007E 14 DEC A
007F 601B JZ FUN2 ;收到4個肪沖,執行左轉功能
0081 14 DEC A
0082 601D JZ FUN3 ;收到5個肪沖,執行右轉功能
0084 14 DEC A
0085 601F JZ FUN4 ;收到6個肪沖,執行自動駕駛功能
C:\MY DOCUMENTS\2003.02.12書稿\配套光盤源程序\實例9\9R.ASM
頁 3
01-29-03
01:49:24
偉福匯編器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 機器碼 源程序
0087 14 DEC A
0088 6060 JZ FUN5 ;收到7個肪沖,執行轉彎復位功能
008A 14 DEC A
008B 6064 JZ FUN6 ;收到8個肪沖,執行停車功能
008D 00 NOP ;出錯處理
008E 00 NOP ;
008F 020054 LJMP READOUTT0 ;退出
0092 D290 FUN0: SETB P1.0 ;前進狀態
0094 020054 LJMP READOUTT0 ;
0097 D291 FUN1: SETB P1.1 ;后退狀態
0099 020054 LJMP READOUTT0 ;
009C D292 FUN2: SETB P1.2 ;左轉彎狀態
009E 020054 LJMP READOUTT0 ;
00A1 D293 FUN3: SETB P1.3 ;右轉彎狀態
00A3 020054 LJMP READOUTT0 ;
00A6 B200 FUN4: CPL 00H ;自動駕駛標志取反
00A8 20000D JB 00H,AUTO1 ;00H=1進入自動駕駛
00AB C290 CLR P1.0 ;00H=0時進入遙控駕駛,停車操作
00AD C291 CLR P1.1 ;停車操作
00AF C292 CLR P1.2 ;停車操作
00B1 C293 CLR P1.3 ;停車操作
00B3 D294 SETB P1.4 ;關自動駕駛燈
00B5 020054 LJMP READOUTT0 ;中斷退出
00B8 C294 AUTO1: CLR P1.4 ;進入自動駕駛,開自動駕駛指示燈
00BA D2A8 SETB EX0 ;開中斷
00BC 32 RETI ;中斷返回
00BD 30B00D AUTO: JNB P3.0,BL ;自動駕駛控制程序,前有障礙轉BL
00C0 D290 SETB P1.0 ;前面無障礙,前進狀態
00C2 C291 CLR P1.1 ;前面無障礙,前進狀態
00C4 C292 CLR P1.2 ;前面無障礙,前進狀態
00C6 C293 CLR P1.3 ;前面無障礙,前進狀態
00C8 300012 JNB 00H,OUT1 ;標志為0轉OUT1(轉遙控)
00CB 01BD AJMP AUTO ;為1轉AUTO循環
00CD C290 BL: CLR P1.0 ;前面有障礙,后退并左轉處理
00CF D291 SETB P1.1 ;置后退狀態
00D1 D292 SETB P1.2 ;左轉狀態
00D3 C293 CLR P1.3 ;
00D5 300005 JNB 00H,OUT1 ;標志為0轉OUT1(轉遙控)
00D8 30B5E2 JNB P3.5,AUTO ;后面有障礙物轉AUTO(前進處理)
00DB 01CD AJMP BL ;后無障礙轉BL繼續后退循環
00DD C290 OUT1: CLR P1.0 ;自動駕駛退出程序,關閉驅動及轉向電機
00DF C291 CLR P1.1 ;
00E1 C292 CLR P1.2 ;
00E3 C293 CLR P1.3 ;
00E5 D294 SETB P1.4 ;關自動駕駛指示燈
00E7 020041 LJMP MAIN ;轉回主程序
00EA C292 FUN5: CLR P1.2 ;轉彎停止程序
00EC C293 CLR P1.3 ;
C:\MY DOCUMENTS\2003.02.12書稿\配套光盤源程序\實例9\9R.ASM
頁 4
01-29-03
01:49:24
偉福匯編器 V5.00 Copyright (c) 1989, 2001 by CHY
地址 機器碼 源程序
00EE 020054 LJMP READOUTT0 ;退出中斷
00F1 C290 FUN6: CLR P1.0 ;遙控停車程序,關閉驅動及轉向電機
00F3 C291 CLR P1.1 ;
00F5 C292 CLR P1.2 ;
00F7 C293 CLR P1.3 ;
00F9 020054 LJMP READOUTT0 ;中斷退出
;*************************************
;* *
;* 延時程序( 255 X 2 = 513 us) *
;* *
;*************************************
00FC 78FF DELAY: MOV R0,#0FFH ;
00FE D8FE DELAY1: DJNZ R0,DELAY1 ;
0100 22 RET ;
;
;
END ;程序結束
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -