单片机间全双工通信

上传人:lis****210 文档编号:203950175 上传时间:2023-04-25 格式:DOCX 页数:23 大小:271.54KB
收藏 版权申诉 举报 下载
单片机间全双工通信_第1页
第1页 / 共23页
单片机间全双工通信_第2页
第2页 / 共23页
单片机间全双工通信_第3页
第3页 / 共23页
资源描述:

《单片机间全双工通信》由会员分享,可在线阅读,更多相关《单片机间全双工通信(23页珍藏版)》请在装配图网上搜索。

1、课程设计报告题目:单片机的全双工通信系统课程:单片机课程设计专 业:电子信息科学与技术 班 级:nnm学 号:学生姓名:指导教师:信息工程学院课程设计任务书学号学生姓名专业(班级)设计题目单片机间的全双工通信系统设计技术参数串口通信最重要的参数是波特率、起始位、数据位、停止位和奇偶校验。波特率:是一个衡量通信速度的参数,表示每秒钟传送的bit的个数。起始位:当通信线上没有数据被传送时处于逻辑“1”状态,当发送设备要发 送一个数据时,先发送一个逻辑“0”信号,这个低电平就是起始位,起始位通过 通信线传向接收设备,接收端检测到这个低电平后,就确认开始接收数据了。起 始位的作用是使通信双方在传送数据

2、前协调同步。数据位:是衡量通信中实际数据位的参数,当计算机发送一个信息包,实际 的数据不会是8位的,标准的值是5、7或8位,如何设置取决于要传送的信息。 每个包是指一个字节,包括开始/停止位、数据位和奇偶校验位,由于实际数据位 取决于通信协议的选取,术语“包”指任何通信的情况。停止位:用于表示单个包的最后一位。典型的值为1、1.5和2位,它是一个 数据的结束标志,接收端接收到停止位后,通信线路上会回复逻辑“1”的状态, 知道下一个起始位的到来。奇偶校验位:在串行通信中一种简单的检错方式,有四种方式:偶、奇、高 和低。对于偶和检验的情况,串口会设置检验位,用一个值确保传输的数据有偶 个或者奇个逻

3、辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑 低校验,这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰 了通信或者是否传输和接收数据是否不同步。设计要求1按下甲机的按钮后,能够很好的对乙机进行控制。2按下乙机的按钮后,能够很好的对甲机进行控制。参 考 资料1谭浩强:C程序设计(第二版),清华大学出版社,2001年。2胡汉才:单片机原理及接口技术,清华大学出版社,1996年。3谢沅清、解月珍:电子技术基础,人民邮电出版社,1999年。4孙江宏:Protel 99电路设计与应用,机械工业出版社,2001年。5何立民:单片机应用技术选编,北京航空航天大学出版社,2006年

4、。6张毅刚、彭喜源:MCS-51单片机应用设计,哈尔滨工业大学出版社,1997 年。摘要随着电子技术的不断发展,单片机的应用范围越来越广泛,在工业控制、家电控制、数 据采集等多个领域都有着十分重要的作用,由于单片机的使用,越来越多的系统开始向智能 化方向发展。而单片机自带的串口功能可以实现其与其他外设MCU或PC机之间的通信,这 样就使得控制系统更加的方便实用,利用单片机的串口通信可以实现数据的远程传输、数据 分析与系统综合控制功能,尤其是在数据量比较大的场合下,利用一个主机向各个从机发送 控制指令是一个很好的解决方案,在这个过程中,串口通信是实现单片机与单片机之间通信 的关键。本文介绍了基于

5、单片机的串口通信设计,通过按键输入数据,单片机通过串口将数据发 送给另一个单片机,同时发送的数据均可在2个单片机控制的数码管上显示,以检测串口通 信的准确性。本文介绍的方法简单易懂,可广泛应用于各种串口数据通信系统中。关键词:单片机数据串口通信设计目录目录1任务提出与方案论证71.1任务提出71.2设计方案72总体设计92.1硬件设计92.2软件设计103详细设计及仿真113.1按键控制电路113.2单片机控制电路113.3 MAX232电平转换电路123.4显示电路133.5仿真结果144总结15参考文献16附录171任务提出与方案论证1.1任务提出数据通信是通信技术和计算机技术相结合而产生

6、的一种新的通信方式。要在两地之间传 输信息必须由传输信道,根据传输媒体的不同,有有线数据通信与无线数据通信之分,但它 们都是通过传输信道将数据终端与计算机连接起来,而使不同地点的数据终端实现软、硬件 和信息资源的共享。数据通信的发展主要分为五个阶段。第一阶段:以语言为主,通过人力、马力、烽火等 原始手段传递信息;第二阶段:文字、邮政;第三阶段:印刷;第四阶段:电报、电话、广 播;第五阶段:信息时代,除语言信息外,还有数据、图像、文本等。串口通信是按位发送和接收字节,尽管比按字节的并行通信慢,但是串口可以在使用一 根线发送数据的同时利用另一根线接收数据,很简单且能实现远距离通信,长度可以达到 1

