PIC 16F877A ADC Tulong Kinakailangan

C

chi239

Guest
Ako ay isang baguhan. Ako pagbuo ng isang card sa buong PIC16F877A (4MHz). Gusto kong gamitin ang ADC (single-channel) may AN0 bilang ang input. Lahat ng iba pang Porta pin na gagamitin para sa Digital ako / O. Nagkakaroon ako ng problema sa configure ang ADC. Gumagamit ako ng ADCON0 = 0x85, ADCON1 = 0x8E at TRISA = 0x01, ngunit ito ay hindi mukhang upang gumana. Ako gamit ang MikroC Compiler. Maaari sinuman makakatulong sa akin, mangyaring?
 
Kumusta, Dahil gumagamit ka ng mikroC, maaari mong gawin ito:
Code:
 / / ADC Pinasimulan ADCON1.PCFG3 = 1; ADCON1.PCFG2 = 1; ADCON1.PCFG1 = 1; ADCON1.PCFG0 = 0; Porta = 0; TRISA = 1; / / Pinasimulan tapos (sapat para sa mikroC)
Kapag kailangan mong basahin ang mga ito mula sa ADC, maaari mo lamang gawin ito tulad ng:
Code:
 ADCR = ADC_Read (0); / / ADC channel 0 basahin, convert sa digital at naka-imbak sa ADCR
Sana ito ay makakatulong. Tahmid [COLOR = "Silver"] [SIZE = 1] ---------- Post idinagdag sa 11:44 ---------- Nakaraang post ay sa 11:44 --- ------- [/SIZE] [/COLOR] Para sa tulong sa iyong code, kailangan mong i-upload ang iyong code upang maaari naming malaman kung saan ay ang pagkakamali.
 
Kamusta every1 .... i katulad na problema, at umaasa i maaaring i makakuha ng ilang tulong kapag iserch sa forum ifound code para sa adc ngunit walang schema i desgin isa sa isis protues ngunit ay hindi gumagana mangyaring makakatulong sa akin ...... Mga 1.Im na gamit ang PIC16F877A MCU, at ako ay nais na baguhin ang format ng code na gawin ang mga sumusunod: 1 / convert ang analog boltahe na natanggap sa PortA.2 (pin 4) sa digital. 2 / kung ang analog boltahe ay mas mababa kaysa sa 2V at higit pa kaysa 1V ... set PortC.4 (pin 23). 3 / Kung ang analog boltahe ay mas mababa kaysa sa 1V ... set PortC.5 (pin 24). code: unsigned int t; walang bisa pangunahing () {ADCON1 = 0x80, / / ​​I-configure ang mga analog input at Vref TRISA = 0xFF, / / ​​Porta ay input TRISC = 0; / / PORTD ay output habang (1) t = Adc_Read (2) ; / / makakuha ng ADC na halaga mula sa 2nd channel kung ang (t> = 0 & t = 411 & t
 
Hi, Ang output ng ADC ay 10-bit, kaya baguhin ang iyong code sa:
Code:
 unsigned int t; void main () {ADCON1 = 0x80, / / ​​I-configure ang mga analog input at Vref TRISA = 0xFF; / / Porta ay input PORTC = 0; TRISC = 0; / / PORTD ay output habang (1) {t = Adc_Read (2), / / ​​makakuha ng ADC na halaga mula sa 2nd channel kung (t> = 0 & t = 206 & t
 
Salamat Tahmid. Kong subukan ito mamaya at babalik sa iyo.
 
Paumanhin Tahmid. Sinubukan kong ito, ngunit hindi ito gumana. Huwag sa tingin mo ay dapat namin initiallize ADCON0 din? Ang nakakatawa bahagi ay - kung subukan ko ADCON0 = 0x85, ADCON1 = 0x01 0x80 at TRISA =, gumagana sa AN3 bilang input. Ngunit ang lahat ng iba pang mga pin sa Porta ring maging input. Gusto kong gamitin ang iba pang mga pin sa Porta bilang mga digital na output. Mangyaring malaglag ang ilang ilaw sa.
 
Maraming salamat sa inyo Tahmid, nagtrabaho ngayon ako sooo masaya. Yaong dalawang linya ibinigay sa akin sakit ng ulo para sa araw ... Salamat.
 
Kamusta Tahmid, sa tingin mo kailangan kong gamitin ang ANSEL utos?
 
Kumusta, Hindi sa tingin ko. ANSEL ay hindi para sa mga litrato tulad ng 16F877A. Lamang ito para sa mas bagong mga chips tulad ng 16F887. Ako nagtatrabaho sa isang PC kung saan mikroC ay hindi magagamit o naka-install. Kukunin ko na mag-post ng Proteus file sa sandaling ako umuwi at patakbuhin ang aking PC.
 
Uy Tahmid, Nakatanggap ako ang mga bagay na pagkatapos ang lahat ng. Mukhang tulad ng sa AN0 pin depekto :-( ko binago ang microcontroller at ang iyong code ay nagtrabaho tulad ng isang panaginip! Salamat ng zillion, mate! Cheers!
 
Kamusta Tahmid, kailangan ko ang iyong tulong muli. Mayroon akong upang kunin ang 5 analog na halaga, isa pagkatapos ng isa. (Gamit ang 10-bit ADC sa 16F877A, ito ay malinaw naman nagsisinungaling sa pagitan ng 0 at 1023). Ngayon, kailangan ko upang suriin kung ang bawat isa sa mga halagang ito ay namamalagi sa loob ng isang tinukoy na band. Kung hindi, pagkatapos ay output ay dapat na aktibo. Halimbawa, kung ang 1st halaga ay namamalagi sa loob ng 555 at 600, namin magpatuloy sa susunod na halaga, kung hindi man namin ng port C.5 mataas para sa halos 50 mSecs at magpatuloy sa sa 2nd na halaga na maaaring nagsisinungaling sa pagitan ng 200 at 220, at iba pa .... Kaya para sa 5 halaga, ay namin pinaka-malamang na kailangan upang magkaroon ng isang array na may sampung halaga. Maaari mong gabayan sa akin kung paano pumunta tungkol dito. Maaari mo ring ninyo akong bigyan ang iyong e-mail address o Skype ID? Salamat & Regards. Deepak
 
kumusta Tahmid ikaw ay mukhang mahusay na engineer iwant iyong tulong sa, hi guys paumanhin para ito stupied tanong ngunit iam bagong un micro controller gamitin i PIC16F877 at iwant sumulat acode halimbawa kung temperture lumagpas sa partikular na halaga para sa halimbawa 25 ang LED sa o fan trabaho tala COMPARATOR ng iuse bilang switch at i gumagamit ng micro c o micro pro at gamitin i COMPARATOR at gustong i pin paggamit: RA0-RA3 pin: RA4-RA5 AS output
 
kumusta Tahmid ikaw ay mukhang magandang engineer iwant ang iyong tulong sa; hi guys paumanhin para sa stupied tanong ngunit iam bagong un micro controller gamitin i PIC16F877 at iwant sumulat acode halimbawa kung temperture lumagpas sa partikular na halaga halimbawa 25 ang LED ay sa o fan trabaho tandaan na iuse COMPARATOR bilang switch at i gumagamit ng micro c o micro pro at gamitin i COMPARATOR at gustong i pin paggamit: RA0-RA3 pin: RA4-RA5 AS output
ako alam ito ay huli na, ngunit kailangan mo pa rin ng tulong dito? Pagkatapos ay maaari ko ng tulong.
 

Welcome to EDABoard.com

Sponsor

Back
Top