最新动态

工业物联网通讯专家!
认真做好每一件事,设计简单、可靠、价格合理的产品!

利用USART实现单片机与PC通信[PIC16F877A+汇编语言]

;实验目的:熟悉USART通信 ;通过“串口调试助手”协助工作,波特率设置为19200 ;串口调试助手发送数据给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 ;调试模式关闭,写保护,一半ROM可在线改写,EEPROM加密,低压编程关闭,掉电检测关闭,上电延时开,看门狗关,4M晶振HS振荡 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



上一篇: Windows操作系统25年发展历程
下一篇: 单片机自关机(彻底关机)电路的实现方法

发表评论