电子工程师提升计划-第8章 接口技术【2.6】

8.2 输出接口

        单片机接收输入接口送来的信号并处理完成后,往往会输出控制信号,或者将有关数据显示出来。但大多数外部输出设备不能直接接收单片机输出的信号,而输出接口则可以解决单片机和外部输出设备的连接问题。
        输出接口的功能是将单片机输出的信号转换成外部输出设备能接收的信号。单片机的输出接口种类很多,常见的有开关量输出接口、数字量输出接口和显示输出接口。

8.2.1 开关量输出接口

        单片机输出的信号有“1”和“0”两种,称作开关量。常见的开关量输出接口有直连式输出接口、三极管输出接口和晶闸管输出接口等。
1.直连式输出接口
        对于一些功率小的器件,如发光二极管(LED),可以直接与单片机连接起来。LED 与单片机的连接有两种方式,如图8-10所示。在图8-10(a)中,LED(VD1)的正极接+5 V的电源。当单片机的P2.3引脚输出低电平时,LED导通而发光;P2.3引脚输出高电平时,LED熄灭。

        在图8-10(b)中,LED(VD1)的正极接单片机的P2.3引脚。当P2.3引脚输出高电平时,LED导通而发光;P2.3引脚输出低电平时,LED熄灭。
        由于单片机自身的电流比较小,当 LED 采用图8-10(b)所示的接法时,因为P2.3引脚流出的电流小,所以LED发出的光线较暗,一般情况下不建议使用这种接法。

2.三极管输出电路
        如果需要单片机控制大功率的器件(如继电器),直接将这些器件连接在单片机的输出端是不行的,一般可以在输出端加上三极管驱动电路。图8-11所示是两种常见的三极管输出电路。

                                图8-11 两种常见的三极管输出电路
        在图8-11(a)中,三极管VT与继电器连接,当单片机的P2.3引脚输出高电平时,VT导通,有电流流过继电器线圈,继电器触点被吸合。二极管VD为阻尼二极管。在VT截止时,继电器线圈会产生很高的上负下正的反峰电压,该电压容易击穿三极管,在线圈两端接上 VD后,VD 导通可消除线圈上的反峰电压。
        在图8-11(b)中,采用了两只三极管构成复合管。由于复合管的放大倍数是两只三极管放大倍数的乘积,故VT1基极只要有很小的电流Ib,就可以使继电器流过的电流很大,从而达到良好的驱动效果。因为单片机P0端内部没有上拉电阻,所以该端口用作输出时通常要加上拉电阻。
3.晶闸管输出电路
        继电器采用机械方式控制触点的通断来接通或断开电路。由于在触点通断时容易出现电火花,所以易使触点氧化而导致接触不良。采用晶闸管来替代继电器触点可以很好地解决这个问题。图8-12所示是一种常见的晶闸管输出电路。
        图8-12中用到了一只光电耦合器和一只晶闸管。光电耦合器以光的形式传递信号,可以很好地实现强电和弱电的隔离;晶闸管相当于一个开关;三极管 VT 为驱动管,对光电耦合器送来的电流进行放大,让晶闸管能充分导通。

        当单片机的P1.3引脚输出高电平时,有电流流过光电耦合器内的LED,LED发光,光线使内部的光敏三极管导通,有电流经R2、光敏三极管到达三极管VT的基极,VT导通,+200V电压经R3、VT、R4降压后加到晶闸管VS的G极,晶闸管马上导通,+200 V电压产生的电流经大功率晶闸管流过大功率灯泡,使灯泡发光。

8.2.2 数字量输出接口

        单片机在执行内部程序后,往往要向执行部件输出控制信号,但它输出的信号是数字信号,而大多数执行部件只能接收模拟信号,这就需要在单片机的输出端加上D/A转换器,将单片机输出的数字量转换成模拟量。
1.D/A转换器
        D/A转换器即数/模转换器,又称DAC电路,它的功能是将数字信号转换成模拟信号。D/A转换器如图8-13所示。
        在图中,当单片机 P0.7~P0.0 端输出00000000 时,该数字量经D/A 转换器转换后得到0V电压;当P0.7~P0.0端输出00000001时,经D/A转换器转换后得到0.1 V电压;以此类推,当P0.7~P0.0端输出11111111时,经D/A转换器转换后会得到12.7V电压。也就是说,单片机输出的数字量逐渐增大时,经D/A转换输出的电压也逐渐增大。

2.D/A转换器DAC0832的介绍
(1)内部结构
        DAC0832 是一个 8 位分辨率的 D/A 转换器,其内部结构如图8-14所示。从图中可以看出, DAC0832内部有8位输入锁存器、8位DAC寄存器、8位D/A转换器和一些控制门电路。

                                                        图8-14 DAC0832的内部结构
