基于串口通信的单片机仿真和C语言开发.docx

上传人:b****1 文档编号:13599885 上传时间:2023-06-15 格式:DOCX 页数:14 大小:142.73KB
下载 相关 举报
基于串口通信的单片机仿真和C语言开发.docx_第1页
第1页 / 共14页
基于串口通信的单片机仿真和C语言开发.docx_第2页
第2页 / 共14页
基于串口通信的单片机仿真和C语言开发.docx_第3页
第3页 / 共14页
基于串口通信的单片机仿真和C语言开发.docx_第4页
第4页 / 共14页
基于串口通信的单片机仿真和C语言开发.docx_第5页
第5页 / 共14页
基于串口通信的单片机仿真和C语言开发.docx_第6页
第6页 / 共14页
基于串口通信的单片机仿真和C语言开发.docx_第7页
第7页 / 共14页
基于串口通信的单片机仿真和C语言开发.docx_第8页
第8页 / 共14页
基于串口通信的单片机仿真和C语言开发.docx_第9页
第9页 / 共14页
基于串口通信的单片机仿真和C语言开发.docx_第10页
第10页 / 共14页
基于串口通信的单片机仿真和C语言开发.docx_第11页
第11页 / 共14页
基于串口通信的单片机仿真和C语言开发.docx_第12页
第12页 / 共14页
基于串口通信的单片机仿真和C语言开发.docx_第13页
第13页 / 共14页
基于串口通信的单片机仿真和C语言开发.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于串口通信的单片机仿真和C语言开发.docx

《基于串口通信的单片机仿真和C语言开发.docx》由会员分享,可在线阅读,更多相关《基于串口通信的单片机仿真和C语言开发.docx(14页珍藏版)》请在冰点文库上搜索。

基于串口通信的单片机仿真和C语言开发.docx

基于串口通信的单片机仿真和C语言开发

目录

摘要I

AbstractII

1系统硬件设计1

1.1AT89C52芯片介绍1

1.29针D型连接器2

2串口通信设计4

2.1串口通信概述4

2.2串行接口基本任务4

2.3串行接口工作原理4

2.4串行接口控制寄存器4

2.5串行接口工作方式5

3Protues软件介绍及使用6

4软件设计7

5仿真结果10

6心得体会12

参考文献13

摘要

随着科技的发展,单片机的应用越来越广泛,其使用也越来越频繁,有时候需要将单片机中的数据传到另一台单片机或者是PC机,有时候需要将PC机的数据传输到单片机上,这就用到了单片机的串行通信。

串行通信是CPU与外界交换信息的一种基本方式。

单片机应用于数据采集或工业控制时,往往作为前端机安装在工业现场,远离主机,现场数据采用串行通信方式发往主机进行处理,降低通信成本,提高通信可靠性。

51系列单片机自身实现串行通信是十分方便的。

在本次的仿真设计中,利用了虚拟串口进行仿真实验。

关键词:

单片机,串行通信,虚拟串口

 

Abstract

Isfindingwiderandwiderwiththedevelopmentofscienceandtechnology,theapplicationofsingle-chipmicrocomputer,itsuseisbecomingmoreandmorefrequently,sometimesneedtodatainasinglechipmicrocomputertoanotherMCUorPC,sometimesneedtothePCdatatransmissiontothesingle-chipmicrocomputer,itUSESsinglechipmicrocomputerserialcommunication.SerialcommunicationisabasicoftheCPUtoexchangeinformationwiththeoutsideworld.MCUisappliedtodatacollectionorindustrialcontrol,oftenasafront-endmachineinstalledintheindustrialfield,awayfromthehost,thedatasenttothehostforprocessing,serialcommunicationwaytoreducethecommunicationcost,improvethereliabilityofcommunication.51seriesmicrocontrolleritselftorealizeserialcommunicationisveryconvenient.Inthesimulationdesign,usingthevirtualserialporttothesimulationexperiment.

Keywords:

Singlechipmicrocomputer,serialcommunication,virtualserialport

 

1系统硬件设计

本次设计中,最主要的芯片是AT89C52,还有9针D型连接器,有时候还会用到MAX232芯片。

1.1AT89C52芯片介绍

图1AT89C52

单片机是在一块芯片中集成了CPU、RAM、ROM、定时/计数器和多功能I/O口等计算机所需要的基本功能部件的大规模集成电路.芯片有32条端口线、2条电源线、6条控制线。

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。

P1口、P2口、P3口是一个带内部上拉电阻的8位双向I/O口,其中P3口还可接收一些用于Flash闪速存储器编程和程序校验的控制信号。

这四个端口是并行I/O端口。

RST是复位输入,当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

EA端接低电平时,单片机只访问外部程序存储器,接高电平时,单片机访问内部程序存储器。

该芯片还有一个全双工的可编程串行I/O端口,可以在程序控制下把CPU的八位并行数据变成串行数据一位一位的从发送数据线Txd发送出去,也可以把串行接受到的数据变成八位并行数据送给CPU,这两种传输方式可以同步进行,也可以单独进行。

 

