《单片机接口电路NEW.ppt》由会员分享,可在线阅读,更多相关《单片机接口电路NEW.ppt(94页珍藏版)》请在三一办公上搜索。
1、人机接口键盘接口显示器接口模拟量输入/输出接口D/A转换接口A/D转换接口,第7章单片机接口技术,本章内容,Single Chip Microcomputer,重点:在于系统概念的形成、各种接口设计方案和设计技巧的掌握,熟悉各种交互设备。难点:矩阵键盘及用动态显示的硬件及软件设计。,人机界面:是指人与计算机系统进行信息交互的接口,包括信息的输入和输出。7.1 MCS-51单片机与键盘的接口技术 键盘:单片机系统中完成控制参数输入及修改的基本输入设备,是人工干预系统的重要手段。键盘的分类:按编码方式可分为编码键盘与非编码键盘。按键组连接方式可分为独立连接式键盘与矩阵连接式键盘。按键按照结构原理可
2、分为两类,一类是触点式开关按键另一类是无触点式开关按键。,按键的特点及输入原理,键输入原理:通过按键的接通与断开,产生两种相反的逻辑状态 低电平“0”与高电平“1”。键功能的实现:对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器ACC,然后判断是数字键还是功能键,若是数字键,则将键号对应的数字送入相关输入缓冲区;若是功能键,则通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。,键盘接口需要解决的问题,键抖动及消除:,机械按键抖动时间在5ms10ms之间,硬件方案双稳态去抖电路,软件方案延时10ms20ms后再
3、次判断,消除方法:,关于消除按键机械抖动的研究,计算机与信息技术,方龙,肖献保,李威,独立式按键,每键相互独立,各自与一条I/O线相连,CPU可直接读取该I/O线的高/低电平状态。其优点是硬件、软件结构简单,判键速度快,使用方便;缺点是占I/O口线多。适用场合:多用于设置控制键、功能键。适用于键数少的场合。,独立式键盘与单片机接口,独立式按键接口程序设计,键盘处理程序任务1)键输入 检查键盘是否有键被按下,消除按键抖动。确定被按键的键号,获取键号。硬件电路消除抖动或软件消除抖动。2)键处理 根据键值转移到不同程序段。若键 值属于数字、字符键,则调用显示数字和字符的子程序。若键值属于功能键,则进
4、行多分支转移,执行各个功能程序段。,例:K1合时P1.0、P1.1的灯亮,K2合时P1.2、P1.3的灯亮。,判断有无键按下:MOV P3,#0FFH MOV A,P3 CPL A ANL A,#00111100B JZ K_RET,键盘处理KEY_CL:JB ACC.2,KB01 JB ACC.3,KB02 JB ACC.4,KB03 JB ACC.5,KB04AJMP KEY_RET KB01:LCALL PGM1AJMP KEY_RETKB02:LCALL PGM2AJMP KEY_RETKB03:LCALL PGM3AJMP KEY_RETKB04:LCALL PGM4AJMP KEY
5、_RETKEY_RET:RET,矩阵式按键,接口电路:,矩阵连接式键盘 键按矩阵排列,各键处于矩阵行/列的结点处,CPU通过对连在行(列)的I/O线送已知电平的信号,然后读取列(行)线的状态信息。逐线扫描,得出键码。其特点是键多时占用I/O口线少,硬件资源利用合理,但判键速度慢。适用场合:多用于设置数字键,适用于键数多的场合。,例2:采用矩阵式键盘进行键号识别,KS:MOV A,#0FFHMOV P1,A MOV P1,#0FH MOV A,P1 CPL A ANL A,#0FH RET,键闭合判断程序,按键识别扫描法,流程:当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的
6、交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。键号=行首键号(0、4、8、12)+列号(0、1、2、3),原理:在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。,SERCH:MOV R2,#0EFH MOV R3,#00H LINE0:MOV A,R2 MOV P1,A MOV A,P1 JB ACC.3,LINE1 MOV A,#00H AJMP TRYKLINE1:JB ACC.2,LINE2 MOV A,#04H AJMP TRYK LIN
7、E2:JB ACC.1,LINE3 MOV A,#08H,例2:采用矩阵式键盘进行键号识别,按键识别程序:,AJMP TRYKLINE3:JB ACC.3,LINE4 MOV A,#0CH AJMP TRYKLINE4:INC R3 MOV A,R2 RL A MOV R2,A AJMP LINE0 TRYK:ADD A,R3BACK:RET,定时扫描方式,定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10 ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。,中断扫描方式,为提
8、高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。,使用外部记数接口,这种方案是将按键与定时计数器的外部技术引脚相连,只要在程序中安排以下程序:MOV TMOD,#66HMOV TL0,#0FFHMOV TH0,#0FFHMOV TL1,#0FFHMOV TH1,#0FFHSETB ET0SETB ET1SETB EASETB TR0SETB TR1,使用串行作为接口,此方法是通过串行口读扫描信号,进行键识别,通过串口向移位寄存器发送扫描信号,通过P1口读行信号。,基于单总线技术的
9、按键扩展,在没有按键按下时,即DS2450 的输入量时0,当有不同的按键按下时,DS2450 的输入量不同,微处理器就会得到不同的数字量,微处理器根据采集到的数字量可判断按键情况。,单片机控制的“机电一体化产品”中按键的接口设计科技咨询,李进波,键盘扫描子程序一般包括以下内容:1.判别有无键按下;2.消除键盘机械抖动;3.扫描获取闭合键的行、列值;4.用计算法或查表法得到键值;5.判断闭合键释放否,如没释放则继续等待;6.保存闭合键号。,显示器接口技术,LED的结构和显示原理静态显示方式动态显示方式动态显示的实现,动态显示方式,为使LED显示不同的符号或数字,要为LED提供段码(或称字型码)。
10、,提供给LED显示器的段码(字型码)正好是一个字节(8段)。各段与字节中各位对应关系如下:,按上述格式,8段LED的段码如表7-1所示。,表7-1 LED段码(8段),表7-1只列出了部分段码,可根据实际情况选用。,另外,段码是相对的,它由各字段在字节中所处的位决定。例如表7-1中8段LED段码是按格式:,而形成的,“0”的段码为3FH(共阴)。反之,如 将格式改为下列格式:,则“0”的段码为7EH(共阴)。,字型及段码由设计者自行设定,习惯上还是以“a”段对应段码的最低位。,二、静态显示技术 静态显示数码管相应笔段一直处于点亮状态,因此功耗大,而且占用硬件资源多,几乎只能用在显示位数极少的场
11、合。优点:LED亮度高,可用在室外显示场合。例如:通过单片机P2口并经74LS245驱动以后,让一位数码管循环显示09,其电路如下:,程序清单:ORG0030H MOV SP,#60h MOV R0,#00hDISP0:MOVDPTR,#SEGTAB;字段码首地址DISP1:MOV A,R0;从0开始显示DISP3:MOVCA,A+DPTR;查字符段选码MOVP2,A;从P2口输出显示MOVR3,#100;停留 1sDISP4:ACALLD10MSDJNZR3,DISP4INCR0CJNER0,#0ah,DISP1AJMPDISP1;又从0开始显示,D10MS:MOVR7,#14H;10ms延
12、时子程序DLY:MOVR6,#0F8HDLY1:DJNZR6,DLY1DJNZR7,DLYRETSEGTAB:TAB:DB 0C0H,0F9H,0A4H;;0,1,2DB 0B0H,99H,92H;;3,4,5DB 82H,0F8H,80H;;6,7,8DB 98H,88H,83H;;9,A,BDB 0C6H,0A1H,86H;;C,D,E END,例:模拟产品计数显示电路,编程,START:MOV SP,#60H MOV TMOD,#60H MOVTH1,#00H MOVTL1,#00HSETB EASETB ET1SETB TR1MAIN:MOV A,#00H MOVP1,#0C0HDIS
13、P:MOV A,TL1MOVR1,A MOV DPTR,#TABMOVC A,A+DPTRMOVP1,A MOVA,R1 SJMP DISP;INT_1:MOVTH1,#00H;;定时器1置初值 MOVTL1,#00H RETI,3动态显示接口 1)动态显示概念 动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常,各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;各位的位选线(公共阴极或阳极)由另外的I/O口线控制。动态方式显示时,各数码管分时轮流选通,要使其稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位
14、数码管,并送出相应的段码。依此规律循环,即可使各位数码管显示将要显示的字符。虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人以同时显示的感觉。,数码管动态显示的硬件设计,动态显示程序流程图,采用动态扫描方式依次循环点亮各位数码管,构成多位动态数码管显示电路。,开 始,显示缓冲区首地址送R0显示位数送R3,起始显示位送R2,指向位选口,送位选码,从缓冲区取要显示的数,查表得字型码,指向段选口,送字型码,位选码左移,指向显示缓冲区下一个单元,延时,结束,1,1,扫描完一遍吗?,Y,N,ORG 0000HAJMP MAINORG 0030HMAIN:M
15、OV 30H,#0MOV 31H,#1MOV 32H,#2MOV 33H,#3MOV 34H,#4MOV 35H,#5MOV 36H,#6MOV 37H,#7LCALL DIPAJMP MAIN,DIP:MOV R2,#07FH MOV R0,#30H MOV R3,#8DIP1:MOV A,R2 MOV P2,AMOV A,R0MOV DPTR,#DBBMOVC A,A+DPTRMOV P0,AMOV A,R2RL AMOV R2,AINC R0;只向下一缓冲单元LCALL DELAYDJNZ R3,DIP1RET,MOV TMOD,#01HMOV TL0,#18HMOV TH0,#0FCH
16、SETB EASETB ET0SETB TR0AGAIN:MOV R0,#30HMOV R2,#7FHMOV R3,#8NEXT:MOV A,R2MOV P2,AJNB ACC.7,AGAINSJMP NEXT,INTT0:MOV TL0,#18HMOV TH0,#0FCHMOV A,R0MOV DPTR,#DBBMOVC A,A+DPTRMOV P0,AMOV A,R2RL AMOV R2,AINC R0RETI,三、显示接口电路,(一)显示接口电路,1、显示缓冲区在内部RAM中以DISM开始4个单元为显示缓冲区在缓冲区内部,存放要显示的数码2、软件译码用查表方法将数码转换成字型码,11,3
17、、显示程序,DISP:MOV R0,#30H;R0指向缓冲区 MOV R2,#4;显示4位 MOV SCON,#00H;初始化串行口为方式0DISP0:MOV A,R0;取缓冲区中数据 MOV DPTR,#TBB;指向字型表 MOVC A,A+DPTR;查表,转换成字型 MOV SBUF,A;输出一位DISP1:JNB TI,DISP1;等待输出结束 CLR TI INC R0;指向下一位 DJNZ R2,DISP0 RETDTBL:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,84H,SM0S
18、M1=00 方式0同步移位寄存器波特率=fOSC/12,基于单片机的LED 显示屏的汉字显示科技论坛,上述都不同程度存在占用单片机口线较多、功耗大、开销CPU 资源等缺点,为此,一些IC厂家推出了新一代的译码驱动芯片,如Maxim 公司的MAX7219/7221,Microchip 公司的AY0438,贝能科技公司的BN5279(A)等都是其中的典型代表.点阵字符型液晶显示模块与单片机的接口及编程柯艳明 福建电脑包建华,等:单片机系统中LED 显示译码驱动技术重庆工学院学报(自然科学版),7.4 A/D转换器接口,A/D转换器的作用典型芯片ADC0809ADC0809的应用,A/D转换器的作用
19、,将模拟量转换为数字量,以便计算机接收处理,传感器,单片机,双积分式A/D转换器逐次逼近式A/D转换器。,A/D转换器与单片机的接口技术,从物理信号到电信号的转换A/D转换器的作用是将模拟的电信号转换成数字信号。在将物理量转换成数字量之前,必须先将物理量转换成电模拟量,这种转换是靠传感器完成的。传感器的种类繁多,如温度传感器,压力传感器、光传感器、气敏传感器等。温度传感器:典型的温度传感器有热电偶和热敏电阻。热电偶是利用热点效应来工作的,室温下的输出电压为毫伏级的。热敏电阻是一种半导体新型感温元件,具有负的电阻温度系数,当温度升高时,其电阻减小。湿度传感器:是利用湿度变化引起其电阻值或电容量变
20、化原理制成的,即将湿度变化转换成电量变化。,气敏传感器:半导体气敏传感器是利用半导体于某种气体接触式电阻机功率函数变化这一效应来检测气体的成分或浓度的传感器。压电式或压阻式传感器:某些电解质(石英晶体压电陶瓷),在沿一定的方向受外力的作用而变形时,内部会产生极化的现象,同时在其表面产生电荷。而当外力撤销时又重新回到不带电的状态。利用这些介质可以做成压电式传感器。固体受到作用力后,电阻率(或电阻)就要发生变化,这种效应称压阻式效应,利用它可做成压阻式传感器。,主要参数:分辨率:表示A/D对模拟输入的分辨能力,由它确定能被A/D辨别的最小模拟量,通常也用二进制位来表示。对于n位的A/D转换器,其分
21、辨率为满量程输入电压与2n之比.转换时间:是A/D转换完成一次所需要的时间。绝对精度:是A/D转换器输出端所产生的数字代码中,分别对应于实际需要的模拟输入值与理论上要求的模拟输入值之差。相对误差:是满刻度校准以后,任意数字输出所对应的实际模拟输入值(中间值)与理论值(中间值)之差。,A/D转换器的性能参数与术语,A/D转换器概述,逐次逼近式典型A/D转换器芯片有:(1)ADC0801ADC0805型8位MOS型A/D转换器(2)ADC0808/0809型8位MOS型A/D转换器(3)ADC0816/0817,分辨率为8位,精度为8位。转换时间:100微秒8个模拟输入通道,有通道地址锁存。数据有
22、三态输出能力。输入电压范围为0+5v单一+5v电源供电工作温度范围为-40+85功耗为15mw,ADC0809的原理框图和引脚说明,典型芯片ADC0809介绍,ADC0809是一个8位8通道的AD转换器。,ADC0809功能分析,CLK:时钟信号,可由单片机ALE信号分频得到。,转换有以下几步:,ALE信号上升沿有效,锁存地址并选中相应通道。ST信号有效,开始转换。A/D转换期间ST为低电平。EOC信号输出高电平,表示转换结束。OE信号有效,允许输出转换结果。,ADC0809和单片机的连接,通道选择表,1.首先分析各个通道的地址。(IN0到IN7的地址为0000H到0007H),编程应用中断方
23、式,编程:可采用中断、查询两种方式。,中断方式:ORG 0000H;主程序入口地址 AJMP MAIN;跳转主程序 ORG OO13H;中断入口地址 AJMP INT1;跳转中断服务程序 MAIN:SETB IT1;边沿触发 SETB EA;开中断 SETB EX1;允许中断 MOV DPTR,#0007H;指向0809 IN7通道地址,MOVX DPTR,A;启动A/D转换 SJMP$;等待中断INT1:MOVX A,DPTR;读A/D转换结果 MOV B,A;存数 RETI;返回,查询方式:ORG 0000H;主程序入口地址 AJMP MAIN;跳转主程序 ORG 1000H;中断入口地址
24、MAIN:MOV DPTR,#0007H;指向0809 IN7通道地址 MOVX DPTR,A;启动A/D转换 L1:JB P3.3 L1;查询 MOVX A,DPTR;读A/D转换结果 MOV B,A;存数 SJMP$,量程变换,转换的数字与输入的被测量不同,如果直接显示转换值,将与被测量的信号对应不上,要进行量程变换。例如:用某一通道测量温度,当温度为0时,其电压值为1V;温度为100时,电压值为5V。而通道经校准,在5V时的转换值为1000,1V时的转换值为200。为了准确的显示温度值,应按下式进行变换 Y=100*(X-200)/(1000-200)式中,X为A/D转换后的值,Y为显示
25、值,上式按线性比例推算而出。,ADC574A是一种价格低廉,应用较广的12位逐次逼近式模/数转换器芯片,可以直接与8位、12位、16位总线的处理器相连。主要的参数,ADC574A,引脚特性:D0D11:12位数字量输出。CE:片选信号,高电平有效。CS:片选信号,低电平有效。R/C:数据读/启动信号。R/C=1时,读取转换结果;R/C=0时,启动A/D转换。12/8:输出数据长度选择信号。A0:字节选择信号。在=0状态下,A0=0启动12位A/D转换,A0=1 动8位A/D转换。在=1且=0状态下,A0=0读高8位数据,A0=1读低4位数据。STS:AD574A的工作状态信号。STS=1表示正
26、处于转换状态;STS=0表示转换完毕。,ADC574A引脚特性,10VIN:10V模拟电压输入。单极性时为010V,双极性时为5V5V。20VIN:20V模拟电压输入。单极性时为020V,双极性时为10V10V。REFIN:参考输入,用于满量程调节。REFOUT:内部10V参考电压输出。BIPOFF:偏置输入,用于零点调节。VCC、VEE、VL:15V、15V、5V供电电源。AGND:模拟地。DGND:数字地。,ADC574A引脚特性,ADC574工作时序表,单极性和双极性电路:,ADC574的两种应用形式,启动A/D地址:00H读高8位地址:01H读低4位地址:03H,AD574A与MCS-
27、51系列单片机接口,对模拟量电压采集一次,将结果放在单片机内部的30H和31H单元的参考程序如下:ORG0030HMOVDPTR,#00H;A7、A1、A0为低电平MOVR1,#30H;结果单元地址MOVXDPTR,A;启动A/D转换TEST:JBP3.2,TEST;查询转换是否完成MOVDPTR,#01H;A7和A1=0、A0=1MOVXA,DPTR;读转换结果高8位MOVR1,A;存入30H单元MOVDPTR,#03H;A7=0、A1和A0=1,数据采集程序,MOVXA,DPTR;读转换结果低4位INCR1MOVR1,A;存放低4位MOVA,R1HERE:SJMPHEREEND,ADC和M
28、CU接口应注意的几个问题,A/D芯片的数字输出问题 转换结果数据应由A/D芯片锁存,数据输出最好具有三态能力。A/D芯片和CPU的时序配合问题固定延时等待法 保持等待法中断响应法 查询法 双缓冲法A/D分辨率超过MCU数据总线宽度时的接口 不能只用一条指令,而要用两条输入指令才能把A/D转换的整个数字结构传送给微处理器。,ADC TLC2543芯片,TLC2543是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。2TLC2543的特点(1)12位分辩率A/
29、D转换器;(2)在工作温度范围内10s转换时间;(3)11个模拟输入通道;(4)3路内置自测试方式;(5)采样率为66kbps;(6)线性误差1LSBmax;(7)有转换结束输出EOC;(8)具有单、双极性输出;(9)可编程的MSB或LSB前导;(10)可编程输出数据长度。,A/D转换器的选取原则:A/D转换器用于什么系统?输出数据的位数是多少?系统应该达到多高的精度和线性度?提供给A/D转换器的输入信号范围多大?是单极性的还是双极性的?信号的驱动能力怎样?是否要经过缓冲滤波和采样/保持?对A/D转换器输出的数字代码及逻辑电平的要求如何?是二进制码还是BCD码,是串行还是并行?参考电压是内部的
30、还是外部的?是固定的还是变化的?A/D转换器的工作环境如何?噪声、温度、振动等条件如何?电源电压、功耗、几何尺寸等其它因素。,A/D转换器的选取原则:,ADC TLC2543芯片管脚特性,李映颖,王海军,孟祥谦;串行AD转换器TLC2543与51系列单片机的接口设计J;仪表技术;2004年01期;,AIN0AIN10:模拟量输入端。11路输入信号由内部多路器选通。对于4.1MHz的I/OCLOCK,驱动源阻抗必须小于或等于50,而且用60pF电容来限制模拟输入电压的斜率CS!:片选端。在 端由高变低时,内部计数器复位。由低变高时,在设定时间内禁止DATAINPUT和I/O CLOCK。DATA
31、INPUT:串行数据输入端。由4位的串行地址输入来选择模拟量输入通道DATA OUT:A/D转换结果的三态串行输出端。为高时处于高阻抗状态,为低时处于激活状态EOC:转换结束端。在最后的I/OCLOCK下降沿之后,EOC从高电平变为低电平并保持到转换完成和数据准备传输为止CLOCk:输入/输出时钟端。I/OCLOCK接收串行输入信号并完成以下四个功能:(1)在I/O CLOCK的前8个上升沿,8位输入数据存入输入数据寄存器。(2)在I/OCLOCK的第4个下降沿,被选通的模拟输入电压开始向电容器充电,直到I/OCLOCK的最后一个下降沿为止。(3)将前一次转换数据的其余11位输出到DATA O
32、UT端,在I/OCLOCK的下降沿时数据开始变化。(4)I/OCLOCK的最后一个下降沿,将转换的控制信号传送到内部状态控制位,REF+:正基准电压端。基准电压的正端(通常为Vcc)被加到REF+,最大的输入电压范围由加于本端与REF-端的电压差决定REF-:负基准电压端。基准电压的低端(通常为地)被加到REF-Vcc:电源GND:地时序:一个片选(!cs)脉冲要插到每次转换的开始处,或是在转换时序的开始处变化一次后保持 为低,直到时序结束。每次转换和数据传递使用16个时钟周期和在每次传递周期之间插入 的时序,TLC2543与MCS-51单片机接口,对0通道进行采集、结果为16位、MSB前导、
33、单极性,将采集的数据放入40H和41H单元的程序如下:ORG0030HSTART:MOVSP,#50HMOVR0,#40HMOVP1,#04H;初始化P1口CLRP1.0;置I/O CLOCK为低SETBP1.3;置为高MOVA,30HLOOP0:MOVR2,#02H;结果为高低两字节MOVR5,#08H;输入寄存器和结果的8位数据,TLC2543与51接口的程序,LOOP:MOVC,P1.2;读一位数据到C中 RLCA;输出数据到A的最低位,输入数据到CMOVP1.1,C;写输入数据SETBP1.0;产生I/O CLOCK脉冲CLRP1.0DJNZR5,LOOP;8位数据未完则继续MOVR0
34、,A;存放结果DJNZR2,LOOP0;一次未完则继续AJMPSTART;开始新一次转换END,D/A转换器接口,D/A转换器的作用典型芯片DAC0832DAC0832的应用,D/A转换器的作用,将数字量转换为模拟量,以便操纵控制对象。,D/A转换器的主要指标 转换速度:一般几十微秒到几百微秒,快速的可达1微秒。转换精度(分辨率):决定于输入数字量的位数,位数越多,精度越高。精度(Accuracy)D/A精度表明D/A转换的精确程度。,典型芯片-DAC0832介绍,DAC0832是一个八位D/A转换器,转换时间1微秒,结构如下:,DAC0832功能分析,DI0-DI7:转换数据输入CS:片选信
35、号,因此,DAC0832可以有三种工作形式:直通、单级锁存、两级锁存。,单缓冲方式的接口(1),一个处于直通方式,另一个处于受控的锁存方式,单缓冲方式的接口(2),单缓冲方式的应用 产生锯齿波,假定采用接口(1)方式,即输入寄存器受控,而DAC寄存器直通,输入寄存器地址为7FFFH,产生锯齿波。,源程序清单如下:ORG 0200 MOV DPTR,#07FFFH;指向输入寄存器地址 MOV A,#00H;转换初值 WW:MOVX DPTR,A;WR1有效,启动D/A转换 INC A NOP;延时 NOPAJMP WW,1/28,2/28,3/28,254/28,255/28,0,产生的锯齿波的
36、过程,D/A转换产生的锯齿波,用同样的方法也可以产生三角波、矩形波、梯形波。,若将A的初值改为FFINC改为DEC?,ORG 0030H MOV DPTR,#07FFFH;指向输入寄存器地址 MOV A,#0FFH;转换初值 WW:MOVX DPTR,A;WR1有效,启动D/A转换 A NOP;延时 NOPAJMP WW,DEC,INC,【例7.2】矩形波电压发生器采用单缓冲方式,口地址设为FEFFH.参考程序如下:ORG 1100HSTART:MOV DPTR,#7FFFH;送DAC0832口地址LOOP:MOV A,#dataH;送高电平数据 MOVX DPTR,A LCALL DELAY
37、H;调用延时子程序 MOV A,#dataL;送低电平数据 MOVX DPTR,A LCALL DELAYL;调用延时子程序 SJMP LCALL,执行上述程序就可得到如图7.5所示的矩形波。,图7.5 D/A转换产生的矩形波,两个锁存器都接成受控锁存方式。,双缓冲方式的接口和应用,对一个数字量的转换,需两步完成,程序如下:MOV DPTR,#00E0HMOVX DPTR,AMOV DPTR,#00C0HMOVX DPTR,A,输入寄存器地址:00E0HDAC寄存器地址:00C0H,你知道它与第二种单缓冲方式的区别吗?,2.双缓冲方式应用举例 双缓冲方式用于多路D/A转换系统,以实现多路模拟信
38、号同步输出的目的。例如使用单片机控制X-Y绘图仪。X-Y绘图仪由X、Y两个方向的步进电机驱动,其中一个电机控制绘图笔沿X方向运动,另一个电机控制绘图笔沿Y方向运动,从而绘出图形。因此,对X-Y绘图仪的控制有两点基本要求:一是需要两路D/A转换器分别给X通道和Y通道提供模拟信号,二是两路模拟量要同步输出。,译码法产生地址,两片DAC0832共占据三个单元地址,其中两个输入寄存器各占一个地址,而两个DAC寄存器则合用一个地址。编程时,先用一条传送指令把X坐标数据送到X向转换器的输入寄存器;再用一条传送指令把Y坐标数据送到Y向转换器的输入寄存器;最后再用一条传送指令同时打开两个转换器的DAC寄存器,
39、进行数据转换,即可实现X、Y两个方向坐标量的同步输出。,图7.36 单片机控制X-Y绘图仪(a)同步输出;(b)先X后Y;(c)先Y后X,(a)b)(c),图 控制X-Y绘图仪的双片DAC 0832 接口,假定X方向DAC 0832输入寄存器地址为F0H,Y方向DAC 0832输入寄存器地址为F1H,两个DAC寄存器公用地址为F2H;X坐标数据存于DATA单元中,Y坐标数据存于DATA+1单元中,则绘图仪的驱动程序为 MOV R1,#DATA;X坐标数据单元地址 MOV R0,#0F0H;X向输入寄存器地址 MOV A,R1;X坐标数据送A,MOVX R0,A;X坐标数据送输入寄存器INC R
40、1;指向Y坐标数据单元地址INC R0;指向Y向输入寄存器地址MOV A,R1;Y坐标数据送A MOVXR0,A;Y坐标数据送输入寄存器INCR0;指向两个DAC寄存器地址MOVXR0,A;X、Y转换数据同步输出,DAC与微处理器接口需要注意的问题,D/A转换器与微处理器接口除了电平匹配外,主要要解决的是数字锁存问题。当微处理器送出一个数字信号给D/A转换器时,这个数据在数据总线上只出现很短暂的一段时间,为了保证D/A转换器的完成转换,并在总线数字信息消失以后能保持有稳定的模拟量输出,必须有一组锁存器保持住原输入的数字量。可以充当锁存器的器件有D触发器(74ls373)、Intel8212 等。,8位D/A外加锁存器的方法,8位锁存器用于锁存来自8位数据总线的数字信息。为了确定数字是加给该D/A,需要地址总线经译码得到的片选信号CS。为了控制数据输入锁存,需要有关的控制信号。,1.光电隔离技术和器件TLP系列、4N系列、TIL系列等,开关量输入/输出接口技术,2.开关量输入接口关键问题:干接点、湿接点的处理 交流、直流、电平处理3.开关量输出接口 开关量输出往往带动功率设备,需要进行功率放大。输出形式:继电器、可控硅、晶体管等,去单片机I/O口,如P1.0,开关量输入/输出接口技术,