用模拟比较器实现的A/D转换器

来源: 作者: 时间:2009-06-11 19:32

     在实际应用中,常常需要对模拟量进行测量,这就需用A/D转换器。片内带A/D转换器的单片机相对较贵,而AVR的多数单片机,如AT90S1200、AT90S8515等,片内都有模拟比较器。利用单片机片内的模拟比较器,很容易实现A/D转换,完全能够满足精度要求不高的一般性测量的需要。 本文介绍用SL-AVR开发实验器做A/D转换器的实验。重点介绍在利用SL-AVR开发实验器上的网络电阻和滑线电位器进行A/D转换器实验时的跳线方法。  一、 电路 图1是AT90S8515控制的A/D转换器。单片机的PD6~PD0接共阴数码管的a~g,控制段码;PB6、PB7分别接数码管D0、D1的共阴极,控制位码;PC0~PC7作为输出口,接8只网络电阻;PB2(AIN0)接网络电阻的输出端;PB3(AIN1)接滑线电位器的中间抽头。  二、 SL-AVR开发实验器上的跳线连接方法  1. LED数码管跳线 将DLED短路插排上的全部短路块取下,用随机附送的跳线将其中的D1接至AT90S8515的PB7(第{8}脚),D0接PB6(第{7}脚)。AT90S8515的40个引脚已接至锁紧插座的左右两侧。 将短路插排CZ3最上面的7个短路块取下,其右边一列从上至下分别为LED七段数码管的段引脚a~g,将a~g分别接到AT90S8515的PD6~PD0(第{16}脚~{10}脚)。  2. 电阻网络跳线 将短路插排D2最下面的8个短路块取下,其最左边一列从下至上分别为PC0~PC7,用跳线将PC0~PC7分别接到网络电阻插排的D0~D7。 将短路插排D1最上面的8个短路块取下,其最右边一列从上至下分别为PB0~PB7,用跳线将PB2接到网络电阻插排的Vout。  3. 滑线电阻跳线 在《AVR高速嵌入式单片机原理与应用》一书中,滑线电位器的接线如图2a所示。据笔者实测SL-AVR开发实验器的滑线电位器,其接线如图2b所示。因此,滑线电位器的接线如下:将滑线电位器上方两脚短路插排的AX端接至AT90S8515的PB3(AIN1),A/D端串一只电阻(如1kΩ)后接至GND。VCC、GND已引到SL-AVR开发实验器的左上角的双列短路插排上。
    
     将跳线接好,仔细检查无误后,便可进行实验了。  
    
     三、 用电阻网络实现的A/D转换器程序 用电阻网络实现的A/D转换器的源程序清单如下:.Include″8515def.Inc″
    
     .Org 0000
    
     rjmp reset
    
     .Def temp=r16
    
     .Def temp1=r17
    
     .Equ label= 0100
    
     .Org $0010
    
     reset: ldi r20,$02
    
     out sph,r20
    
     out spl,r20
    
     ldi r20,$ff ;设置D口为输出
    
     out ddrd,r20
    
     out ddrc,r20
    
     ldi r20,$f0
    
     out ddrb,r20
    
     out portb,r20
    
     clr r20
    
     out portc,r20
    
     sbi $18,7
    
     sbi $18,6
    
     cli
    
     ldi zh,high(label×2)
    
     main: ldi temp,$00
    
     nop
    
     loop1: out portc,temp
    
     nop
    
     nop
    
     nop
    
     in temp1,acsr
    
     sbrs temp1,5
    
     rjmp naco
    
     rjmp haco
    
     naco: inc temp
    
     brne loop1
    
     ldi temp,$ff
    
     haco: mov r28,temp
    
     ldi r20,$38
    
     display:mov temp,r28 ;显示高位
    
     andi temp,$f0
    
     swap temp
    
     clr zl
    
     add zl,temp
    
     ledh: lpm
    
     out portd,r0
    
     sbi $18,6
    
     cbi $18,7
    
     rcall delay
    
     mov temp,r28 ;显示低位
    
     andi temp,$0f
    
     clr zl
    
     ledl: add zl,temp
    
     lpm
    
     out portd,r0
    
     sbi $18,7
    
     cbi $18,6
    
     rcall delay
    
     dec r20
    
     brne display
    
     rjmp main
    
     delay: ldi r27, 10
    
     delay1: dec r26
    
     brne delay1
    
     dec r27
    
     brne delay1
    
     sbi $18,7
    
     ret
    
     .Cseg
    
     .Org $0100
    
     .Dw 0xb0fe,0xf9ed,0xdbb3,0xf0df
    
     .Dw 0xf3ff,0x9ff7,0xbdce,0xc7cf  1. 源程序汇编 运行汇编程序wavr asm,打开SLAVR736.ASM程序,执行Assemble命令对SLAVR736.ASM程序进行汇编,生成SLAVR736.EEP、SLAVR736.OBJ、SLAVR736.HEX、SLAVR736.LST文件。  2. 串行下载、运行 用串行下载线将SL-AVR的CZ2与AT3接好,将单片机AT90S8515插入锁紧插座并锁紧。将SL-AVR开发实验器与PC机串口连接好,接上电源,开电源。运行串行下载程序Avr Prog,将SLAVR736.HEX文件下载到SL-AVR开发实验器中的AT90S8515。按复位键,程序开始运行,LED显示器的低2位显示A/D转换的值。调节滑线电位器,显示值亦随之变化。  四、 实际应用 读者可以自己设计硬件检测电路,将需要检测的物理量转换成0~5V电压,在SLAVR736.ASM程序中加上将A/D转换出的数值(00H~FFH)换算成被测物理量的实际数值便构成了所需的测量仪器 。
    
    
    
    

相关文章

资讯排行榜

  • 每日排行
  • 每周排行
  • 每月排行

华强资讯微信号

关注方法:
· 使用微信扫一扫二维码
· 搜索微信号:华强微电子