(2)各引脚功能说明
DAC0832的引脚排列及功能标注如图8-15所示。

各引脚的功能说明如下。
DI0~DI7:8位数据输入端,TTL电平,有效时间大于90 ns。
ILE:数据锁存允许信号输入端,高电平有效。
:片选信号输入端,低电平有效。
:输入锁存器写选通信号输入端。如图8-14所示,输入锁存
器能否锁存输入数据,由ILE、 、 共同决定,当ILE为高电平、为低电平、 输入负脉冲(宽度应大于500ns)时,在锁存器的端会得到一个高电平。在 为高电平时,锁存器的数据会随数据输入线的状态变化(即不能锁存数据);当 由高电平转为低电平(下降沿)时,输入线上的数据被锁存下来(即输入线的数据再发生变化,锁存器中的数据也不会随之变化)。
:数据传送控制信号输入端,低电平有效。
:DAC寄存器写选通信号输入端。DAC寄存器能否保存输入数
据,由 、 共同决定,当 为低电平、 输入负脉冲时,在寄存器的 端会得到一个高电平。在 为高电平时,寄存器不能保存锁存器送来的数据;当 由高电平转为低电平时,寄存器将锁存器送来的数据保存下来。
IOUT1:模拟量电流输出端1。当DI0~DI7端都为“1”时,IOUT1的
值最大。
IOUT2:模拟量电流输出端2。该端的电流值与IOUT1之和为一常数,即IOUT1的值大时它的值小。
RFB:反馈信号输入端。在芯片该引脚内部有反馈电阻。
VCC:电源输入端。该端可接+5~+15V电压。
UREF:基准电压输入端。该端可接-10~+10V电压,此端电压决定
D/A转换器输出电压的范围。
AGND:模拟电路地。它为模拟信号和基准电源的参考地。
DGND:数字电路地。它为工作电源地和数字电路地。
DAC0832为模拟量电流输出,在使用时一般外接运算放大器,将电
流转换成电压。
3.DAC0832的应用
DAC0832可以用作MCS-51系列单片机的D/A转换器,它与MCS-51系列单片机的连接如图8-16所示。

(1)DAC0832工作过程
DAC0832的工作有以下几个过程。
① 选中DAC0832。单片机通过P2.7端口送出一个低电平到DAC0832
的 和 端,由 端送出低电平到 、 端,DAC0832被选
中,就能接收单片机P0.0~P0.7端送来的数据。
② 向DAC0832送入数据。单片机通过P0.0~P0.7端向DAC0832送入
8位数据。
③ DAC0832对送来的数据进行D/A转换,并从IOUT1端输出模拟信号
电流。
④ 运算放大器μA741将IOUT1端输出的电流转换成模拟信号电压,
然后从⑥脚输出。
(2)DAC0832应用编程
对于 DAC0832 来说,只要改变输入的数字量,它输出的电压就会
变化,利用这一点,可以让DAC0832产生各种信号电压。
例1:产生锯齿波信号
编写程序,让单片机从P0.0~P0.7端输出一系列8位数据,并控制
DAC0832对这些数据进行D/A转换,得到锯齿波信号。
要使DAC0832输出电压逐渐上升的锯齿波,只要让单片机从P0.0~
P0.7端输出不断增大的数据即可。编写的程序如下:
START: MOV DPTR,#7FFFH  ;将数据7FFFH送入DPTR中作为
DAC0832的地址
STEP1: MOV A,#00H   ;将数据00H送入累加器A
STEP2: MOVX @DPTR,A  ;将A中的数据送入7FFFH单元(即
DAC0832)中(开始D/A转换)
INC A    ;将A中的数据加1(目的是让送给DAC0832的数据
不断增大)
CJNE A,#data,STEP2 ;比较A中的数据与数据data是否相等,
不等跳转执行STEP2处的
;指令,相等则执行下一条指令。数据data用来设定锯齿波电压最
大值,
;例如要使DAC0832输出的最大电压为10V,那么设data=7FH
;(01111111B)可以让形成的锯齿波电压最大可达5V
AJMP STEP1  ;跳转执行STEP1处的指令,当锯齿波达到设定的
值时,该指令才会被执行
;而跳转到STEP1,开始形成下一个锯齿波
例2:产生矩形波信号
产生矩形波信号的程序如下:
START: MOV DPTR,#7FFFH ;选中DAC0832
STEP1: MOV A,#data  ;设置矩形波的高电平大小
MOVX @DPTR,A  ;开始D/A转换
ACALL DELAYH  ;执行高电平延时程序
MOV A,#data  ;设置矩形波的低电平大小
MOVX @DPTR,A  ;开始D/A转换
ACALL DELAYL  ;执行低电平延时程序
SJMP STEP1   ;重复跳转执行STEP1处的指令来形成连续不断
的矩形波
;以下为延时子程序
DELAYH:…      ;高电平延时程序,可参照前面的防抖延
时程序编写,这里省略
DELAYL:…      ;低电平延时程序,这里省略
例3:产生三角波信号
产生三角波信号的程序如下:
START: MOV DPTR,#7FFFH   ;选中DAC0832
STEP1: MOV A,#00H    ;将数据00H送入累加器A
STEP2: MOVX @DPTR,A   ;开始D/A转换
INC A     ;将A中的数据加1
CJNE A,#data,STEP2  ;若A中的数据不等于设置值,转移执
行STEP2处的指令
STEP3: DEC A     ;将A中的数据减1
MOVX @DPTR,A   ;D/A转换
INC A     ;将A中的数据加1
CJNE A,#00H,STEP3  ;若A中的数据不等于00H,转移执行
STEP3处的指令
AJMP STEP1    ;跳转执行STEP1处的指令
例4:产生阶梯形波信号
产生阶梯形波信号的程序如下:
START: MOV DPTR,#7FFFH   ;选中DAC0832
STEP1: MOV R6,#20H    ;设置阶跃值
MOV R4,#05H    ;设置阶跃次数
MOV A, #00H
LOOP: MOVX @DPTR,A   ;D/A转换
ACALL DELAY    ;转移执行每阶梯延时程序
ADD A,R6     ;加阶跃值
DJNZ R4,LOOP   ;将寄存器R4中的值减1,不为“0”则跳转
执行标号LOOP处
;的指令
AJMP STEP1    ;跳转执行STEP1处的指令
;以下为延时子程序
DELAY: …      ;每阶梯延时程序,这里省略

