收藏 分享(赏)

单片机原理与C51基础赵丽清-第9章单片机的接口技术.ppt

上传人:dzzj200808 文档编号:2170557 上传时间:2018-09-03 格式:PPT 页数:73 大小:1.78MB
下载 相关 举报
单片机原理与C51基础赵丽清-第9章单片机的接口技术.ppt_第1页
第1页 / 共73页
单片机原理与C51基础赵丽清-第9章单片机的接口技术.ppt_第2页
第2页 / 共73页
单片机原理与C51基础赵丽清-第9章单片机的接口技术.ppt_第3页
第3页 / 共73页
单片机原理与C51基础赵丽清-第9章单片机的接口技术.ppt_第4页
第4页 / 共73页
单片机原理与C51基础赵丽清-第9章单片机的接口技术.ppt_第5页
第5页 / 共73页
点击查看更多>>
资源描述

1、第9章 单片机的接口技术,第9章 目录,9.1 单片机键盘接口技术9.1.1 独立键盘9.1.2 矩阵式键盘 9.2 数码显示器接口电路9.2.1 数码管显示原理9.2.2 数码管动态显示 9.3 A/D转换接口技术 9.4 D/A转换接口技术,9.1 单片机键盘接口技术,9.1.1独立键盘 在单片机系统中广泛使用机械式非编码键盘,通过键盘向单片机输入数字、字符等代码,是最常用的输入手段。 弹性按键被按下时闭合,松手后自动断开。自锁式按键按下时闭合且会自动锁住,只有再次按下时才弹起断开。通常我们把自锁式按键当做开关使用,比如单片机系统中的电源开关就使用自锁按键。单片机的外围输入控制用弹性按键较

2、好。,(a)弹性按键实物图 (b)自锁按键按键实物图 (C)按键引脚电气关系,9.1 单片机键盘接口技术,9.1.1独立键盘 1、独立按键与单片机的连接电路独立式按键特点是:一键一线,各键相互独立,每个键各接一条I/O口线,通过检测I/O输入线的电平状态,可容易地判断哪个按键被按下。独立式按键的连接方法非常简单,I/O端与单片机的任一I/O口相连。,图9-2 独立式按键与单片机的连接,9.1 单片机键盘接口技术,9.1.1独立键盘 2、独立式按键的识别 (1).测试有键被按下否单片机检测按键的原理是:单片机的I/O口既可作为输出也可作为输入使用,当检测按键时用的是它的输入功能,我们把按键的一端

3、接地,另一端与单片机的某个I/O口相连,开始时先给该I/O口赋一高电平,然后让单片机不断地检测该I/O口是否变为低电平,当按键闭合时,即相当于该I/O口通过按键与地相连,变成低电平,程序一旦检测到I/O口变为低电平则说明按键被按下。,9.1 单片机键盘接口技术,9.1.1独立键盘 2、独立式按键的识别 (2).去抖动键是一种开关结构,由于机械触点的弹性及电压突跳等原因,在闭合及断开的瞬间,行线上会出现电压抖动。按键在被按下时,其触点电压变化过程如下图所示。理想波形与实际波形之间是有区别的,实际波形在按下和释放的瞬间都有抖动现象,抖动时间的长短和按键的机械特性有关,一般为510ms。通常我们手动

4、按下键然后立即释放,这个动作中稳定闭合的时间超过20ms。因此单片机在检测键盘是否按下时都要加上去抖动操作软件或专用的去抖动电路及去抖动芯片。,(a)按键按下时电压的理想波形 (b)按键按下时电压的实际波形,9.1 单片机键盘接口技术,9.1.1独立键盘 2、独立式按键的识别 (3).键扫描以确定被按键的物理位置 要想知道被按下的是哪个键,单片机只需要读入P0口的数值,如执行指令:MOV A,P0。然后执行测试条件转移指令如:JB ACC.* (07),rel。根据累加器A中的值判断连接P0口的键盘是哪一位被按下。(4).等待键释放 确定键的物理位置后,再以延时的方法判定键释放。键释放之后,就

5、可以根据得到的键码转去执行相应的键处理子程序,进行数据的输入或命令的处理。,9.1 单片机键盘接口技术,9.1.1独立键盘 3、独立式键盘的识别程序下面是识别某一键是否按下的子程序: KEYIN:MOV P1,0FFH ;P1口写入1,设置P1口为输入状态MOV A,P1 ;读入8个按键的状态CJNE A,#0FFH,QUDOU ;有键按下,跳去抖动LJMP RETURN ;无键按下,返回 QUDOU:MOV R3,A ;8个按键的状态送R3保存LCALL DELAY10 ;调用延时子程序,软件去键抖动MOV A,P1 ;再一次读入8个按键的状态 CJNE A,R3,RETURN ;两次键值比

