首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
PIC单片机控制Modem的串行通信设计
来源:本站整理  作者:佚名  2009-09-25 11:04:06



          2.2 异步串行通信软件设计

         2.2.1 PIC单片机与USART模块相关的寄存器
  

         PIC单片机USART模块的两条外接引脚是与输入/输出端口RC模块公用的RC7/RX/DT和RC6/TX/CK两条口线,与USART模块有关的寄存器共有9个。
  

        在此.就PIC工作于USART模式时,所涉及的一些位进行介绍,详见表1。

       中断控制寄存器INTCON,第一外围设备中断标志寄存器PIR1。第一外围设备中断屏蔽寄存器PIE1,端口C方向寄存器TRISC,发送状态和控制寄存器TXSTA,接收状态和控制寄存器RCSTA,发送寄存器TXREG,接收寄存器RCREG,波特率寄存器SPBRG。

       2.2.2 USART模块波特率设置
  

        USART模块带一个8位的波特率发生器(BRG),BRG支持USART的同步方式和异步方式。用波特率寄存器SPBRG控制一个独立的8位定时器周期。波特率发生器可以根据BRGH位(发送状态和控制寄存器TXSTA的位2)的设置,产生两种不同的移位速度,分别是对于系统时钟16分频和64分频得到的波特率时钟。用波特率寄存器SPBRG控制一个独立的8位定时器周期。在异步方式下,BRGH位也被用来控制波特率;在同步方式下。不用BRGH位。表2给出了在主控方式下,不同USART工作方式的波特率计算公式(x为写入SPBRG寄存器的值)。

   2.2.3 通信程序设计
       要实现系统的正常数据传输,正确设置PIC异步串口USART至关重要。在此,以异步接收方式为例,编写程序应遵循以下几个步骤:

       (1)选择合适的波特率,然后根据表2计算出SPBRG寄存器的值(x),并将其写入SPBRG寄存器;
       (2)设置SYNC=0,SPEN=1,使USART工作于异步方式;
       (3)如需中断功能,将中断控制寄存器的中断屏蔽GIE和PEIE置1,同时置第一外围设备中断屏蔽寄存器的RCIE=1;
       (4)如需接收9位数据,置接收状态和控制寄存器的RX9=1;
       (5)置接收状态和控制寄存器的CREN=1,激活接收器;
       (6)当一个字节接收完后,产生中断请求,如果RCIE=1,便产生中断;
       (7)读RCSTA寄存器以便获得第9位数据(如果选择了接收9位数据),并且判断是否在接收过程中发生了错误;
       (8)读RCREG寄存器中已经收到的8位数据;
       (9)如果发生了接收错误,通过置CREN=0以清除错误标志。
  

       下面给出了串口的初始化程序:
       bsf STATUS,RP0 ;选择存储体1
       bcf STATUS,RP1
       bsf TRISC,7 ;设置RC7脚为输入状态
       bcf TRISC,6 ;设置RC6脚为输出状态
       movlw 25H ;设置波特率
       movwf SPBRG
       movlw 20H ;设定8位发送/接收
       movwf TXSTA ;设定异步方式。低速方式
       bsf PIE1,TXI ;使能发送器中断
       bsf PIE1,RCIE ;使能接收器中断
       bcf STATUS,RP0 ;选择存储体0
       movlw 0x90 ;设定8位接收,使能接收器
       movwf RCSTA ;使能串口

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:36,496.09000 毫秒