应用系统配置及接口技术.ppt_第1页
应用系统配置及接口技术.ppt_第2页
应用系统配置及接口技术.ppt_第3页
应用系统配置及接口技术.ppt_第4页
应用系统配置及接口技术.ppt_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

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

文档简介

,第9章 应用系统配置及接口技术,9.1 人-机通道配置与接口技术 9.2 前向通道中的A/D转换器及接口技术 9.3 系统后向通道配置及接口技术 9.4 思考题与习题,应用系统配置及接口,系统前向通道:数字量、开关量、模拟量输入() 系统后向通道:数字量、开关量、模拟量输出() 人-机通道: 键盘、显示器、打印机等,图9-1 系统前向、后向、人-机通道配置框图,9.1 人机通道配置与接口技术,进行人机对话。包括人对系统的状态干预与数据输入,还有系统显示运行状态与运行结果等。 键盘、 显示器用来完成人机对话的人机通道。,9.1.1 键盘接口及处理程序 9.1.2 LED显示器接口及显示程序 9.1.3 串口控制的键盘显示器接口,9.1.1 键盘接口及处理程序,键盘分编码键盘和非编码键盘。 键盘上闭合键的识别由专用的硬件译码器实现,并产生键编号或键值的称为编码键盘,如BCD码键盘、ASCII码键盘等; 靠软件识别的称为非编码键盘。,键盘中的按键:都是一个常开开关电路。 当按键K未被按下时, P1.0输入为高电平; 当按键K闭合时,P1.0输入为低电平。,图9-2 按键电路,通常按键在闭合及断开的瞬间均伴有一连串的抖动。如图所示。抖动时间一般为510 ms。,键抖动会引起一次按键被误读多次,必须去除键抖动。可用硬件或软件两种方法消除。 软件方法去抖动,即检测出键闭合后执行一个510 ms延时程序,再一次检测,如果仍保持闭合,则确认为真正按下。当检测到按键释放后,也要给510 ms的延时,待后沿抖动消失后,才能转入该键的处理程序。,键的消抖,图9-3 按键时的抖动,1) 独立式非编码键盘接口及处理程序,各按键相互独立地接通一条输入数据线,如图所示。 当一个键按下时,与之相连的输入数据线即清0(低电平),平时该线为1(高电平)。要判别是否有键按下,用单片机的位处理指令十分方便。 优点是电路简单; 缺点是占用线多。,图9-4 独立连接式非编码键盘,1、键盘结构,查询方式键盘的处理程序,程序清单(设为P1口): START: MOV A,#0FFH ;输入时先置P1口为全1 MOV P1,A MOV A,P1 ;键状态输入 PL1: JNB ACC.0,P0F ;0号键按下转P0F标号地址 JNB ACC.1,P1F ;1号键按下转P1F标号地址 JNB ACC.2,P2F ;2号键按下转P2F标号地址 JNB ACC.3,P3F ;3号键按下转P3F标号地址 JNB ACC.4,P4F ;4号键按下转P4F标号地址 JNB ACC.5,P5F ;5号键按下转P5F标号地址 JNB ACC.6,P6F ;6号键按下转P6F标号地址 JNB ACC.7,P7F ;7号键按下转P7F标号地址 LJMP START ;无键按下返回,P0F: LJMP PROM0 P1F: LJMP PROM1 ;入口地址表 P7F : LJMP PROM7 PROM0: ;0号键功能程序 LJMP START ;0号键执行完返回 PROM1: LJMP START PROM7: LJMP START 由程序可以看出,各按键由软件设置了优先级,优先级顺序依次为07。,2) 行列式键盘接口及工作原理,图9-6 44矩阵键盘接口图,为了减少键盘与单片机接口时所占用I/O线的数目,在键数较多时,通常都将键盘排列成行列矩阵形式.,按键扫描的工作过程如下: 判断键盘中是否有键按下; 进行行扫描,判断是哪一个键按下,若有键按下,则调用延时子程序去抖动; 读取按键的位置码; 将按键的位置码转换为键值(键的顺序号)0、1、2、F。 在扫描过程中,当发现某行有键按下,也就是输入的列线中有一位为0时,便可判别闭合按键所在列的位置,根据行线位置和列线位置就能判断按键在矩阵中的位置,知道是哪一个键按下。,首先判别键盘中有无键按下:由口向键盘送(输出)全扫描字,然后读入(输入)列线状态来判断。方法: 向行线(水平线)输出全扫描字00H,把全部行线置为“0”,然后将列线的状态读入累加器A中。如果有按键按下,总有一根列线电平被拉至低电平,使列输入不全为1。 判断键盘中哪一个键被按下:通过将行线逐行置低电平后,检查列输入状态实现的。 方法: 依次给行线送“0”,然后查所有列线状态,称行扫描。如果全为1,则所按下的键不在此行;如果不全为1,则所按下的键必在此行,而且是在与“0”列线相交交点上的那键。,行扫描法识别键号的工作原理: 将第0行输出低电平,其余行高电平时,输出编码为1110。然后读取列,判别第0行是否有键按下。若有一键按下,则相应列被拉到低电平,则表示第0行和此列相交位置上有按键按下。若没有任一条列线为低电平,则说明0行上无键按下。 将第1行变为低电平,其余行高电平时,输出编码为1101。读取各列,判别是有哪一列键按下方法同上。 将第2行变为低电平,其余行为高电平时,输出编码为1011。判别是否有哪一列键按下的方法同上。 将第3行变为低电平,其余行为高电平时,输出编码为0111。判别是否有哪一列键按下的方法同上。 根据行线扫描值(行码)与列线输入值(列码)可唯一确定按下的键并获得该键的位置码(键码) 例如:行码1011B;列码1101B则:键码=10111101B,键的位置码及键值的译码过程,扫描过程后得到的行号存放在R0,列号存放在R2中。 键值(号)的获得(译码)通常采用计数译码法。 根据矩阵的结构,每个按键值=行号每行按键数+列号即: 键号(值)=行首键号+列号 第0行的键值为:0行4+列号(03)为0、1、2、3; 第1行的键值为:1行4+列号(03)为4、5、6、7; 第2行的键值为:2行4+列号(03)为8、9、A、B; 第3行的键值为:3行4+列号(03)为C、D、E、F。 44键盘行首键号为0、4、8、C,列号为0,1,2,3。 键值译码子程序为DECODE,该子程序出口:键值在A中,图9-7 44键盘扫描流程图,(3) 键盘扫描子程序(参见图9-7),出口: 键值(键号)在A中 KEY: MOV P1,#0F0H ;令所有行为低电平 KEY1:MOV R7,#0FFH ;设置计数常数 DJNZ R7,KEY1 ;延时 MOV A, P1 ;读取P1口的列值 ANL A,#0F0H ;判别有键值按下吗? CPL A ;求反后,有高电平就有键按下 JZ EKEY ;无键按下时退出 LCALL DEL20 ms ;延时20 ms去抖动 SKEY:MOV A,#00 ;下面进行行扫描,1行1行扫 MOV R0,A ;R0作为行计数器,开始为0 MOV R1,A ;R1作为列计数器,开始为0 MOV R3 #0FEH ;R3暂存行扫描字,低4位为行扫描字 SKEY2:MOV A,R3 MOV P1,A ;输出行扫描字,高4位全1 NOP NOP NOP ;3个NOP操作使P1口输出稳定,MOV A,P1 ;读列值 MOV R1,A ;暂存列值 ANL A,#0F0H ;取列值 CPL A ;高电平则有键闭合 S123: JNZ SKEY3 ;有键按下转SKEY3 INC R0 ;行计数器加1 SETB C ;准备将行扫描左移1位, ;形成下一行扫描字,C=1保证输出行扫描字中高4位全为1, ;为列输入作准备,低4位中只有1位为0 MOV A,R3 ;R3带进位C左移1位 RLC A MOV R3,A ;形成下一行扫描字R3 MOV A,R0 CJNE A,#04H,SKEY1 ;最后一行扫(4次)完了吗? EKEY: RET,;列号译码 SKEY3:MOV A,R1 JNB ACC.4,SKEY5 JNB ACC.5,SKEY6 JNB ACC.6,SKEY7 JNB ACC.7,SKEY8 AJMP EKEY SKEY5:MOV A,#00H MOV R2,A ;存0列号 AJMP DKEY SKEY6:MOV A,#01H MOV R2,A ;存1列号 AJMP DKEY SKEY7:MOV A,#02H MOV R2,A ;存2列号 AJMP DKEY SKEY8:MOV A,#03H MOV R2,A ;存3列号 AJMP DKEY,;键位置译码 DKEY: MOV A,R0 ;取行号 ACALL DECODE AJMP EKEY ;键值(键号)译码 DECODE:MOV A,R0 ;取行号送A MOV B,#04H ;每一行按键个数 MUL AB ;行号按键数 ADD A,R2 ;行号按键数+列号=键值 RET,2、中断扫描方式,中断扫描工作方式,即只有在键盘有键按下时才产生中断申请;CPU响应中断,进入中断服务程序进行键盘扫描,并做相应处理。,图9-9 中断方式键盘接口,求出键号后,按不同类型进行处理。 数字键:存贮、显示等 功能键:转向相应的功能处理程序,3 . 键处理,图9-10 求功能键地址转换程序流程图,程序: BUFF EQU 30H KEYADR: MOV A,BUFF ;键号A CJNE A,0FH,KYARD1 AJMP DIGPRO ;等于F,转数字键处理 KYARD1: JC DIGPRO ;小于F,转数字键处理 KEYTBL: MOV DPTR,JMPTBL ;送功能键地址表指针 CLR C ;请进位位 SUBB A,10H ;功能键值(10H1FH)减16 RL A ;(A)2,使(A)为偶数:0,2,4, JMP ADPTR ;转相应的功能键处理程序,JMPTBL: AJMP AAA AJMP BBB AJMP CCC AJMP DDD AJMP EEE AJMP FFF AJMP GGG AJMP HHH AJMP III AJMP JJJJ AJMP KKK AJMP LLL AJMP MMM DIGPRO:,9.1.2 LED显示器接口及显示程序,单片机应用系统中使用的显示器主要有: 发光二极管,简称 LED (Light Emitting Diode); 液晶显示器,简称 LCD (Liquid Crystal Display); CRT显示器,1. LED显示器,结构原理: 有共阴极和共阳极两种,图9-11 LED 7段显示器,表9-1 共阴极和共阳极7段LED显示字型编码,例:共阴极LED, (COM)端接地, a 、 b、g,dp送入 11100001,则显示“7。” 译码方式 硬件译码: 用专用译码器电路,将欲显示的字符转换为段码。 软件译码: 利用查表法,将段码作成一个表,以字符值为索引,可查出不同字符的相应段码。,2. LED显示器接口及显示方式,LED显示器有静态显示和动态显示两种方式。,LED静态显示方式: 显示某个字符时,LED相应的段恒定地导通或截止。 各位的共阴极(公共端K0)接地.若为共阳极(公共端K0),则接+5v电源。 每位的段选线(adp)分别与8位的输出口相连,相互独立,字符一经确定,相应锁存的输出维持不变。 可用8D锁存器(如74LS273)或带锁存的译码器(如CD4511)、串行移位寄存器(如74LS164)来扩展 IO端口.其输出端(8位)可驱动一位LED。 静态显示器的亮度较高,编程容易,管理也较简单,但占用口线资源较多。在显示位数较多的情况下,一般都采用动态显示方式。,2) LED动态显示方式,在多位LED显示时,将所有位的段选线并联在一起,由一个8位口控制。而共阴(或共阳)极公共端分别由相应的线控制,实现各位的分时选通。图9-12所示为6位共阴极LED动态显示接口电路。,图9-12 6位LED动态显示接口电路,例如,显示“EE020”, I/O口1和I/O口2轮流送入段选码、位选码及显示状态如图9-13所示。 段选码、位选码每送入一次后延时1 ms,因人眼的视觉暂留时间为100 ms,所以每位显示间隔不超过20 ms,并保持延时一段时间,造成视觉暂留效果。 称为软件扫描显示。,图9-13 6位动态扫描显示状态,3. LED显示器与89C51接口及显示子程序,P0口输出段选码,P1口输出位选码,,图9-14 6只LED动态显示接口,图915 DIS显示子程序流程图,DIS显示子程序清单如下: DIS: MOV R0,#7EH ;显示缓冲区末地址R0 MOV R2,#01H ;位控字,先点亮最低位(右边) MOV A,R2 MOV DPTR,#TAB ;字型表头地址DPTR LP0: MOV P1,A MOV A,R0 ;取显示数据 MOVC A,A+DPTR ;取出字形码 MOV P0,A ;送出显示 ACALL D1MS ;调延时子程序 DEC R0 ;数据缓冲区地址减1 MOV A,R2 JB ACC.5,LP1 ;扫描到最左面的显示器了吗? RL A ;没有到,左移1位 MOV R2,A AJMP LP0 LP1: RET TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH DB 6FH,77H,7CH, 39H,5EH,79H,71H,40H,00H D1MS: MOV R7,#02H ;延时1 ms子程序 DL: MOV R6,#0FFH DL1: DJNZ R6,DL1 DJNZ R7,DL RET,(一).接口电路 74LS164 :键列扫描 74LS164 、:串行口扩展并口,LED驱动 P1.O、P1.1:键行线输入 RXD:串行数据输出 TXD:移位脉冲(串口模式0) P1.2:显示输出控制,9.1.3 串口控制的键盘显示器接口,图917 串行键盘扫描和显示接口电路,(二).程序设计 功能:循环扫描键盘,若有数字键(09)则送显示缓冲区显示,若有命令键(AF)则转相应命令处理。 片内RAM分配:58H5FH:显示缓冲区 ;60H:显示缓冲区指针 寄存器分配:R6列选择;R3列号 子程序嵌套:LED显示子程序 KEY: MOV A,00H ;向串口数据缓冲器送全0 CLR P1.2 MOV SBUF,A KL0: JNB TI,KL0 ;等待8位数据发送完毕 CLR TI ;清中断标志 KL1: JNB P1.0,PK1 ;第1行有键按下否? JB P1.1,KL1 ;第2行有键按下否? PK1: ACALL D10MS ;有键按下,延时10s消除键抖动 JNB P1.0,PK2 ;确定是否键抖动引起 JB P1.1,KL1,PK2: MOV R7,08H ;不是键抖动引起则逐列扫描 MOV R6,0FEH ;选中第0列 MOV R3,00H ;记下列号初值 PL5: MOV A,R6 ;使某一列为低 MOV SBUF,A KL2: JNB P1.0,PK4 ;是第1行吗? JNB P1.1,PK5 ;是第2行吗? MOV A,R6 ;不是本列,则继续下一列 RL A MOV R6,A INC R3 ;列号加1 DJNZ R7,PL5 ;若仍未找到,则执行下一次 RET PK5: MOV R4,08H ;是第2行,则R4送首键号值08H AJMP PK3 ;转键处理 PK4: MOV R4,00H ;是第1行,则R4送首键号值00H PK3: MOV A,00H ;等待键释放 MOV SBUF,A KL3: JNB TI,KL3 CLR TI,KL4: JNB P1.0,KL4 JNB P1.1,KL4 MOV A,R4 ;取键号 ADD A,R3 CLR C SUBB A,0AH ;是命令键吗? JNC KL6 ;转命令键处理程序 MOP DPTR,TABL ;字形码表首址送DPTR ADD A,0AH ;恢复键号 MOVC A,ADPTR ;取字形码数据 MOV R0,60H ;取显示缓冲区指针 MOV R0,A ;将字形码入显示缓冲区 INC R0 CJNE R0,60H,KD ;显示缓冲区未满转KD MOV 60H,58H ;重设显示缓冲区首地址 SJMP KD1 ;转显示 KD: MOV 60H,R0 ;保存显示缓冲区地址 KD1: ACALL LED ;调用送显示程序 RET,KL6: MOV B,03H ;修正命令键地址转移表指针 MUL AB MOV DPTR,KTAB ;地址转移表首地址送DPTR JMP ADPTR ;根据指针跳转 KTAB: LJMP K1 ;K1,K3为各命令键服务程序首地址 LJMP K3 : TABL: DB C0H,F9H,A4H,B0H ;09字形码转换(共阳) DB 99H,92H,82H,F8H DB 80H,90H LED: SETB P1.2 ;开放显示器控制 MOV R7,08H ;显示位数送R7 MOV R0,58H ;选送最低位 LED1: MOV A,R0 ;送显示器数据 MOV SBUF,A LED2: JNB TI,LED2 CLR TI INC R0 ;继续下一位 DJNZ R7,LED1 ;全部送完 CLR R1.2 ;关闭显示器控制 RET,串行LED显示接口MAX7219,可驱动8个LED显示器. 单片机可以通过串行口方式0与其交换信息,TXD作为移位时钟、RXD作为串行数据I/O端、Load为芯片选择端。 允许多个串行接口芯片共同使用89C51的串行口。,9.2 前向通道中的转换器及接口技术,模数()转换电路的种类有:计数比较型、逐次逼近型、双积分型等等。 逐次逼近型转换器,在精度、速度和价格上都适中,是最常用的转换器件。 双积分转换器,具有精度高、抗干扰性好、价格低廉等优点,但转换速度低。 串行输出的A/D芯片由于节省单片机的I/O口线,越来越多地被采用。如具有SPI三线接口的TLC1549、TLC1543、TLC2543、MAX187等,具有2线I2C接口的MAX127、PCF8591(4路8位A/D,还含1路8位D/A)等。,9.2 前向通道中的转换器及接口技术,9.2.1 单通道串行输出A/D芯片TLC1549及接口 9.2.2 多通道串行输出A/D芯片TLC2543及接口 9.2.3 逐次逼近型并行输出转换器及接口 9.2.4 3位双积分A/D转换器及接口技术,9.2.1 单通道串行输出A/D芯片TLC1549及接口,1 TLC1549串行A/D转换器芯片 1) 主要性能 逐次比较型10位A/D转换器。 片内自动产生转换时钟脉冲, 转换时间21 s; 最大总不可调转换误差为1LSB; 单电源供电(+5 V), 最大工作电流仅为2.5 mA; 转换结果以串行方式输出; 工作温度为-55+125 。,图918 TLC1549的引脚图,2) 引脚及功能,3) TLC1549的工作方式及时序 TLC1549有6种工作方式,如表93所列。,图919 方式1工作时序,2 TLC1549与89C51接口电路与程序 TLC1549与89C51的SPI接口如图9-20所示。,图9-20 TLC1549M与89C51的接口电路,89C51读取TLC1549中10位数据程序如下: ORG 0050H R1549:CLR P3.0 ;片选有效,选中TLC1549 MOV R0,#2 ;要读取高两位数据 LCALL RDATA ;调用读数子程序 MOV R1,A ;高两位数据送到R1中 MOV R0,#8 ;要读取低8位数据 LCALL RDATA ;调用读数子程序,读取数据 MOV R2,A ;低8位数据送入R2中 SETB P3.0 ;片选无效 CLR P3.1 ;时钟低电平 RET ;程序结束 ;读数子程序 RDATA:CLR P3.1 ;时钟低电平 MOV C,P3.2 ;数据送进位位CY RLC A ;数据送累加器A SETB P3.1 ;时钟变高电平 DJNZ R0,RDATA ;读数结束了吗 RET ;子程序结束,9.2.2 多通道串行输出A/D芯片TLC2543及接口,TLC2543的特性如下: 12位A/D转换器(可8位、12位和16位输出); 在工作温度范围内转换时间为10 s; 11通道输入; 3种内建的自检模式; 片内采样/保持电路; 最大1/4 096的线性误差; 内置系统时钟; 转换结束标志位; 单/双极性输出; 输入/输出的顺序可编程(高位或低位在前); 可支持软件关机; 输出数据长度可编程。 TLC1543为11个输入端的10位A/D芯片,价格比TLC2543低。,1 TLC2543的片内结构及引脚功能,图9-21 TLC2543引脚排列,1 TLC2543的片内结构及引脚功能,图9-22 TLC2543片内结构框图,片内由通道选择器、数据(地址和命令字)输入寄存器、采样/保持电路、12位的模/数转换器、输出寄存器、并行到串行转换器及控制逻辑电路7个部分组成。,2. TLC2543的接口时序,TLC2543的时序有两种:,图9-23 使用片选信号CS高位在前的时序,图9-24 不使用片选信号CS高位在前的时序,3 TLC2543的命令字,TLC2543的命令字如下:,4 TLC2543与89C51的SPI接口及程序,SPI(Serial Perpheral Interface)是一种串行外设接口标准,串行通信的双方用4根线进行通信。 这4根连线分别是: 片选信号、I/O时钟、串行输入和串行输出。 这种接口的特点是快速、高效,并且操作起来比I2C要简单一些,接线也比较简单,TLC2543提供SPI接口。,图9-25 TLC2543和89C51的接口电路,1) TLC2543与89C51的8位数据传送程序,TLC2543:MOV R4,#04H ;置控制字,AIN0,8位数据高位在前 MOV A,R4 CLR P1.3 ;片选CS有效,选中TLC2543 MSB: MOV R5,#08H ;传送8位 LOOP: MOV P1,#04H ;P12为输入位 MOV C,P1.2 ;将TLC2543 A/D转换的8位数据串行读到C中一位 RLC A ;带进位位循环左移 MOV P1.1,C ;将控制字(在ACC中)的一位经DIN送入TLC2543 SETB P1.0 ;产生一个时钟 NOP CLR P1.0 DJNZ R5,LOOP MOV R2,A ;A/D转换的数据存于R2中 RET 执行上述子程序的过程如图9-26所示,图9-26 TLC2543与89C51数据交换示意图,2) TLC2543与89C51的12位数据传送程序,ORG 0100H MOV P1,#04H ;P12为输入位 MOV R6,#0AH ;转换10次 MOV R0,#2FH ;置数据缓冲区指针 CLR P1.0 ;置I/O时钟为低 SETB P1.3 ;置CS为高 ACALL TLC2543 ;调转换子程序 SJMP TLC2543:MOV A,#00H ;设置通道选择和工作模式(IN0,12位) CLR P1.3 ;置CS为低 MOV R5,#0CH ;置输出位计数初值 LOOP: MOV P1,#04H ;P12为输入位 MOV C,P1.2 ;读入转换数据一位 RLC A ;将进位移给A,即将转换数据的一位读入,同时将控制字的一位输入C,MOV P1.1,C ;送出一位控制位入2543 SETB P1.0 ;置I/O时钟为高 NOP CLR P1.0 ;置I/O时钟为低 CJNE R5,#04,LOP1 ;剩4位了吗? MOV R0,A ;前8位存入RAM INC R0 CLR A LOP1:DJNZ R5,LOOP ;未转完继续读剩余4位 ANL A,#0FH MOV R0,A ;转换完的存入单元 RET,3) TLC2543与89C51的16位数据传送程序,ORG 100H START:MOV SP,#50H ;初始化堆栈指针 MOV P1,#04H ;初始化P1口 CLR P1.0 ;置I/O CLOCK为低 SETB P1.3 ;置CS为高 MOV A,#0FFH ACALL TLC2543 ACALL STORE LJMP STARJ TLC2543: MOV R4,#0CH ;读输入数据命令字到R4,AIN0,16位,高位在前 MOV A,R4 ;读输入数据到A DW0: CLR P1.3 ;置CS为低 JB ACC.1,LSB ;若输入数据D1为1,首先进行低字节数据传送 MSB: MOV R5,#08 ;以下传送高字节数据 LOOP1:MOV C,P1.2 ;读转换数据到C RLC A ;转换数据移到A的最低位,输入数据移入C,MOV P1.1,C ;写输入数据(命令字) SETB P1.0 ;置I/O CLOCK为高 NOP CLR P1.0 ;置I/O CLOCK为低 DJNZ R5,LOOP1 ;判8个数据送完否,未完跳回 MOV R2,A ;转换结果的高字节放入R2 MOV A,R4 ;读输入数据到A JB ACC.1,RETURN ;若输入数据D1为1,送数结束 LSB: MOV R5,#08 ;以下传送低字节数据 LOOP2:MOV C,P1.2 RLC A MOV P1.1,C SETB P1.0 NOP CLR P1.0 DJNZ R5,LOOP2 MOV R3,A ;转换结果低字节放入R3 MOV A,R4 JB ACC.1,MSB ;若输入数据D1为1,进行高字节数据传送 RETURN:RET,STORE:MOV A,R4 ;读输入数据到A ANL A,#0F0H ;只保留地址位 SWAP A ;以下产生存储地址 MOV B,#02 MUL AB ADD A,#30H MOV R1,A MOV A,R2 MOV R1,A ;把高字节放入相应的偶数地址RAM: ;各通道地址依次为30H、32H INC R1 MOV A,R3 MOV R1,A ;把低字节放入相应的奇数地址RAM: ;各通道地址依次为31H、33H RET END,9.2.3 逐次逼近型并行输出转换器及接口,ADC0809 A/D转换器芯片 由8路模拟开关、8位A转换器、三态输出锁存器以及地址锁存译码器等组成。,图9-27 ADC0809结构,芯片功能与结构 AD分辨力:8位 内置多路开关,允许对8路模拟量分时转换; 自带微机总线接口; 最高转换速度100S次; 内部结构如图所示。,引脚功能: IN0IN7: 8通道模拟信号输入 D0D7: 8位数字量输出 ADDC、ADDB、ADDC:通道选择,000111对应于IN0IN7 ALE: 通道地址锁存,正脉冲输入 START: 启动信号,正脉冲输入 EOC: 转换结束,转换开始后EOC0,转换结束时EOC1 OE: 输出允许控制 CLK: 转换时钟信号,典型值640K VREF()、VREF:AD参考电压 VIN = VREF(D7D0)/256 ;(D7D0)= 00HFFH VCC、GND: 电源电压 +5+15V,工作时序: ALE1:ADDAADDC进入 ALE0;ADDAADDC锁存 START:上升沿使AD内部复位,下降沿启动A/D(一般START可兼作ALE信号使用) EOC:转换开始后为0,结束时为1 OE:高电平使片内数据输出,低电平数据线为高阻,图9-28 ADC0809的时序图,2、ADC0809与89C51接口,ADC0809与89C51连接可采用查询方式,也可采用中断方式。图9-29为中断方式连接电路图。由于ADC0809片内有三态输出锁存器,因此可直接与89C51接口。,图9-29 ADC0809与89C51的连接,0809与8031接口(总线型) ADDAADDC: 连至A0A2 DOD7: 接数据总线 START、ALE: 由 P2.7、WR “或非”产生 例:启动通道0转换 MOV DPTR,7FF8H MOVX DPTR,A P2.70,WR0,ALESTATR1,通道地址进入,AD复位。 P2.70,WR1,ALESTART0,通道地址锁存,AD启动。 EOC: 通过非门接INT1,转换结束时产生中断, OE: 由P2.7和 RD通过“或非”门产生,“读”AD 例: MOVX A,DPTR (DPTR7FF8H) P2.7=0, RD0,OE1,D0D7数据总线,被CPU读取。 CLK:由ALE通过分频产生,亦可单独提供时钟。 VREF()、VREF:参考电压(一般为+5V),3、程序实例:8路巡回检测 设对8点温度巡回检测,温度范围3050,检测精度1。数据存放于外RAM A0HA7H单元。 主程序: MAIN:MOV R0,0A0H ;数据暂存区首址 MOV R2,08H ;8路数初值 SETB IT1 ;脉冲触发方式 SETB EA ;开中断 SETB EX1 MOV DPTR,7FF8H;指向0809首地址 (IN0) MOVX DPTR ,A ;启动AD转换 HERE:SJMP HERE ;等待中断 中断服务程序: MOVX A,DPTR ;读A/D MOVX R0 ,A ;存数 INC DPTR ;更新通道 INC R0 ;更新暂存单元 DJNZ R2,DONE RET1 DONE:MOVX DPTR ,A ;启动AD转换 RETI,双积分型AD转换期MC14433芯片 芯片功能: 输出数值范围:01999(三位半BCD码) 分辨率 : 约为11位(二进制) 电压输入范围:199.0mv1.999V两档 相应的基准电压:为200 mv2V 转换速度: 3次10次秒 自动极性转换;过量程欠量程标志。,9.2.4 3 位双积分A/D转换器及接口技术,图9-30 MC14433的引脚图,引脚功能 VREF: 参考电压输入 VX: 模拟信号电压输入 R1、R1C1、C1: 外接积分阻容元件 CO1、CO2: 外接补偿电容0.1F DU: 输出控制,正脉冲使转换结果A/D结果寄存器 EOC: 转换结束,转换结束时发正脉冲(一般与DU相连) CLK1、CLKO:外接时钟信号输入输出 OR: 过量程标志,VX VREF时,OR0 DS4DS1: 个、十、百、千位输出选通正脉冲 Q3Q0: BCD码AD转换结果输出 VAG: 模拟地 VEE: 模拟负电源 VDD: 正电源 VSS: 数字地 *对于5V数字系统,VDD、VEE为5V,输出时序: EOC:转换结束脉冲 DS1:千位输出标志 Q3:千位值0-1,1-0 Q2:极性,0负、 1正 Q0:量程 0 -正常 1 - Q3=1欠量程 Q3=0过量程 DS2:百位输出标志 DS1:十位输出标志 DS1:个位输出标志,图9-31 MC14433选通脉冲时序,MC14433与8031接口(非总线型) Q0Q3: 接P1.0P1.3 DS1DS4: 接P1.4P1.7 EOC与DU相连,反相后接INT1 VREF:由基准电压源5G1403(2.5V)分压产生2V基准电压。,图9-32 5G14433与89C51直接连接的硬件接口,程序设计:设每次转换结果存于内RAM 30H34H。(符号、千、百、十、个) 中断子程: ORG 0013H DINT:MOV R0,30H JNB P1.4, ;等待DS1 MOV A,P1 ;读千位 JB ACC.2,AD1 MOV R0, #1 ;符号位送1(负) SJMP AD2 D1: MOV R0, #0 ;符号位送0(正) AD2: INC R0 JB ACC.3,AD3 MOV R0,1 ;千位送1 SJMP AD4 AD3: MOV R0,0 ;千位送0 AD4: INC R0 JNB P1.5, ;等待DS2 MOV A,P1 ANL A,0FH ;屏蔽无用位 MOV R0, A ;存百位 INC R0 RETI,9.3 系统后向通道配置及接口技术,后向通道是计算机实现控制运算处理后,对被控对象的输出通道接口。 系统的后向通道是一个输出通道,其特点是弱电控制强电,即小信号输出实现大功率控制。常见的被控对象有电机、电磁开关等。 单片机实现控制是以数字信号或模拟信号的形式通过口送给被控对象的。其中,数字信号形态的开关量、二进制数字量和频率量可直接用于开关量、数字量系统及频率调制系统的控制;但对于一些模拟量控制系统,则应通过转换器转换成模拟量控制信号后,才能实现控制。 9.3.1 后向通道中的功率开关器件及接口 9.3.2 串行输入D/A芯片TLC5615接口技术 9.3.3 并行输入芯片及接口技术,1. 继电器及接口 1) 单片机与继电器的接口 一个典型的继电器与单片机的接口电路如图所示。,图9-33 继电器接口,9.3.1 后向通道中的功率开关器件及接口,2. 光电耦合器(隔离器)件及驱动接口,为防止干扰窜入和保证系统的安全,常常采用光电耦合 器,用以实现信号的传输,同时又可将系统与现场隔离开。 晶体管输出型光电耦合器的受光器是光电晶体管,如图9-36所示。,图9-36 光电耦合器4N25的接口电路,3. 光电耦合驱动晶闸管(可控硅)功率开关及接口,图9-38是4N40和MOC3041的接口驱动电路。 4N40是常用的单向晶闸管输出型光电耦合器,也称固态继电器。 MOC3041是常用的双向晶闸管输出的光电耦合器(固态继电器)。,图9-38 晶闸管输出型光电耦合器驱动接口,9.3.2 串行输入D/A芯片TLC5615接口技术,1. TLC5615的特点 2.功能方框图,10位CMOS电压输出; 5 V单电源工作; 与微处理器3线串行接口(SPI); 最大输出电压是基准电压的2倍; 输出电压具有和基准电压相同的极性; 建立时间12.5 s; 内部上电复位; 低功耗,最高为1.75 mW; 引脚与MAX515兼容。,图939 TLC5615功能方框图,3. 引脚排列及功能,图940 TLC5615引脚图,4. TLC5615的时序分析,TLC5615的时序图如图941所示。,图941 时序波形图,5. TLC5615的输入/输出关系,图942的D/A输入/输出关系如表99所列。,图942 TLC5615与89C51接口电路,6. TLC5615与89C51的串行接口电路,图942为将89C51要输出的12位数据存在R0和R1寄存器中, CLR P3.0 ;片选有效 MOV R2,#4 ;将要送入的前4位数据位数 MOV A,R0 ;前4位数据送累加器低4位 SWAP A ;A中高4位和低4位互换(4位数在高位) LCALL WRdata ;由DIN输入前4位数据 MOV R2,#8 ;将要送入的后8位数据位数 MOV A,R1 ;8位数据送入累加器A LCALL WRdata ;由DIN输入后8位数据 CLR P3.1 ;时钟低电平 SETB P3.0 ;片选高电平,输入的12位数据有效 RET ;结束送数 子程序如下: WRdata: NOP ;空操作 LOOP: CLR P3.1 ;时钟低电平 RLC A ;数据送入进位位CY MOV P3.2,C ;数据输入TLC5615有效 SETB P3.1 ;时钟高电平 DJNZ R2,LOOP ;循环送数 RET,9.3.3 并行输入芯片及接口技术,1. 并行输入转换芯片DAC0832 主要由两个8位寄存器和一个8位转换器组成。,图943 DAC0832结构,1) DAC0832引脚功能,D0D7: 数字量数据输入线。 ILE: 数据锁存允许信号,高电平有效。 CS: 输入寄存器选择信号,低电平有效。 WR1: 输入寄存器的“写”选通信号,低电平有效。 XFER: 数据转移控制信号线,低电平有效。 WR2: DAC寄存器的“写”选通信号。VREF: 基准电压输入线。 RFB: 反馈信号输入线,芯片内已有反馈电阻。 IOUT1和IOUT2: 电流输出线。 IOUT1与IOUT2的和为常数, IOUT1随DAC寄存器的内容线性变化。一般在单极性输出时,IOUT2接地;在双极性输出时,接运放。 VCC: 工作电源。DGND: 数字地。 AGND: 模拟信号地。,2) DAC0832特性,主要的特性参数如下: 分辨率为8位。 只需在满量程下调整其线性度。 可与所有的单片机或微处理器直接接口,需要时亦可不与微处理器连接而单独使用。 电流稳定时间为1 。 可双缓冲、单缓冲或直通数据输入。 功耗低,约为200 mW。 逻辑电平输入与TTL兼容。 单电源供电( )。,2. D/A转换器与89C51接口,实际应用中常常需要芯片的输出还需要有将电流转换为电压的电路。 下面介绍两种电路供参考: 图9-44(a)是反相电压输出电路,输出电压; 图9-44(b)是同相电压输出电路,输出电压() 当接5(或5)时,输出电压范围是5(或05); 当接0(或)时,输出电压是0(或0V),图9-44 D/A转换输出电路,1) 直通式工作方式应用,图9-45所示为直通式工作

温馨提示

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

评论

0/150

提交评论