6、较,不同,则是抖动 KEY0: MOV C,P1.0 ;有键按下,读P1.0的按键状态JC KEY1 ;P1.0为高,该键未按下,跳KEY1,判下一个键LJMP PKEY0 ;P1.0的键按下,跳PKEY0功能程序,9.1 单片机键盘接口技术,9.1.1独立键盘 3、独立式键盘的识别程序 KEY1:MOV C,P1.1 ;读P1.1的按键状态JC KEY2 ;P1.1为高,该键未按下,跳KEY2,判下一个键 LJMP PKEY1 ;P1.1的键按下,跳PKEY1功能程序 KEY2:MOV C,P1.2 ;读P1.2的按键状态JC KEY3 ;P1.2为高,该键未按下,跳KEY3判下一个键LJM

7、P PKEY2 ;P1.2的键按下,跳PKEY2功能程序 KEY3:MOV C,P1.3 ;读P1.3的按键状态 KEY7:MOV C,P1.7 ;读P1.7的按键状态JC RETURN ;P1.7为高,该键未按下,跳RETURN处LJMP PKEY7 ;P1.7的键按下,跳PKEY7功能程序 RETURN:RET ;子程序返回 说明:其中子程序PKEY0、PKEY1PKEY7为按键07的键盘功能程序,由于篇幅所限此处省略。,9.1 单片机键盘接口技术,9.1.2矩阵式键盘 矩阵式键盘通常是由若干个键按行列排成矩阵而组成的,在行列的交点处对应有一个键。 研究键盘接口技术的主要内容就是如何确定被

8、按键的行列位置,并据此产生键码,CPU根据键码产生相应的键功能程序。 1、矩阵式键盘与单片机的连接将16个按键排成4行4列,第一行将每个按键的一端连接在一起构成行线,第一列将每个按键的另端连接在一起构成列线,这样便一共有4行4列共8根线,我们将这8根线连接到单片机的8个I/O口上,通过程序扫描键盘就可检测16个键。,9.1 单片机键盘接口技术,9.1.2矩阵式键盘,图9-4(a) 矩阵式键盘与单片机的连接 图9-4(b) 矩阵式键盘单个按键的电气图,9.1 单片机键盘接口技术,9.1.2矩阵式键盘 2、矩阵式按键的识别 (1).测试有键被按下否 矩阵式键盘有键按下的判断方法 单片机检测矩阵式键

9、盘是否有键被按下的依据与独立式键盘一样,也是检测与该键对应的I/O口是否为低电平。 矩阵键盘两端都与单片机I/O口相连,因此在检测时需人为通过单片机I/O口送出低电平。键盘的行线一端经电阻接5V电源,另一端接单片机系统的输入口;各列线一端接输出口,另一端接5V电源。为判断有没有键被按下,可先经输出口向所有列线输出低电平,然后再经输入口输入各行线状态。若各行线状态皆为高电平,则表明无键被按下;若各行线状态中有低电平出现,则表明有键被按下。,9.1 单片机键盘接口技术,9.1.2矩阵式键盘 2、矩阵式按键的识别 (1).测试有键被按下否 单片机键扫描方式 键盘扫描工作方式选取原则是:既要保证及时响

10、应按键操作,又不过多占用单片机工作时间。键盘扫描工作方式有3种,即查询扫描、定时扫描和中断扫描。 查询方式,利用单片机空闲时,调用键盘扫描子程序,反复扫描键盘。如果单片机的查询的频率过高,虽能及时响应键盘的输入,但也会影响其他任务的进行。查询的频率过低,可能会对键盘的输入漏判。所以要根据单片机系统的繁忙程度和键盘的操作频率,来调整键盘扫描的频率。 定时扫描,每隔一定的时间对键盘扫描一次。在这种方式中,通常利用单片机内的定时器产生的定时中断,进入中断子程序来对键盘进行扫描,在有键按下时识别出该键,并执行相应键的功能程序。为了不漏判有效的按键,定时中断的周期一般应小于100ms。,9.1 单片机键

11、盘接口技术,9.1.2矩阵式键盘中断方式,利用外部中断0和外部中断1的输入引脚触发键扫描程序。,图9-5 中断扫描方式电路,9.1 单片机键盘接口技术,9.1.2矩阵式键盘 2、矩阵式按键的识别 (2).去抖动 矩阵式键盘也需要去抖动操作,在单片机系统中多采用软件方法,延迟时间大约10ms左右。 (3).键扫描以确定被按键的物理位置 列扫描要想确定被按键的物理位置,先送一列为低电平,其余几列全为高电平,然后立即检测各行是否有低电平,若检测到某一行为低电平,则我们便可确认当前被按下的键是哪一行哪一列的,用同样方法轮流送各列一次低电平,并检测相应各行是否变为低电平,这样即可检测完所有的按键,当有键

