1、第十四节第十四节 数数/ /模和模模和模/ /数转换电数转换电路路1数数/ /模和模模和模/ /数转换电路的概念数转换电路的概念 在单片机的实时控制和智能仪表等应用系统中,被控在单片机的实时控制和智能仪表等应用系统中,被控制或被测量对象的有关变量,往制或被测量对象的有关变量,往? 往是一些连续变化的往是一些连续变化的模拟量,如温度、压力、流量、速度等物理量。这些模拟量,如温度、压力、流量、速度等物理量。这些模拟量必须转换模拟量必须转换? 成数字量后才能输入到计算机进行处成数字量后才能输入到计算机进行处理。计算机处理的结果,也常常需要转换为模拟信理。计算机处理的结果,也常常需要转换为模拟信? 号
2、,号,驱动相应的执行机构,实现对被控对象的控制。若输驱动相应的执行机构,实现对被控对象的控制。若输入是非电的模拟信号,还需通过入是非电的模拟信号,还需通过? 传感器转换成电信号。传感器转换成电信号。实现模拟量变换成数字量的设备称为模数转换器实现模拟量变换成数字量的设备称为模数转换器(A(AD)D),数字量转,数字量转? 换成模拟量的设备称为数模转换器换成模拟量的设备称为数模转换器(D(DA)A)。 2具有模拟量输入和模拟量输出的具有模拟量输入和模拟量输出的MCS-51MCS-51应应? 用用系统结构系统结构 模数数模转换技术是数字测量和数字控制领域中的一个专门模数数模转换技术是数字测量和数字控
3、制领域中的一个专门分支。在微电子技术已分支。在微电子技术已? 取得巨大成果的今天,对那些具有明确取得巨大成果的今天,对那些具有明确应用目标的单片微机产品的设计人员来说,只需应用目标的单片微机产品的设计人员来说,只需? 要合理地选用要合理地选用商品化的大规模商品化的大规模A AD D、D DA A电路器件,了解它们的功能和接口电路器件,了解它们的功能和接口方法即可。方法即可。314.2.1 DAC083214.2.1 DAC0832的引脚功能的引脚功能DAC0832DAC0832是一典型的是一典型的8 8位并行位并行D/AD/A转换器。为转换器。为2020引脚的双列直插引脚的双列直插式封装式封装
4、 DAC0832DAC0832内部主要由两个内部主要由两个8 8位的寄存器和一个位的寄存器和一个8 8位的位的D DA A转换器转换器及一些控制逻辑组成。其内部结构及引脚排列如下图所示。及一些控制逻辑组成。其内部结构及引脚排列如下图所示。4DI0DI7DI0DI7:8 8位数据输入引脚。逻辑电平与位数据输入引脚。逻辑电平与TILTIL兼容。兼容。ILEILE:输入数据锁存允许端,高电平有效。:输入数据锁存允许端,高电平有效。/CS/CS:芯片片选输人端,低电平有效。:芯片片选输人端,低电平有效。/WR1/WR1:输入寄存器的写信号,低电平有效。当、:输入寄存器的写信号,低电平有效。当、ILEI
5、LE及信号同时及信号同时有效时,有效时,DI0DI7DI0DI7的数据被锁存到输入寄存器。的数据被锁存到输入寄存器。/XFER/XFER:数据传送控制器信号,低电平有效。:数据传送控制器信号,低电平有效。/WR2/WR2:DACDAC寄存器的写信号,低电平有效。当和信号同时有效寄存器的写信号,低电平有效。当和信号同时有效时,将输入寄存器中的内容锁存到时,将输入寄存器中的内容锁存到DACDAC寄存器中。寄存器中。V VREFREF:基准参考电压源输入端。电压范围:基准参考电压源输入端。电压范围:10+10V10+10VI IOUT1OUT1:输出电流:输出电流1 1。其值随转换的输入数据线性变化
6、,输入数据为。其值随转换的输入数据线性变化,输入数据为0FFH0FFH时,时,I IOUT1OUT1输出最大,输入数据为输出最大,输入数据为00H00H时,时,I IOUT1OUT1输出最小。输出最小。I IOUT2OUT2:输出电流:输出电流2 2。R RFBFB:芯片内部反馈电阻输入引脚,为使用外部运算放大器时提供:芯片内部反馈电阻输入引脚,为使用外部运算放大器时提供反馈电阻。反馈电阻。V VCCCC:芯片工作电源电压。范围:芯片工作电源电压。范围:+5+15V+5+15V。AGNDAGND:模拟地。模拟信号和基准电源的参考地。:模拟地。模拟信号和基准电源的参考地。DGNDDGND:数字地
7、。工作电源和数字逻辑地。:数字地。工作电源和数字逻辑地。514.2.2 DAC083214.2.2 DAC0832的工作方式的工作方式1 1直通工作方式直通工作方式 当当08320832所有的控制信号所有的控制信号(/CS(/CS、/WR1/WR1、/WR2/WR2、ILEILE、/XFER)/XFER)都为有效时,两个寄都为有效时,两个寄存器处于直通状态,此时数据存器处于直通状态,此时数据线的数字信号经两个寄存器直线的数字信号经两个寄存器直接进入接进入D DA A转换器进行转换转换器进行转换并输出。此工作方式适用于连并输出。此工作方式适用于连续反馈控制中。续反馈控制中。2 2单缓冲工作方式单
8、缓冲工作方式单缓冲工作方式是使两个寄存单缓冲工作方式是使两个寄存器始终有一个器始终有一个( (多为多为DACDAC寄存器寄存器) )处于直通状态,另一个处于受处于直通状态,另一个处于受控状态。如使控状态。如使/WR2=0/WR2=0和和/XFER=0/XFER=0,或将,或将/WR1/WR1与与/WR2/WR2相连及相连及/XFER/XFER与与/CS/CS相连,则相连,则DACDAC寄存器处于直通状态,输寄存器处于直通状态,输入寄存器处于受控状态。入寄存器处于受控状态。应用系统中如只有一路应用系统中如只有一路D DA A转转换,或有多路转换但不要求同换,或有多路转换但不要求同步输出时,可采用
9、单缓冲工作步输出时,可采用单缓冲工作方式。方式。3 3双缓冲工作方式双缓冲工作方式双缓冲工作方式是使输入寄存双缓冲工作方式是使输入寄存器和器和DACDAC寄存器都处于受控状寄存器都处于受控状态。这主要用于多路态。这主要用于多路D DA A转换转换系统以实现多路模拟信号的同系统以实现多路模拟信号的同步输出。例如有三个八位二进步输出。例如有三个八位二进制数,分别先后进入三个制数,分别先后进入三个DAC0832DAC0832芯片的输入寄存器,芯片的输入寄存器,这时若将三个这时若将三个DAC0832DAC0832的的DACDAC寄存器的锁存信号同时变为低寄存器的锁存信号同时变为低电平(三个电平(三个D
10、AC0832DAC0832的引脚的引脚/WR2/WR2、/XFER/XFER分别接在一起,分别接在一起,即可达到此目的),即可达到此目的),则分别先后锁存在三个则分别先后锁存在三个DAC0832DAC0832芯片的输入寄存器中的数据同芯片的输入寄存器中的数据同时打入其时打入其DACDAC寄存器,并随之进行数模转换,同时输出相应的模寄存器,并随之进行数模转换,同时输出相应的模拟量。若三个拟量。若三个DAC0832DAC0832芯片的芯片的DACDAC寄存器处于直通状态,就无寄存器处于直通状态,就无法控制三路模拟信号的同步输出。法控制三路模拟信号的同步输出。614.3 DAC083214.3 DA
11、C0832与单片机的接口及应用与单片机的接口及应用图中为采用单缓冲工作方式的一路图中为采用单缓冲工作方式的一路D DA A输出与输出与80518051单片机的连接单片机的连接图。图中采用将芯片两级寄存器的控制信号并接的方式,即将图。图中采用将芯片两级寄存器的控制信号并接的方式,即将DAC0832DAC0832的的/WR1/WR1和和/WR2/WR2并接后与并接后与805l805l的的/WR/WR信号线相连,信号线相连,/CS/CS和和/XFER/XFER并接后与并接后与P2.7P2.7相连,并将相连,并将ILEILE接高电平。在这种工作方式接高电平。在这种工作方式下,输入数据在控制信号的作用下
12、,送入下,输入数据在控制信号的作用下,送入DACDAC寄存器,再经寄存器,再经D DA A转换输出一个与输入数据对应的模拟量。转换输出一个与输入数据对应的模拟量。D DA A转换器的基转换器的基准电压准电压V VREFREF由稳由稳压管上的电压分压管上的电压分压后提供。图中压后提供。图中运算放大器的作运算放大器的作用将用将D DA A转换器转换器输出电流转换成输出电流转换成电压输出。电压输出。7D/AD/A转换程转换程序设计序设计图中的接法是采用线选法把图中的接法是采用线选法把DAC0832DAC0832当作当作80318031扩展的一个并行扩展的一个并行I IO O口,当口,当P2.7=0P
13、2.7=0时,则信号时,则信号/CS/CS和和/XFER/XFER有效,若设其它无关的地有效,若设其它无关的地址位为址位为“1”1”,则,则DAC0832DAC0832的口地址为的口地址为7FFFH7FFFH。将一个。将一个8 8位数据送位数据送入入DAC0832DAC0832完成转换的指令如下:完成转换的指令如下:MOV DPTRMOV DPTR,#7FFFH #7FFFH ;指向;指向08320832的口地址的口地址MOV AMOV A,#data #data ;待转换的数据送;待转换的数据送A AMOVX DPTRMOVX DPTR,A A ;写入;写入08320832,即实现一次转换并
14、输出,即实现一次转换并输出 8(1 1)锯齿波锯齿波 利用利用D DA A转换,可方便编程输出各种不同的程控电压波形。以下转换,可方便编程输出各种不同的程控电压波形。以下几个程序实例可在图中的运放输出端产生不同的电压输出波形:几个程序实例可在图中的运放输出端产生不同的电压输出波形: (1 1)产生锯齿波)产生锯齿波 MOV DPTRMOV DPTR,#7FFFH #7FFFH ;指向;指向08320832的口地址的口地址 MOV AMOV A,#00H #00H ;将最小数字量;将最小数字量00H00H送送A ALOOPLOOP:MOVX DPTRMOVX DPTR,A A ;A A中数据送中
15、数据送08320832转换,输出对应转换,输出对应 ;的模拟量;的模拟量 INC A INC A ;A A中内容加中内容加1 1 LJMP LOOP LJMP LOOP ;继续循环转换;继续循环转换9(2 2)产生方波)产生方波 MOV DPTRMOV DPTR,#7FFFH #7FFFH ;指向;指向08320832的口地址的口地址LOOPLOOP:MOV AMOV A,#0FFH #0FFH ;将最大数字量;将最大数字量0FFH0FFH送送A A MOVX DPTR MOVX DPTR,A A ;送;送D DA A转换输出对应的模拟量转换输出对应的模拟量 LCALL DEL LCALL D
16、EL ;调延时子程序;调延时子程序 MOV AMOV A,#00H #00H ;将最小数字量;将最小数字量00H00H送送A A MOVX DPTR MOVX DPTR,A A ;送;送D DA A转换输出对应的模拟量转换输出对应的模拟量 LCALL DEL LCALL DEL ;调延时子程序;调延时子程序 LJMP LOOP LJMP LOOP ;继续循环转换;继续循环转换 DELDEL: 延时子程序略延时子程序略(2 2)方波)方波10(3 3)产生三角波)产生三角波 MOV DPTRMOV DPTR,#7FFFH#7FFFH;指向;指向08320832的口地址的口地址 MOV AMOV
17、A,#00H #00H ;将最小数字量;将最小数字量00H00H送送A ALOOP1LOOP1:MOVX DPTRMOVX DPTR,A A ;送;送D DA A转换输出对应的模拟量转换输出对应的模拟量 INC A INC A ;A A中内容加中内容加1 1 CJNE A CJNE A,#0FFH#0FFH,LOOP1LOOP1;判;判A A中内容是否到最大值,中内容是否到最大值, ;不到则转;不到则转LOOP1LOOP1继续继续LOOP2LOOP2:MOVX DPTRMOVX DPTR,A A ;已到,则送最大值至;已到,则送最大值至D DA A转换转换 ;输出对应的模拟量;输出对应的模拟量
18、 DEC A DEC A ;A A中内容减中内容减1 1 CJNE A CJNE A,#00H#00H,LOOP2 LOOP2 ;判;判A A中内容是否到最小值,中内容是否到最小值, ;不到则转;不到则转LOOP2LOOP2继续继续 LJMP LOOP1 LJMP LOOP1 ;已到,转;已到,转LOOPlLOOPl继续循环继续循环(3 3)三角波)三角波1214.4 A/D14.4 A/D转换器的介绍转换器的介绍 用于模数用于模数(A/D)(A/D)转换的集成芯片种类很多,按其转换的集成芯片种类很多,按其转换原理可分为计数比较型、逐次逼转换原理可分为计数比较型、逐次逼? 近型、双积近型、双积
19、分型等等。不同分型等等。不同A AD D转换器芯片在速度、精度和转换器芯片在速度、精度和价格上均有差别,其分辨率价格上均有差别,其分辨率? ( (输出转换结果的二进输出转换结果的二进制数或制数或BCDBCD码位数码位数) )也有也有8 8位、位、1010位、位、1212位及位及1616位位等多种,这也是等多种,这也是? 应用选型时应主要考虑的因素。应用选型时应主要考虑的因素。? 由于逐次逼近法由于逐次逼近法A AD D转换器在精度、速度和价格转换器在精度、速度和价格上都适中,上都适中,8 8位的分辨率也可满足一般位的分辨率也可满足一般? 的应用要求,的应用要求,是最常见的是最常见的A AD D
20、转换器件。下面我们主要介绍逐转换器件。下面我们主要介绍逐次逼近型次逼近型A AD D转换器的工作转换器的工作? 原理及典型芯片原理及典型芯片ADC0809ADC0809与单片机的接口方法。与单片机的接口方法。13A/DA/D转换器转换器的工作原理的工作原理逐次逼近法逐次逼近法A AD D转换器也称逐次比较法转换器也称逐次比较法A/DA/D。对于一个输出为。对于一个输出为N N位位的逐次逼近法的逐次逼近法A/DA/D转转? 换器,其内部原理框图如图所换器,其内部原理框图如图所? 示。主要以一示。主要以一D DA(A(数模数模) )转换为基转换为基? 础,加上比较器、础,加上比较器、N N位逐次逼
21、近寄存位逐次逼近寄存? 器、置器、置数控制逻辑电路以及时钟等组数控制逻辑电路以及时钟等组? 成。它通过对最高位成。它通过对最高位(D(DN N1 1) )至最低至最低? 位位(D(D0 0) )的逐次检测比较来逼近被转的逐次检测比较来逼近被转? 换的输入电压,转换原理为:换的输入电压,转换原理为: 在启动信号控制下开始转换,置数控制逻辑电路首先置在启动信号控制下开始转换,置数控制逻辑电路首先置N N位寄存器位寄存器最最? 高位高位(D(DN N1 1) )为为1 1,其余位清,其余位清0 0,随后,随后N N位寄存器的内容经位寄存器的内容经D DA A转换转换后得到整个量程一半的后得到整个量程
22、一半的? 模拟电压模拟电压V VN N,通过电压比较器与输入电压,通过电压比较器与输入电压V VX X比较。若比较。若V VX XVVN N时,则保留时,则保留D DN N1 1 =1 =1;若;若? V VX XVVN N时,则时,则D DN N1 1位清位清0 0。然后,控制逻辑使然后,控制逻辑使N N位寄存器的下一位位寄存器的下一位(D(DN N2 2) )置置l l,与上次的结,与上次的结? 果一果一起经起经D DA A转换再后与转换再后与V VX X比较,重复上述过程,直至判断出位比较,重复上述过程,直至判断出位D D0 0取取1 1还是还是0 0,然后,然后? DONEDONE发出
23、信号表示转换结束。经过上述发出信号表示转换结束。经过上述N N次比较后,次比较后,N N位寄存器中的数据就是与输入模拟量对应的数字量,经输出缓位寄存器中的数据就是与输入模拟量对应的数字量,经输出缓? 冲冲器输出即完成了转换。器输出即完成了转换。 1414.5 ADC080914.5 ADC0809芯片芯片结构及引脚结构及引脚 ADC0809ADC0809是一典型的是一典型的逐次逼近型逐次逼近型8 8路模拟路模拟量输入、量输入、8 8位数字量位数字量输出的输出的A/DA/D转换芯片,转换芯片,采采? 用用CMOSCMOS工艺制造,工艺制造,2828引脚双列直插式封引脚双列直插式封装。图为装。图为
24、ADC0809ADC0809的的内部结构逻辑内部结构逻辑? 图,和图,和ADC0809ADC0809的的? 引脚图。引脚图。 15ADC0809ADC0809芯芯片引脚功能片引脚功能为了实现为了实现8 8路模拟量的路模拟量的A/DA/D转换,芯片内部集成有一个多路模拟开转换,芯片内部集成有一个多路模拟开关,由地址译码器译码后可选通一路模拟量输入,关,由地址译码器译码后可选通一路模拟量输入,8 8路模拟量共用路模拟量共用一个一个A AD D转换器进行转换。转换结果送入输出锁存器锁存和输出。转换器进行转换。转换结果送入输出锁存器锁存和输出。当外加时钟频率为当外加时钟频率为640kHz640kHz时
25、,转换时间为时,转换时间为64us64us。芯片引脚功能说明如下:芯片引脚功能说明如下:IN0IN7 8IN0IN7 8路输入通道的模拟量输入端路输入通道的模拟量输入端D0D7 8D0D7 8位数字量输出端位数字量输出端STARTSTART:启动信号。加上正脉冲后,开始启动:启动信号。加上正脉冲后,开始启动A AD D转换。此信号转换。此信号要求保持要求保持200ns200ns以上。以上。ADDAADDA、ADDBADDB、ADDCADDC:地址线。用于选择所需的模拟输入通道。:地址线。用于选择所需的模拟输入通道。其地址状态与模拟输入通道的对关系如表所示。其地址状态与模拟输入通道的对关系如表所
26、示。EOCEOC:转换结束输出信号。转换开始后,:转换结束输出信号。转换开始后,EOCEOC信号变低;转换结束信号变低;转换结束时,时,EOCEOC返回高电平。查询这个引脚的信号状态可知返回高电平。查询这个引脚的信号状态可知A AD D转换器转换器是否转换结束。也可以直接用作转换结束的是否转换结束。也可以直接用作转换结束的中断请求信号,中断请求信号,CPUCPU通过中断服务子程序读取转换后的数字量。通过中断服务子程序读取转换后的数字量。OEOE:输出允许控制端。:输出允许控制端。CLKCLK:时钟信号。频率范围:时钟信号。频率范围:10kHz1.2MHz10kHz1.2MHz,通常采用,通常采
27、用500kHz500kHz。V VCCCC:芯片电源电压。由于是:芯片电源电压。由于是CMOSCMOS芯片,故允许的电源范围较宽芯片,故允许的电源范围较宽(+5V+15V)(+5V+15V)。GNDGND为地端。为地端。VREF(+)VREF(+)和和VREF(VREF() ):A AD D转换器的正负基准参考电压输入端。一转换器的正负基准参考电压输入端。一般可将般可将VREF(+)VREF(+)与与V VCCCC连接在一起,连接在一起,VREF(VREF() )与与GNDGND连接在一起。连接在一起。ALEALE:地址锁存信:地址锁存信号。信号的上跳沿号。信号的上跳沿把三位地址信号送把三位地
28、址信号送入地址锁存器,并入地址锁存器,并经译码器得地址输经译码器得地址输出,以选择相应的出,以选择相应的模拟输入通道。模拟输入通道。1614.6 ADC080914.6 ADC0809与与MCS-51MCS-51单片机的接口方法单片机的接口方法图中用于选通图中用于选通8 8路模拟输入的路模拟输入的3 3根通道地址线根通道地址线A A、B B、C C可直接与可直接与80318031的的P0.0P0.2P0.0P0.2相相? 连,这是因为连,这是因为08090809芯片内部具有通道地址芯片内部具有通道地址锁存功能。采用线选法寻址,由锁存功能。采用线选法寻址,由80318031的地址总线的地址总线?
29、 P2.0P2.0和和/RD /RD 、/WR/WR信号线共同配合以控制信号线共同配合以控制A AD D转换器输入通道地址的锁存、转换器输入通道地址的锁存、启动转换和输出允启动转换和输出允? 许。许。17按按ADC0809ADC0809的的3 3根通道地址线根通道地址线ADDAADDA、ADDBADDB、ADDCADDC及及80318031的地址线的地址线P2.0P2.0的接的接法,并设其它无关位法,并设其它无关位? 为为“1”1”,可知对应,可知对应8 8个模拟量输入个模拟量输入IN0IN7IN0IN7的地址依次为的地址依次为FEF8HFEFFHFEF8HFEFFH。只要向。只要向FEF8H
30、FEF8H? FEFFHFEFFH中任何一个地址进行写操作即可启动对指中任何一个地址进行写操作即可启动对指定通道地址的转换。例如,把输入通道定通道地址的转换。例如,把输入通道2 2(IN2IN2)的模拟量转换为数字量,则单)的模拟量转换为数字量,则单片机需提供的地址用二进制表示为:片机需提供的地址用二进制表示为: P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.01111111011111010二进制数转换为十六进制数,则地址为二进制数转换为十六进制数,则地址为FEFAHFEFAH,从图中看出,从图中看出,80318
31、031的的P0.0P0.2P0.0P0.2与选通与选通8 8路模拟输入的路模拟输入的3 3根通道地址线根通道地址线ADDAADDA、ADDBADDB、ADDCADDC相连,故当相连,故当P0.0=0P0.0=0、P0.1=1P0.1=1、P0.2=0P0.2=0时,模拟通道时,模拟通道IN2IN2可被选择。可被选择。 18当当P2.0=0P2.0=0并执行写操作时,写操作指令并执行写操作时,写操作指令MOVX DPTRMOVX DPTR,A A ,/WR/WR为为“0”0”,P2.0P2.0与与/WR/WR经过与非门,使启动信号经过与非门,使启动信号STARTSTART和地址锁存信号和地址锁存
32、信号ALEALE同时为高电平,同时为高电平,这样低三位地址这样低三位地址P0.0P0.0、P0.1P0.1、P0.2P0.2,在地址锁存信号,在地址锁存信号ALEALE的作用下,通过相应的作用下,通过相应的地址线和的地址线和08090809的引脚的引脚ADDAADDA、ADDBADDB、ADDCADDC锁存入如图所示的地址锁存器,锁存入如图所示的地址锁存器,并经译码器得到地址输出,以选择出模拟输入通道并经译码器得到地址输出,以选择出模拟输入通道IN2IN2作为模数转换通道。同时作为模数转换通道。同时由于启动信号由于启动信号STARTSTART变为高电平,故启动变为高电平,故启动A/DA/D转换
33、,把输入通道转换,把输入通道IN2IN2的模拟量转的模拟量转换成八位二进制数字量。换成八位二进制数字量。 转换结束后,转换结束后,08090809的引脚的引脚EOCEOC由低电平变为高电平,如图所示,由低电平变为高电平,如图所示,经一非门立即向单片机芯片发出外部中断经一非门立即向单片机芯片发出外部中断1 1的中断申请,的中断申请,CPUCPU于于是响应申请,转入中断服务子程序读转换后的数字量。是响应申请,转入中断服务子程序读转换后的数字量。 要读此数字量,应提供数字量的地址要读此数字量,应提供数字量的地址FEFAHFEFAH并进行读操作,即并进行读操作,即MOV MOV DPTRDPTR,#0
34、FEFAH MOVX DPTR#0FEFAH MOVX DPTR,A A,提供了地址,提供了地址FEFAHFEFAH,就意味,就意味着着P2.0=0P2.0=0,执行了读操作,就意味着信号,执行了读操作,就意味着信号/RD/RD变为变为“0”0”。这样。这样/RD/RD和和P2.0P2.0经与非门,使输出允许信号经与非门,使输出允许信号OEOE有效。见图,在有效。见图,在OEOE的作用下,的作用下,打开输出锁存器的三态门,将打开输出锁存器的三态门,将8 8位转换结果读入位转换结果读入CPUCPU中。中。19ADC0809ADC0809应用程序设计应用程序设计根据图中的硬件连接,采用中断方式依次
35、采集根据图中的硬件连接,采用中断方式依次采集8 8个模拟量输入通个模拟量输入通道道IN0IN7IN0IN7的模拟量信号,并将的模拟量信号,并将A AD D转换结果按顺序存入片内转换结果按顺序存入片内RAMRAM的的40H47H40H47H单元的程序实例。单元的程序实例。 ORG 0000HORG 0000H AJMP MAIN AJMP MAIN ;转移到主程序;转移到主程序 ORG 0013H ORG 0013H ;外部中断;外部中断1 1的入口地址的入口地址 AJMP INT1 AJMP INT1 ;转移到中断服务子程序;转移到中断服务子程序 20 主程序(初始化):主程序(初始化): M
36、AINMAIN: SETB IT1 SETB IT1 ;设;设INT1INT1为脉冲触发方式为脉冲触发方式 SETB EA SETB EA ;允许系统中断;允许系统中断 SETB EX1 SETB EX1 ;允许;允许INT1INT1中断中断 MOV R0MOV R0,#40H #40H ;R0R0指向存数单元首址指向存数单元首址 MOV R2MOV R2,#08H #08H ;设置采集次数;设置采集次数 MOV DPTRMOV DPTR,#0FEF8H #0FEF8H ;指向通道;指向通道IN0IN0 MOVX DPTR MOVX DPTR,A A ;启动;启动A AD D转换转换 SJMP
37、 $ SJMP $ ;等待中断;等待中断21 中断服务子程序:中断服务子程序: INT1INT1:MOVX AMOVX A,DPTR DPTR ;读入转换结果;读入转换结果 MOV R0MOV R0,A A ;存数;存数 INC DPTR INC DPTR ;通道地址加;通道地址加1 1 INC R0 INC R0 ;存数单元地址加;存数单元地址加1 1 DJNZ R2 DJNZ R2,LOOP LOOP ;判;判8 8个通道采集完否个通道采集完否? ? ;未完,转;未完,转LOOPLOOP继续继续 AJMP EXT AJMP EXT ;已采完,直接中断返回;已采完,直接中断返回 LOOPLOOP:MOVX DPTRMOVX DPTR,A A ;再次启动;再次启动A AD D转换,转换, ;由于转换需要一定时间,所以;由于转换需要一定时间,所以 ;为了不占用;为了不占用CPUCPU的时间,故启动转换后,的时间,故启动转换后, ;返回主程序。当转换结束后,会自动;返回主程序。当转换结束后,会自动 ;再转入中断子程序读转换结果;再转入中断子程序读转换结果 EXT EXT :RETI RETI ;返回主程序;返回主程序22
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。