利用USART实现单片机与PC通信
;实验目的:熟悉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
- RFID标签在超高频全球标准的认证之路(11-09)
- 基于SPCE061A的射频读写器信号分析系统设计(08-26)
- 针对0.4毫米和0.5毫米晶圆级封装的PCB设计(07-28)
- 射频电路的PCB设计(12-04)
- 电子元件面对高功率电平(01-04)
- 射频板材选材和无源互调(01-05)