7、200 米。串行通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使 用串口通信时,发送和接收到的每一个字符实际上都是一次一位的传送的,每一位为1或者 为0。串行通信只使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定 的时间长度。其只需要少数几条线就可以在系统间交换信息。最被人们熟悉的串行通信技术标准是EIA-232、EIA-422和EIA-485,目前EIA-232是 PC机与通信工业中应用最广泛的一种串行接口。EIA-422标准全称是“平衡电压数字接口电 路的电气特性”,它定义了一种平衡通信接口,将传输速率提高到710Mbps,传输距离延长 到了 121

8、9米,并允许在一条平衡总线上最多连接10个接收器。1983年EIA在EIA-422的 基础上制定7EIA-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条 总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为 TIA/EIA-485-A 标准。1.2设计方案在2个相同单片机之间利用串口进行通信,通过按键输入要发送的数据,该数据为数字, 并可在数码管上显示出来,设置完后通过串口通信发送给另一个单片机,另一个单片机接收 到后在数码管上显示出来,2个单片机可以互相发送数据,通过2个单片机系统的数码管显示的数字可以判断串口通信发送的数据的正确性。系统设计框图

9、如图3.1所示。本设计主要 由按键输入电路、单片机控制电路和数码管显示电路组成,2个单片机的电路图完全相同, 实现的功能也相同,所以本文只介绍其中一块单片机电路的设计方法和串口通信的原理。按曜输入数字单片机2* 数码管显示图1-2系统设计框图2总体设计2.1硬件设计系统总体电路图:单片机间通信设计RP1图2-1系统总体设计电路硬件电路包括:按键输入电路,AT89C51控制电路,MAX232电平转换电路,led显示电 路,数码管显示电路,LM1602显示电路这几大部分。Altium designer软件的使用1、建立数据库。打开Altium designer软件后,在“文件”标题栏里选择“新建”

10、选 项,在弹出的对话框里选择Document Folder,然后点击OK即可。2、打开Documents,选择“文件”标题栏里选择“新建”选项,在弹出的对话框里选择“Schematic Document”选项,建立原理图文件,并给原理图文件命名。3、设计电路原理图。利用Altium designer里的元器件库完成电路原理图的绘制。4、检查原理图电性能可靠性。选择工具下面的电气规则检查,在“RuleMatrix”中选 择要进行电气检查的项目,设置好各项后,在“Setup Electrical Rlues Check”对话框上选择“ OK ”即可运行电气规则检查,检查结果将被显示到界面上。2.2

11、软件设计Keil C51集成开发环境1、源代码编辑器:uVision4编辑器包含了所有用户熟悉的特性。彩色语法显像和文件 辩识都对C源代码进行和优化。可以在编辑器内调试程序,它能提供一种自然的调试环境, 使你更快速地检查和修改程序。2、断点:uVision4允许用户在编辑时设置程序断点(甚至在源代码未经编译和汇编之 前)。用户启动V4调试器之后,断点即被激活。断点可设置为条件表达式,变量或存储器访 问,断点被触发后,调试器命令或调试功能即可执行。在属性框中可以快速浏览断点设置情况和源程序行的位置。代码覆盖率信息可以让你区 分程序中已执行和未执行的部分。3、调试函数语言:uVision4中,可以

12、编写或使用类似C的数语言进行调试。、内部函数:如printf, memset, rand及其它功能的函数。、信号函数:模拟产生CPU的模拟信号和脉冲信号。、用户函数:扩展指令范围,合并重复动作。4、变量和存储器:用户可以在编辑器中选中变呈来观察其取值。双层窗口显示,可进 行以下调整:当前函数的局部变量;用户在两个不同watch窗口页面上的自定义变量;堆栈 调用(call stack)页面上的调用记录;不同格式的四个存储区。C51允许用户使用C语言编写中断服务程序,快速进、出代码和寄存器区的转换功能使 C语言中断功能更加高效。可再入功能是用关键字来定义的。多任务,中断或非中断的代码 要求必须具备

13、可再入功能C51提供了灵活高效的指针。通用指针用3个字节来存储存储器类型及目标地址,可以在8051的任意存储区内存取任何变量。特殊指针在声明的同时 已指定了存储器类型,指向某一特定的存储区域。由于地址的存储只需12字节,因此, 指针存取非常迅速。KeilC51兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构上、可 读性、可维护性上有明显的优势,因而易学易用。3详细设计及仿真3.1按键控制电路常用的按键有独立键盘和矩阵键盘,矩阵式键盘分行和列,通过行和列来确 定某一个按键的位置,适用于多键盘操作,可以节省单片机的I/O 口。独立式键 盘是直接将按键连接至单片机I/O 口,单片机通过

