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

📄 ex08.lst

📁 单片机串行通讯程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
0086                 190     INOP:
A51 MACRO ASSEMBLER  EX08                                                                 05/23/2005 23:22:42 PAGE     4

                     191     ; 写入操作码
                     192     ; 传入参数:R7高两位 --- 指令码的高两位
                     193     ; 传入参数:R5低七位 --- 指令码的低7位或地址
                     194     ; 返回值:无
                     195     
                     196             USING   0               
                     197     
0086 C292            198             CLR     SK                      ; 开始位
0088 D290            199             SETB    DI
008A D291            200             SETB    CS
008C 00              201             NOP     
008D 00              202             NOP     
008E D292            203             SETB    SK
0090 00              204             NOP     
0091 00              205             NOP                             
0092 C292            206             CLR     SK                      ; 开始位结束
                     207     
0094 EF              208             MOV     A,R7                    ; 先移入指令码高位
0095 33              209             RLC     A
0096 9290            210             MOV     DI,C
0098 D292            211             SETB    SK
009A 33              212             RLC     A
009B C292            213             CLR     SK
009D 9290            214             MOV     DI,C                    ; 移入指令码次高位
009F D292            215             SETB    SK
00A1 00              216             NOP     
00A2 00              217             NOP     
00A3 C292            218             CLR     SK
                     219     
                     220     
00A5 ED              221             MOV     A,R5                    ; 移入余下的指令码或地址数据
00A6 33              222             RLC     A
00A7 FD              223             MOV     R5,A                    ; R5左移一位 
                     224             
00A8 E4              225             CLR     A
00A9 FF              226             MOV     R7,A
00AA                 227     INOP_LP:
00AA ED              228             MOV     A,R5                    ; 移入R5的高7位
00AB 33              229             RLC     A
00AC 9290            230             MOV     DI,C
00AE D292            231             SETB    SK
00B0 ED              232             MOV     A,R5
00B1 33              233             RLC     A
00B2 FD              234             MOV     R5,A
00B3 C292            235             CLR     SK
                     236             
00B5 0F              237             INC     R7
00B6 BF07F1          238             CJNE    R7,#07H,INOP_LP         ; 判断是否7位全移完
                     239     
00B9 D290            240             SETB    DI
                     241     
00BB 22              242             RET     
                     243     ; END OF INOP
                     244     
                     245     ;===============================================================================
----                 246             RSEG  CODE_SEG
00BC                 247     SHIN:
                     248     ; 从MCU移出数据到AT93C46
                     249     ; 传入参数:R7 --- 要移入的数据
                     250     ; 返回值:无
                     251     
                     252             USING   0
                     253     
00BC E4              254             CLR     A
00BD FE              255             MOV     R6,A
00BE EE              256             MOV     A,R6
A51 MACRO ASSEMBLER  EX08                                                                 05/23/2005 23:22:42 PAGE     5

00BF EF              257             MOV     A,R7
00C0                 258     SHIN_LP:
00C0 33              259             RLC     A
00C1 9290            260             MOV     DI,C
00C3 D292            261             SETB    SK
00C5 00              262             NOP
00C6 00              263             NOP
00C7 C292            264             CLR     SK
                     265             
00C9 0E              266             INC     R6
00CA BE08F3          267             CJNE    R6,#08H,SHIN_LP ; 共8位,判断是否完成
                     268     
00CD D290            269             SETB    DI
00CF 22              270             RET     
                     271     ; END OF SHIN
                     272     
                     273     ;===============================================================================
                     274     
----                 275             RSEG  CODE_SEG
00D0                 276     SHOUT:
                     277     ; 从AT93C46移出数据MCU
                     278     ; 传入参数:无
                     279     ; 返回值:R7 --- 读出的数据
                     280     
                     281             USING   0
                     282     
00D0 E4              283             CLR     A
00D1 FE              284             MOV     R6,A
00D2                 285     SHOUT_LP:
00D2 D292            286             SETB    SK
00D4 00              287             NOP
00D5 00              288             NOP     
00D6 C292            289             CLR     SK      
00D8 A293            290             MOV     C,DO
00DA 33              291             RLC     A
00DB 0E              292             INC     R6
00DC BE08F3          293             CJNE    R6,#08H,SHOUT_LP                ; 共8位,判断是否完成
00DF F507            294             MOV     AR7,A
                     295     
00E1 22              296             RET     
                     297     ; END OF SHOUT
                     298     
                     299     ;===============================================================================
