• 永兴集团

    产品
    永兴集团云 — 物联网云平台 零编程,组态拖拽即可实现远程监控。同时支持私有部署,拥有属于自己的软硬件一体化方案
    200
    +
    私有云项目
    数据本地化
    业务个性化
    10
    +
    万 公有云注册用户
    80%公有云功能免费
    付费VIP享自定义品牌服务
    永兴集团云官网
    永兴集团智造 — ODM/EMS 依托自动化、智能化、柔性化、透明化的智能工厂,
    提供代研、代料、代工一站式OEM/ODM服务
    永兴集团智造官网
    永兴集团智能 — 解决方案 打包提供云、管、边、端整体解决方案
    从问题诊断、方案设计,到实施落地、系统运维
    永兴集团智能官网
    新闻资讯
    利用USART实现单片机与PC通信[PIC16F877A+汇编语言]
    2010-12-01


    [code="asm"]

    ;实验目的:熟悉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

    [/code]

    工作日每天: 14:00~17:00
    抖音、天猫 "永兴集团旗舰店"

    关注永兴集团微信公众号
    了解更多信息

    永兴集团