基于单片机的双机通信_第1页
基于单片机的双机通信_第2页
基于单片机的双机通信_第3页
基于单片机的双机通信_第4页
基于单片机的双机通信_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于单片机的双机通信摘 要 双机通信是单片机的一个重要应用。本次课程设计就是要利用单片机来完成一个系统,实现两个单片机之间的有序通信。本文详细介绍了关于基于单片机AT89C51实现的双机之间的通信的设计。软件部分采用C语言编程实现接收部分和发射部分的功能,用Protues进行仿真。软件设计完成后,将程序烧入单片机。通信的结果实用数码管进行显示,数码管采用查表方式显示。在通信过程中,使用通信协议进行通信。关 键 词 51单片机;串行通信;接口Two-machine communication based on single chip Abstract Dual machine communica

2、tion is an important application of single chip. This course is designed to using single chip computer to complete a system, realize the orderly communication between two single-chip microcomputer. This paper introduces the realization based on single-chip microcomputer AT89C51 about the dual machin

3、e for communication between the design. Software part adopts the C programming language realization receiving part and emission, part of the Protues function, through simulation. The software design is completed, the procedure spread microcontroller. Communication results and practical to display, d

4、igital digital tube pipe, adopting look-up table display. In communication process, USES communication protocol to communicate.Key words 51 SCM; serial communication; Interface 不要删除行尾的分节符,此行不会被打印欢迎下载目 录基于单片机的双机通信ITwo-machine communication based on single chipII绪 论21.课题背景31.1 双机通信简介 31.1.1 双机通信接口的基本特

5、点 31.2 双机通信原理 41.3 系统网络协议 42.设计方案63.单片机与通信芯片介绍73.1 单片机技术介绍 73.2 MAZ232芯片103.3 44键盘介绍113.3.1 44矩阵键盘工作原理113.3.2数码动态扫描显示电路123.4数码管工作原理134.设计步骤144.1 Keil和Proteus介绍和联调144.1.1 Proteus的介绍144.1.2 Keil的介绍154.2 软件设计164.3 硬件设计16结 论17致 谢18参考文献19附 录I20附录II27附录III28绪 论 单片机作为微型计算机的一个分支,具有功能强、体积小、应用灵活等诸多优点,在工业控制、仪器

6、仪表、通信、家用电器和国防科技等各个领域得到广泛的应用。随着集成电路技术的不断发展,单片机的性能也在不断的提高,其应用的范围必将越来越宽广。然而,随着单片机在工业自动化控制、智能仪器仪表中的广泛应用,单机已经逐渐不能满足需要,双机协同工作已经成为一个重要的发展趋势,双机应用的关键就在于双机之间的互相通讯、互传数据信息。单片机和计算机的共同发展下,单片机的应用从独立的单片机向网络发展,由计算机和单片机构成的双机网络系统也是单片机技术发展的一个方向。单片机双机通信是指由两台单片机组成的网络结构,可以通过串行通信方式实现对某一过程的最终控制。随着计算机技术的发展,双机通讯技术也在不断的发展,现在发展

7、比较成熟的还有光纤通信等。由于计算机的飞速发展和控制系统的复杂化,双机机通信已经越来越成为人们热门的话题之一单片机双机机通信是指由两台单片机组成的网络结构, 可以通过串行通信方式共同实现对某一过程的最终控制。目前,单片机多机通信的形式较多,但通常可分为星型、环型、串行总线型和主从式多机型四种。随着单片机和计算机技术的不断发展,单片机的应用也从独立的单机向网络发展。由计算机和单片机构成的多机网络系统已成为单片机技术发展的一个方向。二者的结合,充分发挥单片机在实时数据采集和数据管理上的优点。单片机在计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理等都有广泛地应用,已渗透到我们生活的各

8、个领域。许多应用都涉及到单片机双机通信。然而单片机对网络数据的处理方式不同于通用计算机系统尤其是有的单片机只提供2位的数据收发接口,这在一定程度上阻碍了单片机在网络方面的应用。因此,采用单片机技术与计算机网络技术相结合的办法,对单片机双机通信系统进行研究在设计单片机网络的通信协议的基础上,系统网络拓扑结构采用总线型网络接El电路采用端El转发的形式,实现了2位单片机双机通信。1.课题背景1.1 双机通信简介MCS-51系列单片机上有一个通用异步接收发送器UART,通过引脚RXDP3O和TXDP31可与外音B电路进行全双工的串行异步通信,发送数据时由TXD端送出,接收时数据由RXD端输入。本文将

