《单片机与AD的连接.ppt》由会员分享,可在线阅读,更多相关《单片机与AD的连接.ppt(24页珍藏版)》请在课桌文档上搜索。
1、第11章 MCS-51与 A/D转换器的接口,目的与要求:1、了解A/D转换的原理 2、掌握0809的应用。,11.2.2 MCS-51与ADC 0809(逐次比较型)的接口,1.ADC0809引脚及功能,逐次比较式8路模拟输入、8位输出的A/D转换器。引脚如图。,共28脚,双列直插式封装。主要引脚功能如下:,(1)IN0IN7:8路模拟信号输入端。,(2)D0D7:8位数字量输出端。,(3)C、B、A:控制8路模拟通道的切换,C、B、A=000111分别对应IN0IN7通道。,(4)OE、START、CLK:控制信号端,OE为输出允许端,START为启动信号输入端,CLK为时钟信号输入端。,
2、VR(+)和VR(-):参考电压输入端。,2.ADC0809结构及转换原理,结构如图11-15。,0809完成1次转换需100s左右,可对05V信号进行转换。,2.MCS-51与ADC0809的接口,单片机如何来控制ADC?,首先用指令选择0809的一个模拟输入通道,当执行MOVX DPTR,A时,单片机的WR*信号有效,产生一个启动信号给0809的 START脚,对选中通道转换。,转换结束后,0809发出转换结束EOC信号,该信号可供查询,也可作为向单片机发出的中断请求信号;当执行指令:MOVX A,DPTR,单片机发出RD*信号,加到OE端高电平,把转换完毕的数字量读到A中。,查询和中断控
3、制两种工作方式。,(1)查询方式,0809与8031单片机的接口如图11-16。,ALE信号经D触发器二分频作为时钟信号,如时钟频率为6MHz,则ALE脚的输出频率为1MHz,二分频后为500kHz,符合0809对时钟频率的要求。,0809具有输出三态锁存器,8位数据输出引脚可直接与数据总线相连。,地址译码引脚C、B、A分别与地址总线A2、A1、A0相连,以选通IN0IN7中的一个。P2.7(A15)作为片选信号,在启动A/D转换时,由WR*和P2.7控制ADC的地址锁存和转换启动,由于ALE和START连在一起,因此0809在锁存通道地址的同时,启动并进行转换。,在读取转换结果时,用低电平的
4、读信号和P2.7脚经1级或非门后,产生的正脉冲作为OE信号,用以打开三态输出锁存器。,下面程序采用软件延时的方式,对8路模拟信号轮流采样一次,并依次把结果转储到数据存储区的转换程序。,MAIN:MOV R1,#data;置数据区首地址,MOV DPTR,#7FF8H;端口地址送DPTR,P2.7=0,;且指向通道IN0,MOVR7,#08H;置转换的通道个数,LOOP:MOVX DPTR,A;启动A/D转换,MOVR6,#0AH;软件延时,等待转换结束,DELAY:NOP,NOP,NOP,DJNZR6,DELAY,MOVXA,DPTR;读取转换结果,MOVR1,A;存储转换结果,INCDPTR
5、;指向下一个通道,INCR1;修改数据区指针,DJNZR7,LOOP;8个通道全采样完否?未完则继续,(2)中断方式,只需将图11-16中的EOC脚经一非门连接到8031的INT1*脚即可。转换结束时,EOC发出一个脉冲向单片机提出中断申请,单片机响应中断请求,由外部中断1的中断服务程序读A/D结果,并启动0809的下一次转换,外中断1采用跳沿触发。,程序如下:,INIT1:SETB IT1;外部中断1初始化编程,SETB EA;CPU开中断,SETBEX1;选择外中断为跳沿触发方式,MOVDPTR,#7FF8H;端口地址送DPTR,MOVA,#00H;,MOVXDPTR,A;启动0809对I
6、N0通道转换,;完成其他的工作,中断服务程序:,PINT1:MOV DPTR,#7FF8H;A/D结果送内部RAM单元30H,MOVXA,DPTR,MOV30H,A,MOVA,#00H;启动0809对IN0的转换,MOVXDPTR,A;,RETI,3、应用实例,例1:利用ADC0809作AD转换器,电位器提供模拟量输入,编制程序,将模拟量转换成数字量,存入单片机内部RAM 74H单元中。,XTAL1,XTAL2,RST,Vcc,C1,C2,X,C3,1K,8.2K,+5V,+5V,AT89C51,GND,Vss,GND,EA,P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6
7、,P0.7,WR,ALE,RD,P2.6,图2:8051与AD0809的连线图(0809查询方式),D0,D1,D2,D3,D4,D5,D6,D7,D0,D1,D2,模入,系统板,0809地址为:P2.6为低电平即BFFFH,MOV DPTR,#0BFFFHMOV A,#7MOVX DPTR,A;启动0809的7#通道LCALL DELAY1MSMOVX A,DPTR;读取0809的7#通道转换结束的数据MOV 74H,A;暂存读入的值LJMP ADC1;循环采样DELAY1MS:MOV R7,#0FFH DJNZ R7,$RET,ADC1:,AD转换程序(查询方式),XTAL1,XTAL2,
8、RST,Vcc,C1,C2,X,C3,1K,8.2K,+5V,+5V,AT89C51,GND,Vss,GND,EA,P0.0,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,WR,ALE,RD,P2.6,图2:8051与AD0809的连线图(0809中断方式),D0,D1,D2,D3,D4,D5,D6,D7,D0,D1,D2,模入,系统板,0809地址为:P2.6为低电平即BFFFH,INT0,主程序ORG 0000HLJMP CC1ORG 0003HLJMP CCC1CC1:MOV DPTR,#0BFFFHMOV A,#7MOVX DPTR,A;启动0809的7#通道,
9、AD转换程序(中断方式),外部中断0,中断程序CCC1:MOV DPTR,#0BFFFHMOVX A,DPTR;读取0809的7#通道转换结束的数据MOV 74H,A;暂存读入的值RET,应用实例,例3:(AD与数码管动态显示综合)利用ADC0809作AD转换器,电位器提供模拟量输入,编制程序,将模拟量转换成数字量,通过数码管显示出来。要求数码管左2位一直显示89两位数字,数码管右2位显示采样到的数字量。,XTAL1,XTAL2,RST,Vcc,C1,C2,X,C3,1K,8.2K,+5V,+5V,AT89C51,GND,Vss,GND,EA,P0.0,P0.1,P0.2,P0.3,P0.4,
10、P0.5,P0.6,P0.7,WR,ALE,RD,P2.6,图2:8051与8255的连线图,D0,D1,D2,D3,D4,D5,D6,D7,D0,D1,D2,模入,系统板,CS,RD,WR,A0,A1,锁存器,8255,D0,D7,P2.7,A,B,C,D,E,F,G,DP,SN7407,4个共阴极数码管,Y1,X1,5V,0,1,2,3,4,5,6,7,4.7K*4,(2片),8,9,A,B,C,D,E,F,SN7407,Y2,Y3,Y4,X2,X3,X4,5V,8255芯片与4个数码管接线图,4.7K*8,PA0,PA3,8255,PC0,PC3,0,1,2,3,0,2,3,1,PB0,
11、PB7,ORG 0000HSTART:MOV A,#81H;8255的PB、PA口输出,PC口输 入,方式0 MOV DPTR,#7FFFH;8255控制字地址 MOVX DPTR,A;PA为输入状态,PB、PC为输出状态 MOV 70H,#8 MOV 71H,#9 MOV 72H,#10H MOV 73H,#10HMAIN:LCALL DIR;显示程序 LCALL ADCON;AD转换子程序LJMP MAIN,MOV DPTR,#0BFFFHMOV A,#7MOVX DPTR,A;启动0809的7#通道DELAY1MSMOVX A,DPTR;读取0809的7#通道转换结束的数据MOV 74H
12、,A;暂存读入的值ANL A,#0FHMOV 73H,AMOV A,74HANL A,#0F0HSWAP AMOV 72H,ARET,把采样到的数据送入显示单元准备显示,ADCON:,AD转换子程序,4位数码管动态显示子程序:,DIR:MOV R0,70H;置缓冲器指针初值,MOV R3,0FEH;位选码的初值送R3,MOV A,R3,LD0:MOV DPTR,7FFCH;位选码PA口(PA.0位),;最右边LED亮,MOVX DPTR,A,MOV A,R0;显示数据A,MOV DPTR,#DSEG,MOVC A,ADPTR;根据显示数据来查表取段码,DIR1:MOV DPTR,#7FFDH MOVX DPTR,A;段码8255 PB口,ACALL DL1ms;该位显示1ms,INC R0;指针指向下一个数据单元,MOV A,R3;位选码送入A中,JNB Acc.3,LD1;判断是否扫描到最左边的;LED,如到最左边则返回,RL A;位选码向左移一位,准备让;左边的下一位LED亮,MOV R3,A;位选码送R3中保存,LJMP LD0;,LD1:RET;,DSEG:DB 3FH,06H,5BH,4FH,66H,6DH;共阴极段码表 DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,00H,END,