第七章-MCS-51单片机扩展技术(缩)_第1页
第七章-MCS-51单片机扩展技术(缩)_第2页
第七章-MCS-51单片机扩展技术(缩)_第3页
第七章-MCS-51单片机扩展技术(缩)_第4页
第七章-MCS-51单片机扩展技术(缩)_第5页
已阅读5页,还剩97页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机原理及应用第七章 MCS-51单片机扩展技术 MCS-51单片机I/O口结构及应用,独立式键盘和矩阵式键盘接口技术,LED数码管显示器接口技术,模数换器(ADC)和数模转换器(DAC)接口技术。7.1 I/O口直接应用本章主要内容7.2 键盘和显示器接口技术7.3 A/D、D/A转换接口技术直接做输出口 直接做输入口 在没有外扩任何芯片时,MCS-51单片机内部并行口可以作为输出口,直接与输出外设连接。常用的输出外设是发光二极管。 MCS-51单片机内部并行口也可以作为输入口,直接与输入外设连接,常用的输入外设是开关。 例1例2例1例27.1 I/O口直接应用直接做输出口P1.0P1.1

2、P1.2P1.3P1.4P1.5P1.6P1.789C51+5V例1:用89C51的P1口驱动8个发光二极管,使8个发光二极管由左向右轮流点亮。试画出连接图,编制驱动程序。解:1、画电路图2、编程MOV A, #0FEHUP:MOV P1, ALCALL DLRL ASJMP UPDL:MOV R7, #2DL1:MOV R6, #250DJNZ R6, $DJNZ R7, DL1RET 电阻的作用是当流过发光二极管的电流过大时,它就会被烧坏。这个电阻可以限制流过发光二极管的电流,因此这个电阻叫作限流电阻。限流电阻阻值的计算方法:R=(5-1.75)/Id, Id 是流过发光二极管的电流,一般

3、从8mA到20mA,其值越大,发光二极管越亮,但不能太大,当流过发光二极管的电流超过20mA时,容易烧坏发光二极管。 如果用P0口驱动发光二极管,则如何修改?如果使8个发光二极管由右向左轮流点亮,则如何修改?如果使8个发光二极管闪亮,则如何修改?如果使8个发光二极管由内向外轮流点亮,则如何修改?如果使8个发光二极管由右向左依次点亮,则如何修改?如果使延时时间延长或缩短,会出现什么现象?预习实验并思考:熟悉实验板上与发光二极管有关的电路。编制驱动程序,实现如下操作: 由左向右轮流点亮 由外向里轮流点亮 由右向左依次点亮 闪亮思考题1、直接做输出口P1.0P1.1P1.2P1.3P1.4P1.5P

4、1.6P1.789C51+5V例2:用8051的P1口驱动1个数码管,制成1位秒表.试画出连接图,编制驱动程序。 解:1、画电路图2、编程思考abcdefgDpabcdefgDpUP0: MOVR7, #10 MOVR2, #00H MOVDPTR, #TABUP:MOVA, R2MOVCA, A+DPTRMOVP1, ALCALLD1SINCR2DJNZR7, UPSJMPUP0TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H如果制成0.1S的表,则如何修改?思考题2、直接做输入口P1.0P1.1P1.2P1.3P1.4P1.5P1.6

5、P1.789C51+5V例1:用89C51的P1口传送8个开关状态,用P2口显示8个开关状态,若开关合则对应灯亮,试画出连接图,编制驱动程序。解:(1)画电路图 MOV P1, #0FFHUP: MOV A, P1 MOV P2, A SJMP UPP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7+5V开关处的电阻称为上拉电阻,它的作用是当开关断开时,使P3口的电压上拉为准确的高电平,避免悬空状态。 (2)编程强调:8051内部并行口直接作为输入口时,必须先将口锁存器置1。P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.789C51P2.0P2.1P2.2P2.3

6、P2.4P2.5P2.6P2.7+5V如果将发光二极管反接,则如何修改程序? MOV P1, #0FFHUP: MOV A, P1 CPL A MOV P2, A SJMP UP思考题2、直接做输入口89C51+5V例2:用8051的P1口驱动8个发光二极管,P3.4接一个开关K1,当开关按下时,8个发光二极管由左向右轮流点亮;开关断开时,8个发光二极管不亮。试画出连接图,编制驱动程序。 解:(1)画电路图P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7(2)编程+5VP3.4MOVP3, #0FFHUP: MOVA, #0FEHUP1:JBP3.4, UP1 MOVP1, A

7、LCALLDLRLASJMPUP1DL:MOVR7, #2DL1: MOVR6, #250DJNZR6, $DJNZR7, DL1RET 在上述程序中,开关必须一直按着,灯才能轮流点亮,当开关断开时,停留在某个灯点亮状态。如果当开关断开时,灯全灭,如何修改程序?如果开关作为启动开关,开关按下并抬起时,灯才开始轮流点亮,则如何编程?预习实验熟悉实验板上与发光二极管和开关有关的电路。编制驱动程序,实现如下操作:(1)读入4个按键并使对应的LED点亮。(2)K1按下LED每2个为一组由右向左依次点亮。(3)K2按下并抬起时,LED由内向外轮流点亮。P3.2P3.3P3.4P3.5+5V思考题7.2