9、具体介绍单片机串口的特点和编程方法,并且在最后给出一个实用的单片机与计算机通过串口通信的程序。1.1.1 双机通信接口的基本特点MCS-51单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同场合的需要。其中,方式0主要用于外接移位寄存器,以扩展单片机的IO电路;工作方式1多用于双机之间或与外设电路的通信;方式2、3除有方式1的功能外,还可以作多机通信,以构成分布式多微机系统。 串行端口有两个控制寄存器SCON、PCON,用于设置工作方式、发送或接收的状态、特征位、数据传送波特率每秒传送的位数以及作为中断标志等。串行端口有一个数据寄存器SBUF在特殊功能寄存器中

10、的字节地址为99H,该寄存器为发送和接收所共用。串行端口的波特率可以用程序来控制。在不同工作方式中,由时钟振荡频率的分频值或由定时器T1的定时溢出时间确定,使用十分方便灵活。1、串口控制寄存器(1) 方式1输入:在(REN)=1时,串行口采样RXD引脚,当采样到1至O的跳变时,确认是串行发送来的一帧数据的开始位0,从而开始接收一帧数据。只有当8位数据接收完,并检测到高电平停止位后,只有满足(R1)=0;(SM2)=0或接收到的第9位数据为1时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;否则信息丢失。所以在方式1接收时,应先用软件清零RI和SM2标志。(2)方式2

11、 方式2为固定波特率的11位UART方式。它比方式1增加了一位可程控为1或0的第9位数据。 输出:发送的串行数据由TXD端输出一帧信息为11位,附加的第9位来自SCON寄存器的TB8位,用软件置位或复位。它可作为多机通讯中地址数据信息的标志位,也可以作为数据的奇偶校验位。当CPU执行一条数据写入SUBF的指令且TI=0时,就启动发送器发送。发送一帧信息后,置位中断标志TI。输入:在(REN)=1时,串行口采样RXD引脚,当采样到1至O的跳变时,确认是串行发送来的一帧数据的开始位0,从而开始接收一帧数据。在接收到附加的第9位数据后,当满足(RI):0;(SM2)=0或接收到的第9位数据为1时,第

12、9位数据才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志Ri;否则信息丢失。且不置位RI。(3)工作方式3方式3为波特率可变的11位UART方式。除波特率外,其余与方式2相同。波特率的选择如前所述,在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在MCS-51串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。1方式O:方式0的波特率固定为主振频率 的1/12。2方式2:方式2的波特率由PCON中的选择位SMOD来决定,可表示为:波特率=2sMoDfosc64也就是当SMOD=1时,波特率为132fosc,当SM

13、OD=0时,波特率为164fosc。 3方式1和方式3定时器T1作为波特率发生器,其公式如下:波特率=2SMOD32定时器T1溢出率T1溢出率=T1计数率产生溢出所需的周期数 式中T1计数率取决于它工作在定时器状态还是计数器状态。当工作于定时器状态时,T1计数率为Fosc/2:当工作于计数器状态时,T1计数率为外部输入频率,此频率应小于Fosc/24。产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。定时器T1工作于方式O:溢出所需周期数=8192-定时器T1工作于方式1:溢出所需周期数=65536-X定时器T1工作于方式2:溢出所需周期数=256-X因为方式2为自动重装入初值的8位定

14、时器计数器模式,所以用它来做波特率发生器最恰当。这种方式下,T1的溢出率次秒计算式可以表示为:T1溢出率=Fsoc12256-X1.2 双机通信原理双机通讯对单片机而言意义重大,不但可以实现将单片机的数据传输到计算机端,而且也能实现计算机对单片机的控制。由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。1.3 系统网络协议通信协议是通信设备在通信前的约定。单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。假定我们需要在PC机与单片机之间进行通信,在双方程式设计过程中,有如下约定: 0xA1:单片机读取P0端口数据,并将读取数据返回PC机; 0xA

15、2:单片机从PC机接收一段控制数据; 0xA3:单片机操作成功信息。在系统工作过程中,单片机接收到PC机数据信息后,便查找协议,完成相应的操作。当单片机接收到0xA1时,读取P0端口数据,并将读取数据返回PC机;当单片机接收到0xA2时,单片机等待从PC机接收一段控制数据;当PC接收到0xA3时,就表明单片机操作已经成功。2.设计方案 本次设计,对于两片89C51,采用RS232进行双机通信。发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。

16、接受方接收后,在数码管上显示接收的信息。为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔离。软件部分,通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。主机收到BBH后就把数码表TAB16中的10个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。3.单片机与通信芯片介绍3.1 单片机技术介绍1974年12月,美国著名的仙童公司推出了世界上第一台单片机F8。该机由两快集成电路芯片组成,结构新颖

17、,并具有与众不同的指令系统,深受民用电器和仪器仪表领域的欢迎和重视。从此单片机开始迅速发展,应用范围也在不断扩大,现已成为微型计算机的重要分支。单片机的发展大致经历了外围集成、总线完善、功能集成、全方位发展等技术发展阶段,至今走过了四代的历程。第一代:单片机探索阶段。主要有通用CPU 68XX系列和专用CPUMCS-48系列。第二代:单片机完善阶段。表现在:1.面对对象,突出控制功能,专用CPU满足嵌入功能;2.寻址范围16位或8位;3.规范的总线结构,有8位数据线,16位地址线及多功能异步串行口(UART);4.特殊功能寄存器(SFR)的集中管理模式;5.海量位地址空间,提供位寻址及位操作功

18、能;6.指令系统突出功能。第三代:微控制器形成阶段。这一阶段已经形成系列产品:以8051系列为代表,如8031、8032、8051和8052等。第四代:微控制器百花齐放。表现在:1.电气商、半导体商广泛加入;2.满足最低层电子技术的应用(玩具、小家电);3.大力发展专用型单片机;4.致力于提高单片机的综合品质。由于单片机在整个设计中占据着重要的地方,首先介绍一下单片机的相关知识。单片机AT89S52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要。MCS-51单片机内部结构8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。8051单片

19、机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM):8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数

20、据,运算的中间结果或用户定义的字型表。 图3.1 8051 内部结构程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器:8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足

21、不同的控制要求,并具有2级的优先级别选择。时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。 图3.2 MCS-51结构框图MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及8751均采用4

22、0Pin封装的双列直接DIP结构,图2.3是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:图3.3 51单片机引脚图Pin9:RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存

23、器R0-R7)的状态,8051的初始态。8051的复位方式可以是自动复位,也可以是手动复位,如图(2.4)。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。 图2.4 复位电路图Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。如果单片机是EPROM,在编程其间,将用于输入编程脉冲。Pin29:当访问外部程序

24、存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kb时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。3.2 MAZ232芯片用8051串行接口通信,如果两台8051单片机之间的距离很近(不超过1.5m),可以采用直接将两台8051单片机的串行接

25、口直接相连,利用其自身的TTL电平(0-5V)直接传输数据信息。如果传输距离较远(超过1.5m),由于传输线的阻抗与分布电容,会产生电平损耗和波形畸变,以至于检测不出数据或数据出错。此时可利用 RS232标准总线接口,将单片机输出的TTL电平转换为RS232标准电平(逻辑1为-15-5V;逻辑0为+5-+15V)。用RS232可将传输距离提高到15m,如果想远距离传输,可以采用RS422或者RS485。电平转换芯片MAX232是美信公司(MAXIM)生产,专用于进行将TTL电平转换为RS232电平的芯片,MAX232内部有泵电源,能将+5V电源电压在芯片内提高到RS232电平所需的+10V或者

26、-10V电平。图2.电平转换芯片MAX2323.3 44键盘介绍3.3.1 44矩阵键盘工作原理矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是44个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。图3.4为ME300B矩阵键盘电路图,行线接P1.4P1.7,列线接P1.0P1.3。图3.4 矩阵键盘电路 图2 按键排列3.3.2数码动态扫描显示电路在ME300B开发系统中,采用了8位数码管动态扫描显示。它将所有数码管的8个段线相应地并接在一起,并接到 AT89S51的P0口

27、,由P0口控制字段输出。而各位数码管的共阳极由AT89S51的P2口控制Q20Q27来实现8位数码管的位输出控制。这样,对于一组数码管动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此,同一时刻如果各位数码管的位选线都处于选通状态的话,8位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式。即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线

28、上输出相应位要显示字符的字型码。这样同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。在ME300B单片机开发系统中使用数码管来显示信息时,

29、要将JP2的2、3端短接。见图3.6。图3.63.4数码管工作原理 共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮。根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。 共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起。通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光

30、字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻.4.设计步骤 基于单片机的双机通信的设计包括软件设计和硬件设计两部分。软硬件设计都包括发射部分和接收部分的设计。软件设计主要是C语言程序和汇编语言程序的编写和运用Proteus软件进行仿真。4.1 Keil和Proteus介绍和联调4.1.1 Proteus的介绍1、Proteus是一种低投资的电子设计自动化软件,提供Schematic Drawing、SPICE仿真与PCB设计功能,这一点Proteus 与 multisim比较类似,只不过它可以仿真单片机和

