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

📄 ir-12864lcd.lst

📁 买板子时赠的实验例子
💻 LST
📖 第 1 页 / 共 2 页
字号:
0143 C2D4            230               CLR   PSW.4
                     231     
0145 7820            232               MOV   R0,#IRCOM
0147 7904            233               MOV  R1,#04H
0149 30B207          234     I1:       JNB  IRIN,I2       ;等待 IR 信号出现
014C 1201A4          235               LCALL CONV
014F D9F8            236               DJNZ  R1,I1
0151 803E            237               JMP  IR_OUT
0153 7C14            238      I2:      MOV  R4,#20
0155 5127            239      I20:     CALL  DEL
0157 DCFC            240               DJNZ  R4,I20
0159 20B2ED          241               JB  IRIN,I1        ;确认IR信号出现
A51 MACRO ASSEMBLER  IR_12864LCD                                                          03/29/2005 16:04:59 PAGE     5

015C 20B204          242      I21:     JB  IRIN,I3        ;等 IR 变为高电平
015F 5127            243               CALL  DEL
0161 80F9            244               JMP  I21
0163 7B00            245      I3:      MOV  R3,#0         ;8位数清为0
0165 30B204          246      LL:      JNB  IRIN,I4       ;等 IR 变为低电平
0168 5127            247               CALL  DEL
016A 80F9            248               JMP  LL
016C 20B204          249      I4:      JB  IRIN,I5        ;等 IR 变为高电平
016F 5127            250               CALL  DEL
0171 80F9            251               JMP  I4
0173 7A00            252      I5:      MOV  R2,#0         ;0.14ms 计数
0175 5127            253      L1:      CALL  DEL
0177 20B213          254               JB  IRIN, N1       ;等 IR 变为高电平
                     255                                  ;IR=0,检查R2中的计数值
017A 7408            256               MOV  A,#8
017C C3              257               CLR  C
017D 9A              258               SUBB  A,R2         ;判断高低位
                     259                                  ;IF C=0  BIT=0
017E E6              260               MOV  A,@R0
017F 13              261               RRC  A
0180 F6              262               MOV  @R0,A         ;处理完一位
0181 0B              263               INC  R3
0182 BB08E0          264               CJNE  R3,#8,LL     ;需处理完8位
0185 7B00            265               MOV  R3,#0
0187 08              266               INC  R0
0188 B824DA          267               CJNE  R0,#24H,LL   ;收集到4字节了
018B 800B            268               JMP   IR_SHOW
018D 0A              269      N1:      INC  R2
018E BA1EE4          270               CJNE  R2,#30,L1    ;0.14ms 计数过长则时间到自动离开
                     271     
0191 D0D0            272     IR_OUT:   POP  PSW
0193 D0E0            273               POP  ACC
0195 D2AF            274               SETB  EA
0197 32              275               RETI
                     276     
                     277     ;------------------------------------------------------------------
0198                 278     IR_SHOW:
0198 E522            279               MOV A,22H
019A F4              280               CPL A                ;将22H取反后和23H比较
019B B52304          281               CJNE A,23H,IR_SHOW1  ;如果不等表示接收数据发生错误,放弃。
019E 31A4            282               CALL   CONV
01A0 5109            283               CALL  BEEP_BL        ;蜂鸣器鸣响表示解码成功
01A2                 284     IR_SHOW1:
01A2 80ED            285               JMP  IR_OUT
                     286     ;===============================================
                     287     ;编码转换为 ASCII 码并显示
                     288     ;===============================================
01A4                 289     CONV:
01A4 752605          290               MOV   X,#5        ;设置显示起始位置
01A7 E522            291               MOV   A,22H
01A9 54F0            292               ANL   A,#0F0H      ;取出高四位二进制数
01AB C4              293               SWAP  A            ;高四位与低四位互换
01AC C0E0            294               PUSH  ACC          ;压入堆栈
01AE C3              295               CLR   C            ;C=0
01AF 940A            296               SUBB  A,#0AH       ;减10
01B1 D0E0            297               POP   ACC          ;弹出堆栈
01B3 4002            298               JC    ASCII0       ;该数小于10,转ASCII0
01B5 2407            299               ADD   A,#07H       ;大于10的数加上37H
01B7 2430            300     ASCII0:   ADD   A,#30H       ;小于10的数加上30H
01B9 8526F0          301               MOV   B,X
01BC 3121            302               CALL  LCDP3
                     303     
01BE E522            304               MOV   A,22H
01C0 540F            305               ANL   A,#0FH        ;取出低四位二进制数
01C2 C0E0            306               PUSH  ACC
01C4 C3              307               CLR   C
A51 MACRO ASSEMBLER  IR_12864LCD                                                          03/29/2005 16:04:59 PAGE     6

