我把下面的程序放在主程序里怎么没反映呢,串口精灵没有输出字符啊!!!!
我用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 ;否!应该返回继续查表
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
movwf TXREG ;查表值送USART -- 这句应放在call loop 之后
串口初始化: 之前要将RX引脚设为输入
;******************************************************************
; init232 - 初始化串行口(init serial port)
;******************************************************************
init232 clrf STATUS
bsf STATUS,RP0 ; BANK1
movlw b'00100100'
movwf TXSTA ; 选择异步高速 传输8位数据方式 发送允许
movlw .25
movwf SPBRG ; 将传输的波特率设为约9600bps(4M)
clrf STATUS ; BANK0
movlw b'10010000' ; 选择异步高速 传输8位数据方式 接收允许
movwf RCSTA ; 自动将RC6、RC7配置为串口工作方式(TRISC,7初始化应设为输入)
return
;******************************************************************
帮你改下吧 -- ::: 从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 $ ;是!结束查表,转到其它处理(这里在此死循环)
一周热门 更多>