打印

很经典的P89V58RD2串口反汇编程序注解及图示

[复制链接]
2580|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2007-11-10 20:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
菜农声明: 若有雷同,纯属巧合.本贴纯属技术讨论.

;;;;串口中断服务子程序;;;;;;;;;;;;;;
L4E60:    
    PUSH  PSW;保护现场
    PUSH  ACC
    PUSH  DPL
    PUSH  DPH
    PUSH  B
    SETB  RS1
    CLR   RS0;选择第1组寄存器组,这样可以不保护08H~0FH,R0~R7=08H~0FH
    JNB   TI,L4E8E;不是发送中断
;;;;串口发送中断服务子程序;;;;;;;;;;;
    CLR   TI;清除发送中断标志
;;;;串口发送中断空(R4=1为空)判断;;;;;;;;;;;
    DJNZ  R4,L4E78;发送缓冲区未满继续(最大256个字节)
    LJMP  L4E8E;发送缓冲区已满退出(估计要丢数据~~~应该做成滚筒式的)
L4E78:    
    MOV   DPL,R0;当前发送缓冲区低8位地址
    MOV   DPH,R1;发送缓冲区高8位地址
    MOVX  A,@DPTR;从发送缓冲区中取出数据
    INC   DPTR;移动发送缓冲区指针
    MOV   SBUF,A;通过串口硬件模块发送数据
    MOV   R0,DPL;保存发送缓冲区低8位地址
    MOV   R1,DPH;保存发送缓冲区高8位地址
;;;;串口发送中断缓冲区越界判断;;;;;;;;;;;
    MOV   A,R1
    CJNE  A,#03FH,L4E8E;串口发送中断缓冲区未越界
;;;;越界处理;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    MOV   R0,#000H;发送缓冲区头低8位地址
    MOV   R1,#03EH;发送缓冲区头高8位地址(3E00H~3EFEH共255个字节缓冲区)
    MOV   R4,#001H;越界标志(发送缓冲区已满)
L4E8E:    
    JNB   RI,L4EAA;不是接收中断
    CLR   RI;清除接收中断标志
    MOV   A,SBUF;通过串口硬件模块接收数据
    MOV   DPL,R2;当前接收缓冲区低8位地址
    MOV   DPH,R3;当前接收缓冲区高8位地址
    MOV   R7,#003H;设置接收中断软件标志,表示刚收到过数据
;;;;终止或特殊字符判断;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    CJNE  A,#07EH,L4E9F;不为终止或特殊字符7EH
    INC   R5;找到1个终止或特殊字符,记录次数
L4E9F:    
    MOVX  @DPTR,A;保存到接收缓冲区
    INC   DPTR;移动接收缓冲区指针
    LCALL S4EB5;DPH=3CH或3DH
    CLR   A;零标志表示已经存入数据???
    MOVX  @DPTR,A;????估计是软件握手之类或标志等
    MOV   R2,DPL;保存接收缓冲区低8位地址
    MOV   R3,DPH;保存接收缓冲区高8位地址
L4EAA:;总之该汇编串口接收发送中断服务程序写得非常不错,应该表扬~~~    
    POP   B;恢复现场
    POP   DPH
    POP   DPL
    POP   ACC
    POP   PSW
    RETI  
;;;;DPH=3CH或3DH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
S4EB5:    
    PUSH  ACC
    MOV   A,DPH
    ANL   A,#001H
    ORL   A,#03CH
    MOV   DPH,A
    POP   ACC
    RET   

相关链接:https://bbs.21ic.com/club/bbs/ShowAnnounce.asp?v=&ID=2747731

相关帖子

沙发
wolfererer| | 2007-11-10 21:18 | 只看该作者

好东西不嫌多

强烈支持

使用特权

评论回复
板凳
dcp| | 2007-11-11 11:04 | 只看该作者

HOT!

使用特权

评论回复
地板
huangqi412| | 2007-11-11 11:46 | 只看该作者

使用特权

评论回复
5
fsaok| | 2007-11-11 16:04 | 只看该作者

看完了

似乎新意不多,不知道老hot怎么对这个感兴趣,估计有新的东西还没有写,

关注中

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1460

主题

21619

帖子

506

粉丝