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

📄 zhujiasm.lst

📁 51单片机的串口多机通讯设计
💻 LST
📖 第 1 页 / 共 2 页
字号:
02A2 853180          246          MOV P0,31H
02A5 D294            247              SETB P1.4
02A7 C293            248              CLR P1.3
02A9 C292            249              CLR P1.2
02AB 51B0            250              ACALL READ_BUSY
A51 MACRO ASSEMBLER  ZHUJIASM                                                             01/24/2008 12:06:00 PAGE     5

02AD D292            251              SETB P1.2
02AF 22              252              RET
02B0                 253     READ_BUSY:
02B0 C083            254          PUSH DPH
02B2 C082            255              PUSH DPL
02B4 7580FF          256     WAIT:MOV P0,#0FFH
02B7 C294            257              CLR P1.4
02B9 D293            258              SETB P1.3
02BB C292            259              CLR P1.2
02BD 7D02            260              MOV R5,#02H
02BF 31A8            261              ACALL DELAY_MS
02C1 D292            262              SETB P1.2
02C3 90FFFF          263              MOV DPTR,#0FFFFH
02C6 E0              264              MOVX A,@DPTR
02C7 20E7EA          265              JB ACC.7,WAIT     
02CA D082            266              POP DPL
02CC D083            267              POP DPH
02CE 22              268              RET
                     269     ;**********************************************************
                     270     ;
                     271     ;接收的数据显示程序
                     272     ;
                     273     ;**********************************************************
02CF                 274     DISPLAY_NO:
02CF E53A            275          MOV A,3AH
02D1 B40129          276          CJNE A,#01H,DISPLAY_CORRECT
02D4 753182          277              MOV 31H,#82H
02D7 5194            278          ACALL WRITE_COMM
02D9 852031          279              MOV 31H,' '
02DC 51A2            280              ACALL WRITE_DATA
02DE 7531C4          281              MOV 31H,#0C4H
02E1 5194            282              ACALL WRITE_COMM
02E3 753208          283              MOV 32H,#08H;字符串长度为8个字节
02E6 753300          284              MOV 33H,#00H;设置字符串中指针
02E9                 285     DISPLAY_LOOP4:
02E9 E533            286          MOV A,33H
02EB 900330          287              MOV DPTR,#STRING_ERROR
02EE 93              288              MOVC A,@A+DPTR
02EF F531            289              MOV 31H,A
02F1 51A2            290              ACALL WRITE_DATA
02F3 0533            291              INC 33H
02F5 D532F1          292              DJNZ 32H,DISPLAY_LOOP4
02F8 753A00          293              MOV 3AH,#00H
02FB 612F            294              AJMP DISPLAY_END
                     295     
02FD                 296     DISPLAY_CORRECT:
02FD 753182          297          MOV 31H,#82H
0300 5194            298          ACALL WRITE_COMM;设置液晶写入的地址
0302 B80009          299              CJNE R0,#00H,DISPLAY_MODE1;判断是否为循环显示模式
0305 E9              300              MOV A,R1
0306 2430            301              ADD A,#30H
0308 F531            302              MOV 31H,A
030A 51A2            303              ACALL WRITE_DATA;将从机号显示出来
030C 6115            304              AJMP DISPLAY_DATA;跳转到采集的数据显示
030E                 305     DISPLAY_MODE1:
030E EA              306          MOV A,R2
030F 2430            307              ADD A,#30H
0311 F531            308              MOV 31H,A
0313 51A2            309              ACALL WRITE_DATA
0315                 310     DISPLAY_DATA:
0315 7531C4          311          MOV 31H,#0C4H
0318 5194            312              ACALL WRITE_COMM;第二行显示数据时的地址
031A 753408          313              MOV 34H,#08H;数据向左循环的次数
031D 8B35            314              MOV 35H,R3;接收到的数据给35H
031F                 315     DISPLAY_LOOP5:
031F E535            316          MOV A,35H
A51 MACRO ASSEMBLER  ZHUJIASM                                                             01/24/2008 12:06:00 PAGE     6

0321 23              317              RL A
0322 F535            318              MOV 35H,A
0324 5401            319              ANL A,#01H
0326 2430            320              ADD A,#30H
0328 F531            321              MOV 31H,A
032A 51A2            322              ACALL WRITE_DATA
032C D534F0          323              DJNZ 34H,DISPLAY_LOOP5
032F                 324     DISPLAY_END:
032F 22              325              RET
                     326     
0330 20455252        327     STRING_ERROR:DB ' ','E','R','R','O','R','!',' '
0334 4F522120                
                     328     ;**********************************************************
                     329     ;
                     330     ;键盘扫描子程序
                     331     ;返回值R2(按键编号)或R0(显示模式)
                     332     ;
                     333     ;**********************************************************
