插手珍藏夹

手把手教你使用PIC单片机做RS232串口通信测验考试(C言语版)——站长原创,如需引用请说明出处

    这一期,咱们将一路来进修一下PIC单片机若何与PC机进行通信,一路来完成一个简单的RS232通信实例,咱们不做太多的理论,从实例出发,相信能够大概给大师一个比力通俗、透辟地认识,控制了它的道理,那你就能够编出任何和PC机进行通信的法式了。
    前几期,咱们进修和引见的内容都是以单机的形式,即所有的功能都是在一块加强型PIC测验考试板上得以完成。当单片机技术具体使用到工场、企业及各类工业、民用范畴中,它必定要与外部设置作数据传输,其交互性也使得单片机的使用越来越遍及,咱们能够把持它来传数据,传节制号令等等。因而,单片机与PC机的通信是咱们进修单片机技术所履历的需要环节,由此,也使咱们的进修更具趣味性。
    下面咱们一路来完成一个用单片机从串行口领受PC机数据,并经由板上LED发光管显示出来。
    先引见一下串口通信根底学问。今朝较为常用的串口有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所示,即加强型PIC测验考试板完成串口通信及数码管显示的电路部门。图2中MAX232芯片起到RS232与TTL电平转换的传染感动,咱们经由9芯串口与PC机相连。


图2 串口通信电路道理图

    下面是咱们完成本次测验考试的源法式代码,PC机向串口发送数据,节制加强型PIC测验考试板上响应的LED发光管显示。如:向串口发送数据“01”,板上D10发光管点亮;向串口发送数据“02”,板上D11发光管点亮;向串口发送数据“03”,板上D12发光管点亮......以此类推显示各路发光管。

#include<pic.h> //包含单片机内部本钱预定义
unsigned char tab[]={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
unsigned char recdata;
//延时子法式
void delay()
{
unsigned int k;
for(k=0;k<300;k++);
}
//显示子法式
void display(unsigned int k)
{
PORTC=tab[k%10];
PORTA=0xFD; //选通数码管4
delay();
PORTC=tab[k%100/10];
PORTA=0xFE; //选通数码管3
delay();
PORTC=tab[k%1000/100];
PORTA=0xF7; //选通数码管2
delay();
PORTC=tab[k/1000];
PORTA=0xFB; //选通数码管1
delay();
}
//---------------------------------------------
//主法式
void main()
{
// TRISC=0Xff; //设置C口标的目的全为输出
TRISC=0xC0;
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();
}
}

//--------------------------------------------
//中缀函数

void interrupt usart(void)
{
if(RCIF) //判断能否为串口领受中缀
{
RCIF=0;
recdata=RCREG; // 领受数据并存储
TXREG=recdata; // 返送领遭到的数据 //把领遭到的数据发送归去
}
}

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


图3

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

图4

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

以下是部门测验考试源法式演示测验考试视频录像

加强型PIC测验考试板RS232串口通信节制LED显示测验考试录像

>>>点击此处下载RM视频文件 ——2007年05月12日 制造插手