12、被按下时便可判断出按下的键是哪一个键。当然我们也可以将行线置低电平,扫描列是否有低电平。这就是矩阵键盘检测的原理和方法,通常被称为列扫描。,9.1 单片机键盘接口技术,9.1.2矩阵式键盘 在键盘中假定有A键被按下,这时键盘矩阵中A点处的行线和列线相通。 键扫描的过程是:先从端口输出FEH,即是左端列线为低电平,然后CPU读取行线状态,判断行线状态中是否有低电平者(见图9-6(a));如果没有低电平,再从输出口输出FDH,再判断行线状态(见图9-6(b));依次向下,当输出口输出FBH时,行线状态中有一条为低电平,则闭合键找到(见图9-6(c))。如此继续进行下去,以发现可能出现的多键同时被按

13、下的现象。,图9-6 键扫描过程,9.1 单片机键盘接口技术,9.1.2矩阵式键盘 图9-4所示电路的列扫描程序如下: SMKEY:MOV P1,#0FH ;置P1口高4位为“0”、低4位为输入状态MOV A,P1 ;读P1口ANL A,0FH ;屏蔽高4位CJNE A,0FH,HKEY ;有键按下,转HKEYSJMP SMKEY ;无键按下转回 HKEY: LCALL DELAY10 ;延时10ms,去抖MOV A,P1 ;ANL A,0FH ;CJNE A,0FH,WKEY ;确认有键按下,转判哪一键按下SJMP SMKEY ;是抖动转回 WKEY: MOV P1,1110 1111B ;

14、置扫描码,检测P1.4列MOV A,P1 ;ANL A,0FH ;CJNE A,0FH,PKEY ;P1.4列(Y0)有键按下,转键处理,9.1 单片机键盘接口技术,9.1.2矩阵式键盘 MOV P1,1101 1111B ;置扫描码,检测P1.5列MOV A,P1 ;ANL A,0FH ;CJNE A,0FH,PKEY ;P1.5列(Y1)有键按下转键处理MOV P1,1011 1111B ;置扫描码,检测P1.6列MOV A,P1 ;ANL A,0FH ;CJNE A,0FH,PKEY ;P1.6列(Y2)有键按下,转键处理MOV P1,0111 1111B ;置扫描,检测P1.7列MOV

15、 A,P1 ;ANL A,0FH ;CJNE A,0FH,PKEY ;P1.7列(Y3)有键按下,转键处理LJMP SMKEY ; PKEY: ;键处理,9.1 单片机键盘接口技术,9.1.2矩阵式键盘 2、矩阵式按键的识别 (3).键扫描以确定被按键的物理位置 反转法扫描法要逐列扫描查询,有时则要多次扫描。而线反转法则很简练,无论被按键是处于第一列或最后一列,均只需经过两步便能获得此按键所在的行列值,下面以图9-4(a)所示的矩阵式键盘为例,介绍线反转法的具体步骤。首先让行线编程为输入线,列线编程为输出线,并使输出线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。再把行线编程为输出

16、线,列线编程为输入线,并使输出线输出为全低电平,则列线中电平由高变低所在列为按键所在列。两步即可确定按键所在的行和列,从而识别出所按的键。,9.1 单片机键盘接口技术,9.1.2矩阵式键盘 以图9-4(a)为例的反转法程序如下: SMKEY:MOV P1,#0FH ;置P1口高4位“0”、低4位输入状态MOV A,P1 ;读P1口ANL A,0FH ;屏蔽高4位CJNE A,0FH,HKEY ;有键按下,转HKEYSJMP SMKEY ;无键按下转回HKEY:LCALL DELAY10 ;延时10ms,去抖MOV A,P1 ;ANL A,0FH ;MOV B,A ;行线状态在B的低4位CJNE

17、 A,0FH,WKEY ;有键按下,判哪一键按下SJMP SMKEY ;是抖动转回WKEY:MOV P1,0F0H ;置P1高4位为输入、低4位为“0”MOV A,P1 ;ANL A,0F0H ;屏蔽低4位ORL A,B ;列线高4位,与行线合成于B ;键处理,9.1 单片机键盘接口技术,9.1.2矩阵式键盘 (4).计算键码 根据输出低电平的列线号和变为低电平的行线值,可以求得闭合键的键码。键码实际上就是键在矩阵中按从左向右、从上向下的序号。按这种规律,图9-7所示键盘的32个键的键码为00H1FH。键码的计算公式为: 键码=行首键码+列值 图9-7的行首键码为分别为:00H、08H、10H

18、、18H,列值为07。,图9-7 48键盘键码,9.1 单片机键盘接口技术,9.1.2矩阵式键盘 (5)等待键释放 计算键码之后,再以延时和扫描的方法等待和判定键释放。键释放之后,就可以根据得到的键码转相应的键处理子程序,进行数据的输入或命令的处理。,9.1 单片机键盘接口技术,9.1.2矩阵式键盘 3、矩阵键盘举例 【例9-1】键盘的接口电路如图9-8所示,其接口芯片为8155。其中PA口为输出口,接键盘列线。PC口为输入口,以PC3PC0接键盘的四条行线。此外,已知PA口的地址为0101H,PC口的地址为0103H。试编制8155的键扫描和读键码程序。,图9-8 典型的键盘接口电路,9.1

19、 单片机键盘接口技术,9.1.2矩阵式键盘在键盘程序中共调用两个子程序,它们分别是: DELAY延时子程序(程序略),该程序的执行时间约为6ms。 KS1判断子程序,用于判断键盘上是否有键闭合。KS1的程序如下: KS1: MOV DPTR,#0101H ;设定PA口地址MOV A, #00H MOVX DPTR,A ;PA口向列线输出00HINC DPTR ;设定PC口地址INC DPTR MOVX A, DPTR ;PC口输入行线状态CPL A ;行线状态取反ANL A, #0FH ;屏蔽A的高半字节RET ;返回,9.1 单片机键盘接口技术,9.1.2矩阵式键盘 键盘扫描程序 KEY:A

20、CALL KS1 ;调用子程序,检查有键闭合否JNZ LK1 ;A非0则有键按下,转移到消抖处理程序ACALL DELAY ;执行一次延时程序(延时6ms)AJMP KEY LK1:ACALL DELAY ;有键闭合,延时12ms以去抖动ACALL DELAYACALL KS1 ;再检查有键闭合否JNZ LK2 ;若有键闭合,则转LK2ACALL DELAY ;若无键闭合,则说明是干扰信号,不处理AJMP KEY ;延时6ms后转KEY继续等待键人,9.1 单片机键盘接口技术,9.1.2矩阵式键盘LK2:MOV R2, #FEH ;扫描初值送R2MOV R4, #00H ;列号初值送R4 LK

21、4:MOV DPTR, #0101H ;建立PA口地址MOV A, R2 MOVX DPTR,A ;扫描初值送PA口INC DPTR INC DPTR ;指向PC口MOVX A, DPTR ;输入行状态JB ACC.0,LONE ;ACC.0=1,第0行无键闭合,转LONEMOV A, #00H ;第0行行值AJMP LKP,9.1 单片机键盘接口技术,9.1.2矩阵式键盘LTWO:JB ACC.2,LTHR ;ACC.2=1,第2行无键闭合,转LTHRMOV A, #10H ;第2行行值AJMP LKP LTHR:JB ACC.3,NEXT ;ACC.3=1,第3行无键闭合,转NEXT MO

22、V A, #18H ;第3行行值 LKP: ADD A, R4 ;计算键码PUSH ACC ;保存键码 LK3: ACALL DELAY ;延时6msACALL KS1 ;判断键是否继续闭合若闭合再延时,9.1 单片机键盘接口技术,9.1.2矩阵式键盘JNZ LK3 POP ACC ;若键起,则键码送ARET NEXT: INC R4 ;列号加1MOV A, R2 JNB ACC.7, KND ;第7位为0,已扫描到最高列转KNDRL A ;循环右移1位MOVE R2, A AJMP LK4 ;进行下一列扫描 KND: AJMP KEY ;扫描完毕,开始新的一轮键盘扫描程序的运行结果是,把被按

23、键的键码放在累加器A中然后再根据键码进行下一步的处理。,9.2数码显示器接口电路,9.2.1数码管显示原理我们先来看几个数码管的图片,图9-9(a)为单位数码管、图9-9(b)为双位数码管、图9-9(c)为四位数码管。不管将几位数码管连在一起,数码管的显示原理都是一样的,都是靠点亮内部的发光二极管来发光。,图9-9(a)单位数码管 图9-9(b)双位数码管 图9-9(c)四位数码管,9.2数码显示器接口电路,9.2.1数码管显示原理一位数码管的引脚是10个,显示一个8字需要7个小段,另外还有一个小数点“”,所以其内部一共有8个小的发光二极管,最后还有一个公共端,生产商为了封装统一,单个数码管都

