谁能帮看下我这个RS232收发字符串的程序问题在哪??

2020-02-09 11:24发布

我把下面的程序放在主程序里怎么没反映呢,串口精灵没有输出字符啊!!!!
我用PIC18F248

loop       movf count1,0 ;count1作为查表地址偏移量送入W
           read1 ;字符串"my name"
           addwf PCL,1 ;地址偏移量加当前PC值
           retlw a' ' ;换行控制符号,即0DH=<CR>
           retlw a' ' ;回车控制符号,即0AH=<LF>
           retlw a'M' ;送回到微机超级终端的字符串
           retlw a'y'
           retlw a' '
           retlw a'n'
           retlw a'a'
           retlw a'm'
           retlw a'e'   
           retlw a' '
           retlw a' ' ;
           retlw 0
           movwf temp ;
GetData    btfss PIR1,TXIF ;等待,直到USART空闲
           goto GetData
           movwf TXREG ;查表值送USART
           incf count1,1 ;查表计数器加1
           movf temp,W ;检查到读表值为"0"了吗
           btfss STATUS,Z ;是!跳一步,结束查表
           goto loop ;否!应该返回继续查表
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
youmcu
2020-02-10 01:22
哎!错误在上面已跟你说了,可以在MPLAB SIM里仿真一下啊!    能直接给段收发字符串的程序吗?(人家给的不如自已解决了印象深刻哦)
帮你改下吧 -- :::  从GetData 处运行哎
loop       movf    count1,0  ;count1作为查表地址偏移量送入W
        ;  read1             ;字符串"my name" ?????
           addwf   PCL,1     ;地址偏移量加当前PC值
           retlw   a' '     ;换行控制符号,即0DH=<CR>
           retlw   a' '     ;回车控制符号,即0AH=<LF>
           retlw   a'M'      ;送回到微机超级终端的字符串
           retlw   a'y'
           retlw   a' '
           retlw   a'n'
           retlw   a'a'
           retlw   a'm'
           retlw   a'e'   
           retlw   a' '
           retlw   a' '
           retlw   0

GetData    btfss   PIR1,TXIF  ;等待,直到USART空闲
           goto    GetData
           call    loop       ;查表
           movwf   temp       ;
           movwf   TXREG      ;查表值送USART
           incf    count1,1   ;查表计数器加1
           movf    temp,W
           btfss   STATUS,Z   ;检查到读表值为"0"了吗
           goto    GetData    ;继续发送
           goto    $          ;是!结束查表,转到其它处理(这里在此死循环)

一周热门 更多>