您当前的位置:五五电子网电子知识电工技术电工文摘如何利用软件实现PI16F5X单片机异步串行口 正文
如何利用软件实现PI16F5X单片机异步串行口

如何利用软件实现PI16F5X单片机异步串行口

点击数:7266 次   录入时间:03-04 12:00:14   整理:http://www.55dianzi.com   电工文摘
 

                                     图5     观察变量窗口


       在程序调试过程中,可以使用单步进入、单步跳过、单步跳出、连续单步等功能,也可以自动单步运行,在需要查看的地方点击“暂停” 使运行停止即可。该调试简单易行,不占用任何资源,所有地址空间全部提供给用户,同时还可以通过超级终端观看接收的数据,如图6所示。


                                 图6     超级终端观看结果图
 Transmitter
;
Xmtr
 IF     X_Nbit
 movlw   8
 ELSE
 movlw   7
 ENDIF
 movwf   Count
;
 IF      X_MODE
 ELSE
 IF    X_Nbit
 ELSE
 rlf   XmtReg,Same
 ENDIF
;
 bcf     PORTA,DX       ;
/*Send Start Bit*/
 call    Delay1
X_next  bcf     STATUS,C
;
 IF      X_MODE
 rrf     XmtReg,Same     ;
 /*Conditional Assembly*/
 ELSE                    ;
/* to set if MSB first or LSB first*/
 rlf     XmtReg,Same
 ENDIF
;
 btfsc   STATUS,C
 bsf     PORTA,DX
 btfss   STATUS,C
 bcf     PORTA,DX
 call    DelayX
 decfsz  Count,Same
 goto    X_next
 bsf     PORTA,DX       ;
/* Send Stop Bit*/
 call    Delay1
 IF      Sbit2
 bsf     PORTA,DX
 call    Delay1
 ENDIF;
 goto    Talk  
  Receiver
;
Rcvr
 IF      R_Nbit
 movlw   8               ;
/*8 Data bits*/
 ELSE
 movlw   7               ;
/*7 data bits*/
 ENDIF;
 movwf   Count
R_next  bcf     STATUS,C
 IF      R_MODE
 rrf     RcvReg,Same     ;
/* to set if MSB first or LSB first*/
 ELSE
 rlf     RcvReg,Same
 ENDIF
 btfsc   PORTA,DR
;
 IF      R_MODE
 IF      R_Nbit
 bsf     RcvReg,MSB       ;
/*Conditional Assembly*/
 ELSE
 bsf     RcvReg,MSB-1
    ENDIF;
 ELSE
 bsf     RcvReg,LSB
 ENDIF
;
 call    DelayY
 decfsz  Count,Same
 goto    R_next

      4. 结 语


        本文可以根据用户需求通过软件实现半双工或全双工的RS-232通信,结合PICE-II仿真器突出的优点在于排除错误的能力极强,可以进行实时跟踪,能快速检测错误的根源。运用PICE-II实时在线仿真器极大地方便了用户进行软件调试,更快地实现异步串行口。

    作者:贝能科技有限公司 曾淑叶

上一页  [1] [2] 


本文关键字:如何  单片机  软件  电工文摘电工技术 - 电工文摘