版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020年9月5日,牡丹江师范学院计算机科学与技术系,1,本章要求,1、熟练掌握单片机系统扩展的基本概念; 2、熟练掌握单片机程序和数据存储器的扩展方法;了解串行数据存储器的接口方法; 3、熟练掌握单片机与8255A的接口方法; 4、熟练掌握单片机与LED显示器、键盘的接口方法;了解各种串行通信接口的方法以及PC机与单片机、单片机之间的串行通信原理和方法; 5、熟练掌握常用A/D转换器、D/A转换器和单片机的接口设计方法;,2020年9月5日,牡丹江师范学院计算机科学与技术系,2,5.4 显示器接口,本节主要介绍LED显示器和8051的接口,并对液晶显示器(LCD)与8051的接口做以简单的介
2、绍。 5.4.1 发光二极管显示器接口 1.LED数码管的基本组成 主要部分是七段发光管(a、b、c、d、e、f、g,附带小数点dp),因而称为七段式数码管。 可以实现十六进制数的显示。 可分为共阳极和共阴极两种结构。,2020年9月5日,牡丹江师范学院计算机科学与技术系,3,g f com a b,a,f g b,e d c,dp,e d com c dp,(a) 管脚图,a c e,b,d,f,g,dp,com,地,com,+5V,a c e,b,d,f,g,dp,(b) 共阴极,(c) 共阳级,七段LED数码管结构,2020年9月5日,牡丹江师范学院计算机科学与技术系,4,5.4.1 发
3、光二极管显示器接口,LED显示代码和显示位的对应关系,2020年9月5日,牡丹江师范学院计算机科学与技术系,5,5.4.1 发光二极管显示器接口,(2)LED显示器显示原理 1)LED静态显示方式 一般采用以硬件为主的接口方法。 其特点是: 共阴极接地或共阳极接+5V;每一位的段选线(ag、dp)与一个具有锁存功能的8位并行I/O口相连,用以锁存待显示的字形码。 显示器的每一位可独立显示。,2020年9月5日,牡丹江师范学院计算机科学与技术系,6,5.4.1 发光二极管显示器接口,显示程序结构: MOV DPTR,#WTAB ;指向字形码表 MOV A,R0 ;取显示数据 MOVC A,A+D
4、PTR ;查表显示译码 MOV P1,A ;输出显示 WTAB:DB3FH,06H,5BH ;字形码表 ,2020年9月5日,牡丹江师范学院计算机科学与技术系,7,5.4.1 发光二极管显示器接口,LED静态显示方式的特点: 优点:显示方法简单,占用CPU时间少,显示便于监测和控制; 缺点:占用I/O口线较多,硬件电路比较复杂,成本较高。 2)LED动态显示方式 动态显示方式采用以软件为主的接口方法。6位动态显示器接口电路如图。,2020年9月5日,牡丹江师范学院计算机科学与技术系,8,5.4.1 发光二极管显示器接口,电路的特点: 所有位数码管的段选线并联在一起接到同一个I/O口上; 由位选
5、线控制是哪一位数码管有效; 通过动态扫描显示方法,逐个循环点亮各位显示器,利用发光管的余辉和人眼具有的视觉暂留效应,达到全部显示器持续点亮的效果。 缺点:显示的亮度比静态显示要差一些; 优点:减少了锁存器,简化了硬件电路。,2020年9月5日,牡丹江师范学院计算机科学与技术系,9,2.动态显示程序设计,对上图所示的6位LED显示器,设在8051的RAM中设有6B的显示缓冲区79H7EH,存放6位待显示数据。8051的P3口扫描输出总是有一位为高电平,使某一时刻总有一位显示;8051的P1口则输出相应的显示代码。要求编写相应的显示程序。 根据要求,确定显示程序的流程图如下所示。,2020年9月5
6、日,牡丹江师范学院计算机科学与技术系,10,2.动态显示程序设计,DIR: MOV R0, #79H ;显示缓冲区首址送R0 MOV R3, #01H ;使显示器最右边位亮 LD0: MOV P3, R3 ;扫描值送P3口 MOV A, R0 ;取显示数据 ADD A, #0CH ;加上偏移量 MOVC A, A+PC ;取出字形 MOV P1, A ;送出字形码显示 ACALL DL1 ;延时 INC R0 ;缓冲区地址加 1,2020年9月5日,牡丹江师范学院计算机科学与技术系,11,2.动态显示程序设计,MOV A, R3 JB ACC.5, LD1;判是否扫到第6个显示位 RL A ;
7、准备扫描下一个显示位 MOV R3, A AJMP LD0 LD1: RET DSEG: DB 3FH, 06H, , 00H DL1: MOV R7, #02H ;延时子程序 RET,2020年9月5日,牡丹江师范学院计算机科学与技术系,12,2.动态显示程序设计,程序说明: (1)延时1ms目的是使显示稳定、保证亮度; (2)使用MOVC A,A+PC应对A进行修正; (3)实际单片机系统中,LED显示程序作为一个子程序供监控程序调用,各位显示器都扫过一遍之后,就返回监控程序,经过一段时间间隔后,再调用显示扫描程序; (4)可采用专用的硬件译码电路模块进行译码,如MC14495。,2020
8、年9月5日,牡丹江师范学院计算机科学与技术系,13,5.4.2七段码液晶显示器(LCD)接口,1.LCD结构与原理 LCDLiquid Crystal Display 具有功耗低、抗干扰能力强、体积小、重量轻、显示内容丰富等特点。 液晶显示器的基本结构如上图所示。 LCD是一种被动式的显示器本身并不发光,而是利用电场效应液晶的扭曲向列效应制成。 电场的作用下液晶扭曲结构消失,其旋光作用也消失,偏振光便可直接通过,去掉电场后液晶分子的扭曲结构又会恢复。,2020年9月5日,牡丹江师范学院计算机科学与技术系,14,5.4.2七段码液晶显示器(LCD)接口,2.LCD的分类 字段型 类似于LED。包
9、括a、b、c、d、e、f、g七个笔划(段)和一个背电极BP(或COM)。可显示数字和简单的字符。 点阵字符型 由57或510点阵组成,可显示字母、数字、符号。 点阵图形型 可用于显示汉字和图形,广泛用于笔记本电脑和彩色电视等设备中。,2020年9月5日,牡丹江师范学院计算机科学与技术系,15,5.4.2七段码液晶显示器(LCD)接口,3.LCD七段显示器的驱动 静态驱动方式 对LCD加直流信号驱动。直流信号使得液晶材料迅速分解,缩短工作寿命。 动态驱动方式 在LCD的公共极加固定的正方波信号,控制段极的电压变化,段方波与公共极方波同相时,方波信号抵消为0该段不显示;两者方波反相时,方波信号叠加
10、为2倍值则该段显示。,2020年9月5日,牡丹江师范学院计算机科学与技术系,16,5.4.2七段码液晶显示器(LCD)接口,4.采用硬件译码的LCD接口 Motorola公司生产的MC14543是常用的LCD锁存/译码/驱动电路。 只需在LE端加高电平、BI端加低电平,Ph端输入方波,A、B、C、D端输入BCD码,则在译码输出端就会输出对应的方波,驱动对应的液晶笔画显示出数字。 由于其操作和七段LED显示器基本相同,不再介绍。,2020年9月5日,牡丹江师范学院计算机科学与技术系,17,5.4.3 字符型液晶显示器接口,点阵字符型LCD显示器需要有相应的LCD控制器、点阵驱动器来对LCD显示器
11、进行扫描、驱动,以及RAM和ROM存储写入的命令和字符点阵。 液晶显示模块 将LCD控制器、点阵驱动器、RAM、ROM和LCD显示器用PCB连接到一起构成LDM(Liquid Crystal Display Module)。 用户只要向LDM送入相应的命令和数据即可显示相应的内容。,2020年9月5日,牡丹江师范学院计算机科学与技术系,18,5.4.3 字符型液晶显示器接口,液晶显示模块特点: 与单片机接口简单、功能较强、易于控制、可靠性高、功耗较低、使用灵活方便的特点。 由于不同厂家生产的LCD控制器具有不同的指令集,因而不再介绍。,2020年9月5日,牡丹江师范学院计算机科学与技术系,19
12、,5.5 键盘接口,用于计算机系统的键盘有两类: 编码键盘 闭合键的识别、编码由内部硬件电路自动实现和产生。使用方便、硬件结构复杂、成本高。 非编码键盘 采用矩阵方式排列按键,利用软件识别键码及完成各种键功能处理。 对于单片机,由于其结构和规模的特点,主要采用非编码键盘。,2020年9月5日,牡丹江师范学院计算机科学与技术系,20,5.5 键盘接口,键盘接口应具备的功能: 键扫描(判定是否有键按下)、键识别(确定按键位置)、产生键代码(键值)、消除抖动和重键。 8051与键盘的接口方式: 通过可编程并行接口(如8155,8255); 通过串行口; 通过键盘显示器接口8279; 通过单片机的片内
13、并行口。,2020年9月5日,牡丹江师范学院计算机科学与技术系,21,5.5.1 非编码式键盘的工作原理,1.非编码式键盘的结构 两种结构:独立式键盘和矩阵式键盘。 独立式键盘: 每个按键单独占有一根I/O接口引线。输入每根I/O接口引线的信号(0表示相应键被按下)对应着某个按键。独立式键盘只适于键数较少或操作速度较高的场合。,2020年9月5日,牡丹江师范学院计算机科学与技术系,22,5.5.1 非编码式键盘的工作原理,1.非编码式键盘的结构 矩阵式键盘:又叫行列式键盘,由多条I/O接口引线组成行、列结构,按键设置在行列的交点上。 矩阵式键盘在按键数量较多时,可以节省很多的I/O口线。主要适
14、用于按键数目较多的场合。,2020年9月5日,牡丹江师范学院计算机科学与技术系,23,5.5.1 非编码式键盘的工作原理,2.非编码式键盘工作原理行扫描法 依次使行线为低电平,然后检测列线电位; 如某列电位为低电平,则所检测行、低电平列交叉点的按键被按下; 检测过程中,如果有键被按下则退出扫描; 根据行线和列线的位置,识别闭合的键。 快速检测法:使所有行同时为低电平,检测是否有列线为低电平,从而快速检测出是否有键被按下。最后通过扫描法来确定按键的具体位置。,2020年9月5日,牡丹江师范学院计算机科学与技术系,24,5.5.1 非编码式键盘的工作原理,2.非编码式键盘工作原理行反转法 将行线接
15、到并行口并工作于输出方式,将列线也接到并行口并工作于输入方式; 向各行线输出低电平,读入列线的值。如果有键按下,则必定会有某一列线的电位为0; 反转设置两个端口的输入输出方式; 将读得的列值输出,读入行线值,则有键按下的行线必为低电平,从而得到唯一的行线值和列线值,进而可确定所按下的键位置;,2020年9月5日,牡丹江师范学院计算机科学与技术系,25,5.5.1 非编码式键盘的工作原理,2.非编码式键盘工作原理闭合键的键号确定 对键号的确定,有以下两种方法: 根据行线和列线的状态计算求得: 在顺序排列键编码的情况下,有: 键号=闭合键的列号+行首键键号 根据行线和列线状态查表求得: 用键盘连接
16、的I/O口线的状态组合表示键码。这种键值编码软件较为简单直观,但离散性大,不便安排散转程序的入口地址。,2020年9月5日,牡丹江师范学院计算机科学与技术系,26,5.5.1 非编码式键盘的工作原理,3.“键抖动”的处理方法 由于机械触点的弹性及电压突跳等原因,往往在键闭合或断开时出现抖动。 (1)软件消除抖动方法 分别采用软件延时10ms时间以躲开了两个抖动期的影响。为简单起见多采用该方法。 (2)硬件消除抖动方法 在键盘中附加去抖动电路,从根本上消除抖动产生的可能性。常用硬件去抖动电路如图所示。,2020年9月5日,牡丹江师范学院计算机科学与技术系,27,5.5.1 非编码式键盘的工作原理
17、,4.“重键”的处理 最简单的处理方法:当出现重键(行、列代码中有两个以上的0)时,软件查表不能得到有效的键值,将其作为废键处理。 5.CPU对键盘扫描的方式 随机方式 当CPU空闲时进行键盘扫描; 定时控制方式 CPU定时对键盘扫描; 中断方式 有键闭合时,CPU响应键盘输入中断,对键盘进行扫描,可有效提高CPU的效率。,2020年9月5日,牡丹江师范学院计算机科学与技术系,28,5.5.2 键盘接口设计,8051与键盘的接口方法: 可编程并行接口(如8155,8255); 串行口与键盘接口;只有一个串口! 键盘显示器接口8279;已不再生产! 通过单片机的片内并行口。 8051经8255A
18、与键盘显示器的接口电路如图所示。,2020年9月5日,牡丹江师范学院计算机科学与技术系,29,5.5.2 键盘接口设计,1.8255各端口地址及作用 端口地址的确定: CS#与P2.6连接(A14=0);A0、A1与P2.0(A8)、P2.1(A9)连接。 各端口的作用: B口为输出口,输出显示字形码; A口为输出口,输出键盘扫描码,键盘扫描口;也是6位显示器的扫描输出口; C口为输入口(PC0PC1),键输入口。,2020年9月5日,牡丹江师范学院计算机科学与技术系,30,5.5.2 键盘接口设计,2.键输入程序功能 判别键盘上有无键闭合 PA07输出全“0” 去除键的机械抖动 软件延迟(采
19、用两次调用显示子程序作为延迟子程序,每次6ms共12ms。确保显示器始终显示)后判键状态; 判别闭合键的键号 键号=列号+行首键号; 使CPU对键的一次闭合仅作一次处理 等待闭合键释放以后再作处理。 键输入程序的流程如图所示。,课后自己阅读教材P157P159的源程序。,2020年9月5日,牡丹江师范学院计算机科学与技术系,31,5.6串行通信接口,MCS-51内部串行口的特点: TTL电平、抗干扰性差、传输距离短。 提高串行通讯可靠性,增大通讯距离的方法: 采用标准串行接口(RS-232/422/485等),并充分考虑传输介质、电平转换等问题。 选用接口标准时的注意事项: 通信速度和通信距离
20、 二者具有相关性,适当的降低通信速度,可以提高通信距离,反之亦然。 抗干扰能力 长距离传输使用RS-422抑制共模干扰;使用光纤介质减少噪声干扰;通过光电隔离提高系统安全性等。,2020年9月5日,牡丹江师范学院计算机科学与技术系,32,5.6.1 RS-232C标准接口,RS-232C定义了DTE(计算机)与DCE(MODEM)间的接口标准。 RS-232C的特点: 不平衡、点对点传输方式 存在共地噪声、共模干扰等问题,只用于短距离通信; 采用负逻辑 -5V-15V;+5V+15V; 传输距离短,传输速率低 传送距离不大于15m,速度最高为19.2kb/s的本地设备之间的通信。 1.RS-2
21、32C的接口信号 规定使用25针连接器,实际只使用9芯连接器。,2020年9月5日,牡丹江师范学院计算机科学与技术系,33,5.6.1 RS-232C标准接口,2.RS-232C的典型应用 近程通信方式: 传输距离小于15m,直接连接; 远程通信方式: 传输距离大于15m,通过调制解调器进行连接; RS-232C的典型数据通信结构如图所示。,2020年9月5日,牡丹江师范学院计算机科学与技术系,34,5.6.1 RS-232C标准接口,3.RS-232C接口电平转换 常用电平转换芯片是MC1488和MC1489。 MC1488:完成TTL到RS-232C的电平转换; MC1489:完成RS-2
22、32C到TTL的电平转换。 MC1488和MC1489的基本结构如图所示。 8051单片机通过MC1488和MC1489的RS-232C接口电路如图所示。,2020年9月5日,牡丹江师范学院计算机科学与技术系,35,5.6.2 RS-422A标准接口,RS-422A在提高传输速率,增加传输距离,改善电气性能等方面有很大的改进。其特点如下: 双端电气接口,通过双绞线传送信号; 通过将逻辑电平变换成电位差(-6V+6V)进行数据传送; 差分电路可分辨200mV以上电位差,差分放大器可使干扰和噪声相互抵消; 传输速率最高可达到10Mb/s,此时传输距离可达到120m。当传输速率为90Kb/s时,传输
23、距离可达1200m。,2020年9月5日,牡丹江师范学院计算机科学与技术系,36,5.6.2 RS-422A标准接口,1.RS-422A接口的电平转换 最常用的芯片是具有三态输出的单片四差分传输线驱动器SN75174和传输线接收器SN75175。二者均采用+5V电源供电,适用于噪声环境中长总线线路的多点传输。 SN75174可将TTL电平转换为RS-422A电平; SN75175可将RS-422A电平转换为TTL电平。 2.RS-422A与8051点对点通信的接口电路 将上图两侧分别接到8051单片机串行口的RXD和TXD端,并将TXD端通过电容接地即可。,2020年9月5日,牡丹江师范学院计
24、算机科学与技术系,37,5.6.3 RS-485标准接口,RS-422A(全双工)的变型,用于半双工。 RS-485为多发送器标准,允许一个发送器最多可以使用32个负载。如果在一个网络中连接的设备超过32个,还可使用中继器。 RS-485定义了一个基于单对平衡线的多点、双向、半双工通信线路,具有经济、高噪声抑制、高传输速率、远距离传输和宽共模范围的通信平台。,2020年9月5日,牡丹江师范学院计算机科学与技术系,38,5.6.3 RS-485标准接口,RS-485的主要特点: 平衡双绞线传输; 多点通信; -7V+12V的总线共模范围; 最大总线负载为32个单位负载; 最大速率10Mb/s;
25、最大距离为100m。 允许共用电话线通信; 用两线间的电压来表示逻辑电平,差动信道,干扰抑制性极好; PC机一般要使用RS-232C/RS-485转换器;单片机则通过MAX485完成TTL/RS-485的电平转换。,2020年9月5日,牡丹江师范学院计算机科学与技术系,39,5.6.4 PC与MCS-51通信的软、硬件设计,上位机(PC机): 监视由单片机系统组成的下位机的运行状态,并对其状态信息进行集中处理,以图文方式显示下位机的工作状态以及工业现场被控设备的工作状况; 下位机(单片机): 负责现场信息的采集和控制。,2020年9月5日,牡丹江师范学院计算机科学与技术系,40,5.6.4 P
26、C与MCS-51通信的软、硬件设计,通信芯片: PC机系统中:8250(8251)异步通信适配器; 单片机:全双工的串行口。 串行通信系统的组成: 以电平转换为核心的驱动电路、隔离电路。 PC机与单片机的最简单连接: 零调制三线经济型。 缺点:MC1488、MC1489需要12V电源,导致系统结构复杂,性能价格比降低。,2020年9月5日,牡丹江师范学院计算机科学与技术系,41,5.6.4 PC与MCS-51通信的软、硬件设计,MAXIM公司的MAX系列单电源电平转换芯片,具有体积小、连接方便、抗静电能力强等优点。 1.采用MAX系列芯片实现51单片机和PC机的RS-232C接口通信电路 MA
27、X芯片是包含两路驱动器和接收器的RS-232电平转换芯片,可抗15KV的静电放电冲击,数据传输率最高达120Kb/s,单一+5V电源,适应性强、价格低、硬件接口简单。 发送器输入为T1IN、T2IN,输出则为T1OUT、T2OUT;接收器输入为R1IN、R2IN,输出则为R1OUT、R2OUT。,2020年9月5日,牡丹江师范学院计算机科学与技术系,42,5.6.4 PC与MCS-51通信的软、硬件设计,2.PC机与单片机点对点串行通信程序设计 例 实用PC机和单片机通信测试软件。功能:将PC机键盘的输入发送给单片机,单片机收到PC机发来的数据后将其回送给PC机,并在PC机的显示器上显示出来。
28、 设晶振频率6MHz,数据传输波特率为2400b/s,帧格式为8个数据位,1个停止位,无奇偶校验位。 1)单片机通信程序 设单片机通过中断方式接收数据并回送,单片机串行口工作在方式1,定时器1按照方式2工作。,2020年9月5日,牡丹江师范学院计算机科学与技术系,43,5.6.4 PC与MCS-51通信的软、硬件设计,1)单片机通信程序 由于串行口工作于方式1,因而其波特率为: B =2SMOD(T1溢出率)/32 而T1工作于方式2,其溢出率取决于THl中的计数值X。 X = 28 - t/Tcy 其中t为计数时间,也就是溢出时间: t= (28 - X)Tcy = (28 - X)12/f
29、osc 所以,T1的溢出率为: T1溢出率 = fosc/12(256X) 所以有: B=2SMODfosc/12(256-X)32,2020年9月5日,牡丹江师范学院计算机科学与技术系,44,5.6.4 PC与MCS-51通信的软、硬件设计,1)单片机通信程序 取SMOD=1,可求得定时器计数初值为0F3H。 参考程序如下: ORG 0000H LJMP CSH ORG 0023H ;串行口中断程序入口 LJMP INTS ;转至中断服务程序 ORG 0050H CSH:MOV TMOD, #20H ;设T1为方式2 MOV TL1, #0F3H ;设置T1初值,2020年9月5日,牡丹江师
30、范学院计算机科学与技术系,45,5.6.4 PC与MCS-51通信的软、硬件设计,CSH:MOV TMOD, #20H ;设T1为方式2 MOV TL1, #0F3H ;设置T1初值 MOV TH1, #0F3H SETB TR1 ;启动定时T1 MOV SCON, #50H ;串行接口初始化 MOV PCON, #80H SETB EA ;CPU开中断 SETB ES ;允许串行口中断 LJMP MAIN ;转主程序(主程序略) ,2020年9月5日,牡丹江师范学院计算机科学与技术系,46,5.6.4 PC与MCS-51通信的软、硬件设计,INS: CLR EA ;关中断 CLR RI ;清
31、除串行接口中断标志 PUSH DPL ;保护现场 PUSH DPH PUSH ACC MOV A, SBUF ;接收PC机发送的数据 MOV SBUF, A ;将数据回送给PC机 WAIT:JNB TI, WAIT ;等待发送 CLR TI POP ACC ;发送完毕,恢复现场,2020年9月5日,牡丹江师范学院计算机科学与技术系,47,5.6.4 PC与MCS-51通信的软、硬件设计,POP DPH POP DPL SET EA ;开中断 RETI 2.PC机通信程序 该部分可根据需要采用多种语言实现。DOS下可直接对芯片8250、8251的口地址操作;WINDOWS下由于系统硬件的无关性,
32、不允许直接操作串口地址。此时,可以调用WINDOWS的API应用程序接口函数实现,也可使用 VB通信控件(MSComm) 解决。,2020年9月5日,牡丹江师范学院计算机科学与技术系,48,5.6.5 多机通信,多机通信网络形式有星型结构、串行总线型结构、环形结构和串行总线型主从式结构等几种。 最常用的是总线型主从式结构,又称为树型网络结构或广播式网络,为分散型结构。 所谓主从式,即数个单片机中只有一个是主机,其余的是从机,从机要服从主机的调度、支配。主机与各从机可实现全双工通信,而各从机之间只能通过主机交换信息。 总线型主从式结构如图所示。,2020年9月5日,牡丹江师范学院计算机科学与技术
33、系,49,5.6.5 多机通信,80C31单片机的串行口方式2和方式3适用于主从式的通信结构。 在采用不同的通信标准时,还需进行电平转换、光电隔离等措施。实际应用中,常采用RS-485标准总线进行数据传输。 1.主从式单片机多机通信原理 主机发出的信息有:地址信息用以确定和主机通信的从机;数据信息是真正要进行传输的数据。 要保证主机和从机之间的可靠通信,必须保证串行通信接口具有识别这两类信息的功能。,2020年9月5日,牡丹江师范学院计算机科学与技术系,50,5.6.5 多机通信,1.主从式单片机多机通信原理 SCON中的SM2为多机通信控制位。 串行口以方式2或3工作时,一帧信息为11位(1
34、位起始位、8位数据位、1位可编程位、1位停止位)。 主机中,将SCON中的TB8置1表明为地址帧;而将TB8置0则表明为数据帧。 如果从机的SM2设置为1,则从机处于只接收地址帧的状态,此时仅当RB8为1(地址帧)时,数据装入SBUF并置位RI;如果RB8为0(数据帧),则不产生中断,信息将被丢失。,2020年9月5日,牡丹江师范学院计算机科学与技术系,51,5.6.5 多机通信,1.主从式单片机多机通信原理 如果从机的SM2设置为0,则从机处于接收数据状态,不管RB8是0还是1,都将数据装入SBUF并置位RI,请求CPU处理。 多机通信的控制过程: 主机SM2=0,从机SM2=1。设置从机指
35、令: MOV SCON, #0F0H ;方式3,SM2、REN为1 主机发送地址帧,TB8=1。主机设置指令: MOV SCON, #0D8H ;方式3,TB8、REN为1,2020年9月5日,牡丹江师范学院计算机科学与技术系,52,5.6.5 多机通信,多机通信的控制过程如下: 地址判断识别:所有从机都收到地址帧,中断后进行地址比较判断。地址相符的从机使SM2=0,并把本机地址发回主机作为应答,然后开始接收数据或命令;地址不符的从机保持SM2=1,不接收数据帧。 主机确认地址,发送命令:主机对收到的从机应答地址进行确认,如果地址相符则清TB8,开始发送命令,通知从机是进行数据接收还是进行数据
36、发送;如果地址不符,发复位信号(TB8=1)。,2020年9月5日,牡丹江师范学院计算机科学与技术系,53,5.6.5 多机通信,多机通信的控制过程如下: 数据传送结束确认:从机发送结束时,发送一帧校验和并置TB8为1,作为数据传送结束的标志。 主机接收数据过程:先判RB8,若RB8=1则表示结束,并比较此帧校验和,若正确则回送00H命令从机复位,重新等待地址帧;若出错则发送0FFH命令从机重发。RB8=0则存入缓冲区并准备下次接收。 从机收到复位命令后,重新回到监听地址状态(SM2=1),对随后主机发来的数据不予理睬。,2020年9月5日,牡丹江师范学院计算机科学与技术系,54,5.6.5
37、多机通信,制定通信协议时的注意事项: 从机地址的定义:编程前进行,地址为00H0FEH,即最多允许接入255台从机; 数据帧格式和波特率的确定:各机必须以相同的数据帧格式和波特率进行通信。 2.多机通信中的从机地址自动识别 Philips的80C51和SST公司的89系列的UART具有从机地址自动识别功能。 自动识别功能可节省软件比较地址时间,且从机只有被识别时才被中断唤醒,具有节省电源的特性。,2020年9月5日,牡丹江师范学院计算机科学与技术系,55,5.6.5 多机通信多机通信编程举例,例3:多机通信程序设计。设从机地址为:00H,01H,02H,。地址0FFH为命令,使各从机复位(SM
38、2=1)。主机命令编码:01H从机接收数据;02H从机发送数据(其它都视为02H)。从机状态字节为: RRDY=1:从机准备好接收; TRDY=1:从机准备好发送; ERR=1:从机接收的命令非法。 设约定一次传递数据为16个字节。 以01H地址的从机为例。相应程序如下:,2020年9月5日,牡丹江师范学院计算机科学与技术系,56,5.6.5 多机通信多机通信编程举例,主机程序清单: 设从机地址存于40H单元,命令存于41H单元。 MAIN: MOV TMOD,#20H ;T1方式2 MOV TH1,#0FDH ;初始化波特率9600 MOV TL1,#0FDH MOV PCON,#00H S
39、ETB TR1 MOV SCON,#0F0H ;串口方式3接收 LOOP1:SETB TB8 MOV SBUF,40H ;发送从机地址,2020年9月5日,牡丹江师范学院计算机科学与技术系,57,5.6.5 多机通信多机通信编程举例,JNB TI,$ CLR TI JNB RI,$ ;等待从机联络应答 CLR RI MOV A,SBUF ;接收应答读至A XRL A,40H ;判应答是否正确 JZ AD_OK AD_ERR:MOV SBUF,#0FFH ;应答错发0FFH JNB TI,$ CLR TI SJMP LOOP1 ;返回重新发送联络信号,2020年9月5日,牡丹江师范学院计算机科学
40、与技术系,58,5.6.5 多机通信多机通信编程举例,AD_OK:CLR TB8 ;应答正确 MOV SBUF,41H ;发送命令字 JNB TI,$ CLR TI JNB RI,$ ;等待从机应答 CLR RI MOV A,SBUF ;接收应答读至A XRL A,#80H ;判断应答是否正确 JNZ CO_OK SETB TB8 SJMP AD_ERR ;转错误处理,2020年9月5日,牡丹江师范学院计算机科学与技术系,59,5.6.5 多机通信多机通信编程举例,CO_OK:MOV A,SBUF ;正确,判发送或接收 XRL A,#01H JZ SE_DATA ;从机准备好接收 MOV A,
41、SBUF XRL A,#02H JZ RE_DATA ;从机准备好发送 LJMP SE_DATA ;默认从机接收 RE_DATA:MOV R6,#00H ;清校验和准备接收 MOV R0,#30H MOV R7,#10H,2020年9月5日,牡丹江师范学院计算机科学与技术系,60,5.6.5 多机通信多机通信编程举例,LOOP2:JNB RI,$ CLR RI MOV A,SBUF MOV R0,A INC R0 ADD A,R6 MOV R6,A DJNZ R7,LOOP2 JNB RI,$ CLR RI MOV A,SBUF ;接收校验和并判断,2020年9月5日,牡丹江师范学院计算机科学
42、与技术系,61,5.6.5 多机通信多机通信编程举例,XRL A,R6 JZ XYOK ;校验正确 MOV SBUF,#0FFH ;校验错误 JNB TI,$ CLR TI LJMP RE_DATA XYOK: MOV SBUF,#00H ;校验正确,发00H JNB TI,$ CLR TI SETB TB8 ;置地址标志 LJMP RETEND,2020年9月5日,牡丹江师范学院计算机科学与技术系,62,5.6.5 多机通信多机通信编程举例,SE_DATA:MOV R6,#00H ;发送16个字节数据 MOV R0,#30H MOV R7,#10H LOOP3: MOV A,R0 MOV S
43、BUF,A JNB TI,$ CLR TI INC R0 ADD A,R6 MOV R6,A DJNZ R7,LOOP3,2020年9月5日,牡丹江师范学院计算机科学与技术系,63,5.6.5 多机通信多机通信编程举例,MOV A,R6 MOV SBUF,A ;发校验和 JNB TI,$ CLR TI JNB RI,$ CLR RI MOV A,SBUF XRL A,#00H JZ RET_END ;接收正确结束 SJMP SE_DATA ;接收不正确重新发送 RET_END:RET,2020年9月5日,牡丹江师范学院计算机科学与技术系,64,5.6.5 多机通信多机通信编程举例,从机程序清单
44、: 设本机地址存于40H单元,41H单元存放“发送”命令,42H单元存放“接收”命令。 MAIN: MOV TMOD,#20H ;初始化串行口 MOV TH1,#0FDH MOV TL1,#0FDH MOV PCON,#00H SETB TR1 MOV SCON,#0F0H,2020年9月5日,牡丹江师范学院计算机科学与技术系,65,5.6.5 多机通信多机通信编程举例,LOOP1:SETB EA ;开中断 SETB ES SETB RRDY ;发送与接收准备就绪 SETB TRDY SJMP LOOP1 SERVE:PUSH PSW ;中断服务程序 PUSH ACC CLR ES CLR R
45、I MOV A,SBUF XRL A,40H ;判断是否本机地址,2020年9月5日,牡丹江师范学院计算机科学与技术系,66,5.6.5 多机通信多机通信编程举例,JZ SER_OK LJMP ENDI ;非本机地址,继续监听 SER_OK:CLR SM2 ;本机地址取消监听状态 MOV SBUF,40H ;本机地址发回 JNB TI,$ CLR TI JNB RI,$ CLR RI JB RB8,ENDII ;复位命令恢复监听 MOV A,SBUF ;判是“发送”还是“接收”,2020年9月5日,牡丹江师范学院计算机科学与技术系,67,5.6.5 多机通信多机通信编程举例,XRL A,41H
46、 JZ SERISE ;“发送”命令转发送处理 MOV A,SBUF XRL A,42H JZ SERIRE ;“接收”命令转接收处理 SJMP FFML ;非法命令转非法处理 SERISE:JB TRDY,SEND ;从机发送准备好 MOV SBUF,#00H SJMP WAIT01 SEND: MOV SBUF,#02H ;返回“发送准备好”,2020年9月5日,牡丹江师范学院计算机科学与技术系,68,5.6.5 多机通信多机通信编程举例,WAIT01:JNB TI,$ CLR TI JNB RI,$ CLR RI JB RB8 ,ENDII ;主机接收是否就绪 LCALL SE_DATA
47、 ;发送数据 LJMP END FFML: MOV SBUF,#80H ;非法命令恢复监听 JNB TI,$ CLR TI LJMP ENDII,2020年9月5日,牡丹江师范学院计算机科学与技术系,69,5.6.5 多机通信多机通信编程举例,SERIRE:JB RRDY ,RECE ;从机接收是否就绪 MOV SBUF,#00H SJMP WAIT02 RECE: MOV SBUF,#01H ;返回“接收准备好” WEIT02:JNB TI,$ CLR TI JNB RI,$ CLR RI JB RB8,ENDII ;主机发送是否就绪 LCALL RE_DATA ;接收数据 LJMP END
48、,2020年9月5日,牡丹江师范学院计算机科学与技术系,70,5.6.5 多机通信多机通信编程举例,ENDII: SETB SM2 ENDI: SETB ES END: POP ACC POP PSW RETI SE_DATA:CLR TRDY ;发送数据块子程序 MOV R6,#00H MOV R0,#30H MOV R7,#10H,2020年9月5日,牡丹江师范学院计算机科学与技术系,71,5.6.5 多机通信多机通信编程举例,LOOP2: MOV A,R0 MOV SBUF,A JNB TI,$ CLR TI INC R0 ADD A,R6 MOV R6,A DJNZ R7,LOOP2
49、;数据块发送完毕? MOV A,R6 MOV SBUF,A,2020年9月5日,牡丹江师范学院计算机科学与技术系,72,5.6.5 多机通信多机通信编程举例,JNB TI,$ ;发送校验和 CLR TI JNB RI,$ CLR RI MOV A,SBUF XRL A,#00H ;判发送是否正确 JZ SEND_OK SJMP SE_DATA ;发送错误,重发 SEND_OK:SETB SM2 ;发送正确,继续监听 SETB ES RET,2020年9月5日,牡丹江师范学院计算机科学与技术系,73,5.6.5 多机通信多机通信编程举例,RE_DATA:CLR RRDY ;接收数据块子程序 MO
50、V R6,#00H MOV R0,#30H MOV R7,#10H LOOP3: JNB RI,$ CLR RI MOV A,SBUF MOV R0,A INC R0 ADD A,R6 MOV R6,A DJNZ R7,LOOP3 ;未完继续循环,2020年9月5日,牡丹江师范学院计算机科学与技术系,74,5.6.5 多机通信多机通信编程举例,JNB RI,$ ;接收校验和 CLR RI MOV A,SBUF XRL A,R6 ;判断校验和 JZ RECE_OK MOV SBUF,#0FFH ;校验错发0FFH JNB TI,$ CLR TI LJMP RE_DATA ;重新接收 RECE_O
51、K:MOV A,#00H ;校验正确发00H,2020年9月5日,牡丹江师范学院计算机科学与技术系,75,5.6.5 多机通信多机通信编程举例,RECE_OK:MOV A,#00H ;校验正确发00H MOV SBUF,A JNB TI,$ CLR TI SETB SM2 ;继续监听 SETB ES RET 结论:多机通信过程中,一些协议是通信双方根据需要进行约定的,通信双方必须遵循这些约定。有些协议则是由串行口工作方式规定的,必须遵守。,2020年9月5日,牡丹江师范学院计算机科学与技术系,76,5.7 模拟电路接口技术,具有模拟量输入/输出的MCS-51应用系统,2020年9月5日,牡丹江
52、师范学院计算机科学与技术系,77,20,21,25,26,27,.,R,IF,- OA +,I,2R,R,K7,VA,2R,R,K5,VC,2R,R,K6,VB,VREF,2R,2R,K0,VH,2R,R,K1, = R,.,VG,.,.,DAC的基本原理,V0,5.7.1 DAC与8051的接口设计,2020年9月5日,牡丹江师范学院计算机科学与技术系,78,5.7.1 DAC与8051的接口设计,2.DAC的主要技术指标 分辨率(Resolution) LSB位产生一次变化时输出模拟量的变化量。 =(模拟量输出的满量程值)/2n 一般也用数字量的位数或1/2n表示。 输入编码形式二进制码、
53、BCD码等。 转换线性 用一定温度下相对于满量程的百分数表示。如1%指实际值与理论值之差在满刻度的1%以内。,2020年9月5日,牡丹江师范学院计算机科学与技术系,79,5.7.1 DAC与8051的接口设计,转换时间(建立时间) 从输入数字量变化到输出达到终值误差1/2LSB时所需的时间。 据此可把DAC分成:超高速(100ns)、较高速(100ns1s)、高速(110s)、中速(10100s)、低速(100s)等几档。 输出形式 电压输出:510V,也有2430V;电流输出形式一般为20mA3A。,2020年9月5日,牡丹江师范学院计算机科学与技术系,80,5.7.1 DAC与8051的接
54、口设计,接口形式 内部无锁存器:可与805l的P1、P2口直接接口;与P0口接口时,由于P0的特殊性,需加锁存器。 内部有锁存器:内部还包括地址译码电路,甚至多重数据缓冲电路。多是8位以上的DAC,可方便的与P0口直接接口 进行DAC选择时,主要在输入信号形式、分辨率和转换精度、建立时间和转换结果输出形式等几个方面综合考虑。,2020年9月5日,牡丹江师范学院计算机科学与技术系,81,5.7.1 DAC与8051的接口设计,3.集成DAC0832简介 DAC0830系列产品包括DAC0830/0831/0832等,为20脚双插直列式封装。主要特性如下: 电流形式输出,当需要转换为电压输出时,可
55、外接运算放大器; 电流建立时间1s; 数据输入可采用双缓冲、单缓冲或直通方式; 分辨率为8位;低功耗,20mW; 逻辑电平输入与TTL电平兼容; 单一电源供电(+5V+15V)。,2020年9月5日,牡丹江师范学院计算机科学与技术系,82,5.7.1 DAC与8051的接口设计,(2)DAC0832的引脚 DI7DI0:8位数字量输入数据线; ILE:数据输入锁存允许信号线; CS#:输入寄存器选择信号,和ILE信号一起来决定WR1#是否起作用; WR1#:输入寄存器写选通信号,须和CS# 、ILE同时有效; WR2#:DAC寄存器写选通信号,必须和XFER#同时有效;,2020年9月5日,牡丹江师范学院计算机科学与技术系,83,5.7.1 DAC与8051的接口设计,(2)DAC0832的引脚 XFER#:数据传送控制信号,控制WR2#; IOUT1:DAC输出电流端之一。DAC锁存的数据位为“1”的位电流均流出此端;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水肥一体化工程师考试试卷及答案
- 室内吊顶施工技师考试试卷及答案
- 山洪灾害预警工程师考试试卷及答案
- 沼气池填埋协议书
- 入公墓安葬协议书
- 员工培训服务期限协议书
- 离婚协议书是否会影响卖房
- 仓储管理协议书模板道客
- 合资买房子之后划分协议书
- 摄像头维护保养协议书
- JG/T 511-2017建筑用发泡陶瓷保温板
- 民族政策宣讲课件
- GB/T 45235-2025电子电气产品中双酚A的测定高效液相色谱法
- 融资申请报告范文
- 正念减压疗法详解课件
- 2024低压电力线高速载波通信互联互通技术规范第 4-3 部分:应用层通信协议
- 2024年贵州省中考理科综合试卷(含答案解析)
- 唐诗宋词人文解读智慧树知到期末考试答案章节答案2024年上海交通大学
- 完美着装智慧树知到期末考试答案章节答案2024年武汉纺织大学
- MOOC 地学景观探秘·审美·文化-重庆大学 中国大学慕课答案
- 第4章-动车组列车餐饮服务操作技能《高速铁路列车餐饮服务》
评论
0/150
提交评论