单片机串行通信接口设计课程设计2大学毕业设计论文.docx
《单片机串行通信接口设计课程设计2大学毕业设计论文.docx》由会员分享,可在线阅读,更多相关《单片机串行通信接口设计课程设计2大学毕业设计论文.docx(16页珍藏版)》请在冰豆网上搜索。
单片机串行通信接口设计课程设计2大学毕业设计论文
单片机串行接口的设计
摘要
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,此次设计将采用通用80C51完成。
单片机的串行口是一种比较重要的通信接口,单片机的串行口应用非常广泛,可以进行接口扩展、串行通信等。
在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯,RS-232-C接口(又称EIARS-232-C)是目前最常用的一种串行通讯接口。
单片机与PC机的通信是通信技术的基础,掌握单片机与PC机的通信是通信原理对以后的学习具有深远意义。
因此此次课程设计很有必要。
关键词:
单片机,串口通信,RS232
目录
1单片机简介1
2硬件设计1
2.1整体设计1
2.2单片机选择2
2.2.1AT89C512
2.2.2AT89C51功能特性描述3
2.2.3AT89C51引脚功能说明3
2.2.4AT89C51的串行接口4
2.2.5串行口工作方式的选择5
2.3RS-232简介6
2.3.1RS-232电平转换器—MAX2326
2.3.2RS-232的接口信号7
3软件编程及调试7
3.1单片机通讯软件7
3.3调试9
总结12
致谢13
参考文献14
1单片机简介
如果将8位单片机的推出作为起点,那么单片机的发展历史大致可分为以下几个阶段。
第一阶段(1976-1978):
单片机的控索阶段。
以Intel公司的MCS–48为代表。
MCS–48的推出是在工控领域的控索,参与这一控索的公司还有Motorola、Zilog等,都取得了满意的效果。
这就是SCM的诞生年代,“单机片”一词即由此而来。
第二阶段(1978-1982)单片机的完善阶段。
Intel公司在MCS–48基础上推出了完善的、典型的单片机系列MCS–51。
第三阶段(1982-1990):
8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。
Intel公司推出的MCS–96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。
随着MCS–51系列的广应用,许多电气厂商竞相使用80C51为内核,将许多测控系统中使用的电路技术、接口技术、多通道A/D转换部件、可靠性技术等应用到单片机中,增强了外围电路路功能,强化了智能控制的特征。
第四阶段(1990—):
微控制器的全面发展阶段。
随着单片机在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。
2硬件设计
2.1整体设计
在PC系统中都装有异步通信适配器,利用它可以实现异步串行通信。
适配器的核心元件是可编程的intel8251芯片,它使PC有能力与其他具有RS-232标准的接口的计算机或设备进行通信,而MCS-51单片机本身具有一个双全工的串行口,因此只要配上电平转换电路就可以和RS-232接口组成一个简单的通信通道。
简单的PC与单片机通信只要3根线就可以了,单片机的TXD、RXD与PC的RXD、TXD分别相连,连接地线。
由于51系列单片机的串行口使用的是TTL电平,因此在PC和单片机间要有RS-232电平转换电路,图1所示为PC与单片机的通信图。
图1PC机与单片机的通信图
2.2单片机选择
2.2.1AT89C51
图2单片机AT89C51
AT89C51是美国ATMEL公司生产的低电压,高性能的CMOS8位单片机。
片内4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存储器(RAM),器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。
AT89C51单片机可为提供许多高性价的应用场合,可灵活的应用于各种控制领域。
2.2.2AT89C51功能特性描述
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量中断结构,一个全双工串行通信口,片内震荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件的可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,窜行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但震荡器停止工作并禁止所有部件工作直到下一个硬件复位。
2.2.3AT89C51引脚功能说明
Vcc:
电源电压
GND:
地
P0口:
PO口是一组8位漏极开路行双向I/O口,也既地址/数据总线复用口。
P1口:
P1口是一个内部上拉电阻的8位双向I/O口,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
P2口:
P2口是一个带有内部上拉电阻的8位双向I/O口,
P3口:
P3口是一组带有内部上拉电阻的8位双向I/O口,,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
RST:
复位输出。
当震荡器工作时,RST引脚出现两个机器周期以上高电平使机器复位。
ALE/
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节,即使不访问外部字节,ALE仍时钟震荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟脉冲或用于定时目的。
:
程序存入允许(
)输出的是外部程序存储器的读选通信号。
EA/VPP:
外部访问允许。
·XTAL1:
震荡器反向放大器及内部时钟的输入端。
XAAL2:
震荡器反向放大器的输出端。
2.2.4AT89C51的串行接口
AT89C51单片机内部有一个全双工的串行接收和发射缓冲器(SBUFF),这两个在物理上独立的接收发射器,即可以接收也可以发射数据,但接收缓冲器只可以读出不能写入,而发送缓冲器只能写入不能读出,它们的地址是99H。
这个通信口即可以用于网络通信,亦可以实现串行异步通信,还可以构成同步移位寄存器使用。
如果在串行口的输入输出引脚上加上电平转换器,就可以方便的构成标准的RS-232接口。
SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发射器寄存器,可以实现全双工通信。
但这两个寄存器具有同一地址(99H)。
MCS-51的串行数据传输很简单,只要向缓冲器写入数据就可发送数据。
而从接收缓冲器读出数据既可接收数据。
SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据通信的控制,单元地址是98H,其结构格式如下:
表1SCON寄存器结构
SCON
D7
D6
D5
D4
D3
D2
D1
D0
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
位地址
9FH
9EH
8DH
9CH
9BH
9AH
99H
98H
特殊功能寄存器PCON,主要是CHMOS型单片机的电源控制而设置的专用寄存器,单元地址为87H其机构格式如下表:
表2特殊功能寄存器PCON
PCON
D7
D6
D5
D4
D3
D2
D1
D0
位符号
SMOD
GF1
GF0
PD
IDL
2.2.5串行口工作方式的选择
波特率(BoudRate)就是在串口通信中每秒能够发送的位数。
MSC-51串行端口在四种工作模式下有不同的波特率计算方法。
其中,模式0和模式2波特率计算很简单;模式1和模式3的波特率选择相同,故在此仅以工作模式1为例来说明串口通信波特率的选择。
在串行端口工作于模式1,其波特率将由计时/计数器1来产生,通常设置定时器工作于模式2(自动再加模式)。
在此模式下波特率计算公式为:
波特率=(1+SMOD)*晶振频率/(384*(256-TH1))
其中,SMOD——寄存器PCON的第7位,称为波特率倍增位;TH1——定时器的重载值。
在选择波特率的时候需要考虑两点:
首先,系统需要的通信速率。
这要根据系统的运作特点,确定通信的频率范围。
然后考虑通信时钟误差。
使用同一晶振频率在选择不同的通信速率时通信时钟误差会有很大差别。
为了通信的稳定,我们应该尽量选择时钟误差最小的频率进行通信。
发送开始时,先把起始位0输出到TXD引脚,然后发送移位寄存器的输出位(D0)到TXD引脚。
每一个移位脉冲都使输出移位寄存器的各位右移一位,并由TXD引脚输出。
第一次移位时,停止位“1”移入输出移位寄存器的第9位上,以后每次移位,左边都移入0。
当停止位移至输出位时,左边其余位全为0,检测电路检测到这一条件时,使控制电路进行最后一次移位,并置TI=1,向CPU请求中断。
2.3RS-232简介
2.3.1RS-232电平转换器—MAX232
图3RS-232电路
RS-232规定了自己的电气标准,由于它是在TTL电路之前研制的,因此它的电平不是+5V和地,而是采用负逻辑,即逻辑“0”:
+5V~—5V,逻辑“1”:
—5V~—15V。
因此RS-232不能和TTL电平直接相连,必须进行电平转换。
本设计选用MAX232。
管脚说明如下
①C0+、C0-、C1+、C1-是外接电容端;
②R1IN、R2IN是2路RS-232C电平信号接收输入端;
③RlOUT、R2OUT是2路转换后的TTL电平接收信号输出端,送8051的RXD接收端;
④TlIN、T2IN是2路TTL电平发送输入端,接8051的TxD发送端;
⑤TlOUT、T2OUT是2路转换后的发送RS-232C电平信号输出端,接传输线;
⑥V+经电容接电源+5V;
⑦V-经电容接地。
2.3.2RS-232的接口信号
RS-232规标准接口有25条线,4条数据线、11条控制线、3条定时线、7条备用和未定义线。
常用的只有9根,它们是:
2个数据信号:
发送TXD;接收RXD。
1个信号地线:
SG。
6个控制信号:
DSR;数传机(即modem)准备好,DataSetReady.
DTR;数据终端(DTE,即微机接口电路,如Intel8250/8251,16550)准备好,DataTerminalReady。
RTS;DTE请求DCE发送(RequestToSend)。
CTS;DCE允许DTE发送(ClearToSend),该信号是对RTS信号的回答。
DCD;数据载波检出,DataCarrierDetection当本地DCE设备(Modem)收到对方的DCE设备送来的载波信号时,使DCD有效,通知DTE准备接收,并且由DCE将接收到的载波信号解调为数字信号,经RXD线送给DTE。
RI;振铃信号Ringing当DCE收到交换机送来的振铃呼叫信号时,使该信号有效,通知DTE已被呼叫。
3软件编程及调试
双方约定:
波特率为9600bit/s,通信格式为8个数据位,一个停止位,无奇偶校验位。
3.1单片机通讯软件
单片机通过中断方式接收PC机发送的数据,并回送。
根据信息格式,可以设定单片机的串行口工作在方式1。
在串行口方式1中,波特率是由定时器T1产生的。
如晶振为12MHZ,
波特率为9600bit/s,这时T1工作在方式2(自动重新装入初值)。
经计算,T1的初始值应为F3H,SMOD=1。
程序框图如图所示:
图4程序流程图
程序设计如下:
#include
#defineuintunsignedint
#defineucharunsignedchar
ucharflag,a;
voidmain()
{
flag=0;
TMOD=0X20;
TH1=0XFD;
TL1=0XFD;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
while
(1)
{
if(flag==1)
{
ES=0;
flag=0;
SBUF=a;
while(!
TI);
TI=0;
ES=1;
}
}
}
voidchuan_kou()interrupt4
{
RI=0;
a=SBUF;
P0=SBUF;
flag=1;
}
3.3调试
程序调试如下,如有错误反复修改,直至没有错误\没有警告。
图5程序调试
通信过程调试如下,发送数据,波特率选择9600bit/s.并发送15字节数据。
图6串口调试
总结
通过这次单片机串行接口通信的课程设计让我学到了许多知识,首先,我对单片机有了新的认识,同时又开阔了思路,对通信的原理有了进一步的认识,理解了PC机与单片机通信的整个过程。
此外,还让我认识到了自己对以前所学过知识的不足。
在这次课程设计当中我碰到了许多问题,我曾经接触过这方面的书籍和实物,也对其有一些简单的了解。
但是却不知道具体的工作原理,当我拿到课程设计的题名后完全不知道该怎么办好,在指导老师王二平的悉心指导下,我明白了其中的道理,于此同时我通过大量地阅读和查阅相关的资料,和同学们交流后,学会了很多知识,最终此次课程设计才得以完成。
通过这次课程设计让我懂得了在以后的学习和工作当中要不断地完善自我、努力上进、刻苦钻研力争在电子信息行业有一个好的发展和结果。
致谢
课程设计是自己在大学中的一段经历,从设计之初的无从下手到设计工作的圆满完成,期间遇到了诸多的问题和困难。
但在王老师的细心指导和帮助下,通过自己的努力,最终这些问题与困难都得到了圆满解决。
使我可以按时课程设计并使自己的专业知识与综合能力都得到了相应的提高。
在课程设计过程中,王老师在百忙中对我的设计进行了指导。
他首先细致地为我解题;当我迷茫于众多的资料时,又为我提纲挈领、梳理脉络,使我确立了本文的框架。
感谢老师对我的课程设计不厌其烦的悉心指导。
在课程设计写作当中中,每次都能恰逢其时地得到老师的亲切指点。
从框架的完善,到内容的扩充;从行文的用语到格式的规范;王老师都严格要求,力求完美。
而且我还从王老师那里学到了严谨、务实、认真的工作态度和极强的敬业精神。
我再次为王老师的耐心付出表示感谢。
参考文献
[1]胡汉才.单片机原理与接口技术[M].北京:
清华大学出版社,1995.6.
[2]楼然苗等.51系列单片机设计实例[M].北京:
北京航空航天出版社,2003.3.
[3]何立民.单片机高级教程[M].北京:
北京航空航天大学出版社,2001.
[4]赵晓安.MCS-51单片机原理及应用[M].天津:
天津大学出版社,2001.3.
[5]肖洪兵.跟我学用单片机[M].北京:
北京航空航天大学出版社,2002.8.
[6]夏继强.单片机实验与实践教程[M].北京:
北京航空航天大学出版社,2001.
[7]于凤明.单片机原理及接口技术[M].北京:
中国轻工业出版社.1998.
[8]陈伟人.单片微型计算机原理与应用[M].北京:
清华大学出版社,2006.5.
[9]李广第.单片机基础[M].第1版.北京:
北京航空航天大学出版社,1999.
[10]徐惠民、安德宁.单片微型计算机原理接口与应用[M].第1版.北京:
北京邮电大学出版社,1996.
[11]何立民.从Cygnal80C51F看8位单片机发展之路[M].单片机与嵌入式系统应用,2002年,第5期:
P5~8.