能力拓展.docx
- 文档编号:12260122
- 上传时间:2023-04-17
- 格式:DOCX
- 页数:15
- 大小:108.78KB
能力拓展.docx
《能力拓展.docx》由会员分享,可在线阅读,更多相关《能力拓展.docx(15页珍藏版)》请在冰豆网上搜索。
能力拓展
目录
摘要1
1设计原理2
1.1AT89C512
1.2RS2322
1.3串口通信3
1.3.1串口通信基础3
1.3.2串口通信4种工作方式4
1.3.3串口通信波特率5
2系统设计7
2.1系统通信协议7
2.2系统流程图7
3实验仿真与结果分析8
3.1仿真软件Proteus简介8
3.2仿真电路9
3.3仿真代码9
3.4仿真结果及分析11
3.5仿真结果分析12
4心得与体会13
参考文献14
摘要
随着计算机系统的应用和微机网络的发展,通信功能越来越显得重要。
这里所说的通信是指计算机与外界的信息交换。
通信既包括计算机与外部设备之间,也包括计算机和计算机之间的信息交换。
由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输。
对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备,如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍。
在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU之间的通信一般都是串行方式,所以串行接口是微机应用系统常用的接口。
许多外设和计算机按串行方式进行通信,这里所说的串行方式,是指外设与接口电路之间的信息传送方式,实际上,CPU与接口之间仍按并行方式工作。
本次能力拓展训练做的题目是:
基于串口通信的单片机仿真和C语言开发。
要求设计一种基于串口的数据收发模块,并学习使用Proteus中的VirtualTerminal。
要求进行电路仿真实验,并使用C语言进行程序的开发。
关键字:
串口通信,Proteus,单片机,虚拟终端
1设计原理
1.1AT89C51
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C51提供以下标准功能:
4k 字节Flash 闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
其主要特性为:
与MCS-51兼容,4K字节可编程FLASH存储器,寿命:
1000写/擦循环,数据保留时间:
10年,全静态工作:
0Hz-24MHz,三级程序存储器锁定,128×8位内部RAM,32可编程I/O线,两个16位定时器/计数器,5个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时钟电路
1.2RS232
RS-232-C是美国电子工业协会EIA(ElectronicIndustryAssociation)制定的一种串行物理接口标准。
RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。
RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道。
在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。
RS-232-C标准规定的数据传输速率为50、75、100、150、300、600、1200、2400、4800、9600、19200、38400波特。
RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。
传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的RS232(9针)接口通信。
9芯的各个引脚及功能如下:
针脚
信号
定义
作用
1
DCD
载波检测
ReceivedLineSignalDetector(DataCarrierDetect)
2
RXD
接收数据
ReceivedData
3
TXD
发送数据
TransmitData
4
DTR
数据终端准备好
DataTerminalReady
5
SGND
信号地
SignalGround
6
DSR
数据准备好
DataSetReady
7
RTS
请求发送
RequestToSend
8
CTS
清除发送
ClearToSend
9
RI
振铃提示
RingIndicator
1.3串口通信
1.3.1串口通信基础
串口通信的数据以帧的形式发送,字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等四部分组成。
在串行通信中,发送端一帧一帧发送信息,接收端一帧一帧接收信息。
两相邻字符帧之间可以无空闲位,也可以由若干空闲位,自行定义。
图1表示每一帧的结构:
8位数据
起始位奇偶校验停止位
0
D0
D1
D2
D3
D4
D5
D6
D7
0/1
1
第n字符帧(共11位)
图1帧结构
串口通信有单工,半双工和全双工三种通信制式。
其中单工是指数据传输仅能沿一个方向,不能实现反向传输。
半双工是指数据传输可以沿两个方向,但需要分时进行。
全双工是指数据可以同时进行双向传输。
三种通信制式工作方式如下图2所示:
图2通信制式
1.3.2串口通信4种工作方式
MCS-51单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同场合的需要。
其中,方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;工作方式1多用于双机之间或与外设电路的通信;方式2、3除有方式1的功能外,还可以作多机通信,以构成分布式多微机系统。
串行端口有一个数据寄存器SBUF,在特殊功能寄存器中的字节地址为99H,该寄存器为发送和接收所共用。
串行端口的波特率可以用程序来控制。
在不同工作方式中,由时钟振荡频率的分频值或由定时器T1的定时溢出时间确定,使用十分方便灵活。
串口控制寄存器输入在(REN)=1时,串行口采样RXD引脚,当采样到1至O的跳变时,确认是串行发送来的一帧数据的开始位0,从而开始接收一帧数据。
只有当8位数据接收完,并检测到高电平停止位后,只有满足①(R1)=0;②(SM2)=0或接收到的第9位数据为1时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;否则信息丢失。
所以在方式1接收时,应先用软件清零RI和SM2标志。
一、方式0
方式0时,串行口为同步移位寄存器的输入输出方式。
主要用于扩展并行输入或输出口。
数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。
发送和接收均为8位数据,低位在先,高位在后。
波特率固定为fosc/12。
二、方式1
方式1是10位数据的异步通信口。
TXD为数据发送引脚,RXD为数据接收引脚,传送一帧数据的格式如图所示。
其中1位起始位,8位数据位,1位停止位。
三、方式2和方式3
方式2或方式3时为11位数据的异步通信口。
TXD为数据发送引脚,RXD为数据接收引脚。
串行口工作方式如下图3所示。
图3串口工作方式
1.3.3串口通信波特率
串行口的通信波特率恰好反映串行口传输数据的速率。
通信波特率的选用,不仅和所选通信设备、传输距离有关,还受传输线状况所制约。
通过软件可对单片机串行口编程为四种工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的,由定时器T1的溢出率来决定。
1、方式0的波特率
工作方式0时,移位脉冲由机器周期的第6个状态周期S6给出,每个机器周期产生一个移位脉冲,发送或接收一位数据。
因此,波特率是固定的,为振荡频率的1/12,不受PCON寄存器中SMOD的影响。
用公式表示为:
工作方式0的波特率=fosc/12
2、方式2的波特率
工作方式2时,移位脉冲由振荡频率fosc的第二节拍P2时钟(即fosc/2)给出,所以,方式2波特率取决于PCON中的SMOD位的值,当SMOD=0时,波特率为fosc的1/64;当SMOD=1时,波特率为fosc的1/32,用公式表示为;
工作方式2波特率=(2SMOD/64)×fosc
3、工作方式1和方式3的波特率
在这两种方式下,串行口波特率是由定时器的溢出率决定的,因而波特率也是可变的。
相应公式为:
波特率=(2SMOD/32)*定时器T1溢出率
当T1作为波特率发生器时,最典型的用法是使T1工作在自动再装入的8位定时器方式(即方式2,且TCON的TR1=1,以启动定时器)。
这时溢出率取决于TH1中的计数值。
T1溢出率=fosc/{12×[256-(TH1)]}
在单片机的应用中,常用的晶振频率为:
12MHz和11.0592MHz。
所以,选用的波特率也相对固定。
常用的串行口波特率以及各参数的关系如下图4所示。
图4波特率与定时器的关系
2系统设计
2.1系统通信协议
通信协议是通信设备在通信前的约定。
单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。
假定我们需要在PC机与单片机之间进行通信,在双方程式设计过程中,有如下约定:
0xA12:
单片机从PC机接收一段控制数据;
0xA23:
单片机操作成功信息。
在系统工作过程中,单片机接收到PC机数据信息后,便查找协议,完成相应的操作。
当单片机接收到0xA12时,单片机等待从PC机接收一段控制数据;当PC接收到0xA23时,就表明单片机操作已经成功。
2.2系统流程图
单片机的通信程序采用C52编程,通信以中断的方式进行。
其系统主程序流图如图5所示:
图5系统主程序流图
单片机接收中断服务流程如下图6所示:
图6单片机接收中断服务流程图
3实验仿真与结果分析
3.1仿真软件Proteus简介
Proteus是英国Labcenter公司开发的电路分析与仿真软件。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
该软件的特点是:
①集原理图设计、仿真和PCB设计于一体,真正实现从概念到产品的完整电子设计工具。
②具有模拟电路、数字电路、单片机应用系统、嵌入式系统(不高于ARM7)设计与仿真功能。
③具有全速、单步、设置断点等多种形式的调试功能。
④具有各种信号源和电路分析所需的虚拟仪表。
⑤支持KeilC51uVision2、MPLAB等第三方的软件编译和调试环境。
⑥具有强大的原理图到PCB板设计功能,可以输出多种格式的电路设计报表。
拥有PROTEUS电子设计工具,就相当于拥有了一个电子设计和分析平台。
3.2仿真电路
实际中,我采用的仿真电路图如下图7所示。
图7系统仿真图
3.3仿真代码
#include
#defineucharunsignedchar
#defineuintunsignedint
unsignedcharflag,a,i;
ucharcodetable[]="Mynameis";
voidinit()
{
TMOD=0X20;
TH1=0XFd;
TL1=0XFd;
TR1=1;
REN=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
voidmain()
{
init();
while
(1)
{
if(flag==1)
{
ES=0;
for(i=0;i<11;i++)
{
SBUF=table[i];
while(!
TI);
TI=0;
}
SBUF=a;
while(!
TI);
TI=0;
ES=1;
flag=0;
}
}
}
voidser()interrupt4
{
RI=0;
a=SBUF;
flag=1;
}
3.4仿真结果及分析
串口调试助手仿真结果如下图8所示。
图8串口调试助手仿真结果
虚拟终端接收仿真结果如下图9所示。
图9虚拟终端接收仿真结果
3.5仿真结果分析
由仿真结果可知,虚拟终端接收到了单片机发出的字符信息,实现了单片机与PC之间的串口通信。
此次程序设计的主要目的是输出MynameisX字符,其中X从键盘键入。
由仿真结果分析可得,实验仿真得到了预期的结果,当从键盘键入”L”时,在串口调试串口中输出“MynameisL”。
数据传输大致分为单片机接收数据、单片机发送数据、PC接收数据几个阶段,每个阶段都通过中断程序来实现。
此次仿真中我们使用的是11.0592MHz的晶振,这样我们得到的初值为整数,从而避免了实验带来误差。
通过计算,得到初值为TH1=0XFd,TL1=0XFd,采用工作方式1。
4心得与体会
本次能力拓展训练做的题目是:
基于串口通信的单片机仿真和C语言开发。
要求设计一种基于串口的数据收发模块,并学习使用Proteus中的VirtualTerminal。
要求进行电路仿真实验,并使用C语言进行程序的开发。
串口通信应该算是单片机的重难点知识了,所以此次能力训练不敢有半点马虎,开始前查阅了大量的资料。
确定了具体要做什么以后,就开始编写实验代码,以及搭建仿真电路,其中最麻烦的要算写程序了。
单片机各引脚的功能,串口通信相关寄存器的设置,串口中断程序的编写以及各种时序关系都需要弄懂,才能顺利的编写出来,其中遇到了很多的困难。
开始时我使用的是12MHZ的晶振,这样计算出来的初值就不是整数,从而造成了误差。
如果波特率选择不当,则会因误差过大而不能达到实验的目的。
写程序时要特别注意各个语句之间的联系以及功能,这样才能完全理解程序,修改起来也比较容易。
虽然此次能力拓展训练花费的时间和精力都很多,但是收获也很大,对串口通信有了更加深刻的认识和研究。
同时也意识到,虽然平时在课堂上感觉学的还行,但真正到用的时候还是会感觉很吃力。
只有经常进行相关的实际训练,才能真正的学以致用。
参考文献
[1]李群芳,张士军,黄建.《单片微型计算机》.北京:
电子工业出版社,2009
[2]郭天祥.《51单片机C语言教程》.北京:
电子工业出版社,2009
[3]胡汉才.《单片机原理及系统设计》.北京:
清华大学出版社,2001
[4]晁阳.《单片机MCS-51原理及应用开发教程》.北京:
清华大学出版社,2007
[5]李朝青.《单片机原理及接口技术》.北京:
北京航空航天大学出版社,2007
[6]余锡存.《单片机原理与接口技术》.西安:
西安电子科技大学出版社,2003
本科生课程设计成绩评定表
姓名
刘冬
性别
男
专业、班级
电信1005班
题目:
基于串口通信的单片机实验和C语言开发
答辩或质疑记录:
成绩评定依据:
最终评定成绩(以优、良、中、及格、不及格评定)
指导教师签字:
2014年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 能力 拓展