51单片机与PC串口间通讯设计与分析 1.docx
《51单片机与PC串口间通讯设计与分析 1.docx》由会员分享,可在线阅读,更多相关《51单片机与PC串口间通讯设计与分析 1.docx(13页珍藏版)》请在冰豆网上搜索。
51单片机与PC串口间通讯设计与分析1
摘要
51单片机是一种集CPU,RAM,FLASHROM,I/O接口和定时中断系统于一体的微型计算机。
本文通过对51单片机串行通信接口的分析,建立了单片机串行通讯系统,设计了其控制寄存器和特殊控制寄存器的工作方式,完成了通讯软件。
关键词:
单片机、发送数据、接收数据串行通信
目录
第一章概述-----------------------------------------------------------------(4)
1.1绪论------------------------------------------------------------------(6)
1.2单片机的发展阶段-------------------------------------------------(6)
1.3单片机的发展趋势-------------------------------------------------(6)
1.4单片机的应用模式-------------------------------------------------(7)
1.5单片机与PC串口间通讯设计的应用--------------------------(8)
第二章系统设计-----------------------------------------------------------(9)
2.1设计思路-------------------------------------------------------------(9)
2.2系统组成-------------------------------------------------------------(9)
第三章单元硬件电路设计------------------------------------------------(10)
3.1硬件的实现过程---------------------------------------------------(10)
3.1.1RS-232C总线标准------------------------------------------(10)
3.2RS-232接口电路---------------------------------------------------(11)
3.2.1MAX-232接口电路----------------------------------------(12)
3.351单片机与PC机串行通信电路-----------------------------(13)
第四章软件设计----------------------------------------------------------(15)
4.1软件设计和硬件设计的关系-----------------------------------(15)
4.2程序设计-----------------------------------------------------------(15)
4.3程序运行后的结果------------------------------------------------(19)
参考文献--------------------------------------------------------------------(21)
第一章概述
1.1绪论
毕业设计的目的是了解基本电路设计的流程,丰富自己的知识和理论,巩固所学的知识,提高自己的动手能力和实验能力,从而具备一定的设计能力。
我做得的毕业设计注重于对单片机串行通信协议的理解,明白串行通信的工作原理,以便以后单片机领域的开发和研制打下基础,提高自己的设计能力,培养创新能力,丰富自己的知识理论,做到理论和实际结合。
本课题的重要意义还在于能在进一步层次了解单片机的工作原理,内部结构和工作状态。
理解单片机的接口技术,中断技术,存储方式,时钟方式和控制方式,这样才能更好的利用单片机来做有效的设计。
我的毕业设计分为两个部分,硬件部分和软件部分。
硬件部分介绍:
单片机串行通信发射机电路的设计,单片机AT89C51的功能和其在电路的作用。
介绍了AT89C51的管脚结构和每个管脚的作用及各自的连接方法。
AT89C51与MCS-51兼容,4K字节可编程闪烁存储器,寿命:
1000次可擦,数据保存10年,全静态工作:
0HZ-24HZ,三级程序存储器锁定,128*8位内部RAM,32跟可编程I/O线,两个16位定时/计数器,5个中断源,5个可编程串行通道,低功耗的闲置和掉电模式,片内震荡和时钟电路,P0和P1可作为串行输入口,P3口因为其管脚有特殊功能,可连接其他电路。
例如P3.0RXD作为串行输出口,其中时钟电路采用内时钟工作方式,控制信号采用手动控制。
数据的传输方式分为单工、半双工、全双工和多工工作方式;串行通信有两种形式,异步和同步通信。
介绍了串行串行口控制寄存器,电源管理寄存器PCON,中断允许寄存器IE,还介绍了数码显示管的工作方式、组成,共阳极和共阴极数码显示管的电路组成,有动态和静态显示两种方式,说明了不同显示方法与单片机的连接。
再后来还介绍了硬件的焊接过程,及在焊接时遇到的问题和应该注意的方面。
硬件焊接好后的检查电路、不装芯片上电检查及上电装芯片检查。
软件部分:
在了解电路设计原理后,根据原理和目的画出电路流程图,列出数码显示的断码表,计算波特率,设置串行口,在与接受机设置相同的通信协议的基础上编写显示和发射程序。
编写完程序还要进行编译,这就必须会使用编译软件。
介绍了编译软件的使用和使用过程中遇到的问题,及在编译后烧入芯片使用的软件PLDA,后来的加电调试,及遇到的问题,在没问题后与接受机连接,发射数据,直到对方准确接收到。
在软件调试过程中将详细介绍调试遇到的问题,例如:
通信协议是否相同,数码管是否与芯片连接对应,计数器是否开始计数等。
最后介绍了毕业设计做完后的结论以及自己的心得体会。
1.2单片机的发展阶段
51单片机的发展可分为以下4个阶段。
1,第一代:
单片机探索阶段。
主要有同通用CPU68XX系列和专用MCS-48系列的简单实例应用。
2,第二代:
单片机完善阶段。
具体表现在:
面对对象,突出控制功能,专用CPU满足嵌入功能;寻址范围为8位或16位;规范的种线结构,有8位数据线,16位地址线及多功能异步串行接口(UART);指令系统突出控制功。
3,第三代:
微控制形成阶段。
这一间段已形成系列产品:
以8051系列为代表,如8031,8031和8051等。
4,第四代:
微控制器百花齐放。
表现在:
满足最低层电子技术的应用;大力发展专用型单片机,致力于提高单片机的综合品质。
1.3单片机的发展趋势
单片机的发展趋势可归为以下8个方面。
1、主流机型发展趋势。
2、全盘CMOS化趋势。
3、RISC体系结构的发展。
4、可刷新的FLASHROM成为主流供应状态,便于用户对系统软件进行升级和修改。
5、ISP及基于ISP的开发环境。
6、单片机的软件嵌入。
7、实现全面功耗管理。
8、推行串口扩展总线。
图1-2单片机引脚
1.4单片机的应用模式
单片机应用系统是以单片机为核心构成计算机应用系统,是最具有代表性和使用最广范的专用计算机应用系统。
(1)单片机应用系统的结构。
单片机应用系统的结构分3个层次。
1、单片机:
通常指应用系统主处理机,即所选择的单片机器件。
2、单片机系统:
指按照单片机的技术要求和嵌入对象的资源要求而构成的基本系统,如时钟电路、复位电路和扩展存储器等与单片机构成了单片机系统。
3、单片机应用系统:
指能满足嵌入对象要求的全部电路系统。
在单片机系统的基础上加上面向对象的接口电路,如前向通道、后向通道、人机交互通道和串行通信口(RS232)以及应用程序等。
1.5单片机与PC串口间通讯设计的应用
目前RS-232是PC与通信工业中应用最广泛的一种串行接口,其中EIA代表美国电子工业协会,RS代表推荐标准,232是标识号。
RS-232被定义为一种在低速率串行通信中增加通信距离的单端标准。
RS-232采取不平衡传输方式,即单端通信。
单片机之间的串口通信,当传输距离在1.5-15米之间时,可以采用RS-232通讯协议进行数据传输,基于RS-232电气特性的限制,只能实现一点对一点通信(既单机通信)。
第二章系统设计
2.1系统设计思路
本文要求设计一个51单片机与PC串口间通讯系统,实现单片机与PC机之间的远程通信。
设计分发送和接收两大模块,发送部分通过硬件电路的引用。
其中包括RS-232接口电路、MAX232接口电路,引用相应的管脚相连,并将相应的软件程序转入电路中,即可运行。
当电路是相对独立时,可直接调速电路参数值,其影响和干扰就小。
在满足发射和接收模块的要求后可单独对控制进行调整,程序的编入,接收部分相应的结果即以实现,因此实现了PC机对远端单片机的控制。
2.2系统组成
为实现该系统的生成,主要包含两大模块,即单片机模块和通信模块。
1单片机模块
单片机模块中主要包括单片机、复位电路、晶振电路、上拉电阻和端口扩展等。
端口扩展部分可以通过跳线将单片机的I/O口在系统板上的功能释放,并将其连接到扩展上。
2通信模块
通信模块中采用MAX232作为通信电平转换电路、实现RS-232的数据传输,可以直接与PC进行通信。
第三章单元硬件电路设计
3.1硬件实现的过程
在实现单片机与PC机之间通信或单片机与单片机之间远程距离通信时通常采用标准串行总线通讯接口。
比如RS-232C、RS-422、RS485等。
在这些串行总线接口标准中,是在异步串行通信中应用最广的标准总线,它实用于短距离或带调制解调器的通信场合。
下面以RS-232标准串行总线接口为例,简单介绍单片机与PC机之间串行通信的硬件实现过程。
3.1.1RS-232总线标准
RS-232C总线标准定义了25个引脚的连接器,各引脚的定义如表3-1所示。
表3-1RS-232信号引脚定义
引脚
定义(助记符)
引脚
定义(助记符)
1
保护地(PG)
13
辅助通道允许发送(SCTS)
2
发送数据(TXD)
14
辅助通道发送数据(STXD)
3
接收数据(RXD)
15
发送时钟(TXC)
4
请求发送(RTS)
16
辅助通道接收数据(SRXD)
5
清除发送(CTS)
17
接受始钟(RXC)
6
数据准备好(DSR)
18
----------------------------------
7
信号地(GND)
19
辅助通道请求发送(SRTS)
8
接收线路信号检测(DCD)
20
数据终端准备就绪(DTR)
9
------------------------------
21
信号质量检测
10
------------------------------
22
音响指示(RI)
11
-------------------------------
23
数据信号速率选择
12
辅助通道接收信号检测(SDCD)
24
发送时钟(TXC)
表3-1中定义的许多信号线是为通信业务联系或控制而设置的,在计算机串口通信中主要是用以下一些信号。
(1)数据传输信号:
发送数据(TXD),接收数据(RXD)
(2)调制解调器控制信号:
请求发送(RTS),清除发送(CTS)
(3)地线:
保护地(PG),信号地(GND)
Rs-232C总线的其他标准规定如下:
(1)RS-232总线标准逻辑电平:
+5--+15V表示逻辑“0”,-15、-5表示逻辑“1”,噪声容限为2V。
(2)标准数据传输速率:
50b/s、75b/s、110b/s、600b/s、1200b/s、4800b/s、9600b/s、19200b/s
3.2RS-232C接口电路
当51单片机与PC机通过RS-232标准总线串行通信时,由于RS-232信号电平与51单片机信号电平不一致,因此,必须进行信号电平转换。
其常用的方法有两种,一种是采用运算放大器、晶体管、光电隔离器等器件组成的电路来实现,另一种是采用专门集成芯片来实现。
下面以MAX232专门集成芯片为例来介绍接口电路的实现。
3.2.1MAX232接口电路
图3-1MAX232接口电路
MAX232芯片是MAXIM公司生产的具有两路接收器和驱动器的IC芯片,其内部有一个电源电压变换器,可以将输入+5V的电压变换成RS-232C输出电平所需的+/-12V的电压。
在其内部同时也完成TTL信号电平和RS-232信号电平的转换。
所以,采用此芯片实现接口电路只需单一的+5V电源就可以。
MAX232芯片的引脚结构如图2-2所示。
其中管脚1-6(C1+,V+,C1-,C2+,C2-,V-)用于电源电压转换,只要在其内部接入相应电解电容即可:
管脚7-10和管脚11-14.构成两组TTL信号电平与RS-232信号电平的转换电路,对应管脚可直接与单片机串行口的TTL电平引脚和PC机的RS-232电平引脚相连。
具体连接可参看图2-3。
.
图3-2MAX232引脚图
3.351单片机与PC机串行通信电路
图3-3是由芯片MAX232实现51单片机与PC机串行通信的典型接线图。
图中外接电解电容C1,C2,C3,C4用于电源电压变换,提高抗干扰能力,它们可以取相同数值电容1.0uF/16V.其值一般为0.1UF.
选择任一组电平转换电路实行串行通信,如图中选T1in,R1out分别与51单片机的TXD,RXD相连,T1out,R1in分别与PC机中RS232接口的RSD,TSD相连,这种发送与接收的对应关系不能连错,则不能正常工作。
图3-3用MAX232实现串行通信接口电路
第四章软件设计
鉴于单片机技术比较成熟,且开发过程中可以利用的资源和工具丰富、价格便宜、成本低。
故设计用C语言对其编程并烧录到芯片内部,C语言表达和运算能力比较强,且具有很好的可移植性和硬件控制能力,程序可分为发射部分和接收部分。
在51系列单片机中,波特率由定时/计数器T1自动产生,但在使用前。
需对T1进行一些设置,才能得自己想要的波特率。
我们通常在有串行通信的系统中选用11.0592MHz的晶振,为了使用方便采用19200Kbps的波特率,所以T1的初值应设置为0Xfd。
4.1、软件设计和硬件设计的关系
为了满足设计的功能和指标的要求,我们必须在开始设计时就应考虑到硬件和软件的协调;不然就是造成硬件资源的浪费,就是增加软件实现时的困难和复杂程度,甚至造成信号的断层,即使硬件和软件能单独使用,却不能使它们组成的系统工作,故在设计的过程中必须考虑软、硬件的处理能力以及它们的接口是否兼容,实现软、硬件的过渡,其次、设计时硬件之间应尽可能减小联系,只要把必要的信号线相连即可。
由于硬件的分离,在软件的调试时就可以单独针对控制模块。
4.2程序设计
假设PC机先向单片机一组指令“55H、AAH、01H”当单片机接收到PC发来的数据,并判断命令为“01H”时,启动定时发送程序,即每隔2S向PC发送15个字节的数据。
具体程序如下
#include
#defineucharunsignedchar
ucharTxdnum[15]={0,1,2,3,4,5,6,7,8,9,0xa0,0xa1,0xa2,0xa3,0xa4}
uchartimercount,Rxdcount,Numcount;
bitTxdflag;
Voidserial_Txd(uchar*p)
{
uchari;
for(i=0;i<15;i++)
{
SBUF=*p++;
While(!
TI);
TI=0;
}
}
Voidserial_Int()interrupt4
{
uchartemp;
ES=0;
If(RI)
{
Temp=SBUF;
RI=0;
If(temp==0x55)
{
while(!
RI);
temp=SBUF;
RI=0;
if(temp==0xaa)
{
while(!
RI);
temp=SBUF;
RI=0;
if(temp==0x01)
{
P2=~temp;
TR0=1;
}
}
else
Es=1;
}
else
Es=1;
}
}
VoidT0_Interrupt()interrupt1
{
TL0=0x00;
TH0=0xdc;
if(--timercount==0)
{
Timercount==200;
Txdflag=1;
}
}
Voidmain()
{
Txdflag=0;
Rxdcount=0;
Numcount=0;
Timercount=100;
TMOD=0x21;
TL0=0x00;
TH0=0xdc;
TL1=0xfd;
TH1=0xfd;
SCON=0X50;
TR1=1;
ET0=1;
ES=1;
EA=1;
while
(1)
{
if(Txdflag==1)
{
Txdflag=0;
Serial_Txd(Txdnum);
}
}
}
4.3程序运行后的结果
单片机与PC相连,同时运行程序,当PC向单片机传送数据后,如果数据相符,则单片机点亮L1发光二极管,并且开始每隔2S向PC传送数据,在PC上观察到以下结果。
00010203040506070809A0A1A2A3A400010203040506070809A0A1A2A3A400010203040506070809A0A1A2A3A400010203040506070809A0A1A2A3A4
参考文献
【1】张旭涛.曾现峰.单片机原理与应用.北京:
北京理工大学出版社.2006
【2】穆兰.单片微型计算机原理及接口技术.北京:
机械工业出版社.2002
【3】杨金岩.郑应强.51单片机数据传输接口扩展技术与应用实例.北京:
人民邮电出版社.2006
【4】胡伟.季晓衡.单片机C程序设计及应用实例.北京:
人民邮电出版社.2006
【5】黄智伟.全国大学生电子设计竞赛系统设计【M】.北京:
北京航空航天大学出版社.2006
【6】胡汉才组编.单片机原理及接口技术.北京:
清华大学出版社,1996
毕业设计(论文)成绩审批表
指导教师评阅意见:
存在的主要问题:
指导教师(签字):
年月日
答辩小组评语及成绩评定:
小组组长(签字):
年月日
系(院)审定意见:
负责人(签字):
(加盖公章)
年月日