1.29针D型连接器

图29针D型连接器

国际电子工业协会制定RS-232串行通信标准接口,它采用平衡通信接口,即在发送端将TTL电平信号转换成差分信号输出,接收端将信号变成TTL信号输入,提高了抗干扰能力和传输距离。

目前微机都采用9针的D型连接器。

RS-232通过它传送数据,还可以对双方的互传起协调作用。

在串行通信中,最简单的通信只需连接TXD、RXD、GND这3跟线。

其余针脚的使用如下:

RTS:

请求发送信号,输出信号。

CTS:

清除传送,是对RTS的响应信号,输入信号。

DCD:

数据载波检测,输入信号。

DSR:

数据通信准备就绪,输入信号。

DTR:

数据终端就绪,输出信号。

 

1.3MAX232芯片介绍

图3MAX232

RS-232的EIA标准是以正负电压来表示逻辑状态的,与TTL以高低电平表示逻辑状态的规定不同。

RS-232逻辑1的电压范围是-3V到-15V,逻辑0的范围是+3V到+15V.因此,为了能够同计算接口或终端的TTL器件连接,必须在EIA电平与TTL电平之间进行变换。

电平转换芯片MAX232可以实现TTL电平与RS-232电平双向转换。

它内部有电压倍增电路和转换电路,仅需外接5个电容和+5V电源便可工作,使用方便简单。

在本次仿真设计中,由于2个虚拟串口的电压标准是一样的,因此可以不需要用MAX232进行电平之间的转换。

在实际中,如果两串口的标准不一样,是需要进行转换的。

 

2串口通信设计

2.1串口通信概述

串行通信的数据或字符是一帧一帧地传送的,在异步通信中,一帧数据先用一个起始位“0”表示字符的开始,然后是5到8位数据,规定低位在前,高位在后,接下来是奇偶校验位,最后一个停止位“1”表示字符的结束。

在串行通信中,如果某机的通信接口只能发送或接收,这种单向传送的方法称单工传送。

反之,则为双工传送。

在双工传送中,如果接收和发送不能同时进行,只能分时接收和发送,这种传送称为半双工传送。

反之,称为全双工传送。

在半双工传送中,收发使用一条线,各机内还需要换向器,以完成接收发送方向的切换。

2.2串行接口基本任务

CPU只能处理并行数据,要进行串行通信,必须接串行接口,并遵从串行通信协议。

串行接口的基本任务就是实现数据格式化,进行串行数据和并行数据的转换,控制数据的传输速率,进行传送错误检测。

2.3串行接口工作原理

51单片机串行口主要由两个数据缓冲寄存器SBUF和一个输入移位寄存器组成,其内部还有一个串行控制寄存器SCON和一个波特率发生器。

特殊功能寄存器SCON用以存放串行口的控制和状态信息。

根据控制字决定波特率发生器的时钟源是来自系统时钟,还是定时器。

设有两个单片机串行通信,甲机发送,乙机接收,串行通信中,甲机CPU向SBUFF写入数据,在发送控制器的控制下,按设定的波特率,每来一个移位时钟,数据移出一位,由低位到高位移出,移出的数据到达乙机,乙机按设定的波特率,每来一个移位时钟移入一位,由低位到高位移入SBUFF,如果两边的移位速度不一致,会造成数据位的丢失,因此,两边的波特率必须一致。

2.4串行接口控制寄存器

串行通信的方式选择。

接收和发送控制及串行口的标志均由专用寄存器SCON控制和指示。

SM0,SM1:

串行口工作方式控制位。

SM2:

多机通信控制位。

REN:

串行接收允许位。

TB8:

在方式2,3中,该位是发送机要发送的第9位数据。

RB8:

在方式2,3中,该位是接收机接收到的第9位数据。

TI:

发送中断标志位。

发送前必须用软件清零,发送过程中TI保持零电平,发送完一帧数据后,硬件自动置1。

如果再发送,需先用软件清零。

RI:

接收中断标志位。

接收前必须用软件清零,接收过程中RI保持零电平,接收完一帧数据后,片内自动置1。

如果再接收,需先用软件清零。

2.5串行接口工作方式

51系列单片机的串行通信有4种工作方式,通过编程进行选择。

方式0:

波特率固定的方式。

方式1:

波特率可变的10位异步通信方式,波特率由定时器提供。

X为定时器计数初值。

方式2:

波特率固定的11位异步通信方式。

方式3:

引脚使用与数据格式同方式2,波特率计算公式同方式1。

 

3Protues软件介绍及使用

Protues软件是一款EDA工具软件。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。

Protues从原理图布图,代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

首先,打开元件库,在左上角输入关键字,在对话框就可以看到元件名,点击元件名,在右上角就可以看到元件及其引脚图。

关闭元件搜索框,就可以在布件页面放置元件,右键单击元件,选择编辑属性,就可以编辑元件的属性。

