微波EDA网,见证研发工程师的成长!
首页 > 射频和无线通信 > 射频无线通信文库 > 利用USART实现单片机与PC通信

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

时间:10-31 来源:互联网 点击:

;实验目的:熟悉USART通信
;通过“串口调试助手”协助工作
;串口调试助手发送数据给877,877收到后再转发回串口助手
;硬件要求:拨码开关S7全置ON,其他拨码开关置OFF
#INCLUDEP16F877A.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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top