01C5 940A            308               SUBB  A,#0AH        ;减10
01C7 D0E0            309               POP   ACC
01C9 4002            310               JC    ASCII1        ;该数小于10,转ASCII0
01CB 2407            311               ADD   A,#07H        ;大于10的数加上37H
01CD 2430            312     ASCII1:   ADD   A,#30H        ;小于10的数加上30H
01CF 0526            313               INC   X
01D1 8526F0          314               MOV   B,X
01D4 3121            315               CALL  LCDP3
                     316     
01D6 752605          317               MOV   X,#5         ;设置显示起始位置
01D9 E523            318               MOV   A,23H        ;反码
01DB 54F0            319               ANL   A,#0F0H      ;取出高四位二进制数
01DD C4              320               SWAP  A            ;高四位与低四位互换
01DE C0E0            321               PUSH  ACC          ;压入堆栈
01E0 C3              322               CLR   C            ;C=0
01E1 940A            323               SUBB  A,#0AH       ;减10
01E3 D0E0            324               POP   ACC          ;弹出堆栈
01E5 4002            325               JC    ASCII2       ;该数小于10,转ASCII0
01E7 2407            326               ADD   A,#07H       ;大于10的数加上37H
01E9 2430            327     ASCII2:   ADD   A,#30H       ;小于10的数加上30H
01EB 8526F0          328               MOV   B,X
01EE 312E            329               CALL  LCDP4
                     330     
01F0 E523            331               MOV   A,23H
01F2 540F            332               ANL   A,#0FH        ;取出低四位二进制数
01F4 C0E0            333               PUSH  ACC
01F6 C3              334               CLR   C
01F7 940A            335               SUBB  A,#0AH        ;减10
01F9 D0E0            336               POP   ACC
01FB 4002            337               JC    ASCII3        ;该数小于10,转ASCII0
01FD 2407            338               ADD   A,#07H        ;大于10的数加上37H
01FF 2430            339     ASCII3:   ADD   A,#30H        ;小于10的数加上30H
0201 0526            340               INC   X
0203 8526F0          341               MOV   B,X
0206 312E            342               CALL  LCDP4
0208 22              343               RET
                     344     ;===================================================
                     345     ;蜂鸣器响一声子程序
                     346     ;===================================================
0209                 347     BEEP_BL:
0209 7E64            348              MOV  R6,#100
020B 5116            349       BL1:   CALL  DEX1
020D B2B7            350              CPL  BEEP
020F DEFA            351              DJNZ  R6,BL1
0211 7D19            352              MOV  R5,#25
0213 511C            353              CALL  DELAY
0215 22              354              RET
0216 7FB4            355      DEX1:   MOV  R7,#180
0218 00              356      DEX2:   NOP
0219 DFFD            357              DJNZ  R7,DEX2
021B 22              358              RET
021C                 359      DELAY:                    ;延时R5×10MS
021C 7E32            360              MOV  R6,#50
021E 7F64            361       D1:    MOV  R7,#100
0220 DFFE            362              DJNZ  R7,$
0222 DEFA            363              DJNZ  R6,D1
0224 DDF6            364              DJNZ  R5,DELAY
0226 22              365              RET
                     366     ;===============================================
                     367     ; DELAY  R5*0.14MS
0227                 368     DEL:
0227 7D01            369               MOV  R5,#1       ;IR解码使用
0229 7E02            370     DEL0:     MOV  R6,#2
022B 7F20            371     DEL1:     MOV  R7,#32
022D DFFE            372     DEL2:     DJNZ  R7,DEL2
022F DEFA            373               DJNZ  R6,DEL1
A51 MACRO ASSEMBLER  IR_12864LCD                                                          03/29/2005 16:04:59 PAGE     7

0231 DDF6            374               DJNZ  R5,DEL0
0233 22              375               RET
                     376     
0234                 377     DELAY1:                    ;延时5MS
0234 7E19            378              MOV  R6,#25
0236 7F64            379       DL2:   MOV  R7,#100
0238 DFFE            380              DJNZ  R7,$
023A DEFA            381              DJNZ  R6,DL2
023C 22              382              RET
                     383     ;================================================
                     384             END
A51 MACRO ASSEMBLER  IR_12864LCD                                                          03/29/2005 16:04:59 PAGE     8

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

