不会用汇编写串口中断接收多字节数据

[复制链接]
 楼主| riki2006 发表于 2009-10-16 11:00 | 显示全部楼层 |阅读模式
不会用汇编写串口中断接收多字节数据?请帮一下我!谢谢
 楼主| riki2006 发表于 2009-10-16 11:07 | 显示全部楼层
我是刚用汇编 请大家不吝赐教
5880527 发表于 2009-10-16 11:11 | 显示全部楼层
MOV   A,SBUF
MOV   @R0,A
INC     R0
最好是放到80H后的那些单元
wh6ic 发表于 2009-10-16 11:28 | 显示全部楼层
cseg        at        0x0023
_SIO:        ;ljmp        Sio_Interrupt
        jbc        ri, Sio_Load0
        jbc        ti, Sio_Sent0
        reti
;


;
Sio_Load0:
        push        ar0
        mov        r0, SioBuffer        ;0xa0 ~ 0xaf
        mov        @r0, sbuf
        inc        SioBuffer
        clr        SioBuffer.4               ;地址卷绕
        pop        ar0
        reti

三楼办法要多保护一个A累加器
5880527 发表于 2009-10-16 12:12 | 显示全部楼层
道理是有一点,我的串口中断里一些简单的工作,比如信息长度是否超界判断,站号判断,都需要用到A的,所以还是要保护它,如果你在中断外判断那或许就不用了。那个发送也需要用到A,你那个程序也需要在外边发送
huangqi412 发表于 2009-10-16 12:36 | 显示全部楼层
...  数组=一块连续的地址...  多字节放数组里,      收一个,地址后推一个.
 楼主| riki2006 发表于 2009-10-16 12:49 | 显示全部楼层
receive:    DS    10   


IS_UART_RECEIVE:
        CLR RI
                PUSH ACC
                mov R0,receive
                MOV @R0,SBUF
                inc receive
                setb receive_flag
                POP ACC
                RETI

楼上各位 这样对吗
 楼主| riki2006 发表于 2009-10-16 13:36 | 显示全部楼层
如题,比如上位机发过来的一帧数据为:02H 31H 41H 44H 45H 0DH  其中包头为02H  包尾为0DH,当串口接到02H时,指针指到接收缓冲的开始,然后依次接受余下的数据并存到接收缓冲区(数组),当接收完整个帧时,指针指回到缓冲区的开始,并置为接收完标志. 不考虑校验。 请高手给与指点 谢谢
 楼主| riki2006 发表于 2009-10-16 16:36 | 显示全部楼层
本帖最后由 riki2006 于 2009-10-16 16:37 编辑

汇编语言是不是再接收多帧数据时 只能是中断启动接收 然后再查询接收啊 如下所示:
设置中断入口地址就好
      0x0000h
ljmp main
      0x0023h
ljmp com
    0x0030h
main:mov ie,#93h
    sjmp $
com:mov r1,#54h  //address by saved   中断启动接收?
    mov r2,#10h  //length
    mov r0,sbuf
    mov a,r0
    cjne a,#02h,comret
rcv:jnb ri,$                       ;然后查询接收?
    clr ri
    mov @r1,sbuf
    inc r1
    djnz r2,rcv
comret:ret
以上转自CSDN

我的书本上也是这样子的 是不是如果采用中断 只能这样子啊
不亦心 发表于 2009-10-16 16:48 | 显示全部楼层
要嘛用中断要嘛用查询,没必要两者都用。
 楼主| riki2006 发表于 2009-10-16 16:53 | 显示全部楼层
呵呵  ls是不是群主啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

50

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

14

主题

50

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部