31、周边设备,可以仿真51系列、AVR,PIC等常用的MCU,与keil和MPLAB不同的是它还提供了周边设备的仿真,只要给出电路图就可以仿真,例如373,led,示波器,Proteus提供了大量的元件库,有RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件,编译方面支持Keil和MPLAB,里面有大量的例子参考. 2、Proteus可提供仿真元件资源 ,Proteus软件提供了可仿真数字和模拟、交流和直流等数千种元器件达30多个元件库。 3、Proteus可提供的仿真仪表资源包括拟仪器仪表的数量、类型和质量,是衡量仿真软件实验室是否合格的一个关键因素。在Pro

32、teus软件中,理论上同一种仪器可以在一个电路中随意的调用。 除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。 4、Proteus可提供的调试手段 Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。 Proteus 与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU 的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿

33、真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。4.1.2 Keil的介绍Keil是德国开发的一个51单片机开发软件平台,最开始只是一个支持C语言和汇编语言的编译器软件。后来随着开发人员的不断努力以及版本的不断升级,使它已经成为了一个重要的单片机开发平台,不过KEIL的界面并不是非常复杂,操作也不是非常困难,很多工程师的开发的优秀程序都是在KEIL的平台上编写出来的。可以说它是一个比较重要的软件,熟悉他的人很多很多,用户群极为庞大,要远远

34、超过伟福等厂家软件用户群,操作有不懂的地方只要找相关的书看看,到相关的单片机技术论坛问问,很快就可以掌握它的基本使用了。 1、Keil的Vision2可以进行纯粹的软件仿真(仿真软件程序,不接硬件电路);也可以利用硬件仿真器,搭接上单片机硬件系统,在仿真器中载入项目程序后进行实时仿真;还可以使用Vision2的内嵌模块Keil Monitor-51,在不需要额外的硬件仿真器的条件下,搭接单片机硬件系统对项目程序进行实时仿真。 2、uVision2调试器具备所有常规源极调试,符号调试特性以及历史跟踪,代码覆盖,复杂断点等功能。DDE界面和shift语言支持自动程序测试。 3、虚拟实验的构建及调试

35、;单片机的理论教学和实验中,内容一般包括了四方面,即单片机系统资源;硬件电路的设计、组装、调试;应用软件的编制、调试;总调,即应用软件的链接调试,程序固化,软、硬件结合的应用系统。因此教师在进行教学时,应该充分考虑课程的特点并作合理的模块划分,在每次实验课程前作适当的准备工作,以使教学任务能集中和突出。 (1)系统资源的实验教学 任何一种单片机均提供了一定的系统资源。对于51系列单片机来讲,其所提供的资源是以寄存器和存储器的方式体现出来的。对于寄存器内容的查看,可以采用多种可以模拟仿真51单片机的软件来实现。对于Keil软件来讲,C51编译器可以实现对51系列单片机所有资源的操作。 (2)硬件

36、电路的设计、组装、调试 硬件电路的设计包含两部分内容:一是系统扩展,即单片机自身的功能单元如ROM、RAM、I/O口、定时器/计数器等容量不能满足应用系统的需要时,必须在片外进行扩展,选择适当的芯片,设计相应的电路;二是系统配置,即按照系统的要求配置外围设备,如键盘、显示器、打印机、A/D转换器、D/A转换器等,要设计合适的接口电路。 很多常用的硬件电路的设计可在Proteus软件中实现,学生通过Proteus软件的使用,不当可以实现教材上的大部分实验。而且可以学到硬件电路设计的方法。 (3)应用软件的编制、调试; 使用Keil 软件工具时,项目开发流程和其它软件开发项目的流程极其相似。 创建

37、一个项目,从器件库中选择目标器件,配置工具设置。 用C语言或汇编语言创建源程序。 用项目管理器生成应用。 修改源程序中的错误。 测试,连接应用。 通过使用Keil 软件工具编制、调试应用软件,可以学到单片机各种指令,也可以学到单片机软件开发的步骤、方法和技巧。 (4)总调,即应用软件的链接调试,程序固化,软、硬件结合的应用系统 软硬件联合仿真系统由一个硬件执行环境和一个软件执行环境组成,通常软件环境和硬件环境都有自己的除错和控制界面,Keil与Proteus的整合调试可以实现系统的总调,在该系统中,Keil作为软件调试界面,Proteus作为硬件仿真和调试界面,下面说一下如何在keil中调用p

