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

📄 ir-1602lcd.lst

📁 买板子时赠的实验例子
💻 LST
📖 第 1 页 / 共 2 页
字号:
00FA DCFC            176               DJNZ  R4,I20
00FC 20B2F2          177               JB  IRIN,I1        ;确认IR信号出现
00FF 20B204          178      I21:     JB  IRIN,I3        ;等 IR 变为高电平
A51 MACRO ASSEMBLER  IR_1602LCD                                                           03/29/2005 16:11:52 PAGE     4

0102 3191            179               CALL  DEL
0104 80F9            180               JMP  I21
0106 7B00            181      I3:      MOV  R3,#0         ;8位数清为0
0108 30B204          182      LL:      JNB  IRIN,I4       ;等 IR 变为低电平
010B 3191            183               CALL  DEL
010D 80F9            184               JMP  LL
010F 20B204          185      I4:      JB  IRIN,I5        ;等 IR 变为高电平
0112 3191            186               CALL  DEL
0114 80F9            187               JMP  I4
0116 7A00            188      I5:      MOV  R2,#0         ;0.14ms 计数
0118 3191            189      L1:      CALL  DEL
011A 20B213          190               JB  IRIN, N1       ;等 IR 变为高电平
                     191                                  ;IR=0,检查R2中的计数值 
011D 7408            192               MOV  A,#8
011F C3              193               CLR  C
0120 9A              194               SUBB  A,R2         ;判断高低位
                     195                                  ;IF C=0  BIT=0
0121 E6              196               MOV  A,@R0
0122 13              197               RRC  A
0123 F6              198               MOV  @R0,A         ;处理完一位
0124 0B              199               INC  R3
0125 BB08E0          200               CJNE  R3,#8,LL     ;需处理完8位  
0128 7B00            201               MOV  R3,#0
012A 08              202               INC  R0
012B B824DA          203               CJNE  R0,#24H,LL   ;收集到4字节了
012E 8004            204               JMP  OK
0130 0A              205      N1:      INC  R2
0131 BA1EE4          206               CJNE  R2,#30,L1    ;0.14ms 计数过长则时间到自动离开
0134 22              207      OK:      RET
                     208     ;--------------------------------------------------------------------
0135                 209     IR_SHOW:
0135 E522            210               MOV A,22H
0137 F4              211               CPL A                ;将22H取反后和23H比较
0138 B52304          212               CJNE A,23H,IR_SHOW1  ;如果不等表示接收数据发生错误,放弃。
013B 3140            213               CALL   CONV
013D 3173            214               CALL  BEEP_BL        ;蜂鸣器鸣响表示解码成功
013F 22              215     IR_SHOW1: RET
                     216     ;--------------------------------------------------------------------
                     217     ;转换为 ASCII 码并显示
                     218     ;--------------------------------------------------------------------
0140                 219     CONV:
0140 75260B          220               MOV   X,#11        ;设置显示起始位置
0143 E522            221               MOV   A,22H
0145 54F0            222               ANL   A,#0F0H      ;取出高四位二进制数
0147 C4              223               SWAP  A            ;高四位与低四位互换
0148 C0E0            224               PUSH  ACC          ;压入堆栈
014A C3              225               CLR   C            ;C=0
014B 940A            226               SUBB  A,#0AH       ;减10
014D D0E0            227               POP   ACC          ;弹出堆栈
014F 4002            228               JC    ASCII0       ;该数小于10,转ASCII0
0151 2407            229               ADD   A,#07H       ;大于10的数加上37H
0153 2430            230     ASCII0:   ADD   A,#30H       ;小于10的数加上30H
0155 8526F0          231               MOV   B,X
0158 11E2            232               CALL  LCDP2
                     233     
015A E522            234               MOV   A,22H
015C 540F            235               ANL   A,#0FH        ;取出低四位二进制数
015E C0E0            236               PUSH  ACC
0160 C3              237               CLR   C
0161 940A            238               SUBB  A,#0AH        ;减10
0163 D0E0            239               POP   ACC
0165 4002            240               JC    ASCII1        ;该数小于10,转ASCII0
0167 2407            241               ADD   A,#07H        ;大于10的数加上37H
0169 2430            242     ASCII1:   ADD   A,#30H        ;小于10的数加上30H
016B 0526            243               INC   X
016D 8526F0          244               MOV   B,X
A51 MACRO ASSEMBLER  IR_1602LCD                                                           03/29/2005 16:11:52 PAGE     5

0170 11E2            245               CALL  LCDP2
0172 22              246               RET
                     247     ;--------------------------------------------------------
                     248     ;蜂鸣器响一声子程序
                     249     ;--------------------------------------------------------
0173                 250     BEEP_BL:
0173 7E64            251              MOV  R6,#100
0175 3180            252       BL1:   CALL  DEX1
0177 B2B7            253              CPL  BEEP
0179 DEFA            254              DJNZ  R6,BL1
017B 7D19            255              MOV  R5,#25
017D 3186            256              CALL  DELAY
017F 22              257              RET
0180 7FB4            258      DEX1:   MOV  R7,#180
0182 00              259      DEX2:   NOP
0183 DFFD            260              DJNZ  R7,DEX2
0185 22              261              RET
0186                 262      DELAY:                    ;延时R5×10MS
0186 7E32            263              MOV  R6,#50
0188 7F64            264       D1:    MOV  R7,#100
018A DFFE            265              DJNZ  R7,$
018C DEFA            266              DJNZ  R6,D1
018E DDF6            267              DJNZ  R5,DELAY
0190 22              268              RET
                     269     ;------------------------------------------------
                     270     ; DELAY  R5*0.14MS