8、键盘和显示器接口技术7.2.1 键盘接口技术7.2.2 显示器接口技术 一、键盘类型 二、非编码键盘与单片机的接口 三、矩阵非编码键盘与单片机的接口 键盘是单片机控制系统最常用、最简单的输入设备。用户可以通过键盘输入数据或命令,实 现简单的人机通信。 7.2.1 键盘接口技术一、键盘类型 单片机控制系统键盘有编码键盘和非编码键盘两种。1、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较贵。 目前在单片机控制系统中使用不多。2、非编码键盘仅由键开关组成,其它工作如

9、键识别、键代码的产生、去抖动等,不是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,目前单片机控 制系统中大多数采用非编码键盘。 非编码键盘的键开关可以排列成线性形式或矩阵形式,因此非编码键盘有线性非编码键盘和矩阵非编码键 盘两种。线性形式 单片机控制系统所用的键盘有编码键盘和非编码键盘两种。1、编码键盘除了键开关外,还有专门的硬件电路,用于识别闭合键并产生键代码。不仅如此,编码键盘一般还有去键抖动电路和防串键保护电路等。这种键盘的优点是所需软件简短,但硬件电路较复杂,价格较昂贵。目前在单片机控制系统中使用不多。2、非编码键盘仅由键开关组成,其它工作如键识别、键代码的产生、去抖动等,不

10、是由硬件完成而是由软件完成的。为了简化硬件电路,降低成本,目前单片机控制系统中大多数采用非编码键盘。 非编码键盘的键开关可以排列成线性形式或矩阵形式,因此非编码键盘有线性非编码键盘和矩阵非编码键盘两种。一、键盘类型矩阵形式二、非编码键盘与单片机的接口 线性非编码键盘的键开关排成一行或一列的形式,它与单片机的接口电路如图所示:K1K2K3K4P1.1P1.0P1.2P1.389C51+5V键处理程序如下:MOV P1, #0FFHUP1: MOV A, P1 ;读I/O口状态 ANL A, #0FH ;屏蔽无用位 CJNE A, #0FH, NEXT1;有闭合键? SJMP UP1 NEXT1:

11、LCALL D10ms ;延时10ms去抖动 MOV A, P1 ;再读I/O口状态 ANL A, #0FH CJNE A, #0FH, NEXT2;有闭合键? SJMP UP1NEXT2:JB P1.0, NEXT3 ;K1按下? LCALL K1 ;K1键处理程序NEXT3:JB P1.1, NEXT4 ;K2按下? LCALL K2 ;K2键处理程序NEXT4:JB P1.2, NEXT5 ;K3按下? LCALL K3 ;K3键处理程序NEXT5:JB P1.3, UP1 ;K4按下? LCALL K4 ;K4键处理程序 LJMP UP1 线性非编码键盘的工作原理:当键未被按下时,与此

12、键相连的I/O线获得高电平;当键被按下时,与此键相连的I/O线获得低电平,单片机只要读取I/O口状态,就可以获取按键信息,识别有无键按下和哪个键被按下。例:某单片机控制系统,P1口接有8发光二极管,P3.0、P3.1、P3.2、P3.3接有4个开关K1、K2、K3、K4,试画出接口电路,并编程使得当K1按下时8个发光二极管全亮;当K2按下时8个发光二极管闪亮;当K3按下时8个发光二极管由左向右点亮;当K4按下时8个发光二极管全灭。K1K2K3K4P3.1P3.0P3.2P3.389C51+5VP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7程 序 MOV B, #01H MOV

13、 P3, #0FFH MOV P1, #00H UP1: MOV A, P3 ANL A, #0FH CJNE A, #0FH, NEXT1 SJMP UP1 NEXT1: LCALL D10ms MOV A, P3 ANL A, #0FH CJNE A, #0FH, NEXT2 SJMP UP1NEXT2: JB P3.0, NEXT3 LCALL K1 NEXT3: JB P3.1, NEXT4 LCALL K2 NEXT4: JB P3.2, NEXT5 LCALL K3 NEXT5: JB P3.3, UP1 LCALL K4 LJMP UP1子程序K1: MOV P1,#0FFH R

14、ETK2: MOV P1,#0FFH LCALL D2S MOV P1,#00H LCALL D2S RETK3: MOV P1,B LCALL D2S MOV A,B RL A MOV B,A RETK4: MOV P1,#00H RET三、矩阵非编码键盘与单片机的接口 1、矩阵键盘结构 P1.3 P1.2 P1.1 P1.7 P1.6 P1.5 P1.4 P1.000H04H08H0CH各行首键值00H01H02H03H各列序号2、矩阵键盘工作原理 行线P1.4 P1.7为输入,列线P1.0 P1.3为输出。CPU先使第一列( P1.0)为“0”,其余行为“1”。读输入口P1.4 P1.7

