单片机间全双工通信

  • 格式:docx
  • 大小:359.84 KB
  • 文档页数:20

湖北民族学院信息工程学院课程设计报告题目: 单片机的全双工通信系统课程:单片机课程设计专业:电子信息科学与技术班学学生姓名:指导教师:年月日信息工程学院课程设计任务书年月日信息工程学院课程设计成绩评定表摘要随着电子技术的不断发展,单片机的应用范围越来越广泛,在工业控制、家电控制、数据采集等多个领域都有着十分重要的作用,由于单片机的使用,越来越多的系统开始向智能化方向发展。

而单片机自带的串口功能可以实现其与其他外设MCU或PC机之间的通信,这样就使得控制系统更加的方便实用,利用单片机的串口通信可以实现数据的远程传输、数据分析与系统综合控制功能,尤其是在数据量比较大的场合下,利用一个主机向各个从机发送控制指令是一个很好的解决方案,在这个过程中,串口通信是实现单片机与单片机之间通信的关键。

本文介绍了基于单片机的串口通信设计,通过按键输入数据,单片机通过串口将数据发送给另一个单片机,同时发送的数据均可在2个单片机控制的数码管上显示,以检测串口通信的准确性。

本文介绍的方法简单易懂,可广泛应用于各种串口数据通信系统中。

关键词:单片机数据串口通信设计目录目录1 任务提出与方案论证 (7)1.1 任务提出 (7)1.2 设计方案 (7)2 总体设计 (9)2.1 硬件设计 (9)2.2 软件设计 (10)3 详细设计及仿真 (11)3.1按键控制电路 (11)3.2单片机控制电路 (11)3.3 MAX232电平转换电路 (12)3.4 显示电路 (13)3.5仿真结果 (14)4 总结 (15)参考文献 (16)附录 (17)1 任务提出与方案论证1.1 任务提出数据通信是通信技术和计算机技术相结合而产生的一种新的通信方式。

要在两地之间传输信息必须由传输信道,根据传输媒体的不同,有有线数据通信与无线数据通信之分,但它们都是通过传输信道将数据终端与计算机连接起来,而使不同地点的数据终端实现软、硬件和信息资源的共享。

数据通信的发展主要分为五个阶段。

第一阶段:以语言为主,通过人力、马力、烽火等原始手段传递信息;第二阶段:文字、邮政;第三阶段:印刷;第四阶段:电报、电话、广播;第五阶段:信息时代,除语言信息外,还有数据、图像、文本等。

串口通信是按位发送和接收字节,尽管比按字节的并行通信慢,但是串口可以在使用一根线发送数据的同时利用另一根线接收数据,很简单且能实现远距离通信,长度可以达到1200米。

串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。

使用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者为0。

串行通信只使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。

其只需要少数几条线就可以在系统间交换信息。

最被人们熟悉的串行通信技术标准是EIA-232、EIA-422和EIA-485,目前EIA-232是PC机与通信工业中应用最广泛的一种串行接口。

EIA-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了一种平衡通信接口,将传输速率提高到了10Mbps,传输距离延长到了1219米,并允许在一条平衡总线上最多连接10个接收器。

1983年EIA在EIA-422的基础上制定了EIA-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。

1.2 设计方案在2个相同单片机之间利用串口进行通信,通过按键输入要发送的数据,该数据为数字,并可在数码管上显示出来,设置完后通过串口通信发送给另一个单片机,另一个单片机接收到后在数码管上显示出来,2个单片机可以互相发送数据,通过2个单片机系统的数码管显示的数字可以判断串口通信发送的数据的正确性。

系统设计框图如图3.1所示。

本设计主要由按键输入电路、单片机控制电路和数码管显示电路组成,2个单片机的电路图完全相同,实现的功能也相同,所以本文只介绍其中一块单片机电路的设计方法和串口通信的原理。

图1-2系统设计框图2 总体设计2.1 硬件设计系统总体电路图:图2-1系统总体设计电路硬件电路包括:按键输入电路,AT89C51控制电路,MAX232电平转换电路,led显示电路,数码管显示电路,LM1602显示电路这几大部分。

Altium designer软件的使用1、建立数据库。

打开Altium designer软件后,在“文件”标题栏里选择“新建”选项,在弹出的对话框里选择Document Folder,然后点击OK即可。

2、打开Documents,选择“文件”标题栏里选择“新建”选项,在弹出的对话框里选择“Schematic Document”选项,建立原理图文件,并给原理图文件命名。

3、设计电路原理图。

利用Altium designer里的元器件库完成电路原理图的绘制。

4、检查原理图电性能可靠性。

选择工具下面的电气规则检查,在“Rule Matrix”中选择要进行电气检查的项目,设置好各项后,在“Setup Electrical Rlues Check”对话框上选择“OK”即可运行电气规则检查,检查结果将被显示到界面上。

2.2 软件设计Keil C51集成开发环境1、源代码编辑器:uVision4编辑器包含了所有用户熟悉的特性。