0338                 334     SCAN_KEYBOARD:
0338 7EEF            335          MOV R6,#0EFH
033A 75A00F          336              MOV P2,#0FH
033D E5A0            337              MOV A,P2
033F 540F            338              ANL A,#0FH
0341 F4              339              CPL A
0342 540F            340              ANL A,#0FH
0344 602A            341              JZ EXIT_SCAN
0346 7D05            342              MOV R5,#05H
0348 31A8            343              ACALL DELAY_MS
034A E5A0            344              MOV A,P2
034C 540F            345              ANL A,#0FH
034E F4              346              CPL A
034F 540F            347              ANL A,#0FH
0351 601D            348              JZ EXIT_SCAN
0353                 349     SCAN_LOOP:
0353 EE              350          MOV A,R6;行扫描输出
0354 F4              351              CPL A
0355 54FE            352              ANL A,#0FEH
0357 6015            353          JZ EXIT_LOOP
0359 8EA0            354              MOV P2,R6
035B E5A0            355              MOV A,P2
035D 540F            356              ANL A,#0FH
035F F4              357              CPL A
0360 540F            358              ANL A,#0FH;查看是否是这一行有键按下
0362 6005            359              JZ NEXT
0364 E5A0            360              MOV A,P2
0366 FC              361              MOV R4,A;将键盘码缓存在R4中
0367 616E            362              AJMP EXIT_LOOP
0369 EE              363     NEXT:MOV A,R6
036A 23              364          RL A
036B FE              365              MOV R6,A;扫描输出值变换
036C 6153            366              AJMP SCAN_LOOP 
036E                 367     EXIT_LOOP:
036E 7171            368          ACALL COMMAND_TRANSLATION
0370                 369     EXIT_SCAN:
0370 22              370              RET
                     371     
0371                 372     COMMAND_TRANSLATION:
0371 BCE704          373     KEY1:CJNE R4,#0E7H,KEY2
0374 7A01            374              MOV R2,#01H
0376 61C3            375              AJMP EXIT_TRANSLATION
0378 BCEB04          376     KEY2:CJNE R4,#0EBH,KEY3
037B 7A02            377          MOV R2,#02H
037D 61C3            378              AJMP EXIT_TRANSLATION
037F BCED04          379     KEY3:CJNE R4,#0EDH,KEY4
0382 7A03            380          MOV R2,#03H
0384 61C3            381              AJMP EXIT_TRANSLATION
A51 MACRO ASSEMBLER  ZHUJIASM                                                             01/24/2008 12:06:00 PAGE     7

0386 BCD704          382     KEY4:CJNE R4,#0D7H,KEY5
0389 7A04            383          MOV R2,#04H
038B 61C3            384              AJMP EXIT_TRANSLATION
038D BCDB04          385     KEY5:CJNE R4,#0DBH,KEY6
0390 7A05            386          MOV R2,#05H
0392 61C3            387              AJMP EXIT_TRANSLATION
0394 BCDD04          388     KEY6:CJNE R4,#0DDH,KEY7
0397 7A06            389          MOV R2,#06H
0399 61C3            390              AJMP EXIT_TRANSLATION
039B BCB704          391     KEY7:CJNE R4,#0B7H,KEY8
039E 7A07            392          MOV R2,#07H
03A0 61C3            393              AJMP EXIT_TRANSLATION
03A2 BCBB04          394     KEY8:CJNE R4,#0BBH,KEY9
03A5 7A08            395          MOV R2,#08H
03A7 61C3            396              AJMP EXIT_TRANSLATION
03A9 BCBD04          397     KEY9:CJNE R4,#0BDH,KEY0
03AC 7A09            398          MOV R2,#09H
03AE 61C3            399              AJMP EXIT_TRANSLATION
03B0 BC7B04          400     KEY0:CJNE R4,#7BH,KEY_MODE_0
03B3 7A00            401          MOV R2,#00H
03B5 61C3            402              AJMP EXIT_TRANSLATION
03B7                 403     KEY_MODE_0:
03B7 BC7704          404          CJNE R4,#77H,KEY_MODE_1
03BA 7800            405              MOV R0,#00H
03BC 61C3            406              AJMP EXIT_TRANSLATION
03BE                 407     KEY_MODE_1:
03BE BC7D02          408          CJNE R4,#7DH,EXIT_TRANSLATION
03C1 7801            409              MOV  R0,#01H
03C3                 410     EXIT_TRANSLATION:
03C3 22              411          RET
                     412              END              
A51 MACRO ASSEMBLER  ZHUJIASM                                                             01/24/2008 12:06:00 PAGE     8

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


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

