您当前的位置:五五电子网电子知识单片机-工控设备源码-程序利用USART实现单片机与PC通信 正文
利用USART实现单片机与PC通信

利用USART实现单片机与PC通信

点击数:7950 次   录入时间:03-04 11:53:18   整理:http://www.55dianzi.com   源码-程序

    ;实验目的:熟悉USART通信
;通过“串口调试助手”协助工作
;串口调试助手发送数据给877,877收到后再转发回串口助手
;硬件要求:拨码开关S7全置ON,其他拨码开关置OFF
#INCLUDE<P16F877A.INC>            ;调用芯片头文件,省去特殊寄存器等的定义
__CONFIG _DEBUG_OFF&_CP_ALL&_WRT_HALF&_CPD_ON&_LVP_OFF&_BODEN_OFF&_PWRTE_ON&_WDT_OFF&_HS_OSC
VAL_US  EQU  .249              ;短延时定时参数
VAL_MS  EQU  .200              ;长延时定时参数
COUNT    EQU    25H
COUNT_MS EQU    26H
  ORG    00H
  NOP
  GOTO  MAIN
  ORG    04H                      ;中断入口地址
 BTFSS  PIR1,RCIF                ;判断是否是串口接收中断
 GOTO    EXIT                    ;否,转中断结束程序
 MOVF    RCREG,0                  ;读取接收寄存器的数据
 MOVWF  TXREG                    ;保存到发送寄存器,随后发送出去
EXIT
 RETFIE

    MAIN
  USART
 BANKSEL TRISC                    ;选择体1
 BSF    TRISC,7                  ;断开RC模块与USART TX引脚的联系
 BSF    TRISC,6                  ;断开RC模块与USART RX引脚的联系
 MOVLW  0CH                      ;装载波特率发生器,为19.2kbd
 MOVWF  SPBRG         
 MOVLW  24H                      ;势能USART,设置波特率发生器为高速方式
 MOVWF  TXSTA
 BSF    PIE1,RCIE                ;使能接收中断
 CLRF    STATUS                  ;返回体0
 MOVLW  90H
 MOVWF  RCSTA                    ;使能USART连续接收
 BSF    INTCON,GIE              ;使能全局中断使能位
 BSF    INTCON,PEIE              ;使能外设中断使能位

    USART_1
 CALL    DELAY_MS                ;调用2次延时程序
 CALL    DELAY_MS
 GOTO    USART_1                    ;返回!

    ;*************************200ms延时程序***********************
DELAY_MS
 MOVLW  VAL_MS
 MOVWF  COUNT_MS
LOOP_MS
 CALL    DELAY_US
 DECFSZ  COUNT_MS,1
 GOTO    LOOP_MS
 RETURN

    ;*************************100us延时程序***********************
DELAY_US
 MOVLW  VAL_US
 MOVWF  COUNT
LOOP_US
 NOP
 DECFSZ  COUNT,1
 GOTO    LOOP_US
 RETURN

    DELAY_S
 MOVLW  0FFH
 MOVWF  50H
 CALL    DELAY_MS
 DECFSZ  50H,1
 GOTO    $-2
 RETURN
 END




本文关键字:单片机  通信  源码-程序单片机-工控设备 - 源码-程序