24、封装10个引脚,其中第3和第8引脚是连接在一起的。而它们的公共端又可分为共阳极和共阴极。,(a) 数码管引脚图 (b) 共阴极数码管内部电路 (C) 共阳极数码管内部电路,9.2数码显示器接口电路,9.2.1数码管显示原理 使用LED显示器时,为了显示数字和符号,要为LED显示器提供代码,代码通过各段的亮与灭来显示字符,把控制发光二极管的8位二进制数称为段选码,通常各段位与数据位的对应关系如表9-1所示。,表9-1 各段位与数据位的对应关系,9.2数码显示器接口电路,9.2.1数码管显示原理共阴极和共阳极的段选码互为反码,常用的字符及段选码如表9-2所示。,9.2数码显示器接口电路,9.2.1

25、数码管显示原理 注意:字符的段选码是相对的,由各字段在字节中所处的位置决定。例如8段LED段码是按格式:.、g、f、e、d、c、b、a(由高到低)而形成的,0的段码为3FH(共阴)。反之,如果格式按照:.、a、b、c、d、e、f、g而形成的,0的段码为7EH(共阴)。因此上述对应关系并不是绝对的,可根据实际情形,自行设定,灵活选用。,9.2数码显示器接口电路,9.2.2数码管动态显示 LED显示器工作在静态显示方式下,共阴极或共阳极连接在一起接地或+5V,每位的段选线(adp) 与一个8位并行口相连,如图9-12所示。,图9-12 4位静态LED显示器电路,9.2数码显示器接口电路,9.2.2

26、数码管动态显示静态显示方式由于每一位由一个8位输出口控制段选码,故在同一时间里每一位显示的字符可以各不相同。静态显示的优点明显,一旦刷新之后就能够保持,直至下一次数据到来,并不需要反复刷新,节省CPU运行时的资源;其缺点是N位静态显示器要求有N8根I/O口线,占用I/O资源较多,所有的LED位一直同时发光,功耗较大。,9.2数码显示器接口电路,9.2.2数码管动态显示 在多位LED显示时,为了节约I/O端口,简化电路,降低成本,往往采用动态显示方式将所有位的段选线并联在一起,由一个8位的I/O端口控制,而共阴极点或共阳极点分别由另外的I/O口线控制。,I/O(2)),图9-13 8位LED动态

27、显示器电路,9.3 A/D转换接口技术,在单片机的实时控制和智能仪表等应用系统中,被控制或测量对象的有关参量往往是一些连续变化的模拟量,如温度、压力、流量、速度等物理量,这些模拟量必须转换成数字量后才能输入到计算机进行处理。 实现模拟量转换成数字量的过程称为“量化”,也称为A/D转换,实现模数转换的设备称为模数转换器。A/D转换器种类很多,按转换原理可以分成逐次逼近式、双积分式、并行式及计数器式。,9.3 A/D转换接口技术,衡量A/D转换器性能的主要参数是: 分辨率:即输出的数字量变化一个相邻的值所对应的输入模拟量的变化值。 A/D转换器的分辨率是指输出的单位数字量变化对应的输入模拟量的变化

28、。通常定义为满刻度值与2n之比(n为A/D转换器的二进制位数),显然二进制位数越多,分辨率越高, A/D转换器对输入量变化的敏感程度越高。 转换时间:转换时间是指启动A/D转换到转换结束所需的时间,转换时间的倒数为转换速率。转换速度取决于芯片采用的时钟频率。 转换精度:A/D转换器的转换精度定义为一个实际A/D转换器与一个理想A/D转换器在量化值上的差值,即转换结果相对于理想值的偏差。转换精度有绝对精度和相对精度两种表示方法。 绝对精度:指满刻度输出的实际电压与理想输出值之差,用二进制最低位(LSB)的倍数来表示,如(1/2)LSB、1LSB等。相对精度指相对于转换器满刻度输出模拟电压的百分比

29、,如0.05%等。,9.3 A/D转换接口技术,1、A/D转换器芯片ADC0809的结构及引脚 图9-14为ADC0809的内部结构和引脚图。,(a) ADC0809结构图 (b) ADC0809引脚图,9.3 A/D转换接口技术,1、A/D转换器芯片ADC0809的结构及引脚 图9-14为ADC0809的内部结构和引脚图。图中,多路开关可选通8个模拟量分时输入,共用一个8位A/D转换器进行转换。地址锁存与译码电路完成对A、B、C地址位进行锁存和译码,锁存3位地址信号并选择要转换8个模拟量中的哪一个。三态输出锁存器能对转换后的数字量进行三态锁存输出。,9.3 A/D转换接口技术,1、A/D转换

