商业联盟  用户: 密码: 注册  忘记密码
会员专区 会员手册 增值服务 帮助 商业论坛 “帖不够”广告信息


商业中国
博雅艺术
经营管理

专题
 
 您当前的位置:首页>>行业分类>>电子电气>>技术知识>>设计方案>>正文
PIC18FXX8单片机通用同步异步收发器编程
  发布时间:2006-1-28 15:35:15 阅读次数:
来源:21IC中国电子网 作者:刘钊 刘和平 王春燕
 

    关键词:PIC18FXX8,串行通信

    0 引言

    PIC18Fxx8单片机是美国微芯公司推出的16位RISC指令集的高级产品,由于芯片内含有A/D、内部E2PROM存储器、I2C和SPI接口、CAN接口、同步/异步串行通信(USART)接口等强大的功能,具有很好的应用前景。但是,目前介绍其应用和以C语言编程的中文参考资料很少。本文将探讨该型单片机异步串行通信的编程应用,程序用HI-TECH PICC-18 C语言编写,并在重庆大学-美国微芯公司PIC单片机实验室的PIC18F458实验板上通过。

    1 PIC18FXX8单片机同步/异步收发器(USART)

    通用同步/异步收发器(USART)模块是由PIC18FXX8内的三个串行I/O模块组成的器件之一(USART也叫串行通信接口即SCI),可以配置为全双工异步方式、半双工同步主控方式、半双工同步从动方式三种工作方式。

    TXSTA是PIC18FXX8单片机串行通信发送状态和控制寄存器,RCSTA是接收状态和控制寄存器。由于在实际工程中,异步方式用得最多,这里仅介绍异步工作方式,其它方式可参阅相关资料。

    1.1 USART 异步工作方式

    在异步工作方式下,串行通信接口USART采用标准的不归零(NRZ)格式(1位起始位、8位或9位数据位和一位停止位),最常用的数据位是8位。片内提供的8位波特率发生器BRG可用来自振荡器时钟信号产生标准的波特率频率。通过对SYNC位(在TXSTA寄存器中)清零,可选择USART异步工作方式。

    1.2 USART波特率发生器(BRG)

     USART带有一个8位的波特率发生器(BRG),这个BRG支持USRAT的同步方式和异步方式。用SPBRG寄存器控制一个独立的8位定时器的周期。在异步方式下,BRGH位(控制寄存器TXSTA的)也被用来控制波特率。在同步方式下,用不到BRGH位。表1给出了在主控方式下(内部时钟)不同USART工作方式时的波特率计算式。

表1  主控方式下的波特率计算式

SYNC
 BRGH=0(低速)
 BRGH=1(高速)
 
0
 (异步)波特率=FOSC/[64(X+1)]
 波特率 = FOSC/[16(X+1)]
 
1
 (同步)波特率=FOSC/[4(X+1)]
 无
 
   1.3 USART 异步工作方式配置

    下面是串行通信异步工作方式配置步骤(顺序可以改变):
  (1)配置发送状态和控制寄存器TXSTA;
  (2)配置接收状态和控制寄存器RCSTA;
  (3)配置RX(RC7引脚)、TX(RC6引脚)分别为输入和输出方式;
  (4)通过设定的通信波特率配置SPBRG寄存器,计算公式参见表1;
  (5)设置串行通信接收或发送中断是否使能;
  (6)清串行通信接收或发送中断标志;
  (7)设置串行通信接收中断或发送中断的优先级是高或低优先级中断方式,PIC18单片机默认情况下是高优先级中断,若是低优先级中断,则必须进行设置;
   (8)设置串行通信接收和发送数据是否允许。

     若用到了中断功能,还需设置总中断和外围中断使能,以开放未屏蔽的中断。

    2 USART接口硬件电路

    利用PC机配置的串行口,可以很方便地实现PC机与PIC18单片机的串行数据通信。PC机与PIC单片机USART连接最简单的是三线方式。由于PIC单片机输入、输出电平为TTL电平,而RS-232C PC机配置的是RS-232C标准串行接口,二者电气规范不一致,因此要完成PC机与微控制器的串行数据通信,必须进行电平转换。图1为PIC18F458单片机的RS-232电平转换电路。图中MAX232(或MAX202)将PIC18单片机TX输出的TTL电平信号转换为RS-232C电平,输入到PC机,并将PC机输出的RS232C电平信号转换为TTL电平输出到PIC微控制器的RX引脚。J9和PC机的连接方式见RS-232标准,与单片机相接的D型头(J9)的2脚(PIC接收信号)与接PC机D型头的3脚(PC机发送信号)相连,与单片机相接的D型头(J9)的3脚(PIC发送信号)与接PC机D型头的2脚(PC机接收信号)相连,二者的5脚与5脚相连(地相连)。PC机串口数据的发送和接收显示均可采用各种串口调试软件,我们使用的是串口调试助手V2.2(或V2.1、V2.0均可),在网上可以下载该调试软件,该软件操作简单,这里不作介绍。

    3 USART异步工作方式编程

    串行通信的接收有查询和中断2种方式,在实际应用中,一般不采用查询接收数据,常用的是中断接收数据。发送有中断发送和非中断发送,在下面的例程中我们采用了中断接收数据,发送数据采用中断方式还是非中断方式可以在程序中通过对发送方式标志Send_Mode(不为0,中断方式发送;=0,非中断方式发送)进行设置实现。

    在PIC单片机发送数据时,发送中断标志TXIF不能用软件清0,只有当新的发送数据送入发送数据寄存器TXREG后,TXIF位才能被硬件复位,因此在程序中清该标志是无效的。采用中断发送数据的方法是:在主程序中启动发送一串数据的第一个数据,然后利用发送完成中断启动下一个数据发送,当一串数据发送后,不再发送数据,但有发送完成中断标志,程序还要进入一次中断,这最后一次中断对数据发送是无用的,必须将该标志清0,采用的方法是禁止发送使能(TXEN=0)而引起发送被终止或对发送器复位。

    下面是一个用串行通信进行接收和发送数据的例程,程序实现功能:PIC18单片机接收到PC机下发的8个数据后,将收到的8个数据以中断或非中断发送方式返送回PC机。

#include "pic18.h"    /* PIC18系列的头文件 */
unsigned char receive232[8];  /* 接收数据数组 */
unsigned char send232[8];  /* 发送数据数组 */

本新闻共3页,当前在第1页  1  2  3  

 
行业知识    
机械电子 能源化工 矿产物流 建材房产 纺织家电 手机通讯 医卫医改 财经商务 股票期货
媒体动漫 广告旅游 教育农业 餐饮娱乐 钢铁汽车 政策法律 碑帖青铜 书法国画 陶瓷收藏

相关新闻                    办公软件应用
·SAM8系列S3C825A型单片机及其软件设计
·AVR单片机捕获中断实现红外线解码
·AT89C52单片机 ARINC429航空总线接口设计
·C51系列单片机设计物体分级设备测量光幕
·用ZHX1010实现单片机之间的红外通信
热点新闻
 
相关 连接  
 
 
站内搜索
    
最新新闻
·绿色能源的五种优势
·太阳能
·可燃冰
·氢能
·天然气
·乙醇汽油
·生物质能
·风能
·水能
·核能

热点话题         行行出状元!
 
Google
关键词导航
商业 机械 创业 车床 化工 期货 股票 财经
 
 
 
Google
 
Web www.Bizing.com