51单片机双机串行通信设计_第1页
51单片机双机串行通信设计_第2页
51单片机双机串行通信设计_第3页
51单片机双机串行通信设计_第4页
51单片机双机串行通信设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、*实践教学*XXXXX大学计算机与通信学院2013年秋季学期通信系统综合训练 课稈设计题 目:51单片机双机串行通信设计专业班级:通信工程x班姓 名: XX学 号:XX扌旨导教师: XX成 绩:摘要双机通信的实质就是解决两单片机串行通信问题。针对于89C51 单片机全双工异步串行通信口,我们采用单片机直接交叉互连的串行通信方式。考虑到本设计应用于短距离传输、 两单片机具有相同的数据格式及电平且为使设计简单,我们最终决定本系统采用方式一单片 机直接交叉连接的串行通信方式,上位机发送的数据由串行口TXD端输出,直接由下位机的串行口数据接收端RXD接收。本设计的硬件电路分为数码管显示模块、单片机工作

2、的基本复 位电路以及晶振模块。编程采用 C语言加以实现。通信的结果使用数码管进行显示,数码管 采用查表方式显示,两个单片机之间采用 RS-232进行双向通信。关键字:51单片机 串行通信 RS-232 接口标准目录前言 11 基本原理 21.1 串行通信概述 21.2 串行通信的分类 21.3 串行通信技术标准 21.4 串行通信协议 31.5 串行通信与并行通信区别 41.6 MCS-51串行接口的基本特点 51.7 波特率选择 71.8 通信协议的使用 71.9 51 单片机的结构和作用 71.10 双机通信 82 系统分析 92.1 汇编语言和C语言的特点及选择 92.2 并行通信与串行

3、通信的比较 92.3 串行通信程序设计的比较 92.4 同步通信与异步通信的区别 93 系统设计 113.1 设计要求 113.2 设计方案 113.3 硬件设计 113.4 软件设计 144 系统调试 20总结 21参考文献 22致谢 26、八 、-前言随着电子技术的飞速发展,单片机也步如一个新的时代,越来越多的功能各异的单片机 为我们的设计提供了许多新的方法与思路。对于一些场合,比如:复杂的后台运算及通信与高实时性前台控制系统、软件资源消耗 大的系统、功能强大的低消耗系统、加密系统等等。如果合理使用多种不同类型的单片机组 合设计,可以得到极高灵活性与性能价格比,因此,多种异型单片机系统设计

4、渐渐成为一种 新的思路,单片机技术作为计算机技术的一个重要分支 , 由于单片机体积小 , 系统运行可靠 数据采集方便灵活 ,成本低廉等优点 , 在通信中发挥着越来越重要的作用。但在一些相对复杂 的单片机应用系统中 , 仅仅一个单片机资源是不够的 ,往往需要两个或多个单片机系统协同工 作。这就对单片机通信提出了更高要求。单片机之间的通信可以分为两大类:并行通信和串行通信。串行通信传输线少,长距离 传输时成本低,且可以利用数据采集方便灵活,成本低廉等优点,在通信中发挥着越来越重 要的作用。所以本系统采用串行通信来实现单片机之间可靠的,有效的数据交换。1 基本原理1.1 串行通信概述1.1.1 串行

5、通信的特点 在远程通信和计算机科学中,串行通信是指在计算机总线或其他数据通道上,每次传输一个位元数据,并连续进行以上单次过程的通信方式。与之对应的是并行通信,它在串行端 口上通过一次同时传输若干位元数据的方式进行通信。一位接一位地顺序传送。这样一个字 节的数据要分 8 次由低位到高位按顺序一位位地传送。由此可见,串行通信的特点如下:1、节省传输线,这是显而易见的。尤其是在远程通信时,此特点尤为重要。这也是串行通信的 主要优点; 2、数据传送效率低。与并行通信比,这也这是显而易见的。这也是串行通信的主 要缺点。串行通信被用于长距离通信以及大多数计算机网络,在这些应用场合里,电缆和同步化 使并行通

6、信实际应用面临困难。凭借着其改善的信号完整性和传播速度,串行通信总线正在 变得越来越普遍,甚至在短程距离的应用中,其优越性已经开始超越并行总线不需要串行化 元件等缺点。1.2 串行通信的分类1.2.1 异步通信 所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本上是同步的异步串行通信的特点可以概括为:以字符为单位传送信息; 相邻两字符间的间隔是任意长; 接收时钟和发送时钟只要相近就可以。 异步方式特 点简单的说就是:字符间异步,字符内部各位同步。1.2.2 同步通信 所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符 内部的位