30、器芯片ADC0809的结构及引脚 ADC0809有28只引脚,为双列直插式封装,ADC0809引脚功能说明如下: IN0IN7:8个模拟量输入通道。 D0D7:8位三态数字量输出线。 C、B、A:通道选择输入线,其中C为最高位,A为最低位,三位地址的取值关系对应8个模拟量通道。 START:启动转换输入信号,正脉冲有效。该信号的上升沿清除ADC0809内部寄存器(复位),下降沿启动控制电路开始转换。 ALE:通道地址锁存信号,ALE正跳变时把3个地址信号送入地址锁存器,并经译码器得到地址输出,以选择相应的模拟输入通道。,9.3 A/D转换接口技术,1、A/D转换器芯片ADC0809的结构及引脚

31、 EOC:转换结束信号输出线。 OE:输出允许控制信号输出线。OE为高电平时,换结果送到数据线D7D0上;OE为低电平时,D7D0上呈现高组态。 CLK:时钟信号接入端。ADC0809的时钟频率的范围是:101280KHZ,典型值为640KHZ,其完成一次转换所需要的时间大月为100s。 VREF(+):参考电压输入端,典型值为5V。 VREF(-):参考电压输入端,典型值为0V。 VCC:主电源5V。 GND:数字地。,9.3 A/D转换接口技术,2、单片机与ADC0809的接口方法 ADC0809和80C51单片机的接口电路连接要考虑三个问题:一是8路模拟信号通道的选择; 二是ADC080

32、9的启动; 三是转换结果数据的传送方式。由于ADC0809带有三态锁存器,所以其输出端D7D0和80C51单片机P0可以直接连接。,9.3 A/D转换接口技术,2、单片机与ADC0809的接口方法 (1).8路模拟信号通道的选择 由于ADC0809内部有地址锁存器,因此地址线C、B、A可以直接与80C51地址总线的任意3条线直接连接,也可以和P0口经锁存器输出的8条线中的任意3条连接。C、B、A信号与通道号的关系如表所示。,表9-3 ADC0809的A、B、C与通道号的关系,9.3 A/D转换接口技术,2、单片机与ADC0809的接口方法 (2).ADC0809的启动及转换ADC0809转换时

33、序图,图9-15 ADC0809转换时序,9.3 A/D转换接口技术,ADC0809的启动及转换的条件将某个通道的模拟信号进行A/D转换,需满足以下条件: 在START端需产生一个正脉冲,上升沿复位ADC0809,下降沿启动A/D转换。 在START信号之前,待转换的模拟通道的地址应稳定地出现在地址线上,同时需在ALE端产生一个正跳变,将地址锁存起来,使得在A/D转换期间,比较器内部输入始终是选中的模拟通道输入信号。 在转换结束之前,在START端和ALE端不能再次出现正脉冲信号。,9.3 A/D转换接口技术,ADC0809的启动转换的方法 启动转换的硬件连接方法是:利用80C51写选通信号

34、与A15A0地址线中的任意一位“或非”后作为ADC0809启动信号(START)和ALE信号相连接。 在单片机系统中,单片机将ADC0809作为数据存储器一样看待。启动转换的软件语句:MOV DPTR,#addr16MOVX A,DPTR,9.3 A/D转换接口技术,(3).ADC0809数据的输出方式 ADC0809数据的输出方式 A/D转换器转换后得到的是数字量,可采用下述三种方式将这些数据应传送给单片机进行处理。 定时传送方式:对于一种A/D转换器来说,只要工作在典型时钟频率范围,其转换时间基本是固定的。例如,ADC0809转换时间为128 s,相当于采用6MHz晶振的80C51单片机的

35、64个机器周期,因此,可设计一个延时子程序,A/D转换启动后,就调用这个延时子程序,延迟时间一到,转换肯定已经完成。接着,就可进行数据传送。 查询方式:A/D转换芯片有表明转换完成的状态信号,例如ADC0809的EOC端。因此可以通过查询方式用软件测试EOC的状态,确认转换是否完成,若完成,则接着进行数据传送。 中断方式:转换完成的状态信号EOC可与单片机的外部中断输入引脚INTX相连接,作为中断请求信号,以中断方式进行数据传送。,9.3 A/D转换接口技术,ADC0809数据的输出电路及指令 ADC0809数据的输出电路将80C51单片机读选通信号 与A15A0地址线中的任意一位相“或非”后