8.2.3 显示输出接口

        为了能让人们了解单片机的有关信息,可给单片机外接显示器。单片机常用的显示器有LED显示器(由LED构成)和LCD(液晶显示器),其中LED显示器应用更广泛。
        LED 显示器由 LED 构成,其种类较多,如七段数码显示器和点阵式显示器等。七段数码显示器常用来显示数字和字母;点阵式显示器由很多LED构成,每只LED相当于一个点,这种显示器不但可以显示数字、字母,还可以显示文字和任意图形,公交车上的滚动显示器就是点阵式显示器。
1.七段数码显示器的结构与工作原理
(1)结构
七段数码显示器的结构如图8-17(a)所示。
        从图中可以看出,七段数码显示器由8只LED组成,其中,7只LED当作七段排列成“8”字形,分别用a~g表示,1只LED用作小数点“dp”,COM为公共端。

        在显示器内部,这8只LED一端接在一起与公共端COM相连。LED的负极连在一起构成的显示器称为共阴极显示器,如图8-17(b)所示;LED 的正极连在一起构成的显示器称为共阳极显示器,如图8-17(c)所示。
(2)工作原理
        下面以图8-18所示电路为例来说明七段数码显示器的工作原理。

        图中的七段数码显示器采用共阴极形式,其公共端COM接地,当单片机从P0.7~P0.0端送数据01011011(5BH)到七段数码显示器的a~g、dp引脚时,显示器内部的a、b、d、e、g段LED发光,显示出数字“2”。如果单片机送出数据00000111,a、b、c段的LED发光,显示器会显示数字“7”。
        也就是说,单片机送出不同的数据(称为字形码),可以让七段数码显示器显示不同的字符。共阴极七段数码显示器常见的字形码见表8-2。

2.多位七段数码显示器接口
        单片机与一位七段数码显示器连接时需要用8个端口,如果与多位七段数码显示器连接,单片机自身的端口就不够用了,采用静态显示方式可以解决这个问题。
        (1)静态显示原理
        下面以图8-19所示电路为例来说明静态显示原理。

        在图中,单片机的RXD端用来输出串行显示数据,TXD端输出数据移位脉冲,两片74LS164为串/并转换移位寄存器,它可以将前级电路送入A、B端的串行数据转换成并行数据,从Q7~Q0端并行输出,两片74LS164的Q7~Q0端分别与两个七段数码显示器的dp、a~g引脚相连。图中的两个显示器为共阳极显示器,某引脚加低电平,相应段的LED才能发光。
        在工作时,单片机从RXD端送出16位数据,与此同时,TXD端送出移位脉冲到74LS164的CLK端,在移位脉冲的控制下,RXD端输出的数据先逐位由A、B端进入第1个74LS164,然后再从第1个74LS164的Q0端逐位输出,进入第2个74LS164,16位数据传送完毕,高8位数据保存在第
1 个 74LS164 中,低 8 位保存在第 2 个 74LS164 中。如单片机RXD 端输出的 16 位数据是1111100110110000(F9B0H),两位显示器会分别显示出数字“1”和“3”。如果要显示器显示新数字,只需单片机再向74LS164中传送新数据,将原来的数据更新即可。

  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值