0191                 271     DEL:
0191 7D01            272               MOV  R5,#1       ;IR解码使用
0193 7E02            273     DEL0:     MOV  R6,#2
0195 7F20            274     DEL1:     MOV  R7,#32
0197 DFFE            275     DEL2:     DJNZ  R7,DEL2
0199 DEFA            276               DJNZ  R6,DEL1
019B DDF6            277               DJNZ  R5,DEL0
019D 22              278               RET
                     279     
019E                 280     DELAY1:                    ;延时5MS
019E 7E19            281              MOV  R6,#25
01A0 7F64            282       DL2:   MOV  R7,#100
01A2 DFFE            283              DJNZ  R7,$
01A4 DEFA            284              DJNZ  R6,DL2
01A6 22              285              RET
                     286     ;-------------------------------------------------
                     287             END
A51 MACRO ASSEMBLER  IR_1602LCD                                                           03/29/2005 16:11:52 PAGE     6

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   0153H   A   
ASCII1 . . . . . .  C ADDR   0169H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
BEEP . . . . . . .  B ADDR   00B0H.7 A   
BEEP_BL. . . . . .  C ADDR   0173H   A   
BL1. . . . . . . .  C ADDR   0175H   A   
CL1. . . . . . . .  C ADDR   0081H   A   
CLR_LINE . . . . .  C ADDR   007FH   A   
CONV . . . . . . .  C ADDR   0140H   A   
D1 . . . . . . . .  C ADDR   0188H   A   
DEL. . . . . . . .  C ADDR   0191H   A   
DEL0 . . . . . . .  C ADDR   0193H   A   
DEL1 . . . . . . .  C ADDR   0195H   A   
DEL2 . . . . . . .  C ADDR   0197H   A   
DELAY. . . . . . .  C ADDR   0186H   A   
DELAY0 . . . . . .  C ADDR   00DDH   A   
DELAY1 . . . . . .  C ADDR   019EH   A   
DEX1 . . . . . . .  C ADDR   0180H   A   
DEX2 . . . . . . .  C ADDR   0182H   A   
DL2. . . . . . . .  C ADDR   01A0H   A   
EN . . . . . . . .  B ADDR   00A0H.2 A   
FILL . . . . . . .  C ADDR   0073H   A   
I1 . . . . . . . .  C ADDR   00F1H   A   
I2 . . . . . . . .  C ADDR   00F6H   A   
I20. . . . . . . .  C ADDR   00F8H   A   
I21. . . . . . . .  C ADDR   00FFH   A   
I3 . . . . . . . .  C ADDR   0106H   A   
I4 . . . . . . . .  C ADDR   010FH   A   
I5 . . . . . . . .  C ADDR   0116H   A   
INFO1. . . . . . .  C ADDR   00A1H   A   
INFO2. . . . . . .  C ADDR   00B2H   A   
INIT_LCD . . . . .  C ADDR   003BH   A   
IRCOM. . . . . . .  N NUMB   0020H   A   
IRIN . . . . . . .  B ADDR   00B0H.2 A   
IR_IN. . . . . . .  C ADDR   00EFH   A   
IR_SHOW. . . . . .  C ADDR   0135H   A   
IR_SHOW1 . . . . .  C ADDR   013FH   A   
L1 . . . . . . . .  C ADDR   0118H   A   
LC1. . . . . . . .  C ADDR   0079H   A   
LCDP2. . . . . . .  C ADDR   00E2H   A   
LCD_SHOW . . . . .  C ADDR   005AH   A   
LINE1. . . . . . .  C ADDR   005DH   A   
LINE2. . . . . . .  C ADDR   0069H   A   
LL . . . . . . . .  C ADDR   0108H   A   
LOOP0. . . . . . .  C ADDR   0009H   A   
LOOP1. . . . . . .  C ADDR   0014H   A   
LOOP2. . . . . . .  C ADDR   001FH   A   
LOOP3. . . . . . .  C ADDR   0024H   A   
MAIN . . . . . . .  C ADDR   0002H   A   
MENU1. . . . . . .  C ADDR   0088H   A   
MENU2. . . . . . .  C ADDR   0090H   A   
N1 . . . . . . . .  C ADDR   0130H   A   
OK . . . . . . . .  C ADDR   0134H   A   
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
RELAY. . . . . . .  B ADDR   0090H.3 A   
RS . . . . . . . .  B ADDR   00A0H.0 A   
A51 MACRO ASSEMBLER  IR_1602LCD                                                           03/29/2005 16:11:52 PAGE     7

RW . . . . . . . .  B ADDR   00A0H.1 A   
SET_LCD. . . . . .  C ADDR   0026H   A   
SP . . . . . . . .  D ADDR   0081H   A   
WCOM . . . . . . .  C ADDR   00C3H   A   
WDATA. . . . . . .  C ADDR   00D0H   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 + -