ACC . . . . . . . .  D ADDR   00E0H   A   
COMMAND_TRANSLATION  C ADDR   0371H   A   
DELAY_MS. . . . . .  C ADDR   01A8H   A   
DELAY_S . . . . . .  C ADDR   01B3H   A   
DEL_MS1 . . . . . .  C ADDR   01ABH   A   
DEL_MS2 . . . . . .  C ADDR   01A8H   A   
DEL_S1. . . . . . .  C ADDR   01B6H   A   
DEL_S2. . . . . . .  C ADDR   01B3H   A   
DISPLAY_CORRECT . .  C ADDR   02FDH   A   
DISPLAY_DATA. . . .  C ADDR   0315H   A   
DISPLAY_END . . . .  C ADDR   032FH   A   
DISPLAY_LOOP1 . . .  C ADDR   01F0H   A   
DISPLAY_LOOP2 . . .  C ADDR   020AH   A   
DISPLAY_LOOP3 . . .  C ADDR   0267H   A   
DISPLAY_LOOP4 . . .  C ADDR   02E9H   A   
DISPLAY_LOOP5 . . .  C ADDR   031FH   A   
DISPLAY_MODE1 . . .  C ADDR   030EH   A   
DISPLAY_NO. . . . .  C ADDR   02CFH   A   
DPH . . . . . . . .  D ADDR   0083H   A   
DPL . . . . . . . .  D ADDR   0082H   A   
EXIT_LOOP . . . . .  C ADDR   036EH   A   
EXIT_SCAN . . . . .  C ADDR   0370H   A   
EXIT_TRANSLATION. .  C ADDR   03C3H   A   
INIT_LCD. . . . . .  C ADDR   01C2H   A   
INPUT_ERROR . . . .  C ADDR   019DH   A   
JUDGE_SCAN. . . . .  C ADDR   023DH   A   
KEY0. . . . . . . .  C ADDR   03B0H   A   
KEY1. . . . . . . .  C ADDR   0371H   A   
KEY2. . . . . . . .  C ADDR   0378H   A   
KEY3. . . . . . . .  C ADDR   037FH   A   
KEY4. . . . . . . .  C ADDR   0386H   A   
KEY5. . . . . . . .  C ADDR   038DH   A   
KEY6. . . . . . . .  C ADDR   0394H   A   
KEY7. . . . . . . .  C ADDR   039BH   A   
KEY8. . . . . . . .  C ADDR   03A2H   A   
KEY9. . . . . . . .  C ADDR   03A9H   A   
KEY_MODE_0. . . . .  C ADDR   03B7H   A   
KEY_MODE_1. . . . .  C ADDR   03BEH   A   
MAIN_LOOP . . . . .  C ADDR   0117H   A   
MODE_0. . . . . . .  C ADDR   0123H   A   
MODE_1. . . . . . .  C ADDR   015EH   A   
NEXT. . . . . . . .  C ADDR   0369H   A   
OUT_SCAN. . . . . .  C ADDR   0235H   A   
P0. . . . . . . . .  D ADDR   0080H   A   
P1. . . . . . . . .  D ADDR   0090H   A   
P2. . . . . . . . .  D ADDR   00A0H   A   
PCON. . . . . . . .  D ADDR   0087H   A   
READ_BUSY . . . . .  C ADDR   02B0H   A   
RESET1. . . . . . .  C ADDR   0151H   A   
RESET2. . . . . . .  C ADDR   0190H   A   
RI. . . . . . . . .  B ADDR   0098H.0 A   
SBUF. . . . . . . .  D ADDR   0099H   A   
SCAN. . . . . . . .  C ADDR   021EH   A   
SCAN_KEYBOARD . . .  C ADDR   0338H   A   
SCAN_LOOP . . . . .  C ADDR   0353H   A   
SCAN_SENSOR . . . .  C ADDR   01E5H   A   
SCON. . . . . . . .  D ADDR   0098H   A   
START . . . . . . .  C ADDR   0100H   A   
STEP1 . . . . . . .  C ADDR   0117H   A   
STEP2 . . . . . . .  C ADDR   01A0H   A   
A51 MACRO ASSEMBLER  ZHUJIASM                                                             01/24/2008 12:06:00 PAGE     9

STRING. . . . . . .  C ADDR   0284H   A   
STRING_DISPLAY. . .  C ADDR   0257H   A   
STRING_ERROR. . . .  C ADDR   0330H   A   
STRING_INITIALIZE .  C ADDR   024BH   A   
STRING_SYSTEM . . .  C ADDR   0245H   A   
TB8 . . . . . . . .  B ADDR   0098H.3 A   
TH1 . . . . . . . .  D ADDR   008DH   A   
TI. . . . . . . . .  B ADDR   0098H.1 A   
TL1 . . . . . . . .  D ADDR   008BH   A   
TMOD. . . . . . . .  D ADDR   0089H   A   
TR1 . . . . . . . .  B ADDR   0088H.6 A   
T_RSTATE. . . . . .  B ADDR   0090H.7 A   
WAIT. . . . . . . .  C ADDR   02B4H   A   
WRITE_COMM. . . . .  C ADDR   0294H   A   
WRITE_DATA. . . . .  C ADDR   02A2H   A   


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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