ACC. . . . . . . .  D ADDR   00E0H   A   
ASCII0 . . . . . .  C ADDR   01B7H   A   
ASCII1 . . . . . .  C ADDR   01CDH   A   
ASCII2 . . . . . .  C ADDR   01E9H   A   
ASCII3 . . . . . .  C ADDR   01FFH   A   
B. . . . . . . . .  D ADDR   00F0H   A   
BEEP . . . . . . .  B ADDR   00B0H.7 A   
BEEP_BL. . . . . .  C ADDR   0209H   A   
BL1. . . . . . . .  C ADDR   020BH   A   
CL1. . . . . . . .  C ADDR   0099H   A   
CLR_LINE . . . . .  C ADDR   0097H   A   
CONV . . . . . . .  C ADDR   01A4H   A   
D1 . . . . . . . .  C ADDR   021EH   A   
DEL. . . . . . . .  C ADDR   0227H   A   
DEL0 . . . . . . .  C ADDR   0229H   A   
DEL1 . . . . . . .  C ADDR   022BH   A   
DEL2 . . . . . . .  C ADDR   022DH   A   
DELAY. . . . . . .  C ADDR   021CH   A   
DELAY0 . . . . . .  C ADDR   011CH   A   
DELAY1 . . . . . .  C ADDR   0234H   A   
DEX1 . . . . . . .  C ADDR   0216H   A   
DEX2 . . . . . . .  C ADDR   0218H   A   
DL2. . . . . . . .  C ADDR   0236H   A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
EN . . . . . . . .  B ADDR   00A0H.2 A   
FILL . . . . . . .  C ADDR   008BH   A   
I1 . . . . . . . .  C ADDR   0149H   A   
I2 . . . . . . . .  C ADDR   0153H   A   
I20. . . . . . . .  C ADDR   0155H   A   
I21. . . . . . . .  C ADDR   015CH   A   
I3 . . . . . . . .  C ADDR   0163H   A   
I4 . . . . . . . .  C ADDR   016CH   A   
I5 . . . . . . . .  C ADDR   0173H   A   
IE . . . . . . . .  D ADDR   00A8H   A   
IRCOM. . . . . . .  N NUMB   0020H   A   
IRIN . . . . . . .  B ADDR   00B0H.2 A   
IR_IN. . . . . . .  C ADDR   013BH   A   
IR_OUT . . . . . .  C ADDR   0191H   A   
IR_SHOW. . . . . .  C ADDR   0198H   A   
IR_SHOW1 . . . . .  C ADDR   01A2H   A   
L1 . . . . . . . .  C ADDR   0175H   A   
LC1. . . . . . . .  C ADDR   0091H   A   
LCDP3. . . . . . .  C ADDR   0121H   A   
LCDP4. . . . . . .  C ADDR   012EH   A   
LCD_SHOW . . . . .  C ADDR   0051H   A   
LINE1. . . . . . .  C ADDR   0054H   A   
LINE2. . . . . . .  C ADDR   0060H   A   
LINE3. . . . . . .  C ADDR   006FH   A   
LINE4. . . . . . .  C ADDR   007EH   A   
LINE5. . . . . . .  C ADDR   0090H   A   
LL . . . . . . . .  C ADDR   0165H   A   
LOOP0. . . . . . .  C ADDR   000CH   A   
LOOP1. . . . . . .  C ADDR   0028H   A   
LOOP2. . . . . . .  C ADDR   002FH   A   
LOOP3. . . . . . .  C ADDR   0034H   A   
MAIN . . . . . . .  C ADDR   0005H   A   
MENU1. . . . . . .  C ADDR   00A0H   A   
MENU1A . . . . . .  C ADDR   00A8H   A   
MENU2. . . . . . .  C ADDR   00B9H   A   
MENU2A . . . . . .  C ADDR   00C1H   A   
A51 MACRO ASSEMBLER  IR_12864LCD                                                          03/29/2005 16:04:59 PAGE     9

MENU3. . . . . . .  C ADDR   00D2H   A   
MENU3A . . . . . .  C ADDR   00DAH   A   
MENU4. . . . . . .  C ADDR   00EAH   A   
MENU4A . . . . . .  C ADDR   00F2H   A   
N1 . . . . . . . .  C ADDR   018DH   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
PSB. . . . . . . .  B ADDR   00A0H.3 A   
PSW. . . . . . . .  D ADDR   00D0H   A   
RELAY. . . . . . .  B ADDR   0090H.3 A   
RS . . . . . . . .  B ADDR   00A0H.0 A   
RST. . . . . . . .  B ADDR   00A0H.5 A   
RW . . . . . . . .  B ADDR   00A0H.1 A   
SET_LCD. . . . . .  C ADDR   0036H   A   
SP . . . . . . . .  D ADDR   0081H   A   
TCON . . . . . . .  D ADDR   0088H   A   
WCOM . . . . . . .  C ADDR   0102H   A   
WDATA. . . . . . .  C ADDR   010FH   A   
X. . . . . . . . .  N NUMB   0026H   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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