?? hongwai.lst
字號:
A51 MACRO ASSEMBLER HONGWAI 12/11/2006 11:28:08 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN hongwai.OBJ
ASSEMBLER INVOKED BY: e:\Keil\C51\BIN\A51.EXE hongwai.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1
2
0000 3 ORG 0000H
0000 4 MAIN:
0000 30B203 5 JNB P3.2,IR ;遙控掃描
0003 020000 6 LJMP MAIN ;主循環(huán)
0006 7 IR: ;解碼開始
0006 7E0A 8 MOV R6,#10
0008 9 IR_SB:
0008 1153 10 ACALL DELAY882;延時882微秒
000A 20B22B 11 JB P3.2,IR_ERROR;數(shù)據(jù)錯誤退出解碼
000D DEF9 12 DJNZ R6,IR_SB;重復(fù)10次檢測
13 ;識別連發(fā)碼
000F 30B2FD 14 JNB P3.2,$;等待高電平避開9MS低電平引導(dǎo)脈沖
0012 1161 15 ACALL DELAY2400
0014 30B21F 16 JNB P3.2,IR_RP;這里為低電平,認(rèn)為是連發(fā)碼
0017 1161 17 ACALL DELAY2400 ;延時4.74MS避開4.5MS的結(jié)果碼
18 ;讀取32位數(shù)據(jù)碼
0019 791A 19 MOV R1,#1AH;存放數(shù)據(jù)的起始地址
001B 7A04 20 MOV R2,#4
001D 21 IR_4BYTE:
001D 7B08 22 MOV R3,#8
001F 23 IR_8BIT:
001F 30B2FD 24 JNB P3.2,$;等待地址碼第一位的高電平信號
0022 120053 25 LCALL DELAY882;高電平來后開始延時882uS
0025 A2B2 26 MOV C,P3.2
0027 5003 27 JNC IR_8BIT_0;延時后為為低電平則跳到IR_8BIT_0
0029 12005A 28 LCALL DELAY1000
002C 29 IR_8BIT_0:
002C E7 30 MOV A,@R1;將R1中的地址給累加器A
002D 13 31 RRC A;將C移入A的最低位
002E F7 32 MOV @R1,A;保存A中的值到RAM中
002F DBEE 33 DJNZ R3,IR_8BIT;接收地址碼的高8位
0031 09 34 INC R1;下一地址
0032 DAE9 35 DJNZ R2,IR_4BYTE;接收完成8位數(shù)據(jù),8位數(shù)據(jù)碼和16位地址碼
0034 8005 36 JMP IR_GOTO ;解碼結(jié)束
0036 37 IR_RP:
0036 8003 38 JMP IR_GOTO
0038 39 IR_ERROR:
0038 020000 40 LJMP MAIN
003B 41 IR_GOTO: ;執(zhí)行部分
003B E51C 42 MOV A,1CH
003D F4 43 CPL A
003E B51DF7 44 CJNE A,1DH,IR_ERROR
0041 851D90 45 MOV P1,1DH ;接收到的數(shù)據(jù)顯示到P1口
0044 751A00 46 MOV 1AH,#00H ;接收區(qū)清0
0047 751B00 47 MOV 1BH,#00H
004A 751C00 48 MOV 1CH,#00H
004D 751D00 49 MOV 1DH,#00H
0050 020000 50 LJMP MAIN;回到主循環(huán)
0053 51 DELAY882: ;延時函數(shù)
0053 7FCA 52 MOV R7,#202
0055 53 DELAY882_A:;882us延時
0055 00 54 NOP
0056 00 55 NOP
0057 DFFC 56 DJNZ R7,DELAY882_A
0059 22 57 RET
005A 58 DELAY1000:
A51 MACRO ASSEMBLER HONGWAI 12/11/2006 11:28:08 PAGE 2
005A 7FE5 59 MOV R7,#229
005C 60 DELAY1000_A:
005C 00 61 NOP
005D 00 62 NOP
005E DFFC 63 DJNZ R7,DELAY1000_A
0060 22 64 RET
0061 65 DELAY2400:
0061 7FF5 66 MOV R7,#245
0063 67 DELAY2400_A:
0063 00 68 NOP
0064 00 69 NOP
0065 00 70 NOP
0066 00 71 NOP
0067 00 72 NOP
0068 00 73 NOP
0069 00 74 NOP
006A DFF7 75 DJNZ R7,DELAY2400_A
006C 22 76 RET
77 END
A51 MACRO ASSEMBLER HONGWAI 12/11/2006 11:28:08 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
DELAY1000. . . . . C ADDR 005AH A
DELAY1000_A. . . . C ADDR 005CH A
DELAY2400. . . . . C ADDR 0061H A
DELAY2400_A. . . . C ADDR 0063H A
DELAY882 . . . . . C ADDR 0053H A
DELAY882_A . . . . C ADDR 0055H A
IR . . . . . . . . C ADDR 0006H A
IR_4BYTE . . . . . C ADDR 001DH A
IR_8BIT. . . . . . C ADDR 001FH A
IR_8BIT_0. . . . . C ADDR 002CH A
IR_ERROR . . . . . C ADDR 0038H A
IR_GOTO. . . . . . C ADDR 003BH A
IR_RP. . . . . . . C ADDR 0036H A
IR_SB. . . . . . . C ADDR 0008H A
MAIN . . . . . . . C ADDR 0000H A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -