资源描述
1. 实验任务
通过串口调试助手向单片机放送0—9数字,并将收到的数字在数码管上显示出来
2. 实验目的
掌握单片机串口工作方式的程序设计,了解实现串行通信的硬环境,
3. 实验原理
所谓“串行通信”是指外设和计算机间使用一根数据信号线(另外需要地线,可能还需要控制线),数据在一根数据信号线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本。例如,目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。
在简单的应用中, 只需要有3条线即可完成通信, 分别是 第二脚RXD , 第3脚TXD ,第5脚GND。串行通信与单片机之间的接口:由于串行通信的电平逻辑定义是+15V( 高电平1)-15V(低电平0) 而单片机中分别用5V ,0V 来表示1,0 它们之间必须通过电平转换才可以完成通信。 最常用的是MAX232电路。
为了能够在电脑端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里我们利用一个免费的电脑串口调试软件
在本网站可以下载并运行这个串口调试助手软件,这是一个绿色的软件,无需安装,可以直接在当前位置运行这个软件。软件界面如上图,我们先要设置一下串口通讯的参数,波特率调整为9600,勾选十六进制显示。接着在发送区发送0—9任意一个数,最终我们会在数码管上看到发送的数字。
4. 实验原理图
注意:如果你使用的是对等线请将拿跳线将JP1的两端连起来;如果使用交叉线则拿跳线将JP2的两端连起来。
5.实验源程序
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define shuju P0
#define bus P1
#define lcdbus P3
sbit wei=P2^2;
uchar a;
uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF};
void chushi()
{
TMOD=0x20;
SCON=0x50;
TH1=0xfA;
TL1=0xfA;
PCON=0x80;
TR1=1;
EA=1;
ES=0;
RI=0;
TI=0;
}
void display()
{
wei=0;
shuju=tab[a];
}
void main()
{
chushi();
while(1)
{
while(!RI);
RI=0;
a=SBUF;
display();
}
}
展开阅读全文