15、的状态,若输入缓冲器的状态全部为“1”,则表示所在行无键按下;若输入缓冲器不全为“1”,说明所在行有键按下,CPU停止当前行线扫描,转入到列线扫描,行线P1.4 P1.7为“0”状态的列表示对应列有键按下。这样,行线与列数交叉键就是扫描到的按键。3、键盘扫描方式 程控扫描方式:CPU从执行程序就开始了键盘的扫描,等待来是键盘的命令。定时扫描方式:在程序初始化时,先对定时/计数器进行设置,使其每10ms中断一次,每次中断,CPU将去扫描一次键盘,若两次中断扫描到有键按下(这里考虑了消抖动),CPU将对键作相应的处理。中断扫描方式:采用中断扫描方式必需有外部中断接口,当有键按下时,产生中断请请求,

16、CPU响应中断,在中断服务程序扫描键盘,作相应处理。这是多任务应用系统常用的一种方式。4、键盘扫描过程 判断键盘上有无键按下:先对行进行扫描,当扫描到行线有键按下时,再对列线进行扫描,行线、列线均为“0”状态的键就是当前的按键。去除键的抖动:当扫描到有按键时,软件延时10ms再判该键是否仍是按键,如是则确认该键是当前的按键,若不是,则把它当成是误操作处理。 取键值:根据行号、列号建立一个键值数据表,采用MOVC A,A+DPTR查表指令。键值存于: 闭合键的键码值=以(TAB(数据表首地址)+行号+列号)为地址单元中的内容。5、键盘扫描编程 ORG 0000H LJMP START ORG 2

17、000HSTART:MOV P1, #0F0H ; P1口高四位为输入(可省) MOV R2,#0FEH ; 扫描初值(P1.0=0) MOV R3,#04H ;每次列扫描数 M0V R0,#00H ;列值计数器R0清零 KEY: MOV A,R2 ;开始扫描 MOV P1,A RL A MOV R2, A ;列扫描值左移一位 MOV A,P1 ;读P1状态 ANL A, #0F0H ;屏蔽低四位 下面以44键盘为例来说明程序扫描键盘程序的编写: CJNE A, #0F0H, JS ;若被按键在本列,则转JS INC R0 ;若被按键不在本列,则加1DJNZ R3,KEY ;4列未扫描完,则循

18、环EXIE: MOV A, #0FFH SJMP DONE ;没有按键按下,(A)=0FFHJS: JB ACC.4, JS1 ;被按键不在L0行,则转JS1 MOV A, #00H ;被按键在L0行,则行首键号00H送A AJMP JS4JS1: JB ACC.5, JS2 ;被按键不在L1行,则转JS2 MOV A, #04H ;被按键在L1行,则行首键号04H送A AJMP JS4JS2: JB ACC.6, JS3 ;被按键不在L2行,则转JS3 MOV A, #08H ;被按键在L2行,则行首键号08H送A AJMP JS4 JS3: JB ACC.7, JS1 ;被按键不在L3行,

19、则转JS4 MOV A, #0CH ;被按键在L3行,则行首键号0CH送A AJMP JS4JS4: ADD A, R0 ;(A)=行首键号+列值 MOV DPTR, #TAB MOVC A, A+DPTR; 查表得键值DONE: RETTAB: DB 01H,02H,03H,0AH DB 04H,05H,06H,0BH DB 07H,08H,09H,0CH DB 0EH,00H,0FH,0DH (不查表行不行?)一、数码管简介 二、单个七段LED数码管的接口三、多个七段LED数码管的接口 在单片机控制系统中显示器是必不可少的外设。常用的显示器有发光二极管,数码管和液晶显示器。本节介绍数码管接

20、口。7.2.2 显示器接口技术一、数码管简介组成:LED数码管由7段或8段发光二极管组成,在平面上排成 8字型。分类:有共阴极和共 阳极两种。COMabcdefgDpCOMabcdefgDp显示原理:使某些段点亮而另一些段不亮就可以显示0-9,A-F等字型。使某段点亮必须具备2个条件:共阴极管的公共端接地和共阳极管的公共端接电源。共阴极管的控制端接电源和共阳极管的控制端接地。共阳极 共阴极abcdefgDp二、单个七段LED数码管的接口 1、软译码连接法2、硬译码连接法 单个七段LED数码管与单片机的连接方法有2种:1、软译码连接法 在软译码连接法下,LED数码管与单片机的连接图 :abcde

