单片机应用课程设计任务书单片机应用课程设计说明书学院名称:计算机与信息工程学院班级名称:网工124学生姓名:卞可虎学号:2012211369题目:双机间的串口双向通信设计指导教师:于红利起止日期:2014.12.29至2015.1.4目录一、绪论 (1)二、相关知识 (6)2.1 双机通信介绍 (6)2.2单片机AT89C51介绍 (6)2.3 串行通信简介 (8)2.3.1串行通信的特点 (8)2.3.2串行通信技术标准 (9)三、总体设计 (10)3.1 设计需求 (10)四、硬件设计 (10)4.1 系统硬件电路设计 (10)4.1.1整体电路设计 (10)4.1.2 控制电路设计 (11)4.1.3 复位电路 (11)4.1.4 显示电路 (12)五、软件设计 (12)5.1发送端程序流程 (12)5.2接收端程序流程 (13)5.3按键程序 (14)5.4串口通信程序 (15)5.5数码管显示程序 (16)六、Proteus软件仿真 (16)七、结束语 (19)参考文献 (20)指导教师评语 (21)成绩评定 (21)附录:源程序 (22)一、绪论电子技术的飞速发展,单片机也步如一个新的时代,越来越多的功能各异的单片机为我们的设计提供了许多新的方法与思路。
单片机之间的通信可以分为两大类:并行通信和串行通信。
串行通信传输线少,长距离传输时成本低,且可以利用数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。
所以本系统采用串行通信来实现单片机之间可靠的,有效的数据交换。
对于一些类似复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗大的系统、功能强大的低消耗系统、加密系统等等。
如果合理使用多种不同类型的单片机组合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计渐渐成为一种新的思路,单片机技术作为计算机技术的一个重要分支,由于单片机体积小,系统运行可靠,数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重要的作用。
但在一些相对复杂的单片机应用系统中,仅仅一个单片机资源是不够的,往往需要两个或多个单片机系统协同工作。
这就对单片机通信提出了更高要求。
二、相关知识2.1 双机通信介绍两台机器的通信方式可分为单工通信、半双工通信、双工通信,他们的通信原理及通信方式为:单工通信:是指消息只能单方向传输的工作方式。
单工通信信道是单向信道,发送端和接收端的身份是固定的,发送端只能发送信息,不能接收信息;接收端只能接收信息,不能发送信息,数据信号仅从一端传送到另一端,即信息流是单方向的。
通信双方采用单工通信属于点到点的通信。
根据收发频率的异同,单工通信可分为同频通信和异频通信。
半双工通信:这种通信方式可以实现双向的通信,但不能在两个方向上同时进行,必须轮流交替地进行。
也就是说,通信信道的每一段都可以是发送端,也可以是接端。
但同一时刻里,信息只能有一个传输方向。
如日常生活中的例子有步话机通信等。
双工通信:双工通信是指在同一时刻信息可以进行双向传输,和打电话一样,说的同时也能听,边说边听。
这种发射机和接收机分别在两个不同的频率上能同时进行工作的双工机也称为异频双工机。
双工机的特点是使用方便,但线路设计较复杂,价格也较高。
2.2单片机AT89C51介绍AT89C51是一个低功耗,高性能的8位单片机,片内含8k的可反复擦写1000次的Flash只读程序存储器,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89C51有40个引脚,8k的片内程序存储器,256 bytes的随机存取数据存储器,32个外部双向输入/输出口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,WDT电路,片内时钟振荡器。
AT89C51芯片DIP双列直插式封装引脚如图1.1所示。
图1.1 AT89C51引脚排列P0 口:P0口是一个8位的双向I/O口。
作为输出口时,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚是高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器可以驱动4 个TTL 逻辑电平。
对P1 端口写“1”时,内部上拉电阻把端口拉高,此时是输入口使用。
作为输入使用时,因为外部拉低的引脚由于内部电阻,将输出电流(IIL)。
P3口亦作为AT89C51特殊功能(第二功能)使用,如表1.1所示.P2 口:P2口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器可以驱动4 个TTL逻辑电平。
对P2 端口写“1”时,内部上拉电阻把端口拉高,此时是输入口使用。
作为输入使用时,因为外部拉低的引脚由于内部电阻,将输出电流(IIL)。
P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL逻辑电平。
对P3 端口写“1”时,内部上拉电阻把端口拉高,此时是输入口使用。
作为输入使用时,因为外部拉低的引脚由于内部电阻,将输出电流(IIL)。
P3口亦作为AT89C51特殊功能(第二功能)使用,如表1.2所示.P1引脚口第二功能如下:P3引脚口第二功能如下:ALE/PROG:在访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。
PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN 信号。
EA/VPP:当外部访问允许,使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
当加密位LB1被编程,复位时内部会锁存EA端状态。
例如EA端为高电平,接Vcc端,CPU则执行内部程序存储器的指令。
2.3 串行通信简介2.3.1串行通信的特点在远程通信和计算机科学中,串行通信是指在计算机总线或其他数据通道上,每次传输一个位元数据,并连续进行以上单次过程的通信方式。
与之对应的是并行通信,它在串行端口上通过一次同时传输若干位元数据的方式进行通信。
一位接一位地顺序传送。
这样一个字节的数据要分8次由低位到高位按顺序一位位地传送。
由此可见,串行通信的特点如下:1、节省传输线,这是显而易见的。
尤其是在远程通信时,此特点尤为重要。
这也是串行通信的主要优点;2、数据传送效率低。
与并行通信比,这也这是显而易见的。
这也是串行通信的一个重要缺点。
串行通信被用于长距离通信以及大多数计算机网络,在这些应用场合里,电缆和同步化使并行通信实际应用面临困难。
凭借着其改善的信号完整性和传播速度,串行通信总线正在变得越来越普遍,甚至在短程距离的应用中,其优越性已经开始超越并行总线不需要串行化元件等缺点。
2.3.2串行通信技术标准(1)数据传输率比特率和波特率:比特率是指每秒传输的二进制位数,用bps(bit/s)表示。
波特率是指每秒传输的符号数,若每个符号所含的信息量为1比特,则波特率等于比特率。
在计算机中,一个符号的含义为高低电平,它们分别代表逻辑“1”和逻辑“0”,所以每个符号所含的信息量刚好为1比特,因此在计算机通信中,常将比特率称为波特率,即:1波特(B)=1比特(bit)=1位/秒(1bps)例如:电传打字机最快传输率为每秒10个字符/秒,每个字符包含11个二进制位,则数据传输率为:11位/字符×10个字符/秒=110位/秒=110波特(Baud)计算机中常用的波特率是:110、300、600、1200、2400、4800、9600、19200、28800、33600,目前最高可达56Kbps.(2)发送时钟和接收时钟在串行通信中,二进制数据以数字信号的信号形式出现,不论是发送还是接收,都必须有时钟信号对传送的数据进行定位。
在TTL标准表示的二进制数中,传输线上高电平表示二进制1,低电平表示二进制0,且每一位持续时间是固定的,由发送时钟和接收时钟的频率决定。
接收时钟和发送时钟与波特率有如下关系:F=n×B这里F是发送时钟或接收时钟的频率;B是数据传输的波特率;n称为波特率因子。
设发送或接收时钟的周期为Tc,频率为F的位传输时间为Td,则:Tc=1/F,Td=1/B得到:Tc=T/n在实际串行通信中,波特率因子可以设定。
在异步传送时,n=1,16,64实际常采n=16,即发送或接收时钟的频率要比数据传送的波特率高n倍。
在同步通信中波特率因子必等于1。
三、总体设计3.1 设计需求本设计需要用甲机三个开关控制乙机两个LED灯三种亮灭方式,用甲机的数码管显示乙机开关的点击次数,用反相器实现电路电平高低转换,使电路输入输出,用复位电路控制整个系统电路恢复原状态。
发送方的数据由串行口输出,经过电平转换输出,经过传输线将信号传送到接收端。
接收方也进行电平转换后,信号到达接收方串行口的接收端。
接受方接收后,在数码管上显示接收的信息。
图3.1 系统框架图四、硬件设计4.1 系统硬件电路设计4.1.1整体电路设计将数码管与单片机U1的P0口连接构成系统的开关记数显式电路的部分;将开关与单片机P3接口连接组成系统的按键电路,用来对显示器的控制;LED 的段选端与单片机U2的P2口连接构成系统的LED显示系统;单片机左边部分电路与单片机构成系统的复位电路。
图4.1 系统电路图4.1.2 控制电路设计本系统将甲机的开关K2,K3分别连接两个反相器,并分别把两个开关连接甲机单片机引脚P1.0和P1.1;将K1连接引脚P3.2,三个开关另一端接地,此电路用甲机三个开关分别控制乙机两个LED灯的三种亮灭状况。
开关控制电路设计图如图4.2所示。
图4.2控制电路设计图4.1.3 复位电路本设计将元器件如电路设计图4.3所示连接并与单片机的引脚相连,构成系统的复位电路。
甲机点击复位电路开关,可以使乙机LED灯全灭,恢复未开启状态,乙机点击复位电路开关,使甲机数码管变为零。
图4.3 复位电路图4.1.4 显示电路本设计将LED数码显示管的段选端与甲机单片机的P0口相连,由于数码管采用的是动态显示,所以通过对P0的8位二进制数据的改变使数码显示管动态显示;将LED的位选端与单片机的P2口连接使LED数码显示管不断的到位选信号在与数选信号不断的配合下显示开关按键次数数据。