----                 300             RSEG  CODE_SEG
00E2                 301     DELAYMS:
                     302     ; 延时子程序
                     303     ; 传入参数:R7 --- 延时值(MS) 
                     304     ; 返回值:无
                     305     
00E2 EF              306             MOV     A,R7
00E3 6009            307             JZ      END_DLYMS       
00E5                 308     DLY_LP1:
00E5 7EB9            309             MOV     R6,#185
00E7                 310     DLY_LP2:
00E7 00              311             NOP
00E8 00              312             NOP
00E9 00              313             NOP
00EA DEFB            314             DJNZ    R6,DLY_LP2
00EC DFF7            315             DJNZ    R7,DLY_LP1
                     316     
00EE                 317     END_DLYMS:
00EE 22              318             RET     
                     319     ; END OF DELAYMS
                     320     
                     321     ;===============================================================================
                     322     ; 写入到AT93C46的数据串
A51 MACRO ASSEMBLER  EX08                                                                 05/23/2005 23:22:42 PAGE     6

                     323     
----                 324             RSEG  CODE_SEG
00EF                 325     DIS_CODE:
00EF 7E              326             DB      07EH
00F0 BD              327             DB      0BDH
00F1 DB              328             DB      0DBH
00F2 E7              329             DB      0E7H
00F3 DB              330             DB      0DBH
00F4 BD              331             DB      0BDH
00F5 7E              332             DB      07EH
00F6 FF              333             DB      0FFH
                     334     
                     335             END
                             
                             
A51 MACRO ASSEMBLER  EX08                                                                 05/23/2005 23:22:42 PAGE     7

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


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

ADDR . . . . . . .  D ADDR   0001H   R   SEG=DATA_SEG
AR7. . . . . . . .  D ADDR   0007H   A   
CODE_SEG . . . . .  C SEG    00F7H       REL=UNIT
CS . . . . . . . .  B ADDR   0090H.1 A   
DATA_SEG . . . . .  D SEG    0002H       REL=UNIT
DELAYMS. . . . . .  C ADDR   00E2H   R   SEG=CODE_SEG
DI . . . . . . . .  B ADDR   0090H.0 A   
DIS_CODE . . . . .  C ADDR   00EFH   R   SEG=CODE_SEG
DLY_LP1. . . . . .  C ADDR   00E5H   R   SEG=CODE_SEG
DLY_LP2. . . . . .  C ADDR   00E7H   R   SEG=CODE_SEG
DO . . . . . . . .  B ADDR   0090H.3 A   
END_DLYMS. . . . .  C ADDR   00EEH   R   SEG=CODE_SEG
ERASE. . . . . . .  C ADDR   0077H   R   SEG=CODE_SEG
EWDS . . . . . . .  C ADDR   006EH   R   SEG=CODE_SEG
EWEN . . . . . . .  C ADDR   0064H   R   SEG=CODE_SEG
INDATA . . . . . .  D ADDR   0000H   R   SEG=DATA_SEG
INOP . . . . . . .  C ADDR   0086H   R   SEG=CODE_SEG
INOP_LP. . . . . .  C ADDR   00AAH   R   SEG=CODE_SEG
MAIN . . . . . . .  C ADDR   0000H   R   SEG=CODE_SEG
MAIN_LP. . . . . .  C ADDR   002FH   R   SEG=CODE_SEG
P0 . . . . . . . .  D ADDR   0080H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
READ . . . . . . .  C ADDR   0057H   R   SEG=CODE_SEG
SHIN . . . . . . .  C ADDR   00BCH   R   SEG=CODE_SEG
SHIN_LP. . . . . .  C ADDR   00C0H   R   SEG=CODE_SEG
SHOUT. . . . . . .  C ADDR   00D0H   R   SEG=CODE_SEG
SHOUT_LP . . . . .  C ADDR   00D2H   R   SEG=CODE_SEG
SK . . . . . . . .  B ADDR   0090H.2 A   
SP . . . . . . . .  D ADDR   0081H   A   
STACK. . . . . . .  I ADDR   0000H   R   SEG=STACK_SEG
STACK_SEG. . . . .  I SEG    0014H       REL=UNIT
WRITE. . . . . . .  C ADDR   0042H   R   SEG=CODE_SEG
WRITE_LP . . . . .  C ADDR   0014H   R   SEG=CODE_SEG


REGISTER BANK(S) USED: 0 

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

⌨️ 快捷键说明

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