这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » W77E58P串口反汇编程序

共1条 1/1 1 跳转至

W77E58P串口反汇编程序

助工
2014-09-26 14:32:21     打赏
;;;;串口中断服务子程序;;;;;;;;;;;;;;
L76B4:    
    PUSH  PSW;保护现场
    PUSH  ACC
    PUSH  DPL
    PUSH  DPH
    PUSH  B
    SETB  RS1
    CLR   RS0;选择第1组寄存器组,这样可以不保护08H~0FH,R0~R7=08H~0FH
    JNB   TI,L76D9;不是发送中断
;;;;串口发送中断服务子程序;;;;;;;;;;;
    CLR   TI;清除发送中断标志
    INC   R1;移动发送缓冲区指针
;;;;串口发送中断越界判断;;;;;;;;;;;
    MOV   A,R0;发送缓冲区尾指针
    MOV   B,R1;当前发送缓冲区指针
    CJNE  A,B,L76D1;发送缓冲区未满继续
    LJMP  L76D9;发送缓冲区已满退出(估计要丢数据~~~应该做成滚筒式的)
L76D1:    
    MOV   DPL,R1;当前发送缓冲区低8位地址
    MOV   DPH,#021H;发送缓冲区高8位固定地址
    MOVX  A,@DPTR;从发送缓冲区中取出数据
    MOV   SBUF,A;通过串口硬件模块发送数据
L76D9:    
    JNB   RI,L76E9;不是接收中断
;;;;串口接收中断服务子程序;;;;;;;;;;;
    CLR   RI;清除接收中断标志
    MOV   R6,#002H;设置接收中断软件标志,表示刚收到过数据
    MOV   A,SBUF;通过串口硬件模块接收数据
    MOV   DPL,R2;当前接收缓冲区低8位地址
    MOV   DPH,#020H;接收缓冲区高8位固定地址(估计为256个字节,应该是滚筒式的)
    MOVX  @DPTR,A;保存到接收缓冲区
    INC   R2;移动接收缓冲区指针
L76E9:;总之该汇编串口接收发送中断服务程序写得非常不错,应该表扬~~~
    POP   B;恢复现场
    POP   DPH
    POP   DPL
    POP   ACC
    POP   PSW
    RETI;中断返回

 


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]