nocturne 发表于 2009-4-26 11:38:15

急求老师!~~~~~

老师我最近编写了一个多通道采样AD转换:
程序如下:
.include"m64def.inc"
.org $000
rjmp reset
.org $002a
rjmp ad_int
reset:
   ldi r16,$03
       out sph,r16
       ldi r16,$ff
       out spl,r16
       ldi r16,$00
       sts ddrf,r16;定义F口为输人
   ldi r18,$00
       out admux,r18;选取A0口,VCC,VREF为参考电压5V
   ldi r17,$ed;启动AD,使能AD,自动触发,开中断,分64频
   out adcsra,r17
       ldi xl,$00
       ldi xh,$01;定义SRAM$0100开始
   in r21,adcl
   in r20,adch;读入AD数据
       st x+,r20
       st x+,r21
       sei
here: rjmp here

ad_int: in r1,sreg;入栈
      in r21,adcl
      in r20,adch;读入AD数据进SRAM#100
          st x+,r20
          st x+,r21
                ld r24,x
      cpi r24,10
                brne cc
      ldi xl,$00
          ldi xh,$01;定义SRAM$0100开始
cc:   inc r18
          cpi r18,$08
           brne bb
          ldi r18,$00
bb:          out admux,r18;选取下一AD通道,超过通道7就重新采样
      cbi adcsra,4
          out sreg,r1
          reti
我采用mega64芯片的,但采样的值偏差很大?
不知道是不是外部的晶振,怎么检测?
请问老师有何高解???

machao 发表于 2009-4-27 20:47:57

高解是从基础开始,认真一步步的打好基础。
页: [1]
查看完整版本: 急求老师!~~~~~