查看: 1860|回复: 5
|
ADC setting
[复制链接]
|
|
我是PIC的新手,正在做FINAL PROJECT, 想请问如何setting adc?
我用的是16F877A, asm language...
我想要adc setting 的 sample templete...
谢谢各位! |
|
|
|
|
|
|
|
发表于 25-4-2008 08:37 AM
|
显示全部楼层
原帖由 dns 于 24-4-2008 10:48 PM 发表
我是PIC的新手,正在做FINAL PROJECT, 想请问如何setting adc?
我用的是16F877A, asm language...
我想要adc setting 的 sample templete...
谢谢各位!
首先, 欢迎你新手, 也希望你的project完成后, 继续回来这里帮助其他有需要的新手网友。
我不会ASM, 我建议你用CCS C。(其他的我不会 )
还有你要的Sample code, 只要你Google, 可以找到很多的。。。
如你要CCS C的sample code, 你可以看旧帖。
如你还是喜欢用ASM, 那以下的ASM 供你参考:
- ;16f877 a/d test routine
- ;
- ;TEST CIRCUIT:
- ;pin 11 & 32 = 5VDC
- ;pin 12 & 31 = 0VDC
- ;pin 1 = 5VDC
- ;pin 2 = 0 - 5 VDC analog input (center tap on 20k variable resistor)
- ;pin 13 & 14 = 4MHz crystal with 18pF capacitors to 0VDC
- ;pin 15,16,17,18,23,24,25,26 PORTC outputs each to 330 ohm resistor
- ; in series with LED to 0VDC
- ;**********************************************************
- __config _LVP_OFF & _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF & _BODEN_OFF
- & _DEBUG_OFF
- list p=16f877
- include "p16f877.inc"
- ; Start at the reset vector
- org 0x000
- goto Start
- org 0x004
- Interrupt
- retfie
- Start
- bsf STATUS,RP0 ;bank 1
- bcf STATUS,RP1
- movlw H'00'
- movwf TRISC ;portc [7-0] outputs
- clrf ADCON1 ;left justified, all inputs a/d
- bcf STATUS,RP0 ;bank 0
- movlw B'01000001' ;Fosc/8 [7-6], A/D ch0 [5-3], a/d on [0]
- movwf ADCON0
- Main
- call ad_portc
- goto Main
- ad_portc
- ;wait for acquision time (20uS)
- ;(non-critical for this test)
- bsf ADCON0,GO ;Start A/D conversion
- Wait
- btfsc ADCON0,GO ;Wait for conversion to complete
- goto Wait
- movf ADRESH,W ;Write A/D result to PORTC
- movwf PORTC ;LEDs
- return
- end
复制代码 |
|
|
|
|
|
|
|
楼主 |
发表于 26-4-2008 10:31 PM
|
显示全部楼层
谢谢版主,将来如果需要我的帮忙一定会经历而为
其实我还有很多东西要请教版主,如果用VR来控制ADC可以吗? |
|
|
|
|
|
|
|
发表于 27-4-2008 08:48 AM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 22-9-2008 12:43 AM
|
显示全部楼层
原帖由 pic 于 25-4-2008 08:37 AM 发表
首先, 欢迎你新手, 也希望你的project完成后, 继续回来这里帮助其他有需要的新手网友。
我不会ASM, 我建议你用CCS C。(其他的我不会 )
还有你要的Sample code, 只要你Google, 可以找到很多的。。。 ...
关于FOSC/8 我有点不明白。什么是FOSC/2, FOSC/64 呢?。 如果我的crystal 是20MHZ ,FOSC/8。 是不是我的instruction cycle time是4x10^-7 呢?? 其实FOSC/8,FOSC/2, FOSC/64有什么分别呢??
至于ADCON1<3:0> 如果我的voltage 大过5V , 是不是用Vref+ ,Vref- 来解决呢? |
|
|
|
|
|
|
|
发表于 22-9-2008 07:36 AM
|
显示全部楼层
|
|
|
|
|
|
| |
本周最热论坛帖子
|