1、基于MCS51的两片单片机之间的串行通信接口设计 昆 明 学 院 2013 届毕业论文(设计) 论文(设计)题目 基于MCS51的两片单片机之间的 串行通信接口设计 子课题题目 姓 名 学 号 201004090101 所属院系 自动控制与机械工程学院专业年级 10级通信技术专业 指导教师 任杰 2013年 5月摘 要随着电子技术的发展,单片机的应用也越来越多及越来越重要,而串行通信理论和单片机的开发相结合使电路板的线路少,成本低了,而且在远距离传输时,避免了很多条的线路特性不同而被广泛地使用。而RS232是一种比较成熟的串口,所以本次设计使用RS232串口,用串口通信时发送和接收到的每一个字
2、符实际上都是一次一位的传送的,每一位为1或者为0。本次设计就是要利用单片机来完成一个系统,实现两单片机之间的串行通信。并且使用DS18B20温度传感器,由一台单片机测量温度后传到另外一台单片机上显示。 串口通讯是单片机的一个重要应用,它既可以实现单片机对计算机的数据传输,同时计算机也可以对单片机进行控制。在本次设计中 ,我需要克服的问题有怎样把两串口与单片机连接和设置传输的格式,和怎样采集温度,怎样显示等问题,总之,在本次设计中我需要对单片机有一定的基础,同时数电和模电也需要好好温习下。对于画设计的系统电路图有很大的帮助。而且我希望通过本次设计,可以很好的学习单片机,同时喜欢上单片机的设计。其
3、中单片机中,MCS51单片机上的通用异步接收/发送器UART,通过RXD和TXD可与部电路进行串行异步通信,数据的发送由TXD端送出,数据的接收由RXD端输入。关键词:串行通信 RS-232串口 波特率AbstractMCU serial communication is a important application. In communication field, there are two types of data communication mode: parallel communication and serial communication. With the developm
4、ent of computer network and hierarchical distributed microcomputer application system, the function of the communication is more and more important. Communication refers to computer information transmission to the outside world, both transmission between the computer and the computer,Also includes t
5、he computer and external device, such as terminals, printers, and transmission between devices such as disk. Serial communication refers to using a data line, to transmit data a bit a ground in turn, each data holds a fixed length of time. Its just a few lines can exchange information between the sy
6、stems, especially used in computer and computer, computer and remote communication between the peripherals. When using a serial port communication sending and receiving to each and every one of the characters are in fact a a delivery, each one is or is zero.This design is to use single chip microcom
7、puter to complete a system, realize the serial communication between the two MCU. And USES DS18B20 temperature sensor, temperature is measured by a single-chip computer and send to other displayed on a single chip microcomputer. For single chip microcomputer serial port communication is of great sig
8、nificance, not only can realize the MCU data transmission to the computer side, but also can realize the computer control of the microcontroller. Due to its less cable, wiring simple, so in the long distance transmission, has been widely used, MCS - 51 series microcontroller with a universal asynchr
9、onous receiver/transmitter UART, RXD by pin P3. O and TXD P3.1 with external sound circuit B full duplex serial asynchronous communication, send data sent by the TXD end, when receiving data from the RXD input.Keywords: serial communications RS - 232 serial port baud rate第一章 绪论为了提高系统管理的先进性和安全性,计算机工业
10、自动控制和检测系统越来越多地采用集总分散系统。较为常见的形式是由一台作管理用的上位主计算机(主机)和多台直接参与控制检测的下位从计算机(从机)构成的主从式多机系统,主机和从机之间以通讯的方式来协调工作。主机的作用一是要向从机发送各种命令及参数;二是要及时收集、整理和分析从机发回的数据,供进一步决策和报表。从机被动地接收、执行主机发来的命令,并且根据主机的要求向主机回传相应的实时数据,报告其运行状态。1.1单片机的应用由于MCS-51系列单片机具有体积小、功能全、价廉、面向控制、应用软件丰富、技术在不断更新、开发应用方便等优点,可以适应各个应用领域的不同需要,因而具有极强的竞争力和生命力,应用前
11、景广阔。今后它仍将是科技界、工业界广泛选择应用的8位微控制器,仍将是单片机应用的主流机种。单片机的应用提高了机电设备的技术水平和自动化程度,对各行各业的技术改造和产品更新换代起到了重要的推动作用。1.单片机特别适用于机、电、仪一体的智能产品(1)单片机在日常生活中的应用(2)单片机在数据处理方面的应用 (3)单片机在智能化的仪器仪表中应用2.单片机在工业控制中的应用 单片机成功地应用于玩具、游戏机、无绳电话、充电器、按摩器、IC卡电话、IC卡水表、IC卡煤气表、IC卡电度表、流量温控仪表、家庭自动化、电子锁、电子秤、步进电机、防盗报警、电子日历时钟等这些日常生活的产品中。图形终端、彩色黑白复印
12、机、软盘及硬盘驱动器、磁带机、打印机的内部都采用单片机进行控制。在各类仪器仪表中(包括医疗器械、色谱仪、温度、湿度、流量、流速、电压、频率、功率、厚度、角度、长度、硬度、元素测定等)引入单片机。3.单片机在通讯方面的应用,例如:电视机,人造卫星,手机,电话等等。1.2 MCS-51 单片机的基本组成MCS-51单片机芯片有许多种,如8051、8031、8751、80C51、80C31等。它由8个部件组成:1、中央处理器CPU),核心。2、时钟电路,12MHz。3、程序存储器(ROM/EPROM),4KB。4、数据存储器(RAM),128B+128B SFR。5、并行I/O口(P0P3口),P0
13、和P2兼作外总线。6、串行口,全双工串行口。7、定时器/计数器,2个16位。8、中断系统,5个中断源,高级和低级两级优先级别。它们都是通过单一总线连接,并被集成在一块半导体芯片上,为单片微型计算机。1.3本课题要实现的内容(1)在系统中扩展RS232串行通信接口,使A、B两台MCS51单片机通过该接口相连接。(2)在A、B两台MCS51单片机各有1个按键。 A机K1,控制B机的两个LED闪烁。 B机K2,控制A机的一位数码管的显示加1。(3)使用DS18B20温度传感器,由B机测量温度后,传到A机显示。 第二章 串行通信的介绍2.1串行通信与并行通信串行通信使用的只是一根数据线,把数据一位一位
14、地一次传输,其中每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别试用于计算机和计算机、计算机和外部设备之间的远距离通信。数据在单条一位宽的传输线上,一比特接一比特地按顺序传送的方式称为串行通信。 在并行通信中,一个字节(8位)数据是在8条并行传输线上同时由源传到目的地;而在串行通信方式中,数据是在单条1位宽的传输线上一位接一位地顺序传送。这样一个字节的数据要分8次由低位到高位按顺序一位位地传送。图2-1 串行通信与并行通信的对比2.2同步通信与异步通信 异步通信是指通信的发送与接收设备使用各自的时钟控制数据的发送和接收过程。为使双方的收发协调,要求发送和接收设备
15、的时钟尽可能一致。异步通信以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)也是任意的,但每个字符中的各位是以固定的时间传送的。原理图如图2-2所示。 图2-2 异步通信原理图同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步。此时,传输数据的位之间的距离均为“位间隔”的整数倍,同时传送的字符间不留间隙,即保持位同步关系,也保持字符同步关系。发送方对接收方的同步可以通过外同步和自同步两种方法实现。以下为自同步原理图如图2-3所示。 图2-3 同步通信原理2.3 全双工方式与半双工方式MCS_51单片机有一个全双工串行口。全双工的串行通讯只需要一根输出线和一根输
16、入线。数据的输出我们把它称发送数据(TXD),数据输入时我们把它称接收数据(RXD)。串行通信中我们要解决两个技术问题,数据传送是一个、数据转换也是一个。数据传送我们需要解决送中的标准、传送中的格式和传送中的工作方式等问题。数据转换是指数据的串行和并行转换。具体说,在发送端,我们需要把并行传输的数据转换为串行传输的数据;但是在接收端,我们要把接收到的串行传输的数据转换为并行传输的数据,当数据发送及接收分流时,采用两根不同的传输数据线传送的时候,通信的双方都可以在同一时间进行发送和接收数据的操作,以这样的传送方式传送我们就称为全双工制式,在全双工方式中,通信系统中的每一端都设置了发送器及接收器,
17、因此,能控制数据同时地在两个方向上传送。全双工方式是不需要进行方向切换的,所以,没有因为切换操作而产生时间上的延迟,这些对不能有时间上的延误的交互式应用非常有利。但是此种方式要求通信的双方都有发送器及接收器,而且,我们需要两根数据线来传送数据信号。,前一个字符的回送过程及后一个字符的输入过程是同时进行的,也就是工作于全双工方式。图2-4是收发的波特率相同的。图2-4全双工制式如果采用同一根传输数据线既要作接收又要作发送,虽然数据是可以在两个不同的方向上传送,但是通信的双方却不能同时进行数据的收发,这样传送的方式就称为半双工制,如图2-5所示。采用的是半双工制式的时候,通信系统中每一端发送器及接
18、收器,是通过收和发的开关转接到通信线路上的,来进行的方向之间切换,所以,可能会产生时间上延迟。如图2-5。图2-5半双工方式2.4 串行异步通信 串行异步通信时,接收方不断地检测或监视串行输入线上的电平变化,当检测到有效起始位出现时,便知道接着是有效字符位的到来,并开始接收有效字符,当检测到停止位时,就知道传输的字符结束了。经过一段随机时间间隔之后,又进行下一个字符的传送过程。通常接收端的采样时钟周期要比传输字符的位周期短,常用的采样时钟频率为位频率的16倍,采取这种措施是为了提高抗干扰能力 ,在串行通信中,二进制数据以数字信号的信号形式出现,不论是发送还是接收,都必须有时钟信号对传送的数据进
19、行定位。在TTL标准表示的二进制数中,传输线上高电平表示二进制1,低电平表示二进制0,且每一位持续时间是固定的,由发送时钟和接收时钟的频率决定。2.5串行同步通信 同步通信指的是数据传送是以数据块做为单位的,字符和字符之间、字符内部的位和位之间都是同步的。同步串行通信的特点可以概括为:以数据块作为传送单位传送信息;在一个信息帧之内,字符和字符间没有间隔;因为每一次传输的数据块中包含的数据比较多,因而接收时钟和发送进钟是严格同步的,所以通常我们的单片机设计中要有同步时钟。同步串行通信的数据格式是每个数据块或信息帧由3部分组成:一个数据块为两个同步字符也就是信息帧,作为起始标志;n个连续传送的数据
20、;2个字节循环冗余校验码(CRC)。 2.6 串口通信参数设置串口通信最重要的参数是停止位和奇偶校验、波特率和数据位。要进行两个端口的通信,就必须配置这些参数:波特率:这是一个通信速度衡量的参数。表示的是每一秒钟传送的bit个数。比如100波特是表示每一秒钟发送100个bit。如果我们说到的是时钟的周期,那么指的就是波特率,例如协议需要2400波特率,那么时钟是2400Hz。这就是说串口通信在数据线上的采样率为2400Hz。通常电话线的波特率为36600,28800和14400。但是波特率是可以远远大于这些值的,同时波特率与距离是成反比的。高的波特率常用于放置得很近的仪器间通信,其中GPIB设
21、备的通信就是一个例子。数据位:是一个衡量通信中的实际数据位的一个重要参数。如果单片机发送了一个信息包时,实际的数据不可能一定就是8位,标准的值可能是5位、7位和8位。要怎样设置决定于你想传送什么样的信息。列如,一般标准ASCII码采用的是0127(7位)。扩展的ASCII码是0255(8位)。如果数据使用标准 ASCII码,那么他的一个数据包就是用7位数据的。每个包就是指一个字节,其中包括开始位和停止位,数据位和奇偶校验位。基于实际的数据位取决于通信协议标准,术语“包”指任何通信的情况。 停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有
22、其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样
23、使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。2.7 51单片机串行通信格式及波特率51单片机串口通信协议有4种方式,其中对1方式(8位),2,3方式(9位)的格式,中在每发送一个字节数据前都有一个起始位0,发送完毕一个字节后有一个停止位1,当想要在SBUF写一个字节的数据流时,单片机会自动加上起始位,当TI=1时,就会自动加上停止位。也就是在串口通信时只需要设置,串口中断,串口模式,以及串口中断函数的处理,还有就是波特率。在本次设计的串行通信中,发送和接收数据时,们要对数据的速率肯定要有一个约定,我通过软件可以对MCS-51单片机的串行口编
24、程制定四种工作方式。这其中,方式0及方式2的波特率是固定不变的,但是方式1和方式3的波特率是可以变的,它是由定时器T1溢出率决定。方式0时,移位时钟脉冲由56(即第6个状态周期,第12个节拍)给出,即每个机器周期产生一个移位时钟,发送或者接收一位数据。所以,波特率就可以是振荡频率的十二分之一,并不受PCON寄存器中SMOD的影响,即:方式0的波特率fosc/12。方式1及方式3的移位时钟脉冲是由定时器T1的溢出率决定的,故波特率是由定时器T1的溢出率和SMOD的值共同决定,也就是方式1及方式3的波特率就可以写成2SMOD/32*T1溢出率。这其中,溢出率是取决于计数的速率和定时器预置的值。计数
25、速率与TMOD寄存器中C/T的状态有关。当C/T0时,计数速率fosc/2;当C/T1时,计数速率取决于外部输入时钟频率。 第三章 系统设计3.1系统整体框图要实现两MCS51单片单片机之间的串行通信就需要两RS232,分别接在各自的单片机上,然后再通过他们相连,两单片机实现了通信,才可以继而实现开关控制LED闪烁和控制温度显示等。总之本课题研究的内容最主要是实现两单片机的通信,LED闪烁和温度控制是他实现的表现形式。由温度传感器给单片机发送温度,然后在LCD上显示,而后是控制LED闪烁需要一个开关或按钮,和需要另外一个开关或按钮来实现控制数码管显示加1,这些通信都是两单片机之间的收发通信,而
26、且是串行通信,所以我们不可能同时实现这些程序,当我们控制LED闪烁后,需要控制数码管显示加1就得关闭控制LED闪烁的开关,然后打开控制数码管的开关才能实现数码管显示加1。下面是整个系统的设计思想,用图形表示出来就是如图3-1。图3-1系统框图3.2两个RS232串口服务器之间的连接3.2.1 MAX232芯片图3-2 设计中采用的MAX232芯片 图3-2 MAX232芯片其内部是由一个电源电压变换器组成的,它可以将输入的+5V电压转换成RS-232输出电平时所需的12V的电压。所以采用这种芯片来实现接口电路特别方便,只需单一的+5V电源输入即可。MAX232芯片的引脚结构如上图所示。其中芯片
27、的管脚16(C1+、V+、C1-、C2+、C2-、V-)是用于电源电压的转换,只要在外部接入相应的电解电容就可以了;管脚710及管脚1114构成了两组TTL电平与RS-232电平之间的转换电路,这些相对应的管脚就可以直接和单片机串行口的TTL电平引脚直接相连接了。3.2.2 RS232 连接方式两RS232把他们连接起来就可以构成一个实用的系统,用一个图就可以很清晰的看清楚他们之间的连接,如图3-3。 图3-3 两RS232的连接如果甲方准备好之后,乙方就会产生呼叫(RI)有效,同时也准备好(DSR)。同时甲方RTS和CTS相连接,而且还要和DCD互连。也即是,如果甲方请求发送(RTS),就会
28、得到允许(CTS),同时,也可以使乙方DCD有效,这是就是检测到了载波信号。甲方的TX和乙方的RXD相连接,就是一发一收。 串行通信中,线路空闲时,线路的TTL电平总是高的,经反向RS232的电平总是低的,一个数据的开始RS232线路为高电平,结束时RS232线路为低电平,数据总是总低位向高位一位一位的传输。TTL电平串行数据帧格式如图3-6:图3-4 TTL电平串行数据帧格式RS232电平串行数据帧格式如图3-5:图3-5 RS232电平串行数据帧格式用Protues仿真软件画出实际RS232之间的连接电路图如图3-6。 图3-6 RS232之间的连接电路图RS232的标准就是将(+3V)-
29、(+15V),(-3V)-(-15V)的电平作为通讯的高低电平使用,所谓的信号强弱是和电压、电流有关,通常RS232的通讯电流都在5mA-10mA左右,如果导线过长,电损耗相对也会加大,那么电压就会下降,这样便会影响到信号识别。 开始通信时,信号线为空闲(逻辑1)模式时,如果检测到从1跳变到0时,便开始接收时钟吲数。如果检测到8个时钟,便要对对输入的信号进行检测,如果仍然是低电平,就确认这就是“起始位”,而不是干扰得信号;在起始位被收端检测到后,这期间隔16个接收的时钟,每检测一次输入信号,就会把相对应的值作为DO的位数据。如果是逻辑1的话,则作为数据位1。每当隔16个接收时钟的时候,对输入的
30、信号再检测一次,我们就把相对应的值作为D1位数据,直到全部数据位都已经输入;当检测校验位P和数据位个数及校验位之后,接下来通信接口电路则会收到停止位如果此时没有收到逻辑1,就是出错了,在状态寄存器中设置”帧错误晰志;在这一帧信息全部都接收完之后,我们把线路上所有出现的高电平作为空闲位;每当信号再一次变为低电平的时候,就会开始进入下一帧检测。这其中,字符帧开头的开头是起始位,总共占1位,始终都为逻辑0电平,用于表示接收设备向发送端开始发送信息。始位之后就是数据位,他们可以设置成5、6、7、8位,低位的在前高位的在后。数据位之后是奇偶校验位,仅仅占一位,用它来表示单片机串行通信中采用的是奇校验还是
31、偶校验。 3.3时钟电路的作用时钟电路的核心是个比较稳定的晶体振荡器,晶体振荡器产生正弦波,把频率进行分频,处理,形成时钟脉冲,提供一个符合单片机要求的脉冲宽度和电平范围的复位信号,以使单片机回到初始状态重新开始。在MCS51单片机片内是一个高增益反相放大器,输入端为XTAL1为反相放大器,XTAL2为输出端,由该放大器构成的振荡电路和时钟电路便构成了单片机时钟方式。根据电路的不同,单片机的时钟方式可分为内部时钟方式及外部时钟方式两种。本次设计我用到的是内部方式时钟。在内部方式时钟电路中,我们要在XTAL1和XTAL2引脚两端跨接上石英晶体振荡器及两个微调电容构以成振荡电路,通常C1和C2一般
32、取30pF,晶振的频率取值在1.2MHz12MHz之间。对于外接时钟电路,要求XTAL1接地,XTAL2脚接外部时钟,对于外部时钟信号并无特殊要求,只要保证一定的脉冲宽度,时钟频率低于12MHz即可。晶体振荡器的振荡信号从XTAL2端送入内部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号P1和P2供单片机使用。时钟信号的周期称为状态时间S,它是振荡周期的2倍,P1信号在每个状态的前半周期有效,在每个状态的后半周期P2信号有效。CPU就是以两相时钟P1和P2为基本节拍协调单片机各部分有效工作的。如图3-7是内部方式的时钟电路。 图 3-7 内部方式时钟电路3.4 LED的接入图3-8 发光二极管的接入3.5温度采集与显示3.5.1 DS18B20温度传感器DS18B20内部主要由4部分组成:64位光刻ROM、温度传感器、非易
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1