38、roteus进行MCU外围器件的仿真。 4.2 软件设计1、源程序设计首先,根据发送端和接收端的功能要求分别编写源代码。源程序由C语言编程实现,具体如附录I。所实现的功能是用44键盘进行手动控制发送端的数字信号进行发送。然后,调试源程序直到无错误出现。最后,运行源程序。2、原理图设计利用Proteus仿真软件画出原理图并将程序嵌入其中,直到仿真成功。3、将程序分别烧入控制发送端和接收端的AT89C51中,仿真结果如附录II。4.3 硬件设计按照原理图将器件一一插入面包板。首先,将各个芯片插入合适的位置。接着把相应的器件插入面包板。接下来连接导线。分别给发送端和接收端接上5V电源,即可观察设计结

39、果,硬件实现如附录III。千万不要删除行尾的分节符,此行不会被打印。“结论”以前的所有正文内容都要编写在此行之前。结 论为期3周的通信专业课程设计,我们很好的完成了设计任务。期间,我学到了很多宝贵的经验和相关的通信技术知识。在这次的双机通信系统设计中,C语言程序和汇编语言程序的编写以及原理图的设计占了很重要的部分。对于零散的芯片,通过编程、仿真、硬件电路搭建,才能形成一个完整的系统。我们必须深入到工程实践中,毕竟实践出真知。同时,在本次课程设计中,我们还必须将书本中的知识很好的应用到实践中去。经过课程设计,在查阅资料的过程中,学习了基于单片机的C语言程序设计,了解了单片机串行通信的基本知识,对

40、于以后的学习和工作都有很大的益处。在学习的过程中,也遇到了一些困难,比如开始的时候,由于发送端和接收端的通信协议没有做好,导致数据不能正确的传输,在解决问题的过程中,对于通信协议的实现有了深刻的认识。现在课程设计已经结束,但它的影响却留存长久,它让我们自己动手,品尝成功的喜悦,激发了我们对实践的兴趣和热情,在很大程度上鼓舞了我们的学习决心,增强了我们的自信心,让我们以更大的勇气面对以后的学习和人生他,它给了我们开拓进取的动力。通过这次的课程设计我深刻的认识到了,理论知识和实践相结合是教学环节中相当重要的一个环节,只有这样才能提高自己的实际操作能力,并且从中培养自己独立思考、用于克服困难、团队协

41、作的精神。不要自己写,要利用word来自动生成。详情请看最后一页致 谢持续紧张和忙碌三周的课程设计终于完了,在此我特别感谢带我的指导老师-王老师,在这次毕业设计中对我的的耐心指导和帮助。还有各位领导在此期间对我的帮助和鼓励,使我在设计的时候信心十足。感谢学校给我门这次毕业设计的机会和其它的帮助。还有一同讨论、帮助我设计的同学表示感谢。在这次课程设计中,老师的教导和同学们的协作,使我受益匪浅。感谢几位舍友在我几次弄丢资料的情况下帮助我共同完成任务。没有老师和他们的帮助、查找资料。对于我一个对单片机知识理解不是很深入的人来说要想在短短的几周的时间里学习到网络知识并完成课程论文是很困难的事情。所以,

42、谢谢指导老师和几位舍友,谢谢你们!参考文献1 胡汉才. 单片机原理机接口技术M. 北京:北京清华大学出版社,2004.3.2 薛晓书. 单片微型计算机原理及应用. 西安交通大学出版社,2007.3 秦实宏,周龙,肖忠. 单片机原理与应用技术. 中国水利水电出版社,2005.附 录I发送端程序:#ifndef_PMPDATAT_H #define_PMPDATAT_H#include #include #define uchar unsigned char#define uint unsigned int#define SUCC 0x2A#define ERR 0xF0#define MAXLE

43、N 64 uchar buf;uchar addr,get_key,key;#endif#include PMPDataT.hsbit led=P34;uchar num=0;void delay(uint t)uint i;while(t-)for (i=0;i125;i+) uchar keyscan(void)uchar scancode,tmpcode;P1 = 0xf0; if (P1&0xf0)!=0xf0)delay(10);if (P1&0xf0)!=0xf0)/scancode = 0xfe;while(scancode&0x10)!=0) P1 = scancode;if (P1&0xf0)!=0xf0) tmpcode = (P1&0xf0)|0x0f;return(scancode)+(tmpcode);else scancode = (scancode1)|0x01;/ return(0);void senddata(uchar buf)TI = 0;TB

温馨提示

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

最新文档

评论

0/150

提交评论