学电子跟我来
FOLLOW ME
68 2010 VOL.07
流应该是 300mA。这个计算值是我们选用整流二极
管时必须掌握的一个重要数据。显然,为了保证整
流二极管能够长时间正常工作,所选用的二极管,
其“最大整流电流”值应该比这个值要更大一些。
对承担滤波任务的电容器C的容量要求,前面
多次提到必须“足够大”,那么这里的“足够大”究
竟是多大?在工程上可以这样来估算:
式中的 T是指对电容器的充电周期。我国民用
交流电频率是 50Hz,周期是 0.02s。那么,对半波
整流电路,T=0.02s ;对桥式整流电路,T=0.01 秒。
式中的 R是指负载电阻。根据这一要求可以估算:
所以我们可以取 或 的电容器实现滤波。
如果在工作过程中有一个二极管突然开路,不
论是哪一个二极管,其结果都是使桥式整流变成了
半波整流,那么输出的直流电压值将会下降,由
UO=1.2Ui 下降为 UO=Ui,所以输出直流电压由 18V
降到 15V。
如果您想自己设计制作一个简单实用的直流电
源,可以参考图 7。现假设您需要的输出电压是 ,
要求输出电流不小于 , 那么以下参数要求可以供您
设计时参考。
电源变压器输出电压值U2=UO/1.2
滤波电容选择 容量
耐压值应大于 0.5IO
整流二极管参数要求 :最大整流电流 大于 0.5IO
反向工作电压 大于 1.5IO
R
TC )5~3(>
FC µ330)5~3(
30
01.0)5~3( =>
OU
TI
C 0)5~3(>
作 者
徐 玮 彭敏芳
魏 巍 戴 婧
大家好,通过前一期的学习,我们已经对
ICD2 仿真烧写器和增强型 PIC 实验板的使用方法
及学习方式有所了解与熟悉,学会了如何用单片机
来控制发光管、继电器、蜂鸣器、按键、数码管等
资源,体会到了学习板的易用性与易学性,看了前
几期实例,大部分都是基于单片机端口操作原理呢?
大家是否觉得这样一个单片机系统似乎缺少点什么
呢?不错,本期我们将介绍单片机与电脑通讯,使
单片机与 PC机能够联机工作。
单片机除了需要控制外围器件完成特定的功能
外,在很多应用中还要完成单片机和单片机之间、
单片机和外围器件之间,以及单片机和微机之间的
数据交换和指令的传输,这就是单片机的通信。单
片机的通信方式可以分为并行通信和串行通信。并
行方式传送一个字节的数据至少需要 8条数据线。
一般来讲单片机与打印机等外围设备连接时,除 8
条数据线外,还要状态、应答等控制线,当传送距
离过远时电线要求过多,成本会增加很多。单片机
的串行通信方法较为多样,传统的串行通信方式是
通过单片机自带的串行口进行 RS232 方式的通信。
串行通信是以一位数据线传送数据的位信号,即使
加上几条通信联络控制线,也比并行通信用的线少。
因此,串行通信适合远距离数据传送,如大型主机
与其远程终端之间,处于两地的计算机之间,采用
串行通信就非常经济。
串行通信又分为异步传送和同步传送两种基本
方式。
异步通讯:异步通信传输的数据格式一般由 1
个起始位、7个或 8 个数据位、1 到 2 个停止位和
一个校验位组成。它用一个起始位
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示字符的开始,
用停止位表示字符的结束。其每帧的格式如图 1所
示。
轻松学PIC之RS232串口通信篇
图1 异步通讯数据帧格式
学电子跟我来
FOLLOW ME
69
在一帧格式中,先是一个起始位 0,然后是 8
个数据位,规定低位在前,高位在后,接下来是奇
偶校验位(可以省略),最后是停止位 1。用这种格
式表示字符,则字符可以一个接一个地传送。
在异步通讯中,通信双方采用独立的时钟,起
始位触发双方同步时钟。在异步通信中 CPU 与外
设之间必须有几项约定,即每一帧位数,字符格式
和波特率。字符格式的规定是双方能够在对同一
种 0和 1的数据串理解成同一种意义。原则上字符
格式可以由通讯的双方自由制定,但从通用、方便
的角度出发,一般还是使用一些
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
为好,如采用
ASCII 标准。
同步通讯:在同步通讯中所传输的数据格式是
由多个数据组成,每帧有一个或两个同步字符作为
起始位以触发同步时钟开始发送或接收。同步通讯
数据帧格式如图 2所示。在异步通信中,每个字符
要用起始位和停止位作为字符开始和结束的标志,
占用了时间,所以在数据块传递时。波特率指每秒
送多少个 0或 1,由于包含起始位,停止位等,实
际传送数据每秒多少字节总比波特率的 1/8 少。为
了提高速度,常去掉这些标志,采用同步传送。由
于数据块传递开始要用同步字符来指示,同时要求
由时钟来实现发送端与接收端之间的同步,故硬件
较复杂。同步传输方式比异步传输方式速度快,这
是它的优势。但同步传输方式也有其缺点,即它必
须要用一个时钟来协调收发器的工作,所以它的设
备也较复杂。
现在我们将用一个实例来剖析一下它到底是如
何控制数据收发的,单片机串口将接收 PC机发送
的数据,同时点亮相应的发光管做指示。
首先,我们来看一下这个实例所涉及到的理论
基础知识。PIC 单片机有全双工的串行通讯口,所
以单片机和电脑之间可以方便地进行串口通讯。进
行串行通讯时要满足一定的条件,比如电脑的串口
是RS232电平(逻辑摆幅大,逻辑1为-3~-15V,
逻辑 0为 +3 ~ +15V),而单片机的串口是 TTL 电
平(逻辑摆幅小逻辑 1为 >2.4V, 逻辑 0为 <0.4V),
两者之间必须有一个电平转换电路,我们采用了专
用芯片MAX232 进行转换,虽然也可以用几个三极
管进行模拟转换,但是还是用专用芯片更简单可靠。
MAX232 芯片是 MAXIM 公司生产的、包含两路收
发和电荷泵升压电路,外部引脚和内部电路如图 3
所示:
在实际应用中一般采用如图 4所示的硬件电路
图,这是最简单的连接方法,但是对我们来说已经
足够使用了。
为了能够在电脑端看到单片机发出的数据,我
们必须借助一个 PC机(上位机)的软件进行观察,
这里我们推荐一个免费的电脑串口调试软件——串
口调试助手,软件界面如图 5所示。图2 同步通讯数据帧格式
图3 MAX232引脚及内部框图图3 MAX232引脚及内部框图
学电子跟我来
FOLLOW ME
70 2010 VOL.07
图4 电平转换
软件可以设定串口号、波特率、校验位等参
数,非常实用。在实际应用中一定要保证上位机设
置与单片机相统一,否则数据将会出错。串口调试
助手可以从 http://www.hificat.com/ 免费下载使用。
对于下位机软件的编程,我们使用MPLab IDE 软
件来进行C语言编程,它是我们的编程环境,同时
我们可以通过使用 ICD2 仿真烧写器和增强型 PIC
实验板连接进行程序的仿真调试和烧写步骤,具体
的操作步骤,我们已经在前几期做了详细的说明和
介绍,在此就不再重复说明,读者朋友可以参阅以
前的文章或直接登陆 http://www.hificat.com/pic_
demo/pic_demo.asp 查看
资料
新概念英语资料下载李居明饿命改运学pdf成本会计期末资料社会工作导论资料工程结算所需资料清单
。现在我们可以输入
程序代码进行调试了,我们在MPLab IDE 软件中
新建工程,加入源程序代码,同时进行芯片型号的
选择和配置位的设置,我们实验所用的芯片型号为
PIC16F877A。编写的程序代码如下:
#include
/ 包含单片机内部资源预定义
unsigned char recdata;
图5 串口调试助手界面图
void delay() // 延时子程序
{
unsigned int k;
for(k=0;k<300;k++);
}
//------------------------------
// 主程序
void main()
{
TRISC=0xC0; // 设置 C口方向
TRISA=0XC0; //RA0--RA5 为输出
SPBRG=0X19; // 设置波特率为 9600BPS
TXSTA=0X24; // 使能串口发送,选择高速波特
率
RCSTA=0X90; // 使能串口工作,连续接收
RCIE=0X1; // 使能接收中断
GIE=0X1; // 开放全局中断
PEIE=0X1; // 使能外部中断
while(1) // 等待中断
{
switch (recdata)
{
case 0x01:PORTC=0x01;break;
case 0x02:PORTC=0x02;break;
case 0x03:PORTC=0x04;break;
case 0x04:PORTC=0x08;break;
case 0x05:PORTC=0x10;break;
case 0x06:PORTC=0x20;break;
}
delay();
}
}
//------------------------------
// 中断函数
学电子跟我来
FOLLOW ME
71
void interrupt usart(void)
{
if(RCIF) // 判断是否为串口接收中断
{
RCIF=0;
recdata=RCREG; // 接收数据并存储
TXREG=recdata; // 返送接收到的数据 // 把接
收到的数据发送回去
}
}
编好程序后,读者朋友可以将编译好的HEX通
过 ICD2 仿真烧写器烧入单片机芯片,然后上电运
行。首先,我们打开串口调试助手,设定好串口序号、
波特率等相关参数,具体参数见图 6所示,然后我
们发送十六进制数“01”,我们的思路是发送数据
“01”,则点亮实验板上第一个 LED发光管;发送数
据“02”,则点亮板上第二个 LED 发光管,现在我
们发送了“01”后,我们可以看到实验板上的第一
个发光管已点亮,如图 7所示,同样,你可以试一
下用串口调试助手发送其它数据内容,板子上将会
出现何种现象。
我们输入了这么长一段程序后,作为初学者的
读者一定对有些语句会有点疑问,下面我们就来一
起结果实际,看一下一些关键程序语句的作用。
#include 语句用来加载 PIC 库文件,
头部 recdata 变量的定义是用来存放我们接收到
的串口数据,void delay () 是延时函数,TRISC、
TRISA 相关的语句用来设置 RC、RA口的输入、输
出状态,在此我们设置为输出。SPBRG=0X19 至
PEIE=0X1 这些语句,分别是对串口通信参数的配
置与开启中断使能, while(1) 是死循环语句,即周而
复始地执行 { } 内的语句体,如我们现在的程序中的
作用即是不停地判断 recdata 这个变量,也就是不
停地判断串口接收到的数据是否为 0x01、0x02⋯⋯
0x06 这些数据,通过判断不同的数值,再点亮板
上 LED 发光管,即 PORTC 端口的赋值。在程序尾
部有个 interrupt usart() 函数,它是我们的中断处理
函数,当有串口中断产生时,就会进入这个函数体,
函数体中语句的主要作用是把接收到的串口数据放
到变量 recdata 中,同时将接收到的数据再返回给
上位机,即回传给 PC机,这样就进行了一次完整
的双向通信。
RS232 串口通信的原理与使用我们讲到这里,
接下来几期,我们将继续一起学习增强型 PIC 实验
板的其它各部分资源的原理与使用,使你对单片机
应用的各方面知识都有所入门与提高。增强型 PIC
实验板系统资源丰富,可做实验有:6位 LED 数码
管、8路 LED、直控键盘、蜂鸣器喇叭、继电器试验、
I2C 总线接口、SPI 总线接口、160X 液晶、128X64
液晶、红外接收头接口、步进电机驱动接口、AD
模 / 数转换接口、串行时钟芯片 DS1302、温度传
感器 DS18B20 接口、RS232 串口通讯、外扩展接
口以便外接更多的实验资源。
图 7 增强型 PIC 实验板收到串口 01 数据后点亮D10 发光管
图6 PC机上串口调试助手发送十六进制数01 (产品详见广告页)