英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 4758|回复: 0
打印 上一主题 下一主题

232

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-21 14:08:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RS232通信方式是常用的单片机与PC通信的方式,PIC16F87X系列芯片可以通过SCI(串行通信接口)来实现与PC的通信。以下我们将通过ICDDEMO演示实验板上的RS232通信电路来调试与PC的通信,其电路如下图所示:

其中TXRX分别为PIC16F877的发送和接收引脚,由于PC的串口输出的是12V电压,因此要实现PIC芯片和PC的通信,还需要进行电平转换,该板使用的电平转换芯片是MAX232。在调试之前请将PCICDDEMO演示实验板用9芯串行电缆连接好并锁紧,并且将DIP6S10)的第24开关拨至“ON”的位置上。调试时PC用的上位机程序可以采用WINDOWS带的超级终端(启动方式:开始-)程序-)附件-)通讯-)超级终端),或者使用网上很容易找到的串口调试软件。
1、
串行通信的波特率设置:
要启动串口通讯首先要选择合适的波特率,PICSCI接口有一个8位的波特率发生器,它根据SPBRG寄存器的值来决定周期;另外在异步通信的方式下波特率还和BRGH位的状态有关,当BRGH=1时是高速方式。
异步方式下波特率的计算公式为:波特率=Fosc/[64(X+1)](低速方式)或波特率=Fosc/[16(X+1)](高速方式)。其中Fosc是芯片振荡频率,XSPBRG寄存器的值。通过这个公式我们可以计算出在特定波特率下,需要写入SPBRG寄存器的初始值。例如如果我们采取高速的方式使用9600的波特率,那么当芯片振荡频率是4MHz时,SPBRG=4000000/9600*16-1=25(实际是25.042,取最接近的整数值)。
2、
异步方式下的数据发送:
异步发送时,如果TSRTXREG都为空,那么当数据写入TXREG之后会马上被转移到TSR寄存器。这时TXREG为空,TXIF=1,表明可以再往TXREG中写数据。注意此时发送并未完成,如果要知道数据是否发送完成则需要查询TRMT位。
3、
异步方式下数据的接收:
异步接收时,当接收到停止位时如果RCREG是空的,RSR就会将数据转移至RCREG,传送完成后,置RCIF1RCIF是只读位,当RCREG的数据被读出后将由硬件清0
RCREG寄存器实际上是2级的FIFO(先进先出)存储器,如果RSR中接收到了第3个数据的停止位,而RCREG寄存器2级都是满的,那么将会导致数据溢出,硬件将置OERR1。请注意必须清除OERR位之后才能重新接收数据,用户可以通过对CREN0的方式来清除OERR位。
4、
异步通信的数据格式:
在异步工作方式下,串行通信接口采用的是标准不归零(NRZ)格式,即1位起始位、8位或9位的数据位和1位停止位。最常用的是8位数据的格式。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-12-24 21:54 , Processed in 0.054004 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表