14、检测I/O的电平来判断按下的 按键,编程简单,但是占用I/O资源比较多。本设计中只需要用到4个按键来实 现数据的输入,所以使用独立式键盘即可。按键输入电路如图4.1所示。单片机 的P1.0-P1.3引脚用来控制4路按键,4个按键分别代表4组数据“1、12、123、 1234”,不同长度的数据可以更充分的检测串口数据传输的准确性。CTALimPO. SaDE.FISTPQ 7W7RSGlAaP2_2!A1OALEP2-4W2EA=?处EMP2LTW15-EnwoE STJITJP1.3Pl 1PNNI口X感1 丁RT.fiDCLaot=ii a Mizm Mcwnf u图3-1按键控制电路3.2

15、单片机控制电路该部分电路设计如图4.2所示。单片机的时钟的频率直接影响着单片机的速度和系统的 稳定性。AT89S51片内由一个反相放大器构成振荡器,可以通过它俩产生时钟。常用的单片 机产生时钟的方法有两种:内部时钟方式和外部时钟方式。本设计选用外部时钟方式,单片 机内部XTAL1引脚为高增益反向放大器的输入端,XTAL2为输出端,在这2个引脚之间接石 英晶振和电容,就可以构成一个稳定的自激振荡器。外接晶振振荡频率不大于单片机的最大工作频率即可。如果有串行通信,需要选择振频 率除以串行通信频率可以整除的晶振。本设计选用的11.0592MHz晶振。复位是单片机的初始化操作,复位信号是高电平有效,复

16、位操作有上电自动复位、按键 电平复位、外部脉冲复位和自动复位四种方式。在本设计中复位电路采用按键电平方式,使 RST引脚经过10u电解电容与VCC电源接通,同时经过电阻与地连接而实现,按下按键时, RST引脚置高,实现复位功能。单片机的P1.0-P1.3引脚控制4个按键用于输入数字,P2 口控制数码管显示电路,单 片机之间的通信通过串行口 RXD和TXD。3.3 MAX232电平转换电路MAX232芯片是美信(MAXIM)公司专为RS-232标准串口设计的单电源电平转换芯片, 使用+5v单电源供电。第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v 和-12v两

17、个电源,提供给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) 为第二数据通道o TTL/CMOS数据从11引脚(T1IN)、10引脚(T2IN)输入转换成RS-232 数据从14脚(T1OUT)、7脚(T2OUT )送到电脑DB9插头;DB9插头的RS-232数据从13 引脚(R1IN)、8引脚(R2IN)输入转换成TTL/CM

18、OS数据后从12引脚(R1OUT)、9引脚(R2OUT) 输出。第三部分是供电。15脚GND、16脚VCC (+5v)opo.r.*o7CLOCK: 11 0W3l 如顷l*UPflObW re.1心口己事具弓1pngA1.1P1ZPi.1 iW ezi问P1.3 PT tP1.fiF蒂FFP?iAI5 P2flA14 P2 m愿中G1-T1INHourif inT3HFUTgNCi-3.4显示电路本设计中选用数码管作为显示器件。LED数码管由八只发光二极管组成,编 号是a、b、c、d、e、f、g、h,分别和同名管脚相连,当发光二极管导通时发 光。每个二极管就是一个笔划,若十个二极管发光时,就

19、构成一个显示字符。若 将单片机的I/O 口与数码管的a-g和h相连,高电平(对应共阴极数码管)或低 电平(对应共阳极数码管)的位对应的发光二极管就会亮,这样,I/O 口输出不 同的代码就可以控制数码管显示不同的字符。为减少电路板中的焊接线,本设计 选用4位一体数码管,采用串行输入并行输出的8位移位寄存器74LS164进行驱 动输出,单片机的P2.6和P2.7引脚分别作为74LS164的数据线和CLK信号。 74LS164将输入的串行数据锁存在并行输出端,通过这些并行口线驱动数码管的 各字段。数码管选用共阳型,当74LS164的某个输出端口为低电位时,数码管对 应的字段将被点亮。软件设计中数码管

20、采用循环送显的方式,单片机通过控制 9012来选择要送显的数码管,当需要某一位数码管显示时,该数码管相对应的 9012三极管基极所连接的单片机引脚输出高电平,三极管导通,进而选通该位 数码管。74LS164的输出Q0-Q7分别对应接到数码管的a-h端口。单片机将数据 写入到74LS164内部锁存,再由74LS164将显示译码送入该位数码管个码段显示, 从而实现了单片机控制数码管显示的功能。图3-4显示电路3.5仿真结果J-W-aL hvkiI二E I F3 Ml? KlWili FrAiri图3-5总体仿真电路4总结通过这次的课程设计,使我对单片机有了更深的认识,从理论和实践上都得到了很大的

