《单片机与AD的连接.ppt》由会员分享,可在线阅读,更多相关《单片机与AD的连接.ppt(24页珍藏版)》请在优知文库上搜索。
1、第第11 11章章 MCS-51 MCS-51与与 A/D A/D转换器的接口转换器的接口目的与要求:目的与要求: 1、了解、了解A/D转换的原理转换的原理 2、掌握、掌握0809的应用。的应用。11.2.2 11.2.2 MCS-51MCS-51与与ADC 0809ADC 0809(逐次比较型)的接口逐次比较型)的接口1. ADC08091. ADC0809引脚及功能引脚及功能 逐次比较式逐次比较式8 8路模拟输入、路模拟输入、8 8位输出的位输出的A/DA/D转换器。转换器。引脚如图引脚如图。 共共2828脚,双列直插式封装。主要引脚功能如下:脚,双列直插式封装。主要引脚功能如下:(1)(
2、1)IN0IN0IN7IN7:8 8路模拟信号输入端。路模拟信号输入端。(2)(2)D0D0D7D7:8 8位数字量输出端。位数字量输出端。(3)(3)C C 、B B 、A A:控制控制8 8路模拟通道的切换,路模拟通道的切换,C C、B B、A=A= 000 000111111分别对应分别对应IN0IN0IN7IN7通道。通道。(4)(4)OEOE、STARTSTART、CLKCLK:控制信号端,控制信号端,OEOE为输出允许端,为输出允许端, START START为启动信号输入端,为启动信号输入端,CLKCLK为时钟信号输入端。为时钟信号输入端。(5)(5)V VR R(+)(+)和和
3、V VR R(-)(-):参考电压输入端。参考电压输入端。2. 2. ADC0809ADC0809结构及转换原理结构及转换原理 结构如图结构如图11-1511-15。 0809 0809完成完成1 1次转换需次转换需100100 s s左右,可对左右,可对0 05 5V V信号进信号进行转换。行转换。2.MCS-512.MCS-51与与ADC0809ADC0809的接口的接口 单片机如何来控制单片机如何来控制ADCADC? ? 首先用指令选择首先用指令选择08090809的一个模拟输入通道,当执的一个模拟输入通道,当执行行MOVX DPTRMOVX DPTR,A A时,单片机的时,单片机的WR
4、WR* *信号有效,产生信号有效,产生一个启动信号给一个启动信号给08090809的的 STARTSTART脚,对选中通道转换。脚,对选中通道转换。 转换结束后,转换结束后,08090809发出转换结束发出转换结束EOCEOC信号,该信号信号,该信号可供查询,也可作为向单片机发出的中断请求信号可供查询,也可作为向单片机发出的中断请求信号; ;当当执行指令:执行指令:MOVX AMOVX A,DPTRDPTR,单片机发出单片机发出RDRD* *信号信号, ,加到加到OEOE端高电平,把转换完毕的数字量读到端高电平,把转换完毕的数字量读到A A中。中。 查询和中断控制两种工作方式。查询和中断控制两
5、种工作方式。(1)(1)查询方式查询方式08090809与与80318031单片机的接口如图单片机的接口如图11-1611-16。 ALE ALE信号经信号经D D触发器二分频作为时钟信号,如时钟触发器二分频作为时钟信号,如时钟频率为频率为6 6MHzMHz,则则ALEALE脚的输出频率为脚的输出频率为1 1MHzMHz,二分频后二分频后为为500500kHzkHz,符合符合08090809对时钟频率的要求。对时钟频率的要求。 0809 0809具有输出三态锁存器,具有输出三态锁存器,8 8位数据输出引脚可直位数据输出引脚可直接与数据总线相连。接与数据总线相连。 地址译码引脚地址译码引脚C C
6、、B B、A A分别与地址总线分别与地址总线A2A2、A1A1、A0A0相连,以选通相连,以选通IN0IN0IN7IN7中的一个。中的一个。P2.7P2.7(A15A15)作为片作为片选信号,在启动选信号,在启动A/DA/D转换时,由转换时,由WRWR* *和和P2.7P2.7控制控制ADCADC的地的地址锁存和转换启动,由于址锁存和转换启动,由于ALEALE和和STARTSTART连在一起,因此连在一起,因此08090809在锁存通道地址的同时,启动并进行转换。在锁存通道地址的同时,启动并进行转换。 在读取转换结果时,用低电平的读信号和在读取转换结果时,用低电平的读信号和P2.7P2.7脚脚
7、经经1 1级或非门后,产生的正脉冲作为级或非门后,产生的正脉冲作为OEOE信号,用以打信号,用以打开三态输出锁存器开三态输出锁存器。 下面程序采用软件延时的方式,对下面程序采用软件延时的方式,对8 8路模拟信号轮路模拟信号轮流采样一次,并依次把结果转储到数据存储区的转换流采样一次,并依次把结果转储到数据存储区的转换程序。程序。MAIN:MAIN: MOV R1MOV R1,#data#data; ;置数据区首地址置数据区首地址 MOV MOV DPTR DPTR,#7FF8H;#7FF8H;端口地址送端口地址送DPTRDPTR,P2.7=0P2.7=0, ;且指向通道且指向通道IN0IN0MO
8、VMOVR7R7,#08H#08H; ;置转换的通道个数置转换的通道个数LOOP: MOVXLOOP: MOVX DPTR DPTR,A A ; ;启动启动A/DA/D转换转换MOVMOVR6R6,#0AH#0AH; ;软件延时,等待转换结束软件延时,等待转换结束DELAY: NOPDELAY: NOPNOPNOPNOPNOPDJNZDJNZR6R6,DELAYDELAYMOVXMOVXA A,DPTRDPTR; ;读取转换结果读取转换结果MOVMOVR1R1,A A; ;存储转换结果存储转换结果INCINCDPTRDPTR; ;指向下一个通道指向下一个通道INCINCR1R1; ;修改数据区
9、指针修改数据区指针DJNZDJNZR7R7,LOOPLOOP; ;8 8个通道全采样完否?未完则继续个通道全采样完否?未完则继续(2)(2)中断方式中断方式 只需将图只需将图11-1611-16中的中的EOCEOC脚经一非门连接到脚经一非门连接到80318031的的INT1INT1* *脚即可。转换结束时,脚即可。转换结束时,EOCEOC发出一个脉冲向单片发出一个脉冲向单片机提出中断申请,单片机响应中断请求,由外部中断机提出中断申请,单片机响应中断请求,由外部中断1 1的中断服务程序读的中断服务程序读A/DA/D结果,并启动结果,并启动08090809的下一次转的下一次转换,外中断换,外中断1
10、 1采用跳沿触发。采用跳沿触发。程序如下:程序如下:INIT1: SETBINIT1: SETB IT1 IT1 ;外部中断外部中断1 1初始化编程初始化编程SETB SETB EAEA ;CPUCPU开中断开中断SETBSETBEX1EX1 ;选择外中断为跳沿触发方式选择外中断为跳沿触发方式MOVMOVDPTRDPTR,#7FF8H#7FF8H;端口地址送端口地址送DPTRDPTRMOVMOVA A,#00H ;#00H ;MOVXMOVXDPTRDPTR,A A;启动启动08090809对对IN0IN0通道转换通道转换 ;完成其他的工作完成其他的工作中断服务程序中断服务程序: :PINT1
11、: MOV DPTRPINT1: MOV DPTR,#7FF8H #7FF8H ;A/DA/D结果送内部结果送内部RAMRAM单元单元3030H HMOVXMOVXA A,DPTRDPTRMOVMOV30H30H,A AMOVMOVA A,#00H#00H;启动启动08090809对对IN0IN0的转换的转换MOVXMOVXDPTRDPTR,A;A;RETIRETI3 3、应用实例、应用实例例1: 利用ADC0809作AD转换器,电位器提供模拟量输入,编制程序,将模拟量转换成数字量,存入单片机内部RAM 74H单元中。XTAL1XTAL2RSTVccC1C2XC31K8.2K+5V+5VAT8
12、9C51GNDVssGNDEAP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7WRALERDP2.6图2:8051与AD0809的连线图( 0809查询方式)ADDAOESTARTALE+RDWRCSEOCEOCCLOCKCLOCKADDBADDCIN0IN7ABC图6 实验室ADC单元原理图AD0809D0D7D0D1D2D3D4D5D6D7D0D1D2模入系统板0809地址为:P2.6为低电平即BFFFHMOV DPTR , #0BFFFHMOV A , #7MOVX DPTR , A ;启动0809的7#通道LCALL DELAY1MSMOVX A , DPTR ;读取0
13、809的7#通道转换结束的数据MOV 74H , A ;暂存读入的值LJMP ADC1 ;循环采样DELAY1MS:MOV R7 , #0FFH DJNZ R7 , $ RETADC1:AD转换程序( 查询方式)XTAL1XTAL2RSTVccC1C2XC31K8.2K+5V+5VAT89C51GNDVssGNDEAP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7WRALERDP2.6图2:8051与AD0809的连线图( 0809中断方式)ADDAOESTARTALE+RDWRCSEOCEOCCLOCKCLOCKADDBADDCIN0IN7ABC图6 实验室ADC单元原理图A
14、D0809D0D7D0D1D2D3D4D5D6D7D0D1D2模入系统板0809地址为:P2.6为低电平即BFFFHINT0主程序ORG 0000HLJMP CC1ORG 0003HLJMP CCC1CC1:MOV DPTR , #0BFFFHMOV A , #7MOVX DPTR , A ;启动0809的7#通道AD转换程序( 中断方式)外部中断0 ,中断程序CCC1: MOV DPTR , #0BFFFHMOVX A , DPTR ;读取0809的7#通道转换结束的数据MOV 74H , A ;暂存读入的值RET应用实例应用实例例3:(AD与数码管动态显示综合) 利用ADC0809作AD转
15、换器,电位器提供模拟量输入,编制程序,将模拟量转换成数字量,通过数码管显示出来。 要求数码管左2位一直显示89两位数字,数码管右2位显示采样到的数字量。XTAL1XTAL2RSTVccC1C2XC31K8.2K+5V+5VAT89C51GNDVssGNDEAP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7WRALERDP2.6图2:8051与8255的连线图ADDAOESTARTALE+RDWRCSEOCEOCCLOCKCLOCKADDBADDCIN0IN7ABC 实验室ADC单元原理图AD0809D0D7D0D1D2D3D4D5D6D7D0D1D2模入系统板 CSRDWRA0
16、A1锁存器8255D0D7P2.7ABCDEFGDPSN74074个共阴极数码管Y1X15V012345674.7K*4(2片)89ABCDEFSN7407Y2Y3Y4X2X3X45V8255芯片与4个数码管接线图4.7K*8PA0PA38255PC0PC301230231PB0PB7 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 , A ;暂存读入的值ANL A , #0FHMOV 73H , AMOV A ,