插手珍藏夹
 公司简介 || 产物列表 || 采办编制 || 汇款订单提交 || 论坛 || Universal Programmer || 淘宝网店 || 诚聘英才 || 单片机名目斥地


手把手教你用加强型51测验考试板完成RS232串口通信 《电子制造》2006年8月 站长原创,如需引用请说明出处

    上一期,咱们曾经把持加强型51测验考试板学会了单片机节制步进电机动弹的方式,这一期,咱们将一路来进修一下单片机若何与PC机进行通信,一路来完成一个简单的RS232通信实例,咱们不做太多的理论,从实例出发,相信能够大概给大师一个比力通俗、透辟地认识,控制了它的道理,那你就能够编出任何和PC机进行通信的法式了。
    前几期,咱们进修和引见的内容都是以单机的形式,即所有的功能都是在一块加强型51测验考试板上得以完成。当单片机技术具体使用到工场、企业及各类工业、民用范畴中,它必定要与外部设置作数据传输,其交互性也使得单片机的使用越来越遍及,咱们能够把持它来传数据,传节制号令等等。因而,单片机与PC机的通信是咱们进修单片机技术所履历的需要环节,由此,也使咱们的进修更具趣味性。
    下面咱们一路来完成一个用单片机从串行口领受PC机数据,并在数码管上显示出来的测验考试。
先引见一下串口通信根底学问。今朝较为常用的串口有9针串口(DB9)和25针串口(DB25)。最为简单且常用的是三线制接法,即地、领受数据和发送数据三脚相连,本文只涉及到最为根底的接法,且间接用RS232相连。串口引脚定义如图1所示。


9针串口(DB9)

25针串口(DB25)

针号

功能申明

缩写

针号

功能申明

缩写

1

数据载波检测

DCD

8

数据载波检测

DCD

2

领受数据

RXD

3

领受数据

RXD

3

发送数据

TXD

2

发送数据

TXD

4

数据终端预备

DTR

20

数据终端预备

DTR

5

信号地

GND

7

信号地

GND

6

数据设备预备好

DSR

6

数据预备好

DSR

7

请求发送

RTS

4

请求发送

RTS

8

断根发送

CTS

5

断根发送

CTS

9

振铃唆使

DELL

22

振铃唆使

DELL

图1 DB9和DB25的常用信号脚申明 

    咱们来看一下本次测验考试的电路图,如图2所示,即加强型51测验考试板完成串口通信及数码管显示的电路部门。图2中的4个三极管别离与4个共阳数码管相连,是各个数码管的使能端,别离经由单片机的P2.0,P2.1,P2.2,P2.3来节制,数码管显示的细致工作道理,咱们已在前几期杂志中作过引见,有乐趣的伴侣能够去看一下以前几期的内容。图2中MAX232芯片起到RS232与TTL电平转换的传染感动,咱们经由9芯串口与PC机相连。

图2 硬件电路道理图

    下面是咱们完成本次测验考试的源法式代码,使用Keil编译软件,将其编译生成HEX文件,然后,经由A51编程器烧入AT89S51芯片即可。
#include "reg51.h"
#include <absacc.h>
unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char dat;