7、与位之间都同步 .同步串行通信的特点可以概括为: 以数据块为单位传送信息; 在一个数据块(信息帧)内,字符与字符间无间隔;接收时钟与发送进钟严格同步。1.3 串行通信技术标准1.3.1 数据传输率(1)比特率和波特率:比特率是指每秒传输的二进制位数,用 bps (bit/s) 表示。波特率 是指每秒传输的符号数,若每个符号所含的信息量为 1 比特,则波特率等于比特率。在计算 机中,一个符号的含义为高低电平,它们分别代表逻辑“ 1”和逻辑“ 0”,所以每个符号所含 的信息量刚好为 1 比特,因此在计算机通信中,常将比特率称为波特率,即:1 波特( B) =1比特(bit)=1位/秒(1bps)例

8、如:电传打字机最快传输率为每秒 10个字符/秒,每个字符 包含11个二进制位,则数据传输率为:11位/字符X 10个字符/秒=110位/秒=110波特(Baud) 计算机中常用的波特率是: 110、300、600、1200、2400、4800、9600、19200、28800、33600, 目前最高可达 56Kbps.(2)位时间Td:位时间是指传送一个二进制位所需时间,用Td表示。Td = 1/波特率 = 1/B(3)发送时钟和接收时钟在串行通信中, 二进制数据以数字信号的信号形式出现 , 不论是发送还是接收, 都必须有 时钟信号对传送的数据进行定位。在 TTL 标准表示的二进制数中,传输线

9、上高电平表示二进 制 1,低电平表示二进制 0,且每一位持续时间是固定的,由发送时钟和接收时钟的频率决 定。1)发送时钟 发送数据时,先将要发送的数据送入移位寄存器,然后在发送时钟的控制下,将该并行数据逐位移位输出。通常是在发送时钟的下降沿将移位寄存器中的数据串行输出,每个数据 位的时间间隔由发送时钟的周期来划分。2)接收时钟 在接收串行数据时,接收时钟的上升沿对接收数据采样,进行数据位检测,并将其移入接收器的移位寄存器中,最后组成并行数据输出。1.3.2 波特率因子接收时钟和发送时钟与波特率有如下关系: F=nX B 这里 F 是发送时钟或接收时钟的频 率;B是数据传输的波特率;n称为波特率

10、因子。设发送或接收时钟的周期为Tc,频率为F的位传输时间为Td,则:Tc=1/F,Td =1/B 得到:Tc=T/n在实际串行通信中,波特率因子可 以设定。在异步传送时,n =1, 16, 64实际常采n=16,即发送或接收时钟的频率要比数据传送的波特率高 n 倍。在同步通信中波特率因子必等于 1。1.4 串行通信协议包括 RS-232-C、RS-422、RS485 USB等。RS-232-C、RS-422与 RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。1.4.1 RS-232-C 串口RS-232-C