36、与ADC0809的读出信号(OE)相连接。 ADC0809数据的输出指令ADC0809转换结速后,单片机读取转换数据的指令:MOV DPTR,#addr16MOVX DPTR,A如图9-16所示,addr16的取值与启动转换相同,不再详述。执行MOVX DPTR,A指令会使得 信号呈现低电平,P2.0呈现 低电平,两者相“或非”后可以使得OE出现高电平,ADC0809将转换后的结构锁存输出。 。,9.3 A/D转换接口技术,9.2.2数码管动态显示 3、应用实例 图9-16为80C51单片机与ADC0809的接口电路图,采用的是中断方式进行转换结果数据的传送方式。图中用80C51的ALE信号2

37、分频后作为ADC0809的时钟信号(CLK),用80C51的P2.7线作线选址方式,ADC0809的地址码为7FEF8H7FEFFH(未用12条地址线都选取为1)。,图9-16 80C51单片机与ADC0809的接口电路,9.3 A/D转换接口技术,3、应用实例 如果要对其中IN1 通道进行模数转换,应执行如下初始化程序和中断服务程序。 (1)初始化程序 MAIN: SETB IT1 ;设置脉冲触发中断方式 SETB EX1 ;允许外部中断1SETB EA ;开中断MOV DPTR ,#7FEF9H ;设置ADC0809地址 START: MOV A, #01H ;对IN1通道进行转换,A的值

38、可选任何数,无实际意义MOVX DPTR,A ;启动A/D转换 HERE: SJMP HERE ;等待中断 ;其他程序,9.3 A/D转换接口技术,(2)中断服务程序 NTR1: ;保护现场MOVX A, DPTR ;读取转换数据 ;保存数据或进行其他处理(略)RETI ;返回断点,9.4 D/A转换接口技术,模拟量必须转换成数字量后才能输入到计算机进行处理,计算机处理的结果,也常常需要转换为模拟信号,驱动相应的执行机构,实现对被控对象的控制。 以下介绍常用的DAC0832数/模转换器工作原理及其与单片机的接口方法。 DAC0832是CMOS工艺制造的8位的单片D/A转换器,其主要的特性参数如

39、下: 分辨率为8位。 可单缓冲、双缓冲或直接数字输入。 单一电源供电(+5+15V)。 低功耗20mV。 DAC0832内部无参考电源,须外接参考电压源。 建立时间为1s。,9.4 D/A转换接口技术,1、DAC0832结构和引脚DAC0832主要由两个8位寄存器和一个8位D/A转换器组成。使用两个寄存器(输入寄存器和DAC寄存器)的好处是能简化某些应用中的硬件接口电路设计。,(a) DAC0832引脚图 (b) DAC0832结构图,9.4 D/A转换接口技术,DAC0832转换器芯片为20引脚,双列直插式封装,DAC0832的引脚功能如下: D7D0:数字量数据输入线。 ILE:数据锁存允

40、许信号,高电平有效。 /CS:输入寄存器选择信号,低电平有效。 /WR1:输入寄存器的“写”选通信号,负脉冲有效(脉冲宽度大于500ns)。 当/CS=0、ILE=1、/WR1为0至1的跳变时,/LE1发生由1到0的跳变,D7D0的数据状态被锁存至输入寄存器。,9.4 D/A转换接口技术,2、DAC0832的工作原理 在图9-17中,/LE1、/LE2是寄存命令,下降沿有效。当/LE1 =1时,输入寄存器的输出随输入变化;发生由高电平到低电平的跳变时,数据锁存在寄存器中,不再随数据总线上的数据变化而变化。ILE为高电平,/CS为低/WR1同时为低时,使得/LE1=1;当/WR1由低变高时,8位

41、输入寄存器便将输入数据锁存。/XFER与/WR2同时为低,使得/LE2=1,8位DAC寄存器的输出随寄存器的输入变化。/WR2上升沿将输入寄存器的信息锁存在DAC寄存器中。,9.4 D/A转换接口技术,3、单片机与DAC0832接口及应用DAC0832利用/WR1、/WR2、ILE、/XFER通过与单片机连接成可形成三种工作方式:即直通方式、单缓冲方式、双缓冲方式。直通工作方式时,/WR1=/WR2=0,数据可以从输入端经两个寄存器直接进入D/A转换器;单缓冲方式时,两个寄存器之一始终处于直通,即/WR1=0或/WR2=0,另一个寄存器处于受控状态;双缓冲方式时,两个寄存器均处与受控状态,这种