21、fgDpP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.789C51+5VabcdefgDp(1)欲使LED数码管显示2,试编程。 MOV P1,#01011011B(2)编程让LED数码管显示30H单元的内容(30H单元的内容在09之间)。 UP: MOV A,30HMOV DPTR, #TABMOVC A, A+DPTRMOV P1, ASJMP UPTAB : DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H共阳极LED2、硬译码连接法 在硬译码连接法下,LED数码管与单片机的连接图 :abcdefgDpP1.0P1.1P1.2

22、P1.3ABCD89C51 利用BCD码七段码译码器实现字形到字形码的转换。常用的BCD码七段码译码器有74LS48和74LS47。 编程让LED数码管显示30H单元的内容(30H单元的内容在09之间)。 MOV P1, 30HLTRBORBIabcdefgP1.4P1.5P1.6P1.7COMabcdefg74LS48共阴极LED+5V注意:在硬译码连接法下,直接送欲显示的数即可,字形到字形码的转换是用硬件实现的。三、多个七段LED数码管的接口 多个数码管与CPU的连接方法有4种:1、静态软译码连接法2、静态硬译码连接法3、动态硬译码连接法4、动态软译码连接法1、静态软译码连接法 在静态软译

23、码连接法下,4个LED数码管与单片机的连接图 :abcdefgDpDpP0.0P0.1P0.2P0.389C51P0.4P0.5P0.6P0.7COMabcdefg共阴极LEDDpP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7COMabcdefgDpP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7COMabcdefgDpP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7COMabcdefg1、编程在4个七段LED数码管上显示1234。 MOV P0,#06HMOV P1,#5BHMOV P2,#4FHMOV P3,#66HSJMP $DpP0.0

24、P0.1P0.2P0.389C51P0.4P0.5P0.6P0.7COMabcdefg共阴极LEDDpP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7COMabcdefgDpP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7COMabcdefgDpP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7COMabcdefg MOV DPTR, #TAB UP0: MOV A, 30H MOVC A, A+DPTR MOV P0, A MOV A, 31H MOVC A, A+DPTR MOV P1, A MOV A, 32H MOVC A, A+DPTR

25、MOV P2, A MOV A, 33H MOVC A, A+DPTR MOV P3, A SJMP UP0TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH思考题 1、编程在4个七段LED数码管上显示30H,31H,32H,33H单元中存放的1位BCD码的内容 。 DpP0.0P0.1P0.2P0.389C51P0.4P0.5P0.6P0.7COMabcdefg共阴极LEDDpP2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7COMabcdefgDpP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7COMabcdefgD

26、pP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7COMabcdefg MOV DPTR, #TAB UP0: MOV A, 30H ANL A, #0FH MOVC A, A+DPTR MOV P0, A MOV A, 30H SWAP A ANL A, #0FH MOVC A, A+DPTR MOV P1, A MOV A, 31H ANL A, #0FH MOVC A, A+DPTR MOV P2, A MOV A, 31H SWAP A ANL A, #0FH MOVC A, A+DPTR MOV P3, A SJMP UP0TAB: DB 3FH,06H,5BH,4F

27、H,66H,6DH,7DH,07H,7FH,6FH2、编程在4个七段LED数码管上显示30H,31H单元中的内容。(30H,31H单元中分别存有2位BCD码)2、静态硬译码连接法在静态硬译码连接法下,4个LED数码管与单片机连接图 :P2.0P2.1P2.2P2.389C51DpP2.4P2.5P2.6P2.7COMabcdefgDpP1.0P1.1P1.2P1.3COMabcdefgP1.4P1.5P1.6P1.7ABCDLTRBORBIabcdefg74LS47+5VDpCOMabcdefgABCDLTRBORBIabcdefg74LS47+5VABCDLTRBORBIabcdefg74L

28、S47+5VDpCOMabcdefgABCDLTRBORBIabcdefg74LS47+5V+5V+5V+5V+5VP2.0P2.1P2.2P2.389C51DpP2.4P2.5P2.6P2.7COMabcdefgDpP1.0P1.1P1.2P1.3COMabcdefgP1.4P1.5P1.6P1.7ABCDLTRBORBIabcdefg74LS47+5VDpCOMabcdefgABCDLTRBORBIabcdefg74LS47+5VABCDLTRBORBIabcdefg74LS47+5VDpCOMabcdefgABCDLTRBORBIabcdefg74LS47+5V例1:编程在4个七段LED

29、数码管上显示30H,31H单元中的内容。(30H,31H单元中分别存有2位BCD码) UP: MOV P1,30H MOV P2,31H SJMP UP +5V+5V+5V+5V例2:编程在4个七段LED数码管上显示30H,31H,32H,33H单元中存放的1位BCD码的内容 。 UP: MOV A, 31H SWAP A ORL A, 30H MOV P1, A MOV A,33H SWAP A ORL A,32H MOV P2,A SJMP UPP2.0P2.1P2.2P2.389C51DpP2.4P2.5P2.6P2.7COMabcdefgDpP1.0P1.1P1.2P1.3COMabc