在protues左边框,可以选择各种方式方便使用。

连好线路后,点击左下角开始仿真,即开始仿真,如有错误,会有提示。

接下来介绍如何使用Keil软件生成hex文件,以便于Protues仿真。

在keil界面,新建一个工程,在工程中新建一个文本输入,在其中写入代码,左上角有编译、仿真快捷键,如有错误,会有提示,修改代码,直到编译成功。

然后,单击“OptionsforTarget”,选择“Output”,将“CreatHexFile”复选框选上,单击“ok”,就生成了Hex文件。

在protues中将单片机芯片属性界面打开,选择刚才生成的Hex文件,单击“确定”。

就完成了Protues的代码输入,接下来就可以进行仿真了。

 

4软件设计

程序流程图如下:

图4程序流程图

 

代码如下:

#include

#defineucharunsignedchar

sbitK1=P1^4;

ucharflag=0,a=0,i;

ucharcodetable[]="Iwanttogohome";

voidinit()

{

TMOD=0X20;//选择定时器T1,工作方式0

TH1=0xfd;//提供高8位计数初值

TL1=0xfd;//提供低5位计数初值

TR1=1;//控制T1定时器开启

SM1=1;

SM0=0;//SCON方式选择,方式1

REN=1;//允许串行接收

EA=1;//允许中断

ES=1;//允许串行口使用

}

voidsend_str()

{

unsignedchari=0;

while(table[i]!

='\0')

{

SBUF=table[i];

while(!

TI);

TI=0;

i++;

}

}

voidmain()

{

init();

while

(1)

{

if(K1==0)

{

ES=0;

send_str();

while(!

K1);

}

if(flag==1)

{

ES=0;

SBUF=a;

while(!

TI);

TI=0;

ES=1;

flag=0;

}

}

}

voidser()interrupt4

{

RI=0;

a=SBUF;

flag=1;

}

这一次设计串行口工作方式是方式1,波特率可变,与定时器的计数初值有关。

5仿真结果

PC机和单片机的串口通信系统调试一般通过一根串口连接线把PC机和单片机连接在一起。

在本次设计中,使用软件虚拟一个串口进行仿真。

图5虚拟串口软件

在这里,选择将COM1和COM2连接在一起,表示这两个数据口用一根连接线连接在一起,在protues中设计好串口名字,就可以开始仿真。

 

图6串口助手调试

接下来使用串口助手进行调试,在发送区输入字符,点击发送,就可以在Protues的虚拟终端显示出来,表示PC机的数据放送到单片机。

图7虚拟终端显示

当按下按键的时候,系统响应中断,将单片机中的数据发送到PC机,仿真结果在虚拟终端上显示出来。

 

6心得体会

通过本次课程设计,我明白了模拟量与数字量之间的转换,温度的采集,以及显示电路的设计与原理。

在本次课程设计过程中,遇到的问题首先是芯片的使用,例如,AD590的特点是流过器件的电流即为器件所处环境的热力学温度等,ICL7135芯片的典型应用电路,很方便的将模拟量转化为BCD码,显示电路中74LS47的使用特点以及译码器与数码管之间的接法,这些问题在课程设计之前,都不清楚,通过查资料,相关书籍,以及问同学,将这些问题一一解决,为电路的设计做好了铺垫。

在设计电路过程中,器件参数的选择很重要,例如,在温度采集电路中,为使当温度为零时,输出电压为零所加的偏移电阻,在显示电路中,为防止数码管烧坏所加的限流电阻,A/D转换电路中,典型应用所给出的器件参数,这些参数的选择都是有一定理论依据的。

在实物制作过程中,电子器件的布局是否合理,是否美观都是需要考虑的因素,元器件较多,而且线路多而繁杂,焊接时,容易将本不该相连的两点连接在一起,尤其是显示电路部分,焊接时,需要十分小心。

在检验实物的过程中,可能由于二级管电流过大,将数码管烧坏,这些问题在今后的设计中需要注意。

这次课程设计,我收获很大,提高了我遇到问题解决问题的能力,加强了与同学就学习问题的交流讨论,加强了自己的动手能力,明白了团队合作的作用,同时也认识到了自己不足,在电路设计,元件参数的选取,焊接实物的问题上仍然存在不足,最重要的是认识到了光有理论知识是远远不够的,理论需要结合实践才能发挥最大的作用。

这些问题的暴露让我知道了以后努力的方向,在加强理论学习的基础上,提高自己解决问题的能力,提高自己动手实践的能力。

 

参考文献

[1]李群芳.单片微型计算机.北京:

电子工业出本社,2008

[2]伍时和.数字电子技术基础.北京:

清华大学出版社,2009

[3]胡乾斌.单片微型计算机原理与应用.武汉:

华中科技大学出版社,2006

[4]李刚.51系列单片机系统设计与应用技巧.北京:

北京航空航天大学出版社,2004

[5]孙育才.MCS-51系列单片微型计算机及其应用.南京:

东南大学出版社,1997

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2