42、工作方式适合于多模拟信号同时输出的应用场合。,9.4 D/A转换接口技术,3、单片机与DAC0832接口及应用 单缓冲工作方式 单片机与DAC0832构成的数模转换电路,图9-18 DAC0832与80C51的单缓冲接口,9.4 D/A转换接口技术,3、单片机与DAC0832接口及应用 单缓冲工作方式单片机执行操作指令MOVX DPTR,A即能完成一次DA转换。要想进行一次D/A转换只需要执行下述指令: MOV DPTR, #addr16 ;addr167FFFH MOV A,#DATA ;DATA待转换数字量 MOVX DPTR,A ;数字量从P0口送到P2.7所指向的地 址,有效时完成一次

43、D/A输入与转换。,9.4 D/A转换接口技术,3、单片机与DAC0832接口及应用 单缓冲工作方式 【例9-2】DAC0832用作波形发生器,分别写出产生锯齿波、三角波和矩形波的程序。 解: 1)锯齿波的产生程序如下:ORG 0100H START: MOV DPTR,#7FFFH ;将DAC0832的地址送DPTRMOV A,#00H ;数字量初值A LOOP: MOVX DPTR,A ;数字量D/A转换器INC A ;数字量逐次加1NOP ;延时NOP SJMP LOOPEND,9.4 D/A转换接口技术,3、单片机与DAC0832接口及应用,图9-19 例9-2产生的锯齿波,9.4 D

44、/A转换接口技术,3、单片机与DAC0832接口及应用 单缓冲工作方式 2)三角波的产生程序如下:ORG 0100H START: MOV DPTR,#7FFFH ;将DAC0832的地址送DPTRMOV A,#00H ;数字量初值A LOOP: MOVX DPTR,A ;数字量D/A转换器INC AJNZ LOOP DOWN: DEC A ;A=0时再减1又为FFHMOVX DPTR,A ;三角波下降边JNZ DOWN SJMP LOOPEND,9.4 D/A转换接口技术,3、单片机与DAC0832接口及应用,图9-20 例9-2产生的三角波,9.4 D/A转换接口技术,3、单片机与DAC0

45、832接口及应用 3)矩形波的产生程序如下:ORG 0100H START: MOV DPTR,#7FFFH ;将DAC0832的地址送DPTRLOOP: MOV A,# DATA1 ;矩形波上线数字量初值AMOVX DPTR,A ;输出矩形波上线电平 LCALL DELAY1 ;调用高电平延时程序MOV A,#DATA2 ;矩形波下线数字量初值AMOVX DPTR,A ;输出矩形波上线电平 LCALL DELAY2 ;调用低电平延时程序SJMP LOOP ;重复进行下一个周期,9.4 D/A转换接口技术,3、单片机与DAC0832接口及应用,图9-21 例9-2 产生的矩形波,9.4 D/A

46、转换接口技术,3、单片机与DAC0832接口及应用 双缓冲方式对于多路D/A转换,要求进行多路同步D/A转换输出时,必须采用双缓冲工作方式。在此方式工作时,数字量的输入锁存和D/A转换输出是分两步完成的,单片机要对两个寄存器进行两步写操作。首先将数据写入输入寄存器,其次将输入寄存器的内容写入DAC寄存器并启动转换。 双缓冲工作方式可以使数据接收和启动转换异步进行,在D/A转换的同时接收下一个转换数据,提高了通道的转换效率。,9.4 D/A转换接口技术,图9-22 DAC0832与80C51单片机同步输出两路模拟信号接线图(双缓冲方式),9.4 D/A转换接口技术,3、单片机与DAC0832接口

47、及应用 双缓冲方式双缓冲工作方式下,1#DAC0832的/CS和译码器/Y5相连接,而2#DAC0832的/CS和码器/Y6相连接。两片DAC0832的/XFER都与译码器的/Y7相连接。此要想同步输出转换后的数字量信号。需要分以下三步完成。 将要转换X坐标的数据写入1#DAC的输入寄存器。 将要转换Y坐班的数据写入2#DAC的输入寄存器。 同时将两片DAC的数据从输入寄存器送入DAC寄存器,并且进行转换。,9.4 D/A转换接口技术,3、单片机与DAC0832接口及应用 双缓冲方式 单片机运行以下程序,DAC0832完成一次D/A转换。 MOV R0,#0FDH ;1#0832的/CS MOV A,#DATA1 ;DATA1:要转换的数据 MOVX R0,A ;数据送1#0832的输入寄存器 MOV R0,#0FEH ;2#0832的/CS MOV A,#DATA2 ;DATA2:要转换的数据 MOVX R0,A ;数据送2#0832的输入寄存器 MOV R0,#0FFH ;1#0832和2#0832的/XFER MOVX R0,A ;数据送2片的DAC寄存器,并启动同步 转换,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报