课程设计 利用RS232实现单片机与PC间的串行通信Word文档格式.docx
《课程设计 利用RS232实现单片机与PC间的串行通信Word文档格式.docx》由会员分享,可在线阅读,更多相关《课程设计 利用RS232实现单片机与PC间的串行通信Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
1引言
1.1设计目的
本设计包括确定控制任务、系统总体方案设计、硬件系统设计、软件程序的设计等,以便使学生掌握有关单片机控制的设计思想和设计方法。
为学生今后从事单片机控制系统开发工作打下基础。
1.2设计内容和要求
本课程设计的基本要求是使学生全面掌握单片机控制系统设计的基本理论熟悉掌握MCS-51系列单片机的编程方法,具体要求如下:
利用电平转换器件RS-232实现单片机与PC间的串口通信,利用虚拟终端仿真单片机与PC间的串行通信。
PC先发送从键盘输入的数据,单片机接收后会发给PC机,双方收发数据是相同的单片机将收发到的30-39H间的数据转换成0-9显示,其他数据直接显示为字符的ASCII码。
2单片机的介绍
2.1单片机的基本概念
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。
单片微型计算机简称单片机,是典型的嵌入式微控制器,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比单片机只缺少了I/O设备。
由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算机、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都用1-2部单片机。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!
单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
2.2基本结构
单片机由运算器、控制器、存储器、输入输出设备构成。
2.3硬件特性
1、主流单片机包括CPU、4KB容量的ROM、2个16位定时器/计数器、4个8位并行口、全双工串口行口、ADC/DAC、SPI、I2C、ISP、IAP;
2、系统结构简单,使用方便,实现模块化;
3、单片机可靠性高;
4、处理功能强,速度快;
5、低电压,低功耗,便于生产便携式产品;
6、控制功能强;
7、环境适应能力强。
2.4应用分类
单片机作为计算机发展的一个重要分支领域,根据目前发展情况,从不同角度单片机大致可以分为通用型/专用型,总线型/非总线型及工控型/家电型。
3系统设计内容
3.1从PROTEUS库中选取元器件及结构框图
1.AT89C51/AY89C2051:
单片机如图1所示:
图1AT89C2051:
单片机
2.RES:
电阻如图2所示:
图2RES:
电阻
3.7SEG-BCD-RED:
红色BCD数码管如图3所示:
图37SEG-BCD-RED:
红色BCD数码管
4.CAP、CAP-ELEC:
电容、电解电容如图4所示:
图4CAP、CAP-ELEC:
电容、电解电容
5.CRYSTAL:
晶振如图5所示:
图5CRYSTAL:
晶振
6.MAX232/MAX220:
RS-232收发器如图6所示:
图6MAX232:
RS-232收发器
3.2原理图中用到的部分元器件的功能、原理及引脚说明
1.串口模型COMPIM及其引脚功能如图7所示:
图7串口模型COMPIM及其引脚功能
2.MAX232/MAX220:
RS-232收发器的功能
实现电平转换,也就是将CMOS电平转换成TTL电平
3.RS232(DB9)引脚定义
(1):
DCB:
载波检测。
主要用于Modem通知计算机其处于在线状态,即Modem检测到拨号音,处于在线状态。
(2):
RXD:
此引脚用于接收外部设备送来的数据;
在使用Modem时,会发现RXD指示灯在闪烁,说明RXD引脚上有数据进入。
(3):
TXD:
此引脚将计算机的数据发送给外部设备;
在使用Modem时,会发现TXD指示灯在闪烁,说明计算机正在通过TXD引脚发送数据。
(4):
DTR:
数据终端就绪;
当此引脚高电平时,通知Modem可以进行数据传输,计算机已经准备好。
(5):
GND:
信号地;
(6):
DSR:
数据设备就绪;
此引脚高电平时,通知计算机Modem已经准备好,可以进行数据通讯了。
(7):
RTS:
请求发送;
此引脚由计算机来控制,用以通知Modem马上传送数据至计算机;
否则,Modem将收到的数据暂时放入缓冲区中。
(8):
CTS:
清除发送;
此引脚由Modem控制,用以通知计算机将欲传的数据送至Modem。
(9):
RI:
Modem通知计算机有呼叫进来,是否接听呼叫由计算机决定
4.MAX232原理
MAX232芯片是专门为电脑的RS-232标准串口设计的接口电路,使用+5V单电源供电。
内部结构基本可分三个部分:
第一部分是电荷泵电路。
由1、2、3、4、5、6脚和4只电容构成。
功能是产生+12V和-12V两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。
由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;
DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。
15脚DNG、16脚VCC(+5V)。
5.AT89C2051单片机引脚介绍
AT89C2051为20引脚小型封装,2K内部程序存储器,15个可编程I/O口线,没有P0口和P2口的16根I/O线,内部集成了一个模拟比较器。
AT89C2051单片机的引脚排列如图8所示:
图8AT89C2051单片机的引脚排列
芯片共有20个引脚,引脚的排列顺序为从靠芯片的缺口(见上图)左边那列引脚逆时针数起,依次为1、2、3…20,在单片机的20个引脚中,电源引脚2根,外接晶体振荡器引脚2根,复位引脚1根以及P1、P3口可编程I/O引脚15根。
(1)主电源引脚(2根)
VCC(Pin20):
电源输入,接+5V电源
GND(Pin10):
接地线
(2)外接晶振引脚(2根)
XTAL1(Pin5):
片内振荡电路的输入端
XTAL2(Pin4):
片内振荡电路的输出端
(3)控制引脚(1根)
RST/VPP(Pin1):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位
(4)可编程输入/输出引脚(15根)
P1口:
8位准双向I/O口线,P1.0—P1.7,共8根
P3口:
8位准双向I/O口线,P3.0—P3.5、P3.7,共7根
4硬件设计
4.1系统各组成部分硬件设计
(1)、硬件设计电路图如图9所示:
图9硬件设计电路
4.2电路图的原理
(1)、利用电平转换器件RS-232实现单片机与PC间的串行通信。
本次试验利用虚拟终端仿真单片机与PC间的串行通知。
PC先发送从键盘输入的数据,单片机接收后回发给PC机,双方收发数据是相同的单片机将接收30-39H间的数据转换成0-9显示,其他数据直接显示为字符的ASCII码。
(2)、4个虚拟终端,分别给单片机的串行口及COMPIM的2脚、3脚,COMPIM的3脚与虚拟终端的发送端TXD相连,将单片机串口的RXD,TXD以及COMPIM的2脚分别接入虚拟终端的RXD,以此监视单片机和串口模型收、发数据。
(3)、PCS代表计算机发送数据,PCR用来监视PC接收到的数据,SCMS、SCMR分别为单片机发送、接收终端,分别监视单片机发送、接收数据。
4.3原理图中各引脚说明
(1)、AT89C2051单片机引脚图如图10所示
图10AT89C2051单片机引脚图
(2)、MAX232引脚图如图11所示:
图11MAX232引脚图
5软件设计
5.1软件设计流程图如图12所示:
图12软件设计流程图
5.2源程序设计
ORG0
ORG30H
SJMPSTART
START:
MOVTMOD,#20H;
设计定时方式寄存器
MOVPOCN,#0;
设置电源制寄存器
MOVTH1,#0E6H;
装初值
MOVTL1,#0E6H;
SETBTR1;
开中断
CLRES;
中断允许
MOVSP,#5FH;
装入指针初值
LOOP:
MOVSCON,#50H;
串行口工作于方式1
JNBRI,$;
判断RI=1?
CLRRI;
清零
MOVA,SBUF;
读进收到的数据
PUSHACC
CJNEA,#3AH,RANG1;
判断A的内容是否等于48
RANG1:
JCRANG3;
判断CY=1?
CJNEA,#3AH,RANG2;
判断A的内容是否等于58
RANG2:
JNCRANG3;
判断CY=0?
CLRC;
CY=0
SUBBA,#30H;
转换为ASCII码
RANG3:
MOVP1,A;
输出到数码管显示
POPACC
RANG4:
NOP
MOVSBUF,A;
启动发送
JNBTI,$;
判断TI=1?
END
6调试和结果分析
6.1调试结果
(1)、在刚开始设计完原理图时,编译运行时出现了如图13所示,表示该程序是错误的,经过我们的一起研究发现了程序的末尾没有加上END结束标志。
图13编译运行图
(2)、程序调试完了之后,在运行时出现了如图14所示,在PCS中输入数字和字符而在数码管、PCR、SCMR、SCMS没有显示跟踪结果。
在我们的研究和探讨中发现了我们没有在串行口的3引脚发送数据端没有加上标记PCS。
图14运行图
(3)、在原理图基本调试出来的时候,运行在PCS中输入数字“8”我们发现在PCR中没有显示跟踪结果,如图15所示,最后我们把PCR的属性改成如下所示才把原理图和程序调试出来。
调试成功后的运行图如图16所示:
图15编辑元件图
图16调试成功后的运行图
6.2实验结果
(1)、在PCS中输入“8”时,结果如图17所示:
图17结果图
(2)、当PCS输入数据位“2”时,运行结果如图18所示:
图18结果图
(3)、当PCS输入数据为“a”时,运行结果如图19所示:
图19结果图
(4)、当PCS输入数据为“空格”时,运行结果如图20所示:
图20结果图
(5)、当PCS输入数据为“?
”时,运行结果如图21所示:
图21结果图
7课程设计体会
通过此次的课程设计,让我对单片机有了更深一层的认识。
通过上网查找资料,我学到了很多的关于单片机、硬件和数字芯片的知识,让我受益匪浅。
在程序调试过程中,我们克服困难,经多次努力我们的实验运行成功。
这次的课程设计让我对单片机的理论有了更加深入的了解,使我更深刻的体会到了理论联系实际的重要性,还学会了如何去培养我的创新精神,从而不断地战胜自己,超越自己。
参考文献
1.孙涵芳.MCS-51/96系列单片机原理及应用(修订版).北京航空航天大学出版社.1994
2.李朝青.单片机原理及接口技术(第3版).北京航空航天大学出版社.2005