11、也称标准串口,是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE和数据通讯设备(DCE之间串行二进制数据交换接口技术标准”。传统的RS-232-C接口标准有22根线,采用标准25芯D型插头 座。自IBM PC/AT开始使用简化了的9芯D型插座。至今25芯插头座现代应用中已经很少 采用。电脑一般有两个串口: COM和COM2 9针D形接口通常在计算机后面能看到。现在有 很多手机数据线或者物流接收器都采用 COMq与计算机相连。1.4.2 RS-422为改进RS-

12、232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输 速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡 总线上连接最多 10个接收器。 RS- 422是一种单机发送、多机接收的单向、平衡传输规范, 被命名为 TIA/EIA-422-A 标准。1.4.3 RS-485为扩展应用范围,EIA又于1983年在RS-422基础上制定了 RS-485标准,增加了多点、 双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲 突保护特性,扩展了总线共模范围,后命名为 TIA/EIA-485-A 标准。1.4.4

13、 RJ-45 接口是以太网最为常用的接口, RJ45是一个常用名称,指的是由IEC(60)603-7标准化,使 用由国际性的接插件标准定义的 8个位置( 8针)的模块化插孔或者插头。1.4.5 Universal SerialBus (通用串行总线)简称USB是目前电脑上应用较广泛的接口规范,由In tel、Microsoft、Compaq IBM、NEC Northern Telcom等几家大厂商发起的新型外设接口标准。 USB接口是电脑主板上的一 种四针接口,其中中间两个针传输数据,两边两个针给外设供电。USB接口速度快、连接简单、不需要外接电源,传输速度 12Mbps新的USB 2.0可

14、达480Mbps电缆最大长度5米, USB电缆有4条线:2条信号线,2条电源线,可提供5伏特电源,USB电缆还分屏蔽和非屏 蔽两种,屏蔽电缆传输速度可达 12Mbps价格较贵,非屏蔽电缆速度为 1.5Mbps,但价格便 宜;USB通过串联方式最多可串接127个设备;支持热插拔。最新的规格是 USB 3.0。1.5 串行通信与并行通信区别计算机与外界的信息交换称为通信。在通信领域内,有两种数据通信方式:并行通信 和串行通信。 随着计算机网络化和微机分级分布式应用系统的发展,通信的功能越来越 重要。通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括 计算机与外部设备,如终端、打

15、印机和磁盘等设备之间的传输。串行通信是指 使用一条数据线,将数据一位一位地依次传输,每一位数据占据一 个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别适用于计算机 与计算机、计算机与外设之间的远距离通信。在计算机和终端之间的数据传输通常是靠电缆或信道上的电流或电压变化实现的。如果一组数据的各数据位在多条线上同时被传输,这种传输方式称为并行通信终点、八、(b)串行通信8位数据线0.1001(a)并行通信图1串行通信与并行通信的区别1.6 MCS-51串行接口的基本特点MCS-51单片机的串行端口有4种基本工作方式,通过编程设置,可以使其工作在任一方式,以满足不同场合的需要。其中,

16、方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;工作方式1多用于双机之间或与外设电路的通信; 方式2、3除有方式1的功能外, 还可以作多机通信,以构成分布式多微机系统。串行端口有两个控制寄存器 SCONPCON用于设置工作方式、发送或接收的状态、特征 位、数据传送波特率每秒传送的位数以及作为中断标志等。串行端口有一个数据寄存器SBUF在特殊功能寄存器中的字节地址为 99H,该寄存器为发 送和接收所共用。串行端口的波特率可以用程序来控制。在不同工作方式中,由时钟振荡频率的分频值或由定时器T1的定时溢出时间确定,使用十分方便灵活。串口控制寄存器输入:在(REN)=1时,串行口采样RXD引脚

17、,当采样到1至O的跳变时,确认是串行发 送来的一帧数据的开始位0,从而开始接收一帧数据。只有当 8位数据接收完,并检测到高 电平停止位后,只有满足(R1)=0 :(SM2)=0或接收到的第9位数据为1时,停止位才进 入RB8 8位数据才能进入接收寄存器,并由硬件置位中断标志 RI;否则信息丢失。所以在 方式1接收时,应先用软件清零 RI和SM2标志。1.工作方式2方式2为固定波特率的11位UART方式。它比方式1增加了一位可程控为1或0的第9位数据输出:发送的串行数据由TXD端输出一帧信息为11位,附加的第9位来自SCON寄存器 的TB8位,用软件置位或复位。它可作为多机通讯中地址/数据信息的

18、标志位,也可以作为 数据的奇偶校验位。当CPU执行一条数据写入SUBF勺指令且TI=0时,就启动发送器发送。 发送一帧信息后,置位中断标志 TI 。输入:在(REN)=1时,串行口采样RXD引脚,当采样到1至0的跳变时,确认是串行发 送来的一帧数据的开始位 0,从而开始接收一帧数据。在接收到附加的第 9 位数据后,当满 足(RI) : 0;(SM2)=0或接收到的第9位数据为1时,第9位数据才进入RB8 8位数据 才能进入接收寄存器,并由硬件置位中断标志Ri;否则信息丢失。且不置位 RI o2. 工作方式 3方式3为波特率可变的11位UART方式。除波特率外,其余与方式 2相同。 波特率的选择

19、如前所述,在串行通讯中,收发双方的数据传送率 (波特率)要有一定的约定。在MCS-51 串行口的四种工作方式中, 方式 0和2的波特率是固定的, 而方式 1 和3的波特率是可变的, 由定时器T1的溢出率控制。1 方式 1方式 1 的波特率固定为主振频率的 1/12o2 方式 2方式2的波特率由PCON中的选择位SMO来决定,可表示为:波特率 =2sMoD 方式 1 和方式 3定时器 T1 作为波特率发生器,其公式如下:波特率=2SMO/32X定时器T1溢出率T1溢出率=T1计数率/产生溢出所需的周期数式中T1计数率取决于它工作在定时器状态还是计数器状态。 当工作于定时器状态时,T1 计数率为

20、Fosc/2 :当工作于计数器状态时, T1 计数率为外部输入频率, 此频率应小于 Fosc/24o 产生溢出所需周期与定时器T1的工作方式、T1的预置值有关。定时器T1工作于方式O溢出所需周期数=8192-X定时器 T1 工作于方式 1:溢出所需周期数 =65536-X定时器 T1 工作于方式 2:溢出所需周期数 =256-X因为方式 2 为自动重装入初值的 8 位定时器/计数器模式,所以用它来做波特率发生器 最恰当。这种方式下,T1的溢出率次/秒计算式可以表示为:T1 溢出率=Fsoc/ 12256-X1.7 波特率选择波特率(Boud Rate)就是在串口通信中每秒能够发送的位数( bi

21、ts/second )。MCS-51 串行端口在四种工作模式下有不同的波特率计算方法。其中,模式 0 和模式 2 波特率计算很 简单;模式 1 和模式 3的波特率选择相同,故在此仅以工作模式 1 为例来说明串口通信波特 率的选择。在串行端口工作于模式 1,其波特率将由计时 /计数器 1 来产生,通常设置定时器工作于 模式 2(自动再加模式)。在此模式下波特率计算公式为:波特率=(1+SM0D* 晶振频率 /(384* (256-TH1)其中,SMO寄存器PCON勺第7位,称为波特率倍增位;TH1 定时器的重载值。在选择波特率的时候需要考虑两点:首先,系统需要的通信速率。这要根据系统的运作 特点

22、,确定通信的频率范围。然后考虑通信时钟误差。使用同一晶振频率在选择不同的通信 速率时通信时钟误差会有很大差别。为了通信的稳定,我们应该尽量选择时钟误差最小的频 率进行通信。1.8 通信协议的使用通信协议是通信设备在通信前的约定。单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。假定我们需要在 PC机与单片机之间进行通信,在双 方程式设计过程中,有如下约定:0xA1 :单片机读取P0端口数据,并将读取数据返回 PC机;0xA2 :单片机从PC机接收一段控制数据;0xA3 :单片机操作成功信息。在系统工作过程中,单片机接收到 PC机数据信息后,便查找协议,完成相应的操作

23、。当 单片机接收到0xA1时,读取P0端口数据,并将读取数据返回 PC机;当单片机接收到0xA2 时,单片机等待从PC机接收一段控制数据;当PC接收到0xA3时,就表明单片机操作已经成 功。1.9 51 单片机的结构和作用51单片机的串行接口是一个全双工的接口, 它可以作为UART (通用异步接受和发送器) 用,也可以作为同步移位寄存器用。 51 单片机串行接口的结构如下:数据缓冲器( SBUF) 接受或发送的数据都要先送到 SBUF 缓存。有两个,一个缓存,另一个接受,用同一个 直接地址99H,发送时用指令将数据送到 SBUF即可启动发送:接收时用指令将 SBUF中接收到的数据取出串行控制寄

24、存器(PCONSCON用于串行通信法师的选择,首发控制及状态指示。利用AT89C51芯片、复位电路、时钟电路、LED数码管等,使A机控制B机的两个LED 闪烁,B机控制A机的数码管加一显示。使用 DS18B2C温度传感器,由B机测量温度后由A机 显示.把P1 口的高7位与数码管相连,绿灯表示通行方向。P2口与LED显示器相连,用来输出显示的数字。MAX232外围电路外围电路1.10双机通信两台机器的通信方式可分为单工通信、半双工通信、双工通信,他们的通信原理及通信 方式为:单工通信:是指消息只能单方向传输的工作方式。单工通信信道是单向信道,发送端和 接收端的身份是固定的,发送端只能发送信息,不

25、能接收信息;接收端只能接收信息,不能 发送信息,数据信号仅从一端传送到另一端,即信息流是单方向的。通信双方采用单工通信 属于点到点的通信。根据收发频率的异同,单工通信可分为同频通信和异频通信。半双工通信:这种通信方式可以实现双向的通信,但不能在两个方向上同时进行, 必须轮流交替地进行。也就是说,通信信道的每一段都可以是发送端,也可以是接端。 但同一时刻里,信息只能有一个传输方向。如日常生活中的例子有步话机通信等。双工通信:双工通信是指在同一时刻信息可以进行双向传输,和打电话一样,说的 同时也能听,边说边听。 这种发射机和接收机分别在两个不同的频率上能同时进行工作 的双工机也称为异频双工机。双工

26、机的特点是使用方便,但线路设计较复杂,价格也较2 系统分析2.1 汇编语言和 C 语言的特点及选择本设计是硬件电路和软件编程相结合的设计方案,选择合适的编程语言是一个重要的环 节。在单片机的应用系统程序设计时,常用的是汇编语言和 C 语言。主机硬件,程序可读性 和可移植性比较差。而C语言虽然执行效率没有汇编语言高,但语言简洁,使用方便,灵活, 运算方便,表达类型多样化,数据结构类型丰富,具有结构化的控制语句,程序设计自由度 大,有很好的可重用性,可移植性等特点。所以我们采用 C语言编写了程序。2.2 并行通信与串行通信的比较计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通

27、信。 51 单片机用 4 个接口与外界进行数据输入与数据输出就是并行通信,并行通信得特点是传输信 号的速度快,但所用的信号线比较多,成本高,传输的距离较近。串行通信的特点是只用两 条信号线即可完成通信,成本低,传输的距离较远。2.3 串行通信程序设计的比较串行通信程序设计主要有微机发送接收程序和单片机发送接收程序。微机发送接收程序 复杂难懂,操作不便。单片机发送接收程序简单易懂,操作方便。故而,此系统采用后者。2.4 同步通信与异步通信的区别“异步通信”是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的 时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备(如果接收端主机的电

28、源都 没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任 意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位 和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简 单、便宜,但传输效率较低。异步通信也可以是以帧作为发送的单位。接收端必须随时做好接收帧的准备。这是,帧 的首部必须设有一些特殊的比特组合,使得接收端能够找出一帧的开始。这也称为帧定界。 帧定界还包含确定帧的结束位置。这有两种方法。一种是在帧的尾部设有某种特殊的比特组 合来标志帧的结束。或者在帧首部中设有帧长度的字段。需要注意的是,在异步发送帧时,

29、 并不是说发送端对帧中的每一个字符都必须加上开始位和停止位后再发送出去,而是说,发 送端可以在任意时间发送一个帧,而帧与帧之间的时间间隔也可以是任意的。在一帧中的所 有比特是连续发送的。 发送端不需要在发送一帧之前和接收端进行协调。 每个字符开始发送 的时间可以是任意的 t0 0 1 1 0 1 1 0 起始位结束位 t 每个帧开始发送的时间可以是任意的以字符为单位发送以帧为单位发送帧开始帧结束“同步通信”的通信双方必须先建立同步,即双方的时钟要调整到同一个频率。收发双 方不停地发送和接收连续的同步比特流。但这时还有两种不同的同步方式。一种是使用全网 同步,用一个非常精确的主时钟对全网所有结点

30、上的时钟进行同步。另一种是使用准同步, 各结点的时钟之间允许有微小的误差,然后采用其他措施实现同步传输。3 系统设计3.1 设计要求在本设计中,要求完成51单片机与串口的线路连接、并用 C语言编写程序实现PC机与51 单片机通过串口实现异步通信,并能根据设置调整异步传行通信参数。3.2 设计方案本次设计,对于两片89C51,采用RS-232进行双机通信。发送方的数据由串行口 TXD段 输出,经过电平转换芯片 MAX232各TTL电平转换为RS-232点评输出,经过传输线将信号传 送到接收端。接收方也是用 MAX232芯片惊醒电平转换后,信号到达接收方串行口的接收端。 接收方接收后,在数码管上显

31、示接收的信息。软件部分,通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到 AAH后,向主机回答BBH主机收到BBH后就把数码表中的16个数据送给从机,并发送检验和。从机收到 16 个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发 送00H给主机;否则发送FFH给主机,重新接受。从机收到16个正确数据后送到一个数码管 显示。3.3 硬件设计AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。 单片机的可擦除只读存储器可以反复擦除

32、1000次。该器件采用ATMEI高密度非易失存储器制 造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁 存储器组合在单个芯片中,ATME的 AT89C51是一种高效微控制器,AT89C2051是它的一种精 简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。A、B两台51单片机机通过串行接口相连,B机的七段数码管显示其接收到(A机发出) 的数字;而A机的七段数码管则显示其接收到(B机发出)的数字。电路原理图如下所示。C1U122plCRYSTALC210nfX119L XTAL1P0.0/AD0XTAL2P0.1/AD1P0.

33、2/AD2P0.3/AD3RSTP0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11ALEP2.4/A12EAP2.5/A13P1.0P2.6/A14P2.7/A15P3.0/RXDP1.1P3.1/TXDP1.2P3.2/INT0-P1.3P3.3/INTFP1.4P3.4/T0P1.5P3.5/T1P1.6P3.6/WRP1.7P3.7/RD38371836211 26281AT89C5129302 3 4 5 6 7 839NOTU3C4U222pCRYSTALC5R2卄22pFca C6匚;二I 10nf45,XT

34、AL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1 1P3 1/TXDP1.2P3.2/INTLP1.3P1 4P3.3/INTTP3 4/T0P1.5P3.5/T1P1.6P3.6/WRP1.7P3.7/RD191892112315AT89C51162931 1314101112RESPACK-73938373633322223281011123534RP1RP2RESP

35、ACK-7U4NOT图3电路原理图在桌面上双击图标打开ISIS 7 Professional窗口。在器件选择按钮中单击“P”钮,或执行菜单命令 库”一拾取元件/符号”添加如下表所示的元件。表2元件选择表51单片机AT89C51二片晶体 CRYSTAL 11.0592MHz 二只瓷片电容CAP 22pF四只电解电容CAP-ELEC 10uF二口-二只电阻RES 10K二只上拉电阻网络RESPACK-7二口-二只七段数码管7SEG-COM-CAT-GRNI只管脚说明:VCC供电电压。GND接地。P0 口: P0 口为一个8位漏级开路双向I/O 口, 每脚可吸收8TTL门电流。当P0口的管脚第一次写

36、1时,被定义为高阻输入。P0能够用于外 部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码 输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1 口: P1 口是一 个内部提供上拉电阻的8位双向I/O 口,P1 口缓冲器能接收输出4TTL门电流。P1 口管脚写U319XTAL1P0.0/AD0P0.1/AD1P0.2/AD239 -38 -TT18XTAL2P0 3/AD336P0.4/AD435P0 5/AD534P0.6/AD6339RSTP0 7/AD732P2.0/A8P2 1/A92122P2.2/A10232924PSEN

37、P2 3/A1130ALEEA-P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0-P3.3/INT1P3.4/T0P3.5/T125312627281P1.0P1.1P1.2P1.3P1.4P1.510211312413514615716P1.6P1.7P3.6/WRP3.7/RD-817AT89C51图3 AT89C51管脚图入1后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由 于内部上拉的缘故。在 FLASH编程和校验时,P1 口作为第八位地址接收。RST复位输入。 当振荡器复位器件时,要保持

38、RST脚两个机器周期的高电平时间。ALE/PROG当访问外部存 储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率 的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部 数据存储器时,将跳过一个 ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOV,MOV指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器 在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序 存储器取指期

39、间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效 的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,贝U在此期间外部程序存储器(0000H-FFFFH,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET 当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加 12V编程电源(VPP。XTAL1 :反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部

40、时钟源驱动器件, XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的 脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。VIRTUALTERMINAJL在工具栏中单击虚拟仪器按纽,再在对象选择器中选择虚拟终端 放置两个虚拟终端。在ISIS原理图编辑窗口中放置元件,再单击工具箱中元件终端图标,在对象选择器中 单击POWE和GROUND置电源和地。放置好元件后,布好线。左键双击各元件,设置相应元 件参数,完成电路图的设计。3.4 软件设计A、B两机进行异步串行通信,当B机接收到A机发出的数据后,一方面通过其数码管显 示,另外加上偏移量后发出。当 A机收到B机发出

41、的数据后,一方面通过其数码管显示,另 外经延时后再发出下一个数据。 A、B两机的流程图如下所示。(1)发送端程序流程图(2)接收方程序流程图主程序A B两台51单片机的异步串行接收采用查询方式,它们详细的C51程序如下所示/A机程序#i nclude/包含单片机寄存器的头文件un sig ned char code ddata=0x77,0x7c,0x39,0x5e,0x79,0x71,0x73,0x3e,0x31,0x6e,0x76,0x38,0xff,0x00; A,B,C,D,E,F,P,U,R,Y,H 丄,全亮,全灭的段码/*函数功能:发送一个字节数据*/void Send(un si

42、g ned char dat)SBUF=dat;while(TI=0); / 等待TI=0;/* 函数功能:接收一个字节数据unsigned char Receive(void) unsigned char dat;while(RI=0) ; /RI=0; / dat=SBUF; /等待,直至接收完毕( RI=1 ) 为了接收下一帧数据,需将 RI 清 0 将接收缓冲器中的数据存于 datreturn dat;/*函数功能:延时约 150msvoid delay(void)unsigned char m,n; for(m=0;m200;m+) for(n=0;n250;n+)/*函数功能:主函

43、数void main(void)unsigned char i;TMOD=0x20; /TMOD=0010 OOOOB 定时器 T1 工作于方式 2SCON=0x50; SCON=0101 0000B 串口工作方式 1,允许接收PCON=0x00;TH1=0xfd; /TL1=0xfd; /TR1=1;/P2=0x01; /定时器TH1赋初值,波特率9600定时器 TL1 赋初值启动定时器 T1置 P2.0 口为高电平while(1) for(i=0;i8;i+)Send(i); / 发送数据 iP0=ddataReceive(); / 将接收到的数据送 P0 口显示 delay(); /60

44、0ms 后发送下一个数据 delay();delay();delay();/B 机程序#include / 包含单片机寄存器的头文件 unsigned char code ddata= 0x77,0x7c,0x39,0x5e,0x79,0x71,0x73,0x3e,0x31,0x6e, 0x76,0x38,0xff,0x00; /A,B,C,D,E,F,P,U,R,Y,H,L, 全亮,全灭的段码 /*函数功能:发送一个字节数据*/void Send(unsigned char dat)SBUF=dat;while(TI=0); / 等待TI=0;/*函数功能:接收一个字节数据*/unsigne

45、d char Receive(void)unsigned char dat;while(RI=0); / 等待,直至接收完毕( RI=1 )RI=0; / 为了接收下一帧数据,需将 RI 清 0dat=SBUF; / 将接收缓冲器中的数据存于 datreturn dat;/*函数功能:主函数*/void main(void)unsigned char dat;TMOD=0x20; / 定时器 T1 工作于方式 2SCON=0x50; SCON=0101 OOOOB 串口工作方式 1,允许接收(REN=1PCON=0x00;TH1=0xfd; / 定时器TH1赋初值,波特率9600TL1=0xf

46、d; / 定时器 TL1 赋初值TR1=1;/ 启动定时器 T1P2=0X01; /置P2.0 口为高电平while(1)dat=Receive();P0=ddatadat; /将接收到的数据送 P0 口显示Send(dat+8);/ 偏移量为 +8打开Keil程序(本人使用的是Keil8.06中文版),执行菜单命令“工程新建工 程”创建“less。n1 ”项目,并选择单片机型号为 AT89C51执行菜单命令“文件新建” 创建文件,输入A机的C语言源程序,保存为“ less。nl.C ”。在Project Workspace窗口中 右击源代码组 1,选择“添加文件到组源代码组 l ”将源程序“

47、 lesson1.C ”添加到项目 中。在Keil中执行执行菜单命令“工程”-“创建目标”,编译源程序。如果编译成功, 则在“ Output Win dow ”的“创建”窗口中显示没有错误,并创建了“ less。nl.HEX ”文件(注意此时可执行文件的输出路径和文件名)。使用相同的方法在创建B机的C语言程序,保存为“ lesson2.C ”,并产生“ lesson2.HEX ”文件。4系统调试关于Proteus与Keil的联合仿真调试。需注意Proteus的ISIS中A、B机的CPI属性中 Program File 与Keil的卩Vision4中的路径和文件名要一致。启动Proteus的ISIS,并将其放在屏幕的右上角(可将原理图放大到合适大小);再启 动Keil的卩Vision4,并将其放在屏幕的左下角。在Keil中执行菜单命令“调试启动/停止调试”,进入 Keil调试环境。同时, 在Proteus ISIS 的窗口中可看出P

温馨提示

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

评论

0/150

提交评论