void Init_Com(void)
{
TMOD = 0x20; //按时器工作编制2,初值主动装入
PCON = 0x00; //波特率不增倍
SCON = 0x50; //串行工作编制设定
TH1 = 0xFd; //按时器初值高位
TL1 = 0xFd; //按时器初值低位
TR1 = 1; //启动按时器
}
/*函数功能:LED数码管延时法式*/
void delay(void)
{
int k;
for(k=0;k<600;k++);
}
/*函数功能:LED数码管显示法式*/
void display(int k)
{
P2=0xfe; //位选
P0=tab[k/1000]; //显示千位数字
delay(); //延时
P2=0xfd; //位选
P0=tab[k%1000/100]; //显示百位数字
delay(); //延时
P2=0xfb; //位选
P0=tab[k%100/10]; //显示十位数字
delay(); //延时
P2=0xf7; //位选
P0=tab[k%10]; //显示个位数字
delay(); //延时
P2=0xff; //位选
}
/*函数功能:主法式*/
void main()
{
P2=0xff; //端口初始化,关LED显示
P0=0xff;
Init_Com(); //调用串口初始化法式
while(1) //主轮回
{
if ( RI ) //判断能否收到数据
{
dat = SBUF; //领受数据
RI = 0; //软件断根标记位
}
display(dat-48); //显示收到的数据
}
}

    咱们来一路阐发一下法式代码,main主法式起首将P2口和P0口全数输出高电平,即数据管不显示任何内容,Init_Com函数用来初始化串口设置,如波特率设置,工作编制的设置,这些都是法式运转的全盘初始化设置。然后,咱们看到了一个while(1)语句,该语句的传染感动是发存亡轮回,即单片机上电复位后,咱们就不竭地去领受由PC机发过来的串口数据,同时将领遭到的数据放在dat 这个变量中,每领受完一次数据,咱们需要施行RI = 0这条语句,用来断根串口数据领受标记位,此刻咱们曾经收到了PC机传过来的数据了,余下的任务便是要将数字经由数码管显示出来,我想大师看了咱们前几期的引见,曾经并不目生数码管的使用了,在这里,咱们也写得很是简练,经由display这个函数将数字显示出来,由于咱们收到的是字符型的ASCII码数据,如数字“0”的ASCII码值是48,所以,咱们要显示“0”的话,又一次需要将其值减去48后才是真正要显示的数据。数码管咱们采用动态扫描法进行显示,delay函数的传染感动是发生必然时间的延时,对于人眼来说是分辩不出来的,在display的函数体内,咱们先将数据装载到P0口,如咱们在法式起头时定义的:unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}语句,意义相当于:数字“0”对应的数码管段码值为“0xc0”, 数字“1”对应的数码管段码值为“0xf9”, 数字“2”对应的数码管段码值为“0xa4”……以此类推,较后经由数码管的使能端来显示各位数码管的值。至此,整个法式的功能就轻松地完成了咱们所需要的功能,看到这里相信你此刻对串行通信感应并不是本来想的那么艰深了吧。

     此刻咱们曾经将法式写好,并烧入了单片机芯片,下面咱们要做的便是用串口线将加强型51测验考试板和PC机相连起来,同时给测验考试板接上电源,然后便是经由PC机软件来发数据了,要在PC机上向串口发送数据必然要借助响应软件,打开光盘内附带的串口调试软件,它设置便当、矫捷,界面简练明。由于咱们得告诉测验考试板来显示哪些数字,法式的功能是发送“1”、“2”、“3”......“8”、“9”、“0”等字符,加强型51测验考试板收到数据后经由数码管显示出来,所以咱们得在软件发送区内填上咱们所需要发送的数字,如图3所示。


图3

     串口调试软件中,设置参数如下:串口:COM1;波特率:9600;校验位:无;数据位:8位;遏制位:1位;发送内容:5
当咱们点击“手动发送”按钮后,咱们能够看到加强型51测验考试板上的数码管已显示数字“5”的字样,如图4所示。当然,咱们也能够选择“主动发送”,即每隔必然的时间,由软件主动发送“发送缓冲区”内的数据,时间周期能够在软件界面中设置。

图4

    此刻,你曾经能够自由阐扬来领受PC机发过来的数据了,只需阐扬你的想象力,定义好PC机和单片机两头的数据通信和谈,你能够做出任何经由电脑来对单片机进行节制的法式,完成各类各样的数据传输,近程节制功能,比如经由PC机来节制液晶显示、节制步进电机的动弹、节制蜂鸣器吹打等等,您也能够将本期所讲的学问与前几期所讲的联系干系起来,完成功能更多,更合用的具体使用实例。因而,到本期的进修,咱们曾经能够将单片机与PC相连,借助PC机强大而矫捷的功能,就可认为咱们处理各类现实生产及使用型问题供给了便当。这一期的内容咱们就引见到这里,加强型51测验考试板更多的进修内容,咱们将在当前几期连续为大师作引见,祝大师进修成功。


上一页(手把手教你用加强型51测验考试板的液晶显示功能) 下一页(未完待续)

--->>>前去首页



专业生产 单片机 斥地板 进修板 电子制造散件 电子制造套件 GSM模块 GPS模块 GPRS模块 GPRS MODEM DTU 短信猫 产物
以上部门内容转载于网上,如有涉及到版权问题,请即通知本人删除 浙ICP备11001927号 MSN:hificat@hotmail.com
联系地址:浙江省杭州市西湖科技园西园七路3号4层 邮政编码:310011 Email:hificat@163.com
德律总机:0571-87615070   产物征询:转分机1   技术支撑:转分机2   传真:转分机3   手机:13185018567
发卖QQ:1198450005 发卖征询 技术QQ熊工:1275636157 技术征询 技术QQ徐工:420951892 技术征询
杭州澳门新濠天地电子有限公司 版权所有 COPYRIGHT2003——2011 HANGZHOU KinCony ELECTRONICS CO.,LTD All rights reserved