串口通信实验.docx
- 文档编号:27047307
- 上传时间:2023-06-26
- 格式:DOCX
- 页数:10
- 大小:170.95KB
串口通信实验.docx
《串口通信实验.docx》由会员分享,可在线阅读,更多相关《串口通信实验.docx(10页珍藏版)》请在冰豆网上搜索。
串口通信实验
实验报告
(计算机专业)
专业计算机控制技术
班级计控1101
学号2011130232
姓名邹威
实验课程单片机应用技术
教师姓名胡云兵
实验名称RS232串口控制LED灯
实验完成时间2012.12.19-12.23成员邹威
成绩
实验目的
通过本次实训进一步熟悉掌握51系列单片机的应用,及如何实现单片机与计算机的串口通信,在此之中,须知道如何设计此电路、焊接及程序设计,加深自己所学单片机方面的知识。
了解RS-232C串行通信接口标准;掌握串行通信接口芯片的使用;掌握单片机与PC机的串行通信方法。
实验内容
采用AT89C51单片机,该单片机内部含有Flash存储器。
采用静态时钟方式,可以节省电能这对于降低便携式产品的功耗十分有用。
采用8个发光二极管,8个发光二极管排成一行,主机发送数据由单片机来控制发光二极管的熄灭。
从而来实现用单片机控制流水灯。
实验步骤
单片机的选择
◆51系列单片机简介:
51系列单片机是单片机领域中的一类,也是影响最为深远,使用最为广泛的单片机系列,到目前为至,仍然占据了绝大多数的单片机市场。
因此,现在MCS-51兼容的单片机各类繁多,例如Atml公司的AT89C系列、AT89S系列、SiliconLaboratories公司的C8051F系列、Philips公司的8XC552等。
有些厂商还进一眇发展了增强型的51内核,如Cypress公司的带USB接口的单片机、MAXIM公司DS80/83/87/89系列高速单片机等。
◆51系列单片机的应用领域:
随身影音设备、电子玩具、机电一体化设备、数据通信、测控设备等
◆51系列单片机的发展方向:
高速、缩短指令执行周期、低功耗、高度集成性、减少封装尺寸。
◆典型引脚结构:
对于51系列的单片机来说,不同的单片机,不同的封装,具有不同的引脚结构,因此,在实训中,我们选择了8051单片机,下图是40引脚的8051单片机:
如图,引脚说明如下:
电源引脚:
VCC(Pinin40),GND(Pin20)
时钟引脚:
XTAL1(Pin19),XTAL2(Pin18)
并行I/O引脚:
P0(P0.0~P0.7),P1(P1.0~P1.7),P2(P2.0~P2.7),P3(P3.0~P3.7).
复位引脚:
RST(Pin9)
Pin30:
作为地址锁存使能端和编程脉冲输入端
Pin29:
单片机访问外部程序存储器的读选通信号
Pin31:
访问内部或外部程序存储器选择信号和提供编程电压
◆51系列单片机的内部结构:
中央处理器、程序存储器、数据存储器、指令寄存器、定时/计数器、并行输入/输出口、全双工串行口、中断系统、时钟振荡电路
三、串行通信接口芯片
对于5V供电的单片机系统,可以选择MAX232或MAX232A等芯片来实现RS-232电平和TTL电平之间的互换,MAX232芯片图如下:
引脚含义如下:
Vcc:
供电电压
GND:
接地引脚
C+、C-:
外围电容
T1IN:
第一路TTL/CMOS驱动电平输入
T1OUT:
:
第一电路RS-232电平输出
R1IN:
第一电路RS-232电平输入
R1OUT:
第一路TTL/CMOS驱动电平输出
T2IN:
第二路TTL/CMOS驱动电平输入
T2OUT:
:
第二电路RS-232电平输
R2IN:
第二电路RS-232电平输入
R2OUT:
第二路TTL/CMOS驱动电平输出
四、RS-232C串行通信接头
图最右边的原件为RS—232串口(阴头)。
1-载波检测
2-接收数据
3-发送数据
4-数据终端准备就绪
5-信号接地
6-数据建立就绪
7-请求发送
8-允许发送
9-振铃指示
五、单片机通信电路图
在本次任务中,实现单片机与PC机通信的大致思想是:
单片机P2口与八个LED灯连接,用以输出理想信号,且MAX232来实现芯片来实现RS-232电平和TTL电平之间的互换,具体电路如一图所示:
此任务在做的过程中用了许多电子元器,具体如表3-2单片机和PC通信电路元器件清单所示:
元器件名称
参数
数量
元器件名称
参数
数量
IC插座
DIP40
1
PC
1
单片机
AT89C51
1
电平转换芯片
MAX232
1
晶体振荡器
11.0592MHZ
1
元片电容
30pf
2
发光二极管
LED
8
电阻
220
8
电阻
10k
1
电解电容
22uf
1
IC插座
DIP16
1
电解电容
10uf
5
实验结果及其分析
通过这次的实训,我们学到了许多,明白了有时理论是根本联系不到实际的,要在不断的实践中巩固自己的知识。
在此实训期间,我们小组也遇到了许多的困难,感悟很多,程序设计及调试,锻炼了自己的动手能力和思维能力,在软件编程方面自己又增加了一些能力和经验,在此期间,因为我们在单片机硬件和软件知识的不足使我们遇到了一些困难,但我们小组得到了老师和同学许多的帮助,最终成功的完成了单片机与计算机的串口通信这一任务,在理论的基础上更深刻的掌握了单片机的深层内容及实际生活中的应用,单片机在计算机中是一片非常广泛的领域,我们想要学好单片机技术就要不断的努力学习与实践。
实验老师评语:
程序清单
本段代码将演示如何实现计算机与单片机直接的串口通信,本次程序的主要功能:
1)将设置和修改存入传输给单片机的数据
2)把当前想显示的数据写入单片机中
3)显示当前数据到发光二极管LED灯
4)把传送给单片机的数据通过串口返回给PC机
程序代码如下:
include
#include
voiddelay(unsignedinti);//声明延时函数
voidscrolling(unsignedchari);//声明跑马灯函数
voidsend_char(unsignedchartxd);//声明串口发送函数
unsignedchartmp;
charLED;
main()
{
TMOD=0x20;//定时器1工作于8位自动重载模式,用于产生波特率
TH1=TL1=0xFD;//波特率9600
SCON=0x50;//设定串行口工作方式1允许接收,相当于下面三句
//SM0=0;
//SM1=1;
//REN=1;
PCON=0x00;//波特率不倍增
TR1=1;//启动定时器1
while
(1)
{
if(RI==1)//是否有数据到来
{
RI=0;
tmp=SBUF;//暂存接收到的数据
switch(tmp)
{
case1:
P1=0xfe;break;
case2:
P1=0xfc;break;
case3:
P1=0xf8;break;
case4:
scrolling();break;
}
send_char(tmp);//回传接收到的数据
}
}
}
voidsend_char(unsignedchartxd)//发送函数
//传送一个字符
{
SBUF=txd;
while(!
TI);//等特数据传送
TI=0;//清除数据传送标志
}
voidscrolling(unsignedchari)//跑马灯函数
{
while
(1)
{LED=0xfe;
for(i=0;i<8;i++)
{
P1=LED;
delay(500);
LED=LED<<1;//左移
LED=LED|0x01;//移位后,后面的位为高电平
if(LED==0x7f)break;//提前退出FOR循环
}
for(i=0;i<8;i++)
{
P2=LED;
delay(500);
LED=LED>>1;//右移
LED=LED|0x80;//移位后,后面的位为高电平
}
}
}
voiddelay(unsignedinti)//延时函数
{
unsignedcharj;
for(i;i>0;i--)
for(j=255;j>0;j--);
}
程序清单
程序清单
程序清单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串口 通信 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)