彩色语法显像和文件辩识都对C源代码进行和优化。

可以在编辑器内调试程序,它能提供一种自然的调试环境,使你更快速地检查和修改程序。

2、断点:uVision4允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之前)。

用户启动V4调试器之后,断点即被激活。

断点可设置为条件表达式,变量或存储器访问,断点被触发后,调试器命令或调试功能即可执行。

在属性框中可以快速浏览断点设置情况和源程序行的位置。

代码覆盖率信息可以让你区分程序中已执行和未执行的部分。

3、调试函数语言:uVision4中,可以编写或使用类似C的数语言进行调试。

<1>、内部函数:如printf, memset, rand及其它功能的函数。

<2>、信号函数:模拟产生CPU的模拟信号和脉冲信号。

<3>、用户函数:扩展指令范围,合并重复动作。

4、变量和存储器:用户可以在编辑器中选中变呈来观察其取值。

双层窗口显示,可进行以下调整:当前函数的局部变量;用户在两个不同watch窗口页面上的自定义变量;堆栈调用(call stack)页面上的调用记录;不同格式的四个存储区。

C51允许用户使用C语言编写中断服务程序,快速进、出代码和寄存器区的转换功能使C语言中断功能更加高效。

可再入功能是用关键字来定义的。

多任务,中断或非中断的代码要求必须具备可再入功能。

C51提供了灵活高效的指针。

通用指针用3个字节来存储存储器类型及目标地址,可以在8051的任意存储区内存取任何变量。

特殊指针在声明的同时已指定了存储器类型,指向某一特定的存储区域。

由于地址的存储只需1-2字节,因此,指针存取非常迅速。

Keil C51兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构上、可读性、可维护性上有明显的优势,因而易学易用。

3 详细设计及仿真3.1按键控制电路常用的按键有独立键盘和矩阵键盘,矩阵式键盘分行和列,通过行和列来确定某一个按键的位置,适用于多键盘操作,可以节省单片机的I/O口。

独立式键盘是直接将按键连接至单片机I/O口,单片机通过检测I/O的电平来判断按下的按键,编程简单,但是占用I/O资源比较多。

本设计中只需要用到4个按键来实现数据的输入,所以使用独立式键盘即可。

按键输入电路如图4.1所示。

单片机的P1.0-P1.3引脚用来控制4路按键,4个按键分别代表4组数据“1、12、123、1234”,不同长度的数据可以更充分的检测串口数据传输的准确性。

图3-1按键控制电路3.2单片机控制电路该部分电路设计如图4.2所示。

单片机的时钟的频率直接影响着单片机的速度和系统的稳定性。

AT89S51片内由一个反相放大器构成振荡器,可以通过它俩产生时钟。

常用的单片机产生时钟的方法有两种:内部时钟方式和外部时钟方式。

本设计选用外部时钟方式,单片机内部XTAL1引脚为高增益反向放大器的输入端,XTAL2为输出端,在这2个引脚之间接石英晶振和电容,就可以构成一个稳定的自激振荡器。

外接晶振振荡频率不大于单片机的最大工作频率即可。

如果有串行通信,需要选择振频率除以串行通信频率可以整除的晶振。

本设计选用的11.0592MHz晶振。

复位是单片机的初始化操作,复位信号是高电平有效,复位操作有上电自动复位、按键电平复位、外部脉冲复位和自动复位四种方式。

在本设计中复位电路采用按键电平方式,使RST引脚经过10u电解电容与VCC电源接通,同时经过电阻与地连接而实现,按下按键时,RST引脚置高,实现复位功能。

单片机的P1.0-P1.3引脚控制4个按键用于输入数字,P2口控制数码管显示电路,单片机之间的通信通过串行口RXD和TXD。

3.3 MAX232电平转换电路使用+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数据从11引脚(T1IN)、10引脚(T2IN)输入转换成RS-232数据从14脚(T1OUT)、7脚(T2OUT)送到电脑DB9插头;DB9插头的RS-232数据从13引脚(R1IN)、8引脚(R2IN)输入转换成TTL/CMOS数据后从12引脚(R1OUT)、9引脚(R2OUT)输出。

第三部分是供电。

15脚GND、16脚VCC(+5v)。

图3-3 MAX232电平转换电路3.4 显示电路本设计中选用数码管作为显示器件。

LED数码管由八只发光二极管组成,编号是a、b、c、d、e、f、g、h,分别和同名管脚相连,当发光二极管导通时发光。

每个二极管就是一个笔划,若干个二极管发光时,就构成一个显示字符。

若将单片机的I/O口与数码管的a-g和h相连,高电平(对应共阴极数码管)或低电平(对应共阳极数码管)的位对应的发光二极管就会亮,这样,I/O口输出不同的代码就可以控制数码管显示不同的字符。

为减少电路板中的焊接线,本设计选用4位一体数码管,采用串行输入并行输出的8位移位寄存器74LS164进行驱动输出,单片机的P2.6和P2.7引脚分别作为74LS164的数据线和CLK信号。