30、defgP1.4P1.5P1.6P1.7ABCDLTRBORBIabcdefg74LS47+5VDpCOMabcdefgABCDLTRBORBIabcdefg74LS47+5VABCDLTRBORBIabcdefg74LS47+5VDpCOMabcdefgABCDLTRBORBIabcdefg74LS47+5V+5V+5V+5V+5V3、动态硬译码连接法在动态硬译码连接法下,4个LED数码管与单片机的连接图 : 在动态连接法下,数码管公共端均受控。驱动程序的编制充分利用了人眼的视觉滞留效应,循环扫描各数码管,使各数码管不是连续显示,但给人的视觉印象是连续地在显示。每个数码管的显示时间不得低于1

31、ms,不亮的时间不能超过20 ms。 利用人眼的视觉滞留现象,实现让4个七段LED数码管上不同时显示1234,但人眼看到的效果却是同时显示1234。 P2.0P2.1P2.2P2.389C51P2.4P2.5P2.6P2.7COMabcdefgABCDLTRBORBIabcdefg74LS48+5VCOMabcdefgCOMabcdefgCOMabcdefg1234P2.0P2.1P2.2P2.389C51P2.4P2.5P2.6P2.7COMabcdefgABCDLTRBORBIabcdefg74LS48+5VCOMabcdefgCOMabcdefgCOMabcdefg例: 编程在4个七段L

32、ED数码管上显示1234。1234START: MOV P2, #11100001B LCALL D2MS MOV P2, #11010010B LCALL D2MS MOV P2, #10110011B LCALL D2MS MOV P2, #01110100B LCALL D2MS SJMP START编程在4个七段LED数码管上显示30H,31H, 32H,33H单元中的内容。 P2.0P2.1P2.2P2.389C51P2.4P2.5P2.6P2.7COMabcdefgABCDLTRBORBIabcdefg74LS48+5VCOMabcdefgCOMabcdefgCOMabcdefg1

33、234START: MOV R0, #30H MOV R7, #4 MOV R2, #0E0H UP: MOV A, R0 ORL A, R2 MOV P2, A LCALL D2MS INC R0 MOV A, R2 RL A MOV R2, A DJNZ R7, UP SJMP START思考题4、动态软译码连接法在动态软译码连接法下,4个LED数码管与单片机的连接图 :驱动器P2.0P2.1P2.2P2.389C51P3.0P3.1P3.2P3.3COMabcdefgCOMabcdefgCOMabcdefgCOMabcdefg1234P2.4P2.5P2.6P2.7例1: 编程在4个七段

34、LED数码管上显示1234。驱动器P1.0P1.1P1.2P1.389C51P2.4P2.5P2.6P2.7COMabcdefgCOMabcdefgCOMabcdefgCOMabcdefg1234P1.4P1.5P1.6P1.7UP: MOV P1, #06H MOV P2, #0FEH LCALL D2Ms MOV P1, #5BH MOV P2, #0FDH LCALL D2MS MOV P1, #4FH MOV P2, #0FBH LCALL D2MS MOV P1, #66H MOV P2, #0F7H LCALL D2MS SJMP UP例2:编程在4个七段LED数码管上显示30H,

35、31H,32H,33H单元中的内容。驱动器P1.0P1.1P1.2P1.389C51P3.0P3.1P3.2P3.3COMabcdefgCOMabcdefgCOMabcdefgCOMabcdefg1234P1.4P1.5P1.6P1.7START: MOV R0,#30H MOV R7,#4 MOV R2,#0FEH MOV DPTR,#TAB UP: MOV A,R0 MOVC A,A+DPTR MOV P1,A MOV P3,R2 LCALL D2MS INC R0 MOV A,R2 RL A MOV R2,A DJNZ R7,UP SJMP START TAB : DB 3FH,06H,

36、5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH返 回 7.3.1 模拟接口概述 7.3.2 DAC及其接口 7.3.3 ADC及其接口 7.3 A/D、D/A转换接口技术 单片机的外部设备不一定都是数字式的,也经常会和模拟式的设备连接。 例如单片机来控制温度、压力时,温度和压力都是连续变化的,都是模拟量,在单片机与外部环境通信的时候,就需要有一种转换器来把模拟信号变为数字信号,以便能够输送给单片机进行处理。而单片机送出的控制信号,也必须经过变换器变成模拟信号,才能为控制电路所接受。这种变换器就称为数模(D/A)转换器和模数(A/D)转换器。 CPU与模拟外设之间的接

37、口电路称为模拟接口。 在这一节里将介绍单片机与 A/D及D/A转换器接口,以及有关的应用。 7.3.1 模拟接口概述一、DAC介绍1DAC结构:DAC芯片上集成有D/A转换电路和辅助电路。2DAC的参数:描述DA转换器性能的参数很多,主要有以下几个:分辨率(Resolution) 偏移误差(OffsetError) 线性度(Linearity) 精度(Accuracy) 转换速度(ConvemionRate) 温度灵敏度(TemperatureSensitivity) 7.3.2 DAC及其接口DAC0832 集成化的D/A转换器有两类不同的芯片:一类是不便和微处理器微计算机接口的,这类芯片只

38、有数字输入、模拟输出等端子,不带使能端及其他控制端。 另一类D/A芯片是为微机系统设计的,因而带有使能端等控制输入,以便和微机接口。 能与微机接口的D/A芯片也有许多种,其中有的是不带数据锁存器的,这类D/A转器与微机连接时不够方便。也有的是带有数据锁存器的,目前应用较广泛,下面通过 典型芯片来介绍单片机与这类DA转换器的接口。一、DAC介绍1DAC结构:DAC芯片上集成有D/A转换电路和辅助电路。2DAC的参数:描述DA转换器性能的参数很多,主要有以下几个:分辨率(Resolution) 偏移误差(OffsetError) 线性度(Linearity) 精度(Accuracy) 转换速度(C

39、onvemionRate) 温度灵敏度(TemperatureSensitivity) 分辨率反映了数字量在最低位上变化1位时输出模拟量的最小变化。 一般用相对值表示。对于8位D/A转换器来说,分辨率为最大输出幅度的0.39,即为1/256。而对于10位D/A转换器来说,分辨率可以提高到0.1,即1/1024。 7.3.2 DAC及其接口一、DAC介绍1DAC结构:DAC芯片上集成有D/A转换电路和辅助电路。2DAC的参数:描述DA转换器性能的参数很多,主要有以下几个:分辨率(Resolution) 偏移误差(OffsetError) 线性度(Linearity) 精度(Accuracy) 转

40、换速度(ConvemionRate) 温度灵敏度(TemperatureSensitivity) 偏移误差是指输入数字量为0时,输出模拟量对0的偏移值。这种误差一般可在D/A转换器外部用电位器调节到最小。7.3.2 DAC及其接口一、DAC介绍1DAC结构:DAC芯片上集成有D/A转换电路和辅助电路。2DAC的参数:描述DA转换器性能的参数很多,主要有以下几个:分辨率(Resolution) 偏移误差(OffsetError) 线性度(Linearity) 精度(Accuracy) 转换速度(ConvemionRate) 温度灵敏度(TemperatureSensitivity) 线性度是指D

41、/A转换器的实际转移特性与理想直线之间的最大误差,或最大偏移。一般情况下,偏差值应小于0.5LSB。这里LSB是指最低一位数字量变化所带来的幅度变化。7.3.2 DAC及其接口一、DAC介绍1DAC结构:DAC芯片上集成有D/A转换电路和辅助电路。2DAC的参数:描述DA转换器性能的参数很多,主要有以下几个:分辨率(Resolution) 偏移误差(OffsetError) 线性度(Linearity) 精度(Accuracy) 转换速度(ConvemionRate) 温度灵敏度(TemperatureSensitivity) 精度为实际模拟输出与理想模拟输出之间的最大偏差。除了线性度不好会影

42、响精度之外,参考电源的波动等因素都会影响精度。可以理解为线性度是在一定测试条件下得到的D/A转换器的误差,而精度是指在实际工作时的DA转换器的误差,一般质量的D/A转换器的精度为满量程的0.21LSB。7.3.2 DAC及其接口一、DAC介绍1DAC结构:DAC芯片上集成有D/A转换电路和辅助电路。2DAC的参数:描述DA转换器性能的参数很多,主要有以下几个:分辨率(Resolution) 偏移误差(OffsetError) 线性度(Linearity) 精度(Accuracy) 转换速度(ConvemionRate) 温度灵敏度(TemperatureSensitivity) 转换速度即每秒

43、钟可以转换的次数,其倒数为转换时间。7.3.2 DAC及其接口一、DAC介绍1DAC结构:DAC芯片上集成有D/A转换电路和辅助电路。2DAC的参数:描述DA转换器性能的参数很多,主要有以下几个:分辨率(Resolution) 偏移误差(OffsetError) 线性度(Linearity) 精度(Accuracy) 转换速度(ConvemionRate) 温度灵敏度(TemperatureSensitivity) 温度灵敏度是指输入不变的情况下,输出模拟信号随温度的变化。7.3.2 DAC及其接口DAC 0832的结构DAC 0832的引脚DAC 0832的接口DAC 0832的应用二、典型

44、DAC芯片及其接口8位输入寄存器8位DAC寄存器8位D/A转换器DI0DI1DI2DI3DI4DI5DI6DI7+ILECSWR1XFERWR2VREFIOUT1IOUT2DGNDLE1LE2 8位输入寄存器由8位D锁存器组成,用来作为输入数据的缓冲寄存器。 它的8个数据输入可以直接和微机的数据总线相连。LE1为其控制输入,LE1=1时,D触发器接收信号,IE1=0时,为锁存状态。 8位DAC寄存器它也由8位D锁存器组成。8位输人数据只有经过DAC寄存器才能送到DA转换器去转换。 它的控制端为LE2,当LE2=1时,输出跟随输入,而当LE2=0时为锁存状态。DAC寄存器的输出直接送到8位DA转

