导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→汇编的。原C的汇编版本

* 58296: pc机与51的数据传输问题

   lenglianxi 
lenglianxi发表的帖子 

 汇编的。原C的汇编版本
END_F  EQU 7FH
START_F  EQU 7EH
ESC_F  EQU 7DH
SEND_DIR BIT T1


 CSEG AT 23H
 JMP SERPROC
 
 RSEG BITS
 PUBLIC SER_RCVED

SEND_FINISH: DBIT 1
SER_RCVED: DBIT 1
ESC_FLAG: DBIT 1
IS_RCVING: DBIT 1
 
 
 RSEG DATAS
 PUBLIC R_PNT

R_PNT : DS 2
S_PNT : DS 2

 RSEG CODES
 PUBLIC INIT_SER_SEND
INIT_SER_SEND:
 USING 0
 MOV S_PNT, #HIGH(0A000H)
 MOV S_PNT+1, #LOW(0A000H)
 SETB SEND_DIR
 CLR SEND_FINISH
 SETB TI
 RET

 RSEG CODES
SERPROC:
 USING 2
 PUSH ACC
 PUSH B
 PUSH PSW
 MOV PSW, #10H
 JBC TI, SER_SEND
  ; ser recive proc
 CLR RI
 
 MOV A, SBUF
 MOV B, A
 CJNE A, #START_F, SER_NOT_R_START
 
 CLR A
 MOV R_PNT, A
 MOV R_PNT+1, A
 CLR SER_RCVED
 CLR ESC_FLAG
 SETB IS_RCVING
 JMP SER_R_DATA

SER_NOT_R_START:
 JNB IS_RCVING, SER_EXIT

 CJNE A, #END_F, SER_NOT_R_END
 
 SETB SER_RCVED
 CLR IS_RCVING
 JMP SER_R_DATA

SER_NOT_R_END:
 JBC ESC_FLAG, SER_ESC_PREV
 
 CJNE A, #ESC_F, SER_R_DATA
 SETB ESC_FLAG
 JMP SER_EXIT

SER_ESC_PREV:
 XRL B, #20H

SER_R_DATA:
 BACKUP_HI_ADDR
 PUSH DPS
 PUSH DPH
 PUSH DPL

 MOV DPS, #0
 CHANGE_RAM 1

 MOV DPH, R_PNT
 MOV DPL, R_PNT + 1
 MOV A, B
 MOVX @DPTR, A
 INC DPTR
 MOV R_PNT, DPH
 MOV R_PNT+1, DPL
 CALL CHANGECOMMLAMP
 POP DPL
 POP DPH
 POP DPS
 RESTORE_HI_ADDR
 JMP SER_EXIT

SER_SEND:
 JB SEND_FINISH, SER_S_FIN

 BACKUP_HI_ADDR
 PUSH DPS
 PUSH DPH
 PUSH DPL

 CHANGE_RAM 1
 MOV DPS, #0
 MOV DPH, S_PNT
 MOV DPL, S_PNT + 1
 MOVX A, @DPTR
 MOV SBUF, A
 INC DPTR
 MOV S_PNT, DPH
 MOV S_PNT + 1, DPL
 CJNE A, #END_F, SER_S_EXIT

 SETB SEND_FINISH

SER_S_EXIT:
 POP DPL
 POP DPH
 POP DPS
 RESTORE_HI_ADDR
 
 JMP SER_EXIT

SER_S_FIN:
 CLR SEND_DIR

SER_EXIT: 
 POP PSW
 POP B
 POP ACC
 RETI
END

发表时间:2004年7月16日14:07:11

  
回复该帖

本主题共有 26 帖,分页:>>>>>该主题的所有内容[26]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  58297.[详细]结果
摘要: 我发送12345678,结果收到的是0p |6|? s |&|? p06|?0p |6|?   &n......(113字)
- [sdgaga][896次] 2004年7月16日

  58468.[详细]你怎么说有问题呢?我刚刚用我的硬件验证了这个程序,是没问题的阿?编译后的程序如下:flag&nbs..
摘要:你怎么说有问题呢?我刚刚用我的硬件验证了这个程序,是没问题的阿? 编译后的程序如下: flag  equ  10h  beep   ......(1501字)
- [justrong][1057次] 2004年7月19日

  58617.[详细]justrong,拜托了
摘要:......(无内容)
- [sdgaga][899次] 2004年7月21日

[上一篇帖子]:结果 我发送12345678,结果收到的是0p |6|? s
[下一篇帖子]:谢谢了