21、提高,所以这次任务的完成使我学到了很多东西。首先,丰富了自己的知识面,学到了以前 没学懂的东西,具体了解到怎样去完成一个电路的设计,巩固了汇编语言和c语言的使用能 力,并且提高了自己分析问题的能力和创新能力,使自己在硬件和软件设计方面树立了信心, 为以后从事这方面的工作打好了基础,这也是这次课程设计的最大收获。本文介绍了一种单片机之间串口通信的设计方法,论文首先介绍了串口通信的基础知识 主要是串口通信的分类和重要的参数,接着提出了可行的设计方案,并从硬件电路设计和软 件程序设计两个方面详细介绍了整个设计的原理及设计过程,同时验证了方案的可行性。当然,本设计可能还存在许多不足之处,敬请各位老师批

22、评指正,本人将非常感激!参考文献1 谭浩强:C程序设计(第二版),清华大学出版社,2001年。2 胡汉才:单片机原理及接口技术,清华大学出版社,1996年。3 谢沅清、解月珍:电子技术基础,人民邮电出版社,1999年。4 孙江宏:Protel 99电路设计与应用,机械工业出版社,2001年。5 何立民:单片机应用技术选编,北京航空航天大学出版社,2006年。6 张毅刚、彭喜源:MCS-51单片机应用设计,哈尔滨工业大学出版社,1997年。附录甲机程序:#include#define uchar unsigned char#define uint unsigned intsbit LED1=P1

23、0;sbit LED2=P13;sbit K1=P17;sbit K3=P16;uchar Operation_No=0;ucharcodeDSY_C0DE = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0 x7d,0x07,0x7f,0x6f;void DelayMS(uint ms)uchar i;while(ms一)for(i=0;i=0&SBUF=9)P0=DSY_CODESBUF;elseP0=0x00;乙机程序:#include#include#define uchar unsigned char#define uint unsigned intsbit LED1

24、=P10;sbit LED2=P13;sbit K2=P17;uchar NumX=-1;sbit RS=P20;sbit RW=P21;sbit E=P22;sbit BF=P07;void delay1ms()unsigned char i,j;for(i=0;i10;i+)for(j=0;j10;j+);void delay(unsigned char n)unsigned char i;for(i=0;in;i+)delay1ms();unsigned char BusyTest(void)bit result;RS=0;RW=1;E=1;_nop_();_nop_();_nop_()

25、;_nop_();result=BF;E=0;return result;void Writeinstruction (unsigned char dictate)while(BusyTest()=1);RS=0;RW=0;E=0;_nop_();_nop_();P0=dictate;_nop_();_nop_();_nop_();_nop_();E=1;_nop_();_nop_();_nop_();_nop_();E=0;void WriteAddress(unsigned char x)WriteInstruction(x|0x80);void WriteData(unsigned ch

26、ar y)while(BusyTest()=1);RS=1;RW=0;E=0;P0=y;_nop_();_nop_();_nop_();_nop_();E=1;_nop_();_nop_();_nop_();_nop_();E=0;void LcdInitiate(void)/elay(15);WriteInstruction(0x38);delay(5); /?5msWriteInstruction(0x38);delay(5);WriteInstruction(0x38);delay(5);WriteInstruction(0x0c);delay(5);WriteInstruction(0

27、x06);delay(5);WriteInstruction(0x01);delay(5);void DelayMS(uint ms)uchar i;while(ms一) for(i=0;i120;i+);/void main()LED1=LED2=1;SCON=0x50;TMOD=0x20;TH1=0xfd;TL1=0xfd;PCON=0x00;RI=TI=0;TR1=1;IE=0x90;while(1)DelayMS(100);if(K2=0)while(K2=0);NumX=+NumX%11;SBUF=NumX;while(TI=0);TI=0;void Serial_INT() int

28、errupt 4int i;if(RI)RI=0;switch(SBUF)if(K2=0) break;case X:LcdInitiate();while(1)WriteAddress(0x00);WriteData(w);WriteData(x);WriteData(w);WriteData();WriteData(h);WriteData(b);WriteData(m);WriteData(y);WriteAddress(0x40);WriteData(q);WriteData(x);WriteData(a);WriteAddress(0x47);WriteData(q);WriteData(x);WriteData(a);case A:P1=0X01;for(i=0;i10;i+) DelayMS(200);P1=P11;if(P1=0x40)P1=0x01;break;case B: LED2=0;LED1=1; break;case C: LED1=LED2=0; break;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!