单片机原理及应用教案(5--7).doc_第1页
单片机原理及应用教案(5--7).doc_第2页
单片机原理及应用教案(5--7).doc_第3页
单片机原理及应用教案(5--7).doc_第4页
单片机原理及应用教案(5--7).doc_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理及应用教案(5-7)第5章 MCS-51单片机的输入/输出通道接口主要内容:输入/输出通道的组成与配置,A/D、D/A转换器及其接口技术。通过本章的学习,使读者了解输入/输出通道设计的基本原理和方法,掌握常用A/D、D/A芯片及其与MCS-51单片机的接口电路与程序设计。重点和难点在于不同方式的A/D、D/A芯片与MCS-51的接口及其程序设计。 5.1 输入/输出通道概述 输入通道(前向通道):被测对象与单片机联系的信号通道。包括传感器或敏感元件、通道结构、信号调节、A/D转换、电源的配置、抗干扰等。输出通道(后向通道):单片机与被控对象联系的信号通道。包括功率驱动、干扰的抑制、D/A转换等。5.1.1 传感器 传感器:传感器是测量系统中的一种前端部件,它将各种输入变量转换成可供测量的信号。 传感器的分类:(1)按传感器的用途可以将传感器分为:压敏和力敏传感器、位置传感器、液面传感器、能耗传感器、速度传感器、热敏传感器、加速度传感器、射线辐射传感器、振动传感器、湿敏传感器、磁敏传感器、气敏传感器、真空度传感器和生物传感器等。(2)按传感器输出信号标准可将传感器分为: 模拟传感器、数字传感器、开关传感器等。 传感器的发展方向:传感器已经成为现代信息技术系统三大支柱之一,在工业、农业、航空航天、军事国防等领域得到了日益广泛的应用。其发展方向主要有以下几个方面:(1)利用新的物理现象、化学反应、生物效应设计传感器。(2)引入数据融合技术。(3)使用新型材料,向微功耗、集成化及无源化发展。(4)采用新的加工技术。(5)向微型化发展。(6)向高可靠性、宽温度范围发展等。 5.1.2 单片机应用系统的输入/输出通道 过程I/O通道:单片机系统和被控对象之间信息的交互通道(输入通道、输出通道)称为过程I/O通道,过程I/O通道的一般结构如下图所示。1输入通道特点: (1)要靠近拾取对象采集信息; (2)传感器、变送器的性能和工作环境因素严重影响通道的方案设计; (3)一般是模拟、数字等混杂电路; (4)常需要放大电路; (5)抗干扰设计非常重要。 输入通道的结构类型:输入通道结构形式取决于被测对象的环境、输出信号的类型、数量、大小等。其结构如下页图所示。 2输出通道 特点:(1)小信号输出,大功率控制;(2)输出伺服驱动控制信号;(3)电磁和机械干扰较为严重。通道结构:在输出通道中,单片机完成控制处理后的输出,总是以数字信号或模拟信号的形式,通过I/O口或者数据总线传送给被控对象。输出通道的结构如下页图所示。 3信号处理电路输入通道中,信号处理的任务是可由硬件实现能够完成小信号放大,信号变换,滤波、零点校正、线性化处理、温度补偿、误差修正和量程切换等任务。可由硬件实现,有些也可由软件实现。(1)开关量输入被控对象的一些开关状态可以经开关量输入通道输入到单片机系统,这些开关信号根据实际情况需要经过电平匹配、电气隔离或互感器后才能够通过单片机接口,接入到单片机系统。(2)小信号放大技术输入通道中,对小信号需要经过测量放大器、可编程增益放大器及带有放大器的小信号双线发送器等电路进行放大调节。(3)隔离放大技术在某些要求输入和输出电路彼此隔离的情况下,必须使用隔离放大器。常用隔离放大器有变压器耦合隔离放大器和光耦合隔离放大器两种。 5.2 D/A转换器及接口技术 D/A转换器(Digit to Analog Converter):将数字量转换成模拟量的器件称为D/A转换器,通常用DAC表示。 D/A转换接口器设计中主要考虑的问题:D/A转换芯片的选择、数字量的码输入、精度、输出模拟量的类型与范围、转换时间、与CPU的接口方式等。5.2.1 D/A转换器的性能指标(1)分辨率:指D/A转换器能分辨的最小输出模拟增量,即相邻两个二进制码对应的输出电压之差称为D/A转换器的分辨率。可用最低位(LSB)表示。如,n位D/A转换器的分辨率为1/2n。(2)精度:精度是指D/A转换器的实际输出与理论值之间的误差,它是以满量程VFS的百分数或最低有效位(LSB)的分数形式表示。(3)线性误差:D/A的实际转换特性(各数字输入值所对应的各模拟输出值之间的连线)与理想的转换特性(始、终点连线)之间是有偏差的,这个偏差就是D/A的线性误差。即两个相邻的数字码所对应的模拟输出值(之差)与一个LSB所对应的模拟值之差。常以LSB的分数形式表示。(4)转换时间TS(建立时间):从D/A转换器输入的数字量发生变化开始,到其输出模拟量达到相应的稳定值所需要的时间称为转换时间。(5)偏移量误差:偏移量误差是指输入数字量为零时,输出模拟量对零的偏移值。 5.2.2 D/A转换器的分类 按输出形式分类:电压输出型和电流输出型。 按是否含有锁存器分类:内部无锁存器和内部有锁存器。 按能否作乘法运算分类:乘算型和非乘算型。 按输入数字量方式分类:并行总线D/A转换器和串行总线D/A转换器。 按转换时间分类:高速D/A(TS100ns)、高速D/A(TS为100ns 10s)、中速D/A(TS为10s100s)、低速D/A(TS100s)等。 5.2.3 D/A转换器的接口 1DAC0832的特点与引脚(1)DAC0832的特点AC0832是NS公司生产的DAC0830系列(DAC0830/32)产品中的一种, 8位CMOS数模转换芯片,其特点如下: 8位并行D/A转换; 片内二级数据锁存,提供数据输入双缓冲、单缓冲、直通三种工作方式; 电流输出型芯片(需外接运放) ; DIP20封装,CMOS低功耗器件,单电源(+5 V+15 V,典型值+5 V)供电;具有双缓冲控制输出;参考电压为-10+10V与MCS-51连接方便。DAC0830系列均为DIP20封装,且管脚完全兼容,DAC0832的引脚如下图所示。引脚功能如下:D0D7:8位数字量输入端 :片选端,低有效ILE :数据锁存允许 :写控制信号1 :写控制信号2 :数据传送控制信号Iout1:电流输出端1Iout2:电流输出端2RFB:内置反馈电阻端VREF:参考电压源(-10 V+10 V) DGND:数字量地AGND:模拟量地Vcc:+5 +15V单电源供电端2电压输出方法DAC0832需要电压输出时,可以简单地使用一个运算放大器连接成单极性输出形式。如下图所示。 输出电压VOUT=(-VREF)3单缓冲方式接口 单缓冲方式是指DAC0832内部的两个数据缓冲器有一个处于直通方式,另一个处于受单片机控制的方式。如下页图所示。ILE接+5V,片选信号及数据传输信号都与地址选择线P2.7相连,地址为7FFFH,两级寄存器的写信号都由CPU的端控制。数字量可以直接从MCS-51的P0口送入DAC0832。当地址选择线选择好DAC0832后,只要输出控制信号,DAC0832就能一次完成数字量的输入锁存和D/A转换输出。执行下列几条指令就可以完成一次D/A转换:MOV DPTR, #7FFFH ;地址指向DAC0832MOV A, #data ; 待转换的数字量DATA送累加器AMOVX DPTR, A ; 数字量送P2.7指向的地址,有效时完成一次D/A输入例题 利用上图所示电路,使用DAC0832作波形发生器产生三角波。 解:在上页图中,放大器LM324的输出端VOUT直接反馈到RFB,所以该电路只能产生单极性的模拟电压。 产生三角波的程序如下: ORG 0100H START: MOV DPTR, #7FFFH ; 地址指向DAC0832 MOV A, #00H ; 三角波起始电压为0 UP: MOVX DPTR, A ; 数字量送DAC0832转换 INC A ; 三角波上升边 JNZ UP ; 未到最高点0FFH,返回UP继续 DOWN: DEC A ; 到三角波最高值,开始下降边 MOVX DPTR, A ; 数字量送DAC0832转换 JNZ DOWN ; 未到最低点0,返回DOWN继续 SJMP UP ; 返回上升边 END 数字量从0开始逐次加1,模拟量与之成正比,当(A)=0FFH时,则逐次减1,减至(A)=0后,再从0开始加1,如此循环重复上述过程,输出就是一个三角波。4双缓冲方式 对于多路D/A转换,若要求同步进行D/A转换输出时,则必须采用双缓冲方式。例题 假设某一分时控制系统,由一台单片机控制并行的两台设备,连接电路如下图所示,两台设备的模拟控制信号分别由两片DAC0832输出,要求两片DAC0832同步输出。解:如上页图所示,利用DAC0832双缓冲的原理,对不同端口地址的访问具有不同的操作功能,具体功能如下表所示。P2.7P2.6P2.5功 能口地址0111#数据由DB第一级锁存7FFFH1100#数据由DB第一级锁存0DFFFH1011#及0#同时由第一级第二级0BFFFH实现同步输出的操作步骤为: 将1#待转换数据由数据总线 1#DAC0832的第一级锁存(写7FFFH口); 将0#待转换数据由数据总线 0#DAC0832的第一级锁存(写0DFFFH口); 将1#、0#DAC0832的第一级锁存器中的数据各自的第二级锁存,同时开始D/A转换(写0BFFFH),周而复始。程序如下: ORG 0100HSTART: MOV DPTR, #7FFFH; 数据指针指向1#的第一级锁存器MOV A, #DATA1; 取第一个待转换数据DATA1MOVX DPTR, A; 送入第一级缓冲器MOV DPTR, #0DFFFH; 数据指针指向0#的第一级锁存器MOV A, #DATA0; 取第二个待转换数据DATA0MOVX DPTR, A; 送入第一级缓冲器MOV DPTR, #0BFFFH; 数据指针指向两个转换器的第二级缓冲地址MOVX DPTR, A; 1#和0#数据同时由第一级向第二级锁存传送,并开始转换RETEND5.3 A/D转换器及接口技术 A/D转换器(Analog To Digit Converter):将模拟量转换为与之成比例的数字量的器件称为A/D转换器,常用ADC表示。5.3.1 A/D转换器的性能指标(1)分辨率:分辨率是指输出数字量变化一个相邻数码所需输入模拟电压的变化量。A/D转换器的分辨率定义为满刻度电压与2n之比值,其中n为ADC的位数。例如:具有12位分辨率的ADC能分辨出满刻度的1/212或满刻度的0.0245%。一个10V满刻度的12位ADC能够分辨输入电压变化的最小值为2.4mV。而 位的A/D转换器(满字为1999),其分辨率为满刻度的1/1999100%=0.05%。 (2)转换速率与转换时间:转换速率是指A/D转换器每秒钟转换的次数。转换时间是指完成一次A/D转换所需的时间(包括稳定时间)。转换时间是转换速率的倒数。(3)量化误差:有限分辨率A/D的阶梯状转移特性曲线与理想无限分辨率A/D的转移特性曲线(直线)之间的最大偏差称为量化误差。通常是1个或半个最小数字量的模拟变化量,表示为1LSB,1/2LSB。(4)线性度:实际A/D转换器的转移函数与理想直线的最大偏差。不包括量化误差、偏移误差(输入信号为零时,输出信号不为零的值)和满刻度误差(满度输出时,对应的输入信号与理想输入信号值之差)三种误差。(5)量程:量程是指A/D能够转换的电压范围,如05V,-10+10V等。(6) 其他指标:内部/外部电压基准、失调(零点)温度系数、增益温度系数,以及电源电压变化抑制比等性能指标。 5.3.2 A/D转换器的分类 5.3.3 A/D转换器的接口 1逐次逼近式A/D转换器(SAR) 组成:由结果寄存器、比较器和控制逻辑等部件组成。 原理:采用对分搜索逐位比较的方法逐步逼近,利用数字量试探地进行D/A转换、再比较判断,从而实现A/D转换。将D/A转换器的输出从二进制数据的最高位起,依次逐位置1,与待转换的模拟量比较,若前者小于后者,该位置1并保留下来,若前者大于后者,该位清0;然后再照此比较下一位,直至比完最低位。最后得到的结果,即A/D转换的值。 特点:转换速度较快(比较次数等于A/D的位数),通常在几mS至几百mS数量级;被转换的模拟量若频率很高(变化较快)则要加采样保持电路;被转换的模拟量若幅度过小(信号微弱)则需要加信号处理电路。(1)ADC0809的特点 ADC0809是NS(National Semiconductor,美国国家半导体)公司生产的逐次逼近型A/D转换器。其特点如下: 分辨率为8位,误差1LSB ; CMOS低功耗器件; 转换时间为100 s(当外部时钟输入频率fc = 640 kHz ) ; 很容易与微处理器连接; 单一电源+5V,采用单一电源+5V供电时量程为05V; 无需零位或满量程调整,使用5V或采用经调整模拟间距的电压基准工作; 带有锁存控制逻辑的8通道多路输入转换开关; DIP28封装; 带锁存器的三态数据输出。 转换结果读取方式有延时读数、查询EOC=1、EOC申请中断。(2)ADC0809引脚功能 IN0IN7:8通道模拟量输入端 2-82-1: 8位数字量输出端C、B、A:接地址锁存器的低三位地址ALE: 地址锁存允许控制信号START:清0内寄存器,启动转换OE: 允许读A/D结果,高有效CLK:时钟输入端,范围为10kHz1200kHz,典型值640kHzEOC:转换结束时为高Vcc:+5VVref+:参考电压,+5VVref-:0VADC0809 有8路模拟量输入IN7IN0 。一次只能选通其中的某一路进行转换,选通的通道由ALE上升沿时送入的C,B,A引脚信号决定。C,B,A地址与选通的通道间的关系如下表所示。C B A被选通的通道0 0 0IN00 0 1IN10 1 0IN20 1 1IN31 0 0IN41 0 1IN51 1 0IN61 1 1IN7(3)接口与编程 ADC0809典型应用如下图所示。由于ADC0809输出含三态锁存,所以其数据输出可以直接连接MCS-51的数据总线P0口。可通过外部中断或查询方式读取A/D转换结果。例题 假设ADC0809与MCS-51的硬件连接如上图所示,要求采用中断方法,进行8路A/D转换,将IN0IN7转换结果分别存入片内RAM的30H37H地址单元中。解:程序如下: ORG 0000H LJMP MAIN; 转主程序 ORG 0003H; 中断服务入口地址 LJMP INT0F; 中断服务。 ORG 0100H MAIN: MOV R0, #30H ; 内部数据指针指向30H单元 MOV DPTR, #7FF8H; 指向P2.7口,且选通IN0(低3位地址为 000) SETB IT0 ; 设置下降沿触发 SETB EX0 ; 允许中断 SETB EA ; 开总中断允许 MOVX DPTR, A ; 启动A/D转换 SJMP $ ; 等待转换结束中断中断服务程序如下: INT0F: MOVX A, DPTR; 取A/D转换结果 MOV R0, A; 存结果 INC R0 ; 内部指针下移 INC DPTR; 外部指针下移,指向下一路 CJNE R0,#38H,NEXT; 未转换完8路,继续转换 CLR EX0; 关中断允许 RETI ; 中断返回 NEXT: MOVX DPTR, A; 启动下一路A/D转换 RETI ; 中断返回,继续等待下一次 END2双积分型A/D转换器 特点:转换速度较慢(因为A/D转换的过程要两次积分)通常在几十mS至几百mS数量级;具有转换精度高、性价比高、抗干扰能力强等优点,在速度要求不很高的实际工程中广泛使用。常用型号: MC14433,ICL7106,ICL7135,AD7555等。(1)MC14433特点 位双积分型A/D转换器; 外部基准电压输入:200 mV或2 V; 自动调零; 量程有199.9 mV或1.999 V两种(由外部基准电压VREF决定); 转换速度为110次/秒,速度较慢。 (2)MC14433引脚功能MC14433为DIP24封装,芯片引脚如下图所示,引脚的功能及含义如下: VDD:正电源端,典型值+5V。VEE:模拟负电源端,典型值-5V。VSS:数字地(所有数字信号输入/输出的零电位)。AGND:模拟地(所有模拟信号的零电位)。VX:被测电压输入端。VREF:外接电压基准(2 V或200 mV)输入端。R1:外接积分电阻输入。C1:外接积分电容输入。R1/C1:外接电阻R1和外接电容C1的公共端,电容C1常采用聚丙烯电容,典型值0.1F,电阻R1有两种选择:470kW(量程为200 mV时)或27kW(量程为2V时)。C01,C02:外接失调补偿电容端,典型值为0.1F。CLK0,CLK1:时钟振荡器外接电阻RC接入端,外接电阻RC典型值470 kW,时钟频率随RC电阻阻值的增加而下降。DU:更新转换控制信号输入,高电平有效。EOC:转换结束输出,当DU有效后,EOC变低,16 400个时钟脉冲(CLK)周期后产生一个0.5倍时钟周期宽度的正脉冲,表示转换结束。可将EOC与DU相连,即每次A/D转换结束后,均自动启动新的转换。:过量程状态输出,低电平有效。当|VX|VREF时,有效(输出低电平)。DS1DS4:分别表示千、百、十、个位的选通脉冲输出,格式为18个时钟周期宽度的正脉冲。例如,在DS2有效期间,Q0Q3上输出的BCD码表示转换的百位的数值。Q0Q3:某位BCD码数字量输出。具体是哪位,由选通脉冲DS1DS4指定,其中,Q3为高位,Q0为低位。(3)MC14433选通时序如下图所示。EOC输出1/2个CLK周期正脉冲表示转换结束,依次DS1,DS2,DS3,DS4有效。在DS1有效期间从Q3Q0端读出的数据是千位数,在DS2有效期间读出的为百位数,依此类推,周而复始。当DS1有效时,Q3Q0上输出的千位数据选通含义如下页表所示。 BCD输出DS1有效时千位的含义Q3Q2Q1Q0极性千位量程1110+0101001111+0欠量程10110欠量程0100+1000010111+1过量程00111过量程(4)接口与编程例题 MC14433与MCS-51的连接如下图所示,采用中断方式(下降沿触发),结果存储格式如下表所示,欠量程、过量程和极性分别保存在00H02H位地址单元中。 存储单元31H高4位31H低4位30H高4位30H低4位所存数据千位百位十位个位解:程序如下:UNDER: EQU 00H; 位地址单元存放欠量程(1真0假)OVER: EQU 01H; 位地址单元存放过量程(1真0假)POLA: EQU 02H; 位地址单元存放极性(1负0正)HIGH: EQU 31H; 高位LOW: EQU 30H; 低位ORG 0000HLJMP MAINORG 0013H; 中断服务入口地址LJMP INT1FMAIN: MOV LOW, #0MOV HIGH, #0 ; 将存放结果的单元清0CLR UNDERCLR OVER; 将存放欠量程、超量程的位地址单元内容清0CLR POLA; 假定结果为正SETB IT1; 置外部中断为下降沿触发SETB EX1; 开中断允许SETB EA; 开中断总允许LJMP $; 等待中断INT1F: MOV A, P1; 进入中断,说明MC14433转换结束,读P1口JNB ACC.4, INT1F ; DS1无效,等待JB ACC.2, NEXT; Q2=1表示正,已经预处理过,继续SETB POLA; 为负,需将02H置位NEXT: JB ACC.3, NEXT1; 千位为0,已经预处理过,继续ORL HIGH, #10H; 将千位信息保存在高位单元中NEXT1: JB ACC.0,ERROR; 转欠、超量程处理,有千位已能区分INI1: MOV A, P1JNB ACC.5, INI1; 等待百位选通信号ANL A, #0FH; 屏蔽高4位ORL HIGH, AINI2: MOV A, P1JNB ACC.6, INI2; 等待十位选通信号ANL A, #0FH; 屏蔽高4位SWAP A; 交换到高4位ORL LOW, AINI3: MOV A, P1JNB ACC.7, INI1; 等待个位选通信号ANL A, #0FH; 屏蔽高4位ORL LOW, ARETIERROR: MOV A, HIGH; 欠、超量程处理CJNE A, #0, OV; 有千位表示过量程SETB UNDER; 置欠量程标志RETIOV: SETB OVER; 置过量程标志RETIEND3串行A/D转换器 特点:引脚数少(常见的8引脚或更少),集成度高(基本上无需外接其他器件),价格低,易于数字隔离,易于芯片升级,廉价,速度略微降低。 (1)MAX187/189芯片引脚及功能MAX187/189是MAXIM公司生产的具有SPI(Serial Peripheral Interface)总线接口的12位逐次逼近式(SAR)A/D转换芯片。特点如下: 12位逐次逼近式(SAR)串行A/D转换芯片; 转换速度为75 kHz,转换时间为8.5s; 输入模拟电压:05V; 单一+5 V供电; DIP8引脚封装,外接元件简单,使用方便。MAX187与MAX189的区别在于:MAX187具有内部基准,无需外部提供基准电压,MAX189则需外接电压基准。 MAX187/189芯片引脚如下图所示。引脚的功能如下:VDD:工作电源:+5V5%;GND:模拟和数字地;VREF:参考电压输入。对于内含基准电压的MAX187,只需外接一个4.7F的退耦电容“激活”内部基准,使其产生4.096V的输出即可;对于MAX189需外接 2.5V到VDD的精密电压,并增加0.1F的退耦电容(外接基准电压适用于禁止内部基准电压的MAX187);AIN:模拟电压输入,范围为0VREF或04.096 V(MAX187);(shut down):关闭控制信号输入,提供三级关闭方式:当输入低电平时,表示芯片处于待命低功耗状态,此时电流仅10A;当输入高电平时,允许使用内部基准;当悬浮时,禁止使用内部基准,只能使用外部参考电压;DOUT:串行数据输出,在串行脉冲SCLK的下降沿数据变化;:片选输入,低电平有效。信号下降沿启动/D转换,A/D转换期间应保持低电平。变高时,DOUT呈高阻态;SCLK:串行时钟输入,最大允许频率为5MHz。使用MAX187/189进行A/D转换时分的步骤: 启动A/D转换,等待转换结束当 输入低电平时,启动A/D转换,此时DOUT引脚输出低电平,充当传递“转换结束”信号的作用。当DOUT输出变高电平时,说明转换结束(在转换期间,SCLK不允许送入脉冲)。 串行读出转换结果从SCLK引脚输入读出脉冲,SCLK每输入一个脉冲,DOUT引脚上输出一位数据,数据输出的顺序为先高位后低位,在SCLK信号的下降沿,数据改变,在SCLK的上升沿,数据稳定。在SCLK信号为高电平期间从DOUT引脚上读数据。 (2)接口与编程 MAX187与MCS-51的连接电路如下图所示。其中,P1.7为控制片选,P1.6为输入串行移位脉冲,P1.5为接收串行数据端。MAX187外接4.7 F退耦电容激活内部电压基准,接+5 V允许使用内部基准。注意:MAX187/189的片选在转换和读出数据期间必须始终保持低电平。工作流程:清P1.7,启动MAX187开始A/D转换;读P1.5,等待转换结束;当P1.5变高,转换结束;从P1.6引脚发串行脉冲,从P1.5引脚逐位读取数据。注意:由于MCS-51单片机外接晶振最大不超过12 MHz,即便是执行一条单周期指令也需1 s,所以发送SCLK时无需延时。例题 如图上页图所示的MAX187与MCS-51连接的电路图,将MAX187转换结果存入31H、30H单元,右对齐,31H存高位(高4位补0)。解:程序如下: HIGH EQU 31H LOW EQU 30H ORG 1000H START: MOV HIGH, #00 MOV LOW, #00; 将转换结果单元清除 CLR P1.6 CLR P1.7; 启动A/D转换 JNB P1.5, $; 等待转换结束 SETB P1.6 ; SCLK上升沿 MOV R7, #12; 置循环初值12 LP: CPL P1.6 ; 发SCLK脉冲 JNB P1.6, LP; 等待SCLK变高 MOV C, P1.5; 将数据取到C MOV A, LOW RLC A MOV LOW, A MOV A, HIGH RLC A MOV HIGH, A ; 将取到的数据位逐位移入结果保存单元 DJNZ R7, LP SETB P1.7 ; 结束 RET END 5.3.4 数据采集系统功能:主要实现从现场采集数据,由单片机分析处理或显示打印,为现场操作者提供操作指导等功能。 1数据采集系统的一般结构需要解决的主要问题:模拟量输入通道的设计。模拟量通道结构:(1)每路模拟量均有各自独立的A/D转换器、采样保持器。其特点是电路结构简单、程序设计方便,A/D转换是并行的,转换速度较快,成本昂贵,仅在高速数据采集系统中采用。(2)多路模拟量共用一套采样保持器、A/D转换器。其特点是经济实用,在性能指标要求许可的情况下,一般采用该方案。2数据采集系统应用举例 目前多数A/D转换器(高速)都内含采样保持器,所以,此处不考虑采样保持器。多路模拟转换器(也称多路模拟转换开关)采用常用的8路模拟转换开关CD4051。CD4051是由地址译码器和多路双向模拟开关组成的8路模拟转换开关,引脚图如下图所示。引脚功能如下:X0X7:输入;X: 输出,可以通过外部地址(C,B,A引脚)选择8路输入中的某1路与输出X接通;VDD和VEE :提供工作电源,其幅值不得低于模拟信号;INH:禁止控制输入,输入高电平时,多路开关中各开关均不通,输出呈高阻态。 例题 设计使用1片A/D转换芯片巡回采集40路模拟量的数据采集系统。解:采用5片CD4051,每片接8路模拟量输入,5片构成58 = 40路模拟采集通道。40路数据采集局部原理如下图所示。采用1片74LS377扩展8位并行输出口,其中,高3位用于选通每片4051的8路中的1路,低5位用于5片CD4051的片选。向74LS377写入数据1111000011110111,选通1#4051的07路;写入1110100011101111,则选通2#4051的07路等。其规律为数据的低3位从000到111变化;高5位初值为11110,其中的0左移5次,完成对40路模拟量的数据采集。 74LS377的数据格式如下表所示。D7D6D5D4D3D2D1D05#40514#40513#40512#40511#4051CBA程序如下:ORG 0100HMOV DPTR, #7FFFH; 指向P2.7口MOV A, #1111 0000B; 选通第1片CD4051芯片的X0路MOV R7, #5; 计数5次(5片CD4051)LP1: MOVX DPTR, A; 选通一路LCALL ADCONV; 调用A/D子程序LCALL ADDSP; 调用转换结束后数字处理MOV R2, A; 用R2暂存AANL A, #07H; 屏蔽高5位CJNE A, #07H,LP2; 判断A是否到7,未到7,选择下一路AJMP LP3; 处理下一片LP2: MOV A, R2; 取回暂存值INC A; 选择下一路AJMP LP1; 继续处理本片下一路LP3: MOV A, R2; 取回暂存值RL A; 高5位0的位置左移ANL A, #0F8H; 指向下一片的第0路(低3位清0)DJNE R7, LP1RETEND第6章 MCS-51单片机的交互通道配置与接口主要内容:从工程应用角度介绍了MCS-51单片机的交互通道配置与接口,主要包括人机界面中的键盘、显示器、微型打印机等。介绍了多种实用方案和设计技巧。重点在于系统概念的形成、各种接口设计方案和设计技巧的掌握,熟悉各种交互设备。难点在于使用动态方法进行键盘和显示的硬件及软件设计。 人机界面:是指人与计算机系统进行信息交互的接口,包括信息的输入和输出。6.1 MCS-51单片机与键盘的接口技术键盘:单片机系统中完成控制参数输入及修改的基本输入设备,是人工干预系统的重要手段。键盘的分类:按编码方式可分为编码键盘与非编码键盘。按键组连接方式可分为独立连接式键盘与矩阵连接式键盘。6.1.1 概述键盘输入的主要对象:各种按键或开关。1独立连接式键盘每键相互独立,各自与一条I/O线相连,CPU可直接读取该I/O线的高/低电平状态。其优点是硬件、软件结构简单,判键速度快,使用方便;缺点是占I/O口线多。适用场合:多用于设置控制键、功能键。适用于键数少的场合。独立连接式键盘连接图如下图所示。当没有键被按下时,所有的数据输入线都为高电平;当有任意一个键被按下时,与之相连的数据输入线将变为低电平;通过相应指令,可以判断是否有键按下。2. 矩阵连接式键盘键按矩阵排列,各键处于矩阵行/列的结点处,CPU通过对连在行(列)的I/O线送已知电平的信号,然后读取列(行)线的状态信息。逐线扫描,得出键码。其特点是键多时占用I/O口线少,硬件资源利用合理,但判键速度慢。适用场合:多用于设置数字键,适用于键数多的场合。4行4列矩阵式键盘连接图如右图所示。这种键盘适合采取动态扫描的方式进行识别。扫描方式:低电平扫描(回送线必须被上拉为高电平)、高电平扫描(回送线需被下拉为低电平)。下图中给出了低电平扫描的电路。3. 薄膜开关特点:不需要进行导线与开关间的焊接,结构简单、体积小、防尘、防水、防有害气体侵蚀、寿命长、可靠性高。应用:与按键式键盘类似,多个薄膜开关也可按照独立式或矩阵式设计内部电路,其原理与普通键盘相同。 6.1.2 使用键盘时必须解决的问题 (1)开关状态的可靠输入。必须消除键抖动。可以采用硬件和软件两种方法,硬件方法就是在按键输入通道上添加去抖动电路;软件方法则采用延迟1020ms(2)键盘状态的监测方法中断方式还是查询方式。(3)键盘编码方法。(4)键盘控制程序的编制。6.1.3 键盘接口功能:对键盘上所按下的键进行识别。分类:(1)编码键盘:采用专用的编码/译码器件,被按下的键由该器件译码输出相应的键码/键值。其特点是增加了硬件开销,编码固定,但编程简单。适用于规模大的键盘。 (2)非编码键盘:采用软件编/译码的方式,通过扫描,对每个被按下的键判别输出相应的键码/键值。其特点是不增加硬件开销,编码灵活,但编程较复杂,占CPU时间。适用于小规模的键盘,特别是单片机系统。键盘。1键盘接口的工作原理对于矩阵式键盘,如上图所示,键盘的行线X0X3通过电阻接+5V,当键盘上没有键闭合时,所有的扫描线和回送线都断开,无论扫描线处于何种状态,回送线都呈高电平。当键盘上某一键闭合时,则该键所对应的扫描线和回送线被短路,可以确定,变为低电平的回送线与扫描线相交处的键闭合。CPU对键盘扫描的方式:程序控制的随机方式( CPU空闲时扫描键盘)、定时控制方式(定时扫描键盘)、中断方式。CPU对键盘上闭合键的键号确定方法:根据扫描线和回送线的状态计算求得,或根据行线和列线的状态查表求得。 2键输入程序的设计方法 (1)判断键盘上是否有键闭合; (2)消除键的机械抖动; (3)确定闭合键的物理位置; (4)得到闭合键的编号; (5)确保CPU对键的一次闭合只做一次处理3键盘接口方式(1)独立式键盘接口(静态方式)特点:结构简单,每个按键接单片机的一条I/O线,通过对输入线的查询,可以识别每个按键的状态。 例题 在MCS-51 单片机系统中,设计一个含8个按键的独立式键盘。解:在MCS-51中,含8个按键的独立式键盘的线路连接如下图所示,8个按键经上拉电阻拉高后分别接到MCS-51单片机P1口的8条I/O线上(P1.0P1.7)。在无键按下的情况下,P1.0P1.7线上输入均为高电平。当有键按下时,与被按键相连的I/O线将得到低电平输入,其他位按键的输入线上仍维持高电平输入。 P1口8条I/O线经与非门74LS30实现逻辑与非后,再经过1个非门74LS04进行信号变换,然后接至MCS-51的 引脚上,可通过中断的方式处理键盘。在中断服务程序中,先延时20 ms消除键抖动,再对各键进行查询,找到所按键,并转到相应的处理程序中去。 主程序如下:ORG 0000HLJMP MAINORG 0003H; 外部中断0中断服务入口地址LJMP INT; 转中断服务ORG 0100HMAIN: SETB EA; 开总中断允许SETB EX0; 开INT0中断SETB IT0; 下降沿有效中断服务程序清单如下: INT CALL D20 ; 延时去抖动MOV P1, #0FFH; P1口送全1值MOV A, P1; 读P1口各引脚CJNE A, #0FFH,CLOSE; 验证是否确实有键闭合AJMP INT0; 无键按下CLOSE: JNB ACC.7, KEY 7; 查询7号键JNB ACC.6, KEY 6; 查询6号键JNB ACC.5, KEY5; 查询5号键JNB ACC.4, KEY4; 查询4号键JNB ACC.3, KEY 3; 查询3号键JNB ACC.2, KEY 2; 查询2号键JNB ACC.1, KEY 1; 查询1号键JNB ACC.0,KEY 0; 查询0号键INT0:RETIKEY 7:; 7号键处理程序KEY 71:MOV A, P1; 再读P1口各引脚JNB ACC.7, FUNC71; 确认键是否释放RETIKEY 6:; 其他键处理程序D20: ; 20ms延时子程序END(2)矩阵式键盘接口行反转法 矩阵式键盘按键识别方法有行反转法和扫描法等。行反转法需要两个双向I/O口分别接行、列线。步骤如下: 由行线输出全“0”,读入列线,判有无键按下。 若有键按下,再将读入的列列线输出,读进行线的值。 第一步读进的列线值与第二步读进的行线值运算,从而得到代表此键的唯一的特征值。行反转法因输入与输出线反过来用而得名。优点是判键速度快,两次即可。例题请为8051微处理器设计一个由4行4列键阵构成的键盘。解:44矩阵键盘的线路连接如下页图所示。其中P2口的低4位作为输出线。P1口的低4位作为输入线,输入线通过74LS21进行逻辑相与后作为8051的一个外部中断源输入。当有键按下时就将引起中断。中断服务程序要对所按的键进行判别。 a. 查询闭合键的位置子程序KEYRKEYR子程序用以确定每组线中哪一位为0,是否有多个0。在调用前,应将读某组线的数据存入累加器A中。 KEYR子程序返回时,某组线中0的位置(03)保存在R3中。按键闭合引起中断后,执行中断服务程序。KEYR子程序如下: KEYR:CJNE A, #0FEH, TESTP11; 测试P1.0MOV R3, #0; P1.0=0,说明被按键的输入线为P1.0LJMP FINISH; 返回TESTP11:CJNE A, #0FDH, TESTP12 ; 测试P1.1MOV R3, #1LJMP FINISHTESTP12:CJNE A, #

温馨提示

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

评论

0/150

提交评论