45、换器进行数模转换。 LE1=1的条件: ILE=1,WR1=0,CS=0 LE2=1的条件: WR2=0,XFER=0Rfb1、DAC0832的结构DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。 8位输入寄存器8位DAC寄存器8位D/A转换器DI0DI1DI2DI3DI4DI5DI6DI7+ILECSWR1XFERWR2VREFIOUT1IOUT2DGNDLE1LE2Rf

46、b2、DAC0832的引脚8位输入寄存器8位DAC寄存器8位D/A转换器DI0DI1DI2DI3DI4DI5DI6DI7+ILECSWR1XFERWR2VREFIOUT1IOUT2DGNDLE1LE2DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。 它的输出是与数字量成比例的电流,Vref为参考电压输入,Rfb为运算放大器的反馈电阻,引脚Rfb则是这个反馈电阻瑞,接到运算放

47、大器的输出端。Rfb2、DAC0832的引脚8位输入寄存器8位DAC寄存器8位D/A转换器DI0DI1DI2DI3DI4DI5DI6DI7+ILECSWR1XFERWR2VREFIOUT1IOUT2DGNDLE1LE2DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。 DAC0832有两个电流输出端:Iout1为DAC电流输出1,当DAC寄存器中为全1时,输出电流最大,当DA

48、C寄存器中为全0时,输出电流为0。Iout2为DAC电流输出2,Iout2为一常数与Iout1之差,即Iout1+Iout2=常数在实际使用时,总是将电流转为电压来使用,即将Iout1和Iout2加到一个运算放大器的输入。Rfb2、DAC0832的引脚8位输入寄存器8位DAC寄存器8位D/A转换器DI0DI1DI2DI3DI4DI5DI6DI7+ILECSWR1XFERWR2VREFIOUT1IOUT2DGNDLE1LE2DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地

49、端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。 DI0DI7是数字量输入信号线。可以直接和微机的数据总线相连。Rfb2、DAC0832的引脚8位输入寄存器8位DAC寄存器8位D/A转换器DI0DI1DI2DI3DI4DI5DI6DI7+ILECSWR1XFERWR2VREFIOUT1IOUT2DGNDLE1LE2DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VRE

50、F一般可在+10V到10V范围内选用。 ILE:输入锁存允许信号,高电平有效。只有当ILE=1时,输人数字量才可能进入8位输入寄存器。 Rfb2、DAC0832的引脚8位输入寄存器8位DAC寄存器8位D/A转换器DI0DI1DI2DI3DI4DI5DI6DI7+ILECSWR1XFERWR2VREFIOUT1IOUT2DGNDLE1LE2DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V

51、范围内选用。 CS:片选输入,低电平有效。只有当WR1CS=0时,这片0832才被选中工作。Rfb2、DAC0832的引脚8位输入寄存器8位DAC寄存器8位D/A转换器DI0DI1DI2DI3DI4DI5DI6DI7+ILECSWR1XFERWR2VREFIOUT1IOUT2DGNDLE1LE2DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。 WR1:写信号1,低电平有效,

52、控制输入寄存器的写入。 Rfb2、DAC0832的引脚8位输入寄存器8位DAC寄存器8位D/A转换器DI0DI1DI2DI3DI4DI5DI6DI7+ILECSWR1XFERWR2VREFIOUT1IOUT2DGNDLE1LE2DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。 XFER:传送控制信号,低电平有效。控制数据从输入寄存器到DAC寄存器的传送。 Rfb2、DAC0

53、832的引脚8位输入寄存器8位DAC寄存器8位D/A转换器DI0DI1DI2DI3DI4DI5DI6DI7+ILECSWR1XFERWR2VREFIOUT1IOUT2DGNDLE1LE2DAC0832是CMOS工艺,双列直插式20引脚。 VCC电源可以在5-15V内变化。典型使用时用15V电源。 AGND为模拟量地线,DGND为数字量地线,使用时,这两个接地端应始终连在一起。 参考电压VREF接外部的标准电源,VREF一般可在+10V到10V范围内选用。 WR2:写信号2,低电平有效,控制DAC寄存器的写人。 Rfb2、DAC0832的引脚8位输入寄存器8位DAC寄存器8位D/A转换器DI0D

54、I1DI2DI3DI4DI5DI6DI7+ILECSWR1XFERWR2VREFIOUT1IOUT2DGNDLE1LE2DAC0832转换器可以有三种工作方法,即直通方式、单缓冲方式和双缓冲方式。(1)直通方式:这时两个8位数据寄存器都处于数据接收状态,即LEI和IE2都为1。输人数据直接送到内部DA转换器去转换。(2)单缓冲方式:这时两个8位数据寄存器中有一个处于直通方式(数据接收状态),而另一个则受微机送来的控制信号控制。在单缓冲工作方式时,0832中两个数据寄存器有一个处于直通方式,一般都是将8位DAC寄存器置于直通方式。(3)双缓冲方式:这时两个8位数据寄存器都不处于直通方式,单片机或

55、其他微机必须送两次写信号才能完成一次DA转换。Rfb3、DAC0832的接口直通方式:这时两个8位数据寄存器都处于数据接收状态,即LEI和IE2都为1。因此,IEL =1,而CS、WRl、WR2和XFER为0。输人数据直接送到内部DA转换器去转换。这种方式可用于一些不带微机的控制系统中。(1)直通方式单缓冲方式:这时两个8位数据寄存器中有一个处于直通方式(数据接收状态),而另一个则受微机送来的控制信号控制。在单缓冲工作方式时,0832中两个数据寄存器有一个处于直通方式,一般都是将8位DAC寄存器置于直通方式。为此,应将WR2和XFER固定接零。而输入寄存器是工作于锁存器状态,它对于8031单片

56、机来说,相当于一个外部RAM单元。 (2)单缓冲方式执行下面的几条指令就能完成一次D/A转换: MOV DPTR, 7FFFH; 指向DAC0832 MOV A, DATA; 数字量装入A MOVX DPTR, A; 完成一次D/A输入与转换 (2)单缓冲方式单缓冲方式例图 7.42 阶梯波形图 产生阶梯波的程序如下: START: MOV A, 00H ; MOV DPTR, 7FFFH ; 0832 的地址送DPTR MOV R1, 0AH ; 台阶数为 10LP: MOVX DPTR, A ; 送数据至 0832 LCALL DELAY ; 1 ms延时 DJNZ R1, NEXT ;

57、不到 10 台阶转移 SJMP STRT ; 产生下一个周期NEXT: ADD A, 10 ; 台阶增幅 SJMP LP ; 产生下一台阶DELAY: MOV 20H, 249 ; 1 ms延时程序AGAIN: NOP NOP DJNZ 20H, AGAIN 双缓冲方式:这时两个8位数据寄存器都不处于直通方式,单片机或其他微机必须送两次写信号才能完成一次DA转换。若采用双缓冲方式,则DAC0832应被看作是外部RAM的两个单元而不是一个单元。 (3)双缓冲方式(3)双缓冲方式MOV DPTR, 0DFFFH ; 指向DAC0832(1)MOV A, data1 ; data1送入DAC0832

58、(1)中锁存MOVX DPTR, A ; MOV DPTR, 0BFFFH ; 指向DAC0832(2)MOV A, data2 ; data2送入DAC0832(2)中锁存MOVX DPTR, AMOV DPTR, 7FFFH ; 给0832(1)和(2)提供WR信号MOVX DPTR, A ; 同时完成D/A转换输出 数模转换器可以应用在许多场合,这里介绍用DA转换器来产生各种波形。锯齿波的产生三角波的产生 梯形波的产生 4、DAC0832的应用 锯齿波分为正向锯齿波和负向锯齿波。其中正向锯齿波应用广泛。在许多控制应用中,要求有一个线性增长的电压(正向锯齿)来控制检测过程,移动记录笔或移动

59、电子束等。正向锯齿波形如图所示: 产生正向锯齿波的方法:通过在DAC0832的输出端接运算放大器,由运算放大器产生锯齿波来实现。 DAC0832的输入寄存器的地址为7FFFH (1)锯齿波的产生 MOV DPTR,#7FFFH MOV A,#00H WW: MOVX DPTR,A INC A NOP NOP NOP AJMP WW 1、以下程序将产生何种波形? MOV DPTR,#7FFFH MOV A,#00H WW: MOVX DPTR,A DEC A NOP NOP NOP AJMP WW 2、编程产生如下锯齿波4V1V MOV DPTR,#7FFFHWW1:MOV A,#33H WW:

60、 MOVX DPTR,A INC A LCALL D1ms CJNE A,#0CDH,WW AJMP WW1D1ms: MOV R7,#250 DJNZ R7, RET思考题 三角波是由两段直线组成的,先送出一个线性增长的波形,达到最大值时,再进出一个线性减少的波形,两者结合,就成为三角波。然后使之不断地重复,就能得到一个连续的波形。 实际上这里所说的线性波形仍是一些台阶很小的阶梯波形。为了更逼近线性增长,应使台阶的幅度尽可能小(1位LSB),并且整个波形中台阶的高度和宽度应保持不变。为此,要特别注意转折处的处理,避免出现台阶的宽度变宽或其他影响波形线性的现象出现。(2)三角波的产生 STAR

温馨提示

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

评论

0/150

提交评论