第9章 接口技术(6学时)幻灯片.ppt_第1页
第9章 接口技术(6学时)幻灯片.ppt_第2页
第9章 接口技术(6学时)幻灯片.ppt_第3页
第9章 接口技术(6学时)幻灯片.ppt_第4页
第9章 接口技术(6学时)幻灯片.ppt_第5页
已阅读5页,还剩188页未读 继续免费阅读

下载本文档

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

文档简介

1、,9.1LED 显示器接口 9.2键盘与单片机接口 9.3D/A转换器接口 9.4A/D转换器接口,9.1LED 显示器接口,LED显示器用于显示工业控制参数、过程状态。 9.1.1LED数码管 共阴极LED和共阳极LED 当LED字段引线与数据线连接,每个显示字形对应一个字形码。,D7 D6 D5 D4 D3 D2 D1 D0 h g f e d c b a,多个七段LED数码管的接口,多个数码管与CPU的连接方法有4种: 1、静态软译码连接法 2、静态硬译码连接法 3、动态硬译码连接法 4、动态软译码连接法,a,b,c,d,e,f,g,Dp,(a)共阴极 (b)共阳极 (c)管脚配置 图9

2、-1 七段LED显示块,结构和显示原理 共阴极:各段发光二极管的阴极连在一起,并且将此公共点接地。 共阳极:各段发光二极管的阳极连在一起接+5V。 将各发光二极管的引脚a、b、c、g、dp接到微机的一个并口的D0、D1、D2、D6、D7,则显示每个字符需输出固定的编码,称字段码。,表9-1 七段LED的段选码,显示程序任务:,1)设置显示缓冲区,存放待显示数据和字符(位置码)。 2)显示译码:程序存储器中建立字形码常数表,查表得出对应数据和字符的字形码。 3)输出显示:输出字形码到显示端口。,例: MOV DPTR,#WTAB;指向字形码表首地址 MOV A,R0 ;取显示缓冲区中数据 MOV

3、C A,A+DPTR;查表显示译码 MOV P1,A ;输出显示 WTAB:DB3FH,06H,5BH ;字形码表 ,9.1.2 LED接口电路,显示多位数据的两种电路: 1、静态显示 1)静态显示方式: 每一位显示器的字段控制线是独立的,当显示某一字符时,该隹的各字段线和字位线的电平不变。,静态软译码连接法,在静态软译码连接法下,4个LED数码管与单片机的连接图 :,a,b,c,d,e,f,g,Dp,Dp,P0.0,P0.1,P0.2,P0.3,89C51,P0.4,P0.5,P0.6,P0.7,COM,a,b,c,d,e,f,g,共阴极LED,Dp,P2.0,P2.1,P2.2,P2.3,

4、P2.4,P2.5,P2.6,P2.7,COM,a,b,c,d,e,f,g,Dp,P1.0,P1.1,P1.2,P1.3,P1.4,P1.5,P1.6,P1.7,COM,a,b,c,d,e,f,g,Dp,P3.0,P3.1,P3.2,P3.3,P3.4,P3.5,P3.6,P3.7,COM,a,b,c,d,e,f,g,1、编程在4个七段LED数码管上显示1234。,MOV P0,#06H MOV P1,#5BH MOV P2,#4FH MOV P3,#66H SJMP $,2、编程在4个七段LED数码管上显示30H, 31H,32H,33H单元中存放的1位BCD码 的内容 。,MOV DPTR

5、,#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 MOV P2,A MOV A,33H MOVC A,A+DPTR MOV P3,A SJMP UP0 TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,思考:编程在4个七段LED数码管上显示30H,31H单元中的内容。(30H,31H单元中分别存有2位BCD码)。,答案,静态硬译码连接法,在静态硬译码连接法下,4个LED数码管与单片机的连接图 :,a

6、,b,c,d,e,f,g,Dp,P2.0,P2.1,P2.2,P2.3,89C51,Dp,P2.4,P2.5,P2.6,P2.7,COM,a,b,c,d,e,f,g,Dp,P1.0,P1.1,P1.2,P1.3,COM,a,b,c,d,e,f,g,P1.4,P1.5,P1.6,P1.7,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,Dp,COM,a,b,c,d,e,f,g,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,Dp,

7、COM,a,b,c,d,e,f,g,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS47,+5V,编程在4个七段LED数码管上显示30H,31H单元中的内容。(30H,31H单元中分别存有2位BCD码)。,思考:编程在4个七段LED数码管上显示30H, 31H,32H,33H单元中存放的1位BCD码的内容 。,+5V,+5V,+5V,+5V,程 序,答 案,LED显示器与显示方式,图9.2 N位LED显示器,图9-3 四位静态LED显示器电路,2)静态显示器硬件电路 串口:8031的串行口工作于方式时,为移位寄存器方式。 图9.4为利用片串入并出移位寄存器74LS16

8、4作为位静态显示器输出口,欲显示的位段码即字码通过软件译码产生,并由RXD串行发送出去,这样,主程序可不必扫描显示器,从而CPU能用于其它工作。,1静态显示器硬件电路,图9.4 串行口六位静态LED显示器,程序清单:功能显示“P-8031” START: MOV SCON,00H;定义串行工作方式 CLR TI SETB P1.7 ; 传送控制 MOV R1, #06H MOV R0, #00H ;字型码首址偏移量 MOV DPTR, #TAB LOOP: MOV A, R0 MOVC A, A+DPTR ;取出字型码 MOV SBUF, A ;发送 WAIT: JNB T1, WAIT ;等

9、待一帧发送完毕 CLR T1 INC R0 ;指向下一个字型码 DJNZ R1, LOOP CLR P1.7 ;关闭显示器传送控制 TAB: DB 06H, 4FH, 3FH, 7FH, 40H, 73H ;1308-P,硬件译码显示器接口,图9-5MC14495内部逻辑与引脚图,图9-6 使用MC14495的多位LED静态显示接口,9.1.2 LED接口电路2017年1月4日星期三,2动态显示,多位LED共用一个8位字段口,各位LED公共端用字位口控制,扫描输出显示不同字形。,显示缓冲区与多位LED对应关系:,动态硬译码连接法,在动态硬译码连接法下,4个LED数码管与单片机的连接图 :,a,

10、b,c,d,e,f,g,Dp,P2.0,P2.1,P2.2,P2.3,89C51,P2.4,P2.5,P2.6,P2.7,COM,a,b,c,d,e,f,g,A,B,C,D,LT,RBO,RBI,a,b,c,d,e,f,g,74LS48,+5V,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,例: 编程在4个七段LED数码管上显示1234。 在动态连接法下,数码管公共端均受控。驱动程序的编制充分利用了人眼的视觉滞留效应,循环扫描各数码管,使各数码管不是连续显示,但给人的视觉印象是连续地在显示。每个数码管的显示时间不得低于1ms,不亮的

11、时间不能超过20 ms。 利用人眼的视觉滞留现象,实现让4个七段LED数码管上不同时显示1234,但人眼看到的效果 却是同时显示1234。,1,2,3,4,思考:编程在4个七段LED数码管上显示 30H,31H,32H,33H单元中的内容。,程 序,答 案,动态软译码连接法,在动态软译码连接法下,4个LED数码管与单片机的连接图 :,a,b,c,d,e,f,g,Dp,P2.0,P2.1,P2.2,P2.3,89C51,P3.0,P3.1,P3.2,P3.3,COM,a,b,c,d,e,f,g,驱 动 器,COM,a,b,c,d,e,f,g,COM,a,b,c,d,e,f,g,COM,a,b,c

12、,d,e,f,g,1,2,3,4,P2.4,P2.5,P2.6,P2.7,例: 编程在4个七段LED数码管上显示1234。 例:编程在4个七段LED数码管上显示30H,31H,32H,33H单元中的内容。,程 序,程 序,动态显示方式:将所有位的字段线对应并,由一个8位I/O口控制,而共阴极点或共阳点由另一I/O口线控制。,LED动态显示方式,图9.7 8位LED动态显示器电路,图9-8通过8155扩展I/O口控制的8位LED动态显示接口 软件译码显示,2、软件译码显示2009年4月8日星期三,显示程序:,DIS: MOV DPTR,#7F00H MOV A,#03H MOVX DPTR,A

13、MOV R0,#7AH ;指向显示缓冲区起始单元 MOV R3,#80H ;字位码初值R3 MOV A,R3 ;取字位码 DLP: RL A ;显示下一位1 MOV DPTR,#7F01H;指向字位口 (PA口) MOVX DPTR,A ;输出字位码,显示其中1位 MOV A,R0 ;取一个显示数据 ADD A,#0BH ;查表偏移量 MOVC A,A+PC ;取出字形码 INC DPTR ;指向字段口(PB口)1 MOVX DPTR,A ;输出字形码1 ACALL DLY1MS ;延时1ms2 INC R0 ;指向显缓区下一单元1 MOV A,R3 ;修改字位码1 MOV R3,A ;1 J

14、NB ACC.7,DLP ;未显示到最右边LED,继续显示3 RET ;全部扫描一遍,结束1,DTAB:DB 0C0H,0F9H,0A4H ;字形表 DB 0B0H,99H, DLY1MS: ;延时1ms子程序,动态显示接口例,1)硬件设计 图9-8为用8155扩展I/O口的位LED动态显示器,显示扫描由程序控实现。只需要8155提供出口即可。图中PB口输出段选码,PA口输出位选码。位选码占用输出口线数决定于显示器位数。BIC-8718为位集成驱动芯片。,2)程序设计.程序说明,程序说明:R0显示缓冲区数据指针,初值为78H R3位扫描寄存器,初值7F R6、R7减1计数器 显示缓冲区设803

15、1片内RAM的78H7FH单元位显示缓冲区,依次(从低位到高位)存放八个要显示的字符/数据在段选码地址表中的序号。,3)动态显子程序设计要点,建立显示数据缓冲区存放待显示数字、字符在字型编码表中的序号; 软件译码利用查表方法获得字型编码(段选码); 位扫描输出采用移位方法逐位点亮LED显示器; 延时子程序控制点亮时间和时间间隔。,DIR: MOV A, #00000011B ;8155初始化 MOV DPTR, #7F00H MOVX DPTR, A MOV R0, #78H ;设显示 缓冲区首址 MOV R3, #7FH ;存首位位选字 MOV A, R3,LD0:MOV DPTR, #7F

16、01H ;指向PA口 MOVX DPTR, A ;送位选字入PA口 INC DPTR ;指向PB口 MOV A, R0 ;查段选码 ADD A, #0DH ;#0DH为从查表指令下一个机器码至首的偏移量 MOVC A, A+PC; MOVX DPTR, A ;段选码送PB口1 ACALL DL1 ;延时1ms2 INC R0 ;指向显示缓冲区下一单元1 MOV A, R3 ;1 JNB ACC.0, LD1 ;判断八位显示完?3 RR A ;未显示完,变为下一位位选字1 MOV R3, A;1 AJMP LD0 ;转显示下一位 2 LD1: RET;1,DSEG: DB 3FH, 06H, 5

17、BH, 4FH, 66H, 6DH, “0” “1” “2” “3” “4” “5” DB 7DH, 07H, 7FH, 6FH, 77H, 7CH , “6” “7” “8” “9” “A” “B” DB 39H, 5EH, 79H, 71H, 73H,3EH, “C” “D” “E” “F” “P” “U” DB 31H, 6EH “R” “Y” DL1: MOV R7, #02H ;延时子程序 DL: MOV R6, #0FFH DL6: DJNZ R6, DL6 DJNZ R7, DL RET,4、动态显示子程序的应用显示CPUREADY,MAIN: MOV SP, #60H MOV

18、R0, #78H MOV R0, #0CH;C INC R0 MOV R0, #10H;P INC R0 MOV R0, #11H;U INC R0 MOV R0, #12H;R INC R0 MOV R0, #0EH;E INC R0 MOV R0, #0AH;A INC R0 MOV R0, #0DH;D INC R0 MOV R0, #13H;Y,NEXT: LCALL DIR SJMP NEXT,9.2 键盘与单片机接口,键盘处理程序任务 1)键输入 检查键盘是否有键被按下,消除按键抖动。确定被按键的键号,获取键号。 硬件电路消除抖动或软件消除抖动。,2)键译码 键号为键盘位置码,根据

19、键号查表得出被按键的键值。键值:数字键09、字符键0AH0FH、功能键10H 。,3)键处理 根据键值转移到不同程序段。 若键值属于数字、字符键,则调用显示数字和字符的子程序。 若键值属于功能键,则进行多分支转移,执行各个功能程序段。,按键处理程序:,9.2.1 独立式键盘电路,9.2.2 矩阵式键盘,1.扫描法 列线输出,行线输入。 列线逐行输出0,某行有按键,行线输入有0,若无按键,行线输入全部为1。 2.反转法 行列线交换输入、输出,两步获取按键键号。,每个按键单独占有一根I/O接口引线。,(a)线反转法第一步 (b)线反转法第二步 图9-9 线反转法原理,图9-10 行列式键盘原理电路

20、,图9-11 中断方式键盘接口,非编码键盘与单片机的接口,线性非编码键盘的键开关排成一行或一列的形式,它与单片机的接口电路如图所示:,K1,K2,K3,K4,P1.1,P1.0,P1.2,P1.3,89C51,+5V,线性非编码键盘的工作原理:当键未被按下时,与此键相连的I/O线获得高电平;当键被按下时,与此键相连的I/O线获得低电平,单片机只要读取I/O口状态,就可以获取按键信息,识别有无键按下和哪个键被按下。 键处理程序如下: MOV P1,#0FFH UP1: MOV A,P1 ;读I/O口状态 ANL A,#0FH ;屏蔽无用位 CJNE A,#0FH,NEXT1 ;有闭合键? SJM

21、P UP1 NEXT1: LCALL D10ms ;延时10ms去抖动 MOV A,P1 ;再读I/O口状态 ANL A,#0FH CJNE A,#0FH,NEXT2 ;有闭合键? SJMP UP1 NEXT2: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,例,9.2.3键盘扫

22、描控制方式,(1)程序控制扫描方式(查询) (2) 定时扫描控制方式 (3)中断控制方式,1) 查询工作方式 键盘中有无键按下是由列线送出全扫描字,读入行线状态来判别的。其方法是:PA口输出00H,即所有列线置成低电平,然后将行线电平状态读入累加器A中。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为“1”。(见下图) 键盘中哪一个键按下是由列线逐列置低电平后,检查行输入状态,称为逐列扫描。其方法是:从PA0开始,依次输出0,置对应的列线为低电平,然后从PC口读入行线状态,如果全为1,则所按下之键不在此列;如果不全为1,则所按下的键必在此列,而且是与0电平行线相交的交点上的

23、那个键。 为求取键码,在逐列扫描时,可用计数器记录下当前扫描列的列号,然后用行线值为0的行首键码加列号的办法计算。,键盘扫描子程序如下:(扫描法) KEY1:ACALL KS1 ;调用判断有无键按下子程序 JNZ LK1 ;有键按下时,(A) 0转消抖延时 AJMP KEY1 ;无键按下返回 LK1:ACALL TM12S ;调12 ms延时子程序 ACALL KS1 ;查有无键按下,若有则真有键按下 JNZ LK2 ;键(A) 0逐列扫描 AJMP KEY1 ;不是真有键按下,返回 LK2;MOV R2,#0FEH ;初始列扫描字(0列)送入R2 MOV R4,#00H ;初始列(0列)号送

24、入R4,LK4:MOV DPTR,#7F01H ;DPTR指向8155PA口逐行判断 MOV A,R2 ;列扫描字送至8155PA口 MOVX DPTR,A INC DPTR ;DPTR指向8155PC口 INC DPTR MOVX A,DPTR ;从8155 PC口读入行状态 JB ACC.0,LONE ;查第0行无键按下,转查第1行 MOV A,#00H ;第0行有键按下,行首键码#00HA AJMP LKP ;转求键码 LONE:JB ACC.1,LTWO ;查第1行无键按下,转查第2行 MOV A,#08H ;第1行有键按下,行首键码#08HA AJMP LKP ;转求键码,LTWO:

25、JB ACC.2,LTHR ;查第2行无键按下,转查第3行 MOV A,#10H ;第2行有键按下,行首键码#10HA AJMP LKP ;转求键码 LTHR:JB ACC.3,NEXT ;查第3行无键按下,转该查下一列 MOV A,#18H ;第3行有键按下,行首键码#18HA LKP:ADD A,R4 ;求键码,键码=行首键码+列号 PUSH ACC ;键码进栈保护 LK3:ACALL KS1 ;等待键释放 JNZ LK3 ;键未释放,等待 POP ACC ;键释放,键码A RET ;键扫描结束,出口状态(A)=键码,NEXT:INC R4 ;准备扫描下一列,列号加1控制逐列 MOV A,

26、R2 ;取列号送累加器A JNB ACC.7,KEND ;判断8列扫描否?扫描完返回 RL A ;扫描字左移一位,变为下一列扫描字 MOV R2,A ;扫描字送入R2 AJMP LK4 ;转下一列扫描 KEND:AJMP KEY1 KS1:MOV DPTR,#7F01H ;DPTR指向8155PA口 MOV A,#00H ;全扫描字A MOVX DPTR,A ;全扫描字送往8155PA口,INC DPTR ;DPTR指向8155PC口 INC DPTR MOVX A,DPTR ;读入PC口行状态 CPL A ;变正逻辑,以高电平表示有键按下 ANL A,#0FH ;屏蔽高4位,只保留低4位行线

27、值 RET ;出口状态:(A)0时有键按下 TM12ms:MOV R7,#18H ;延时12 ms子程序 TM: MOV R6,#0FFH TM6 : DJNZ R6,TM6 DJNZ R7,TM RET,2) 定时扫描工作方式 定时扫描方式就是利用单片机内的定时器来产生定时中断,然后在定时中断的服务程序中扫描和读键,检查有无键按下,并确定键值,3) 中断工作方式 计算机应用系统工作时,并不经常需要键输入。但无论是查询工作方式还是定时扫描工作方式,CPU经常处于空扫描状态。为了提高CPU的效率,可采用中断工作方式。这种工作方式是当键盘上有键按下时,向CPU发一个中断请求信号,CPU响应中断后,

28、在中断服务程序中扫描键盘,执行键功能程序。中断请求信号的接口电路可参考图9-11。中断服务程序中应完成键识别、消除抖动、排除多次执行键功能操作等功能,可参考查询工作方式键盘程序。,矩阵式键盘及其接口(反转法),9.3D/A转换器接口,在数字测量和数字控制装置以及微型计算机应用系统中,都广泛应用D/A和AD转换器,以实现这些装置及系统对模拟信号的处理和操作。近年来由于数字电子技术和微机应用技术的迅速发展,也推动了A/D和D/A转换技术的飞快发展,产生了大量的A/D和D/A换器供用户选择使用。,A/D和D/A作用,D/A转换器的主要参数: 分辨率(Resolution) 偏移误差(OffsetEr

29、ror) 线性度(Linearity) 精度(Accuracy) 转换速度(ConvemionRate) 温度灵敏度(TemperatureSensitivity),工作原理,采用R-2R的电阻网络,D/A芯片是将R-2R电阻网络、二进制数码控制的电子开关以及一些控制电路集成在一起的电路。,9.3.1 典型D/A转换器芯片DAC0832 主要性能参数: 分辨率:DAC0832是一个8位D/A转换器芯片, 单电源供电,从+5V+15V均可正常工作 基准电压的范围为10V 精度 (线性误差 0.2FSR) 电流建立时间为1s,CMOS工艺, 低功耗20mW。 理想输出电压,其内部结构如图9.1所示

30、,它由1个8位输入寄存器、1个8位DAC寄存器和1个8位D/A转换器组成和引脚排列如图9.2所示。,DAC0830/DAC0831/ DAC0832的结构与引脚功能,DAC0830系列结构框图,9.3.2 DAC0832管角功能,该D/A转换器为20引脚双列直插式封装,各引脚含义如下: (1)D0D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错); (2)ILE:数据锁存允许控制信号输入线,高电平有效; (3) /CS:片选信号输入线(选通数据锁存器),低电平有效; (4)/WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、/CS、/

31、WR1的逻辑组合产生/LE1,当/LE1为高电平时,数据锁存器状态随输入数据线变换,/LE1的负跳变时将输入数据锁存; (5)/XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效; (6)/WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由/WR2、/XFER的逻辑组合产生/LE2,当/LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,/LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。,(7)IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化; (8)IOUT2:电流输出端2,其值与IOUT1值之和为一常数;

32、 (9)Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度; (10)Vcc:电源输入端,Vcc的范围为+5V+15V; (11)VREF:基准电压输入线,VREF的范围为-10V+10V; (12)AGND:模拟信号地; (13) DGND:数字信号地。,9.3.3DAC0832的工作方式 由于DAC0832内部有两级缓冲寄存器,所以可以方便地选择三种工作方式: 1)直通式:/WR1、/WR2、/XFER、/CS接地,ILE接高电平,即不用写信号控制,使输入数据直接进入D/A转换器。 2)单缓冲式:两个寄存器一个处于直通状态,另一个处于受控状态,输入数据只经过一个寄存器缓冲控

33、制后,进入D/A转换器。或两个寄存器同时锁存。 3)双缓冲式:两个寄存器都处于受控状态,即用/WR1和/WR2分两步控制。在这种为方式下可使多路D/A转换器同步输出。,9.3.4DAC0832的电压转换,使用运算放大器将DAC0832的电流输出线性地转换成电压输出。,上图 中 MCS-51执行下面的程序后,运放的输出端产生一个锯齿型电压波: MAIN;MOV DPTR,#7 FFFH MOV A, #0 LOOP:MOVXDPTR, A INC A AJMP LOOP,9.3.5 DAC0832的接口,8位 输入 寄 存 器,8位 DAC 寄 存 器,8位 D/A 转 换 器,DI0,DI1,

34、DI2,DI3,DI4,DI5,DI6,DI7,+,+,ILE,CS,WR1,XFER,WR2,VREF,IOUT1,IOUT2,DGND,LE1,LE2,DAC0832转换器可以有三种工作方法,即直通方式、单缓冲方式和双缓冲方式。 直通方式:这时两个8位数据寄存器都处于数据接收状态,即LEI和IE2都为1。输入数据直接送到内部DA转换器去转换。 单缓冲方式:这时两个8位数据寄存器中有一个处于直通方式(数据接收状态),而另一个则受微机送来的控制信号控制。在单缓冲工作方式时,0832中两个数据寄存器有一个处于直通方式,一般都是将8位DAC寄存器置于直通方式。 双缓冲方式:这时两个8位数据寄存器都

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

36、零。而输入寄存器是工作于锁存器状态,它对于8031单片机来说,相当于一个外部RAM单元。,DAC0832的接口双缓冲方式,双缓冲方式:这时两个8位数据寄存器都不处于直通方式,单片机或其他微机必须送两次写信号才能完成一次DA转换。若采用双缓冲方式,则DAC0832应被看作是外部RAM的两个单元而不是一个单元。,9.3.6DAC0832的应用 (1)单缓冲方式,只有一路输入时,DAC0832内部有输入寄存器,所以可以直接相连而不必加锁存器。 输入寄存器允许信号ILE固定接高电平。 片选信号/CS和传送控制信号/Xfer一起接到8031的某根高位地址线如P27端 写信号WRl和WR2一起接到8031

37、的/WR端。 这样,DAC0832作为8031的一个扩展I/O口,地址为7FFFH。 基准电压V ref直接与工作电源电压相连,8031对 DAC0832执行一次写操作,就能使DAC0832对输入的数字量进行一次D/A转换。转换程序如下。 MOV DPTR,7 FFFH;送DAC0832地址 MOV A,data;要转换的数字量送A MOVXDPTR, A;数字量送D/A芯片,进行转换输出 (2)双缓冲方式,(2)双缓冲方式,多路输出,同步转换输出,2014年12月15日,在多路D/A转换的情况下,若要求同步转换输出,必须采用双缓冲方式。 DAC0832采用双缓冲方式时,数字量输入 锁存和D/

38、A转换输出量是分两步进行的:第一,CPU分时向各路D/A转换器输入要转换的数字量并锁存在各自的输入寄存器中;第二,CPU对所有的D/A转换器发出控制信号,使各路输入寄存器中的数据进入DAC寄存器,实现同步转换输出。,实现两路同步输出的示例程序如下: MOV DPTR,0DFFFH;送0832(1)输入锁存器地址 MOV A,datal;datal送0832(1)输入锁存器 MOVX DPTR,A MOV DPTR,0BFFFH;送0832 (2)输入锁存器地址 MOV A,data2;data2送0832(2)输入锁存器 MOVX DPTR,A MOV DPTR,7FFFH;送两路DAC寄存器

39、地址 MOVXDPTR, A;两路数据同步转换输出,DAC 0832与单片机连接,例:D/A转换程序,用DAC 0832输出05V锯齿波,电路为直通方式。 设VREF= - 5V,DAC 0832地址为7FFFH,脉冲周期要求为100ms。,DACS:MOVDPTR,#7FFFH;0832 I/O地址 MOVA,#0;开始输出0V DACL:MOVXDPTR,A;输出模拟量 INCA;升压 ACALLDELAY;延时100ms/256 AJMPDACL;连续输出 DELAY:;延时子程序,单缓冲方式:输入寄存器和DAC寄存器共用一个地址,同时选通输出。,双缓冲器方式:输入寄存器和DAC寄存器分

40、配有各自的地址,可分别选通用同时输出多路模拟信号。,/XFER控制线与/CS接P2. 6。当P2. 6=0时,选通D/A通道。 对于D/A转换器输出部分的接口电路,由于考虑到由软件产生电压波形有正、负极性输出,因此这部分电路设计成双极性电压输出。其中U6, U7亦可选用LF356, OP07等集成电路,低噪声的运算放大器可选用OP27集成电路。 2.软件设计 在图7-14同一硬件电路支持下,只要编写不同的程序便可产生不同波形的模拟电压。,1)反向锯齿波程序清单 MSW: MOV DPTR,#0BFFFH;指向D/A输入寄存器 DA0:MOV R7,#80H;置输出初值 DA1:MOV A, R

41、7;数字量送A MOVX DPTR,A;送D/A转换 DJNZ R7,DA1;修改数字量 AJMP DA0;重复下一个波形 其输出电压波形如图7-15(a)所示。,2)正向锯齿波程序清单 PSW: MOV DPTR,#0BFFFH;指向D/A输入寄存器 DAP0:MOV R7,#80H;置输出初值 DAP1:MOV A, R7;数字量送A MOVX DPTR,A;送D/A转换 INC R7;修改数字量 CJNE R7,#255,DAP1;数字量,255,转DAP1 AJMP DAP0;重复下一个波形 其输出电压波形如图7-15(b)所示。,3)双向锯齿波程序清单 DSW:MOV DPTR,#0

42、BFFFH MOV R7,#0 DAD0:MOV A,R7 MOVX DPTR,A INC R7 AJMP DAD0 其输出波形如图7-15(c)所示。,4)三角波程序清单 SSW:MOV DPTR,0BFFFH DAS0:MOV R7,80H DAS1:MOVA,R7 MOVX DPTR,A INC R7 CJNE R7,255,DAS1 DAS2:DEC R7 MOVA,R7 MOVX DPTR,A CJNE R7,80H,DAS2,AJMP DAS0 其输出波形为正向三角波如图7一15(d)所示。 5)正弦波电压输出 正弦波电压输出双极性电压。最简单的办法是将一个周期内电压变化的幅值(-

43、5V5V)按8位DA分辨率分为256个数值列成表格,然后依次将这些数字量送人DA转换输出。只要循环不断地送数,在输出端就能获得正弦波输出,如图7-15(e)所示。正弦波程序清单如下。,SIN:MOV R7,00H;置偏移量 DAS0:MOVA,R7 MOV DPTR,TABH;设指针 MOVX A,ADPTR;取数据 MOV DPTR,8000H MOVX DPTR,A;送DA转换 INC R7;修改偏移量 AJMP DAS0,TAB:DB 80H,83H,86H,89H,8DH,90H DB 93H,96H,99H,9CH,9FH,0A2H DB 0A5H,0A8H,0ABH,0AEH DB

44、 6FH,72H,76H,79H,7CH,80H,应用举例,正弦波发生器 若要产生正弦波可以采用查表的方法。假设正弦波的幅值为5V,一个周期中的表示点数为N,那么第1点的角度为0,对应的正弦值为5 sin0;第2点的角度为360/N,对应的正弦值为5sin(360N);正弦彼产生方法示意如图4-17所示。将这些模拟量正弦值都转换为双极性方式下的数字量。这样就能建立一张按照点的号码顺序排列的数字量正弦值表格,产生正弦波的程序如下。 MOV R5,00H;计数器赋初值 SIN:MOV A,R5 MOV DPTR,TAB;送表格首址 MOVC A,A + DPTR;查表得正弦值 MOV DPTR,0

45、7FFFH;送0832地址 MOVX DPTR,A;转换输出 INC R5 AJMP SIN TAB:DB 80H,83H,86H,89H,8DH,90H,93H,96H,99H,9CH,9FH,A2H,A5H ,A8 H,ABH,AEH,B1H,B4H,B7H,BAH,BCH, BFH,C2H, C5H,C7 H,CAH,CCH,CFH,D1H,D4H,9.4A/D转换器接口,能把模拟量转换为数字量的一种接口电路称为构数转换器,简称A心转换器(简写成ADC)。 从转换方式来看,较常用的有逐次逼近型、双积分式和电压频率(U/F)变换式三种。 9.4.1 集成A/D转换器 ADC 0809/08

46、08为8路输入通道、8位逐次逼近式A/D转换器,可分时转换8路模拟信号。,一个8位逐次逼近式A/D转换器、8路模拟转换开关、3-8地址锁存译码器和三态输出数据锁存器。 ADC0809是目前常用的一种逐次逼近式A/D转换器,它是CMOS单片28条引脚双列直插式A/D转换器,精度为8位,其逻辑方框图和引脚图如图所示,它由8通路模拟开关、地址锁存译码器、8位A/D转换器以及三态输出锁存器等组成。,ADC0809的主要性能指标 分辨率为8位。 单电源(+5V)供电,模拟量输入范围是0-5V. 功耗为15mW。 不必进行零点和满度调整。 转换速度取决于芯片的时钟频率。时钟频率范围为10- 1280kHz

47、。转换时间100s 允许8路模拟信号输入。 线性误差1LSB,ADC0809 引脚分配,AD转换芯片0809 0809内部结构,模拟输入部分,控制逻辑,地址译码输入选通,基准电压输入端,2009年4月13日星期一,逐位逼近式A/D转换器原理 逐位逼近式A/D转换器原理图如图7-18所示。主要由n位逐位逼近式寄存器、D/A转换器、比较器、控制逻辑和输出缓冲器5部分组成。 能实现对分搜索的控制,完成A/D转换。n位寄存器的初始状态为全“0”,当启动信号作用后,先使最高位Dn-1=1,n位寄存器内容经D/A转换得到一个整个量程一半的模拟电压Vs,与输入被测电压Vx比较,若Vx大于Vs,则保留Dn-1

48、=1,若Vx小于Vs,则Dn-1清“0“,然后使下一位Dn-2=1,与上一次的结果一起经D/A转换后与Vx相比较,重复这样的过程直至使D0=1,,再经D/A转换后得到的模拟量Vs与被测电压Vx比较,由Vx大于Vs还是小于Vs决定D0位保留为“1”还是清“0”,这样经过n次逐位比较后,发出转换结果信号,此时,n位寄存器的内容即为转换后的数据,只要发送读(输出允许)信号即可获得A/D转换结果。逐位逼近式A/D转换器从速度和转换精度来看比较适中,即有较高的速度和精度,电路结构又不太复杂,因而得到广泛的应用,尤其是在一些实时控制系统中应用最多的一种。,计数逼近原理,逐次逼近原理,ADC0809的引脚功

49、能 1、IN0- IN7:8路模拟信号输入通道。 2、ADDA, ADDB, ADDC: 8路模拟信号输入通道的3位地址输入端,ADDC为最高位,ADDA为最低位。 3、ALE地址锁存允许信号输入端,高电平有效,有效期间将ADDA, ADDB、ADDC通道地址锁存到内部地址锁存器中。 4、START:启动转换信号输入端,此输入信号的上升沿使内部寄存器清零,下降沿使A/D转换器进行新的一次转换。 5、EOC: A/D转换结束信号标志,它在A/D转换开始由高电平变为低电平,转换结束时该端输出一个正脉冲。此信号的上升沿表示A/D转换完毕,常用作中断申请信号。,6、OE:输入允许信号,高电平有效,有效

50、期间允许从AD转换器的三态输出锁存器读取数据,并将数据送到数据总线。 7、D7-D0: 8位数据输出端,可直接接入数据总线。 8、CLK (CLOCK)外接时钟脉冲输入端,时钟的频率决定A/D转换的速度。转换时间TC等于64个时钟周期,CLK的频率范围是10kHz - 1280kHz,典型频率为 640kHz,TC为100微妙 。 9、VREF(+) 和VREF(-):参考电压输入端,一般VREF(+) =+5V,和VREF(-)=-5V/0V 接地。 10、Vcc:电源电压, Vcc =+5V。 11、GND:接地端。,9.4.2 ADC 0809接口,(1)启动A/D 转换,从ADC080

51、9的控制时序图可看到,要将特定模拟通道输入信号进行A/D转换,需满足以下条件: 在START端需产生一个正脉冲,上升沿复位ADC0809,下降沿启动AD转换。 在启动AD转换之前,待转换的模拟通道的地址应稳定地出现在地址线上,同时需在ALE端产生一个正跳变,将地址锁存起来,使得在A/D转换期间,比较器内部输入始终是选中的模拟通道输入信号。 在A/D转换结束之前,在START端和ALE端不能再次出现正脉冲信号。 用什么信号作为START端的复位和启动A/D转换信号,以及ALE端的地址锁存信号呢?我们自然地想到了MCS-51单片机的/WR信号。将/WR信号取反后送ADC0809的START端和AL

52、E端,可满足条件和,,将/WR信号与某一仅在访问ADC0809时变低的片选线或非处理后,可进一步满足条件。 在这种接口方式下,启动A/D转换时序图如图6-39所示。从该图可看到,在ADC0809 ALE端地址锁存信号有效时,MCS-51外部数据总线和地址总线上的信号都是稳定的,都可以作为ADC0809的地址信号。于是就形成了ADC0809与MCS-51单片机的3种硬件连接方法,如图6-40所示。 3种情况下,启动A/D转换的程序指令需作相应的变动。,1) ADDA ; ADDB, ADDC分别接地址锁存器提供地址的低3位,如图b-40a所示,指向IN7通道的相应程序指令为 MOV DPTR,

53、#0EFF7H;指向D/A转换器和模拟通道的IN7地址 MOVXDPTR, A;启动A/D转换,A中可以是任意值,2)ADDA,ADDB,ADDC分别接数据线中的低3位(P0PO. 2),如图6-40b所示, 则指向IN7通道的相应程序指令为 MOV DPH,#OE0H;送D/A转换器端口地址 MOV A,#7H:IN7地址送A MOVXDPTR,A;送地址并启动灯D转换 3)ADDA,ADDB,ADDC分别接高8位地址中的低3位(P20P2.2),如图6-40c所 示,则指向IN7通道的相应程序指令为 MOV DPTR,#0E700H MOVXDPTR,A,(2)确认A/D转换完成 为了确认

54、转换结束,可以采用无条件、查询、中断三种数据传送方式。 l)无条件传送方式。转换时间是转换器的一项已知和固定的技术指标。例如: ADC0809转换时间为100s,可在A/D转换启动后,调用一个延时足够长的子程序,规定时间到,转换也肯定已经完成。 2)查询方式。ADC0809的EOC端高电平,表明AD转换完成,查询测试EOC的状态,即可确知转换是否完成。需注意ADC0809从复位到EOC变低约需10少时间,查询时,应首先确定EOC已变低,再变高,才说明A/D转换完成。 3)中断方式。把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进 行数据传送。 (3)转换数据的传送 不管使用上述哪种方式,一旦确认转换完成,即可通过指令传送在三态输出锁存器中的 结果数据。对于如图6-40所示的硬件连接,只要对可使P2.4 = 0的端口地址作读操作,即,可在OE端产生一个正脉冲,把转换数据送上数据总线,供单片机接收。例如: MOV DPH,#0EFH MOVX A

温馨提示

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

评论

0/150

提交评论