PIC16F877 sisäinen ADC

S

S_51

Guest
Olen päättänyt käyttää PIC16F877 LC muuntaa 4-20mA analoginen signaali.Kävin läpi käsikirjan ja tuli koko ADCON 1 rekisteriin.Sain selville, että sillä on kaksi osaa; yhden bitin ADFM ja 4-bittisen PCFG3: PCFG0.Oli taulukko, jossa olin oli käyttää, jotta voitaisiin määritellä, mikä asettaa PCFG3: PCFG0 on.En keksi kaksi ratkaisua: "0101" tai "1110".Molemmissa tapauksissa Vref-on vss mutta Vref on RA3 ja Vdd vastaavasti.Voisiko joku hieman selventää joka minun tulisi käyttää ja miksi?Lisäksi minun on näiden tietojen on oltava näkyvillä on LCD (joka 5s tai niin) ja samaan aikaan saataville GPRS-modeemi, jossa on SIM-kortti.Any ideas?Lopuksi, jos sinulla on mitä tahansa koodin tai kaavio siitä, miten minun pitäisi mennä tekemään tämän tehtävän kerro minulle ...Kiitos

 
Tässä on yksinkertainen ADC ohjelma melabs vuonna picbasic ammattilainen.Se käyttää 877 ja näyttämään sen LCD.

"PicBasic Pro ohjelmalle lukea ruukuissa on 16F877 ADC

"Määritä LOADER_USED jotta käyttö käynnistyslataimen.
"Tämä ei vaikuta normaaliin ohjelman toimintaan.
Määritä LOADER_USED 1

"Määritä LCD nastat
Määritä LCD_DREG PORTD
Määritä LCD_DBIT 4
Määritä LCD_RSREG PORTE
Määritä LCD_RSBIT 0
Määritä LCD_EREG PORTE
Määritä LCD_EBIT 1

"Allocate muuttujat
x var byte
y var byte
z var byte

ADCON1 = 4 'Määritä Porta 0, 1, 3 analogista tuloa

Matala PORTE.2 "LCD-R / W linja alhainen (W)
Keskeytä 100 "Odota LCD aloittaa

Goto mainloop "Skip subroutines"Subroutine lukea A / D-muunnin
getad:
Pauseus 50 "Odota kanava-asetukset

ADCON0.2 = 1 'Start muuntaminen
Pauseus 50 "Odota muuntaminen

Paluu

"Subroutine saada potti x arvo
getx:
ADCON0 = $ 41 'Määritä A / D Fosc / 8, Channel 0, Käytössä
Gosub getad
x = ADRESH
Paluu

"Subroutine saada potti y arvo
gety:
ADCON0 = $ 49 'Määritä A / D Fosc / 8, Channel 1, Käytössä
Gosub getad
y = ADRESH
Paluu

"Subroutine saada potti z-arvo
Getz:
ADCON0 = $ 59 'Määritä A / D Fosc / 8, Channel 3, Käytössä
Gosub getad
z = ADRESH
Paluumainloop:
Gosub getx Hae x arvo
Gosub gety Hae y arvo
Gosub Getz Hae z-arvo

Lcdout $ fe, 1, "x =", # x, "y =", # y, "z =" # z 'Lähetä arvot LCD
Keskeytä 100 "Onko se noin 10 kertaa sekunnissa

Goto mainloop "Onko se ikuisesti

Loppu

Hope it helps.

terveisin

dfullmer

 
A / D käyttää ref jännite sen täyden asteikon arvo.
Jos päätät käyttää Vdd varten Vref, sitten tarkkuus, että A / D tulos riippuu vakautta ja melua "Micro
n Vdd rautateitse.Tämä on adaquate useimmissa tapauksissa.
On suurempi tarkka A / D-tuloksen, voit halutessasi käyttää Viite jännite tuloliitin RA3.Viittaus jännite voisi olla syntyy vakaa bändi kuilu diodi.Voit ostaa näitä suunniteltu tähän tarkoitukseen.Esimerkiksi käyttämällä 4,096 jännite ref kanssa kaksitoista bit A / D-muunnin, tulos on 1mV per bit.

 
voit käyttää VDD kuin VRef ja VSS kuin VRef-in 4-20mA loop voit muuntaa 4mA-> 1V ja 20mA -> 5v kuin se tapahtuu, voit käyttää koko VDD valikoima.

 
No i päätti käyttää 250Ω potin jotta vaihtelevat jännite alkaen 1V on 5V, joka vastaa 4mA - 20mA.Pitäisikö minun käyttää sisäistä OSC on PIC tai minun pitäisi käyttää ulkoista yhden?Olen lukenut somwhere että ulkoinen OSC on tarkempi kuin sisäinen löytyy PIC.Olen niin ikään käyttäen Assembly kieli joten jos joku on ASM koodin osuus aion todella appriciate se.
Kaikki ideat GPRS-osa?

PS Kiitos dfullmer teidän aikaa ja vaivaa ...

 
Hi S_51,

ADC:
Käytän yleensä VDD ja VSS viitejäsenvaltiona jännite.PIC on 10bit ADC, tämä tarkoittaa epätarkka mittaus aikavälin määrän muuttamisen bitteinä.Joten olen sitä mieltä, että tarkka jännite viite kanssa 10bit ADC ei ole paljon järkeä.Sisäinen / ulkoinen osilator:
Sisäinen osilator on lämpötila huollettavana, joten hanke, jossa sinun ei tarvitse tarkkoja mittaus, sisäinen OSC.on aivan OK.Jos käytät ulkoista osilator kanssa XTAL (with 10ppm tai vastaava) sinun kellon PIC on hyvin saman yli lämpötila työskentelevät alueella.

GPRS:
Tämä riippuu GPRS-modeemi käyttää.Useimmissa tapauksissa tänään GPRS-modeemit ovat omiaan tekemään TCP / IP-yhteyttä, niin sinulla on "musta laatikko" on sarjaportti.

MCU --- Max232 --- GPRS-modeemi - - - - - - - GPRS-modeemi --- muuta laitetta, joka odottaa analogista mittausta.

Siinä tapauksessa sinun tarvitsee vain tehdä viesti (muuntaa analogisen arvon ascii caracters) ja lähettää sen kautta Seria satamasta GPRS-modeemi.Ystävällisin terveisin,

Mr.Cube

 
Jokin aika sitten kirjoitin pieni ohjelma auttaa kirjallisesti kokoonpanijalle koodi, lähetetty tänne.

www.elektroda.pl/eboard/viewtopic.php?p=205856

Anna sille yrittää.

 
Hei siellä.

Voit auttaa minua oppimaan Picbasic käytin tiedostoja, jotka on julkaistu varten Lab-x1 devopment aluksella.Sen sijaan, että ostamalla aluksella rakensin sen Proteus ja sitten simuloitava ohjelmaa / laitteistoa.Sisältyvät tiedostot alla ovat esimerkiksi toisen postitse.

bas / hex tiedostoja
http://rapidshare.com/files/210080020/msm_Picbasic_lab-x1.rar

Proteus kaavamaisen
http://rapidshare.com/files/210079846/msm_lab-x1.rar

Aion lisäämällä tiedostoja ja päivittäminen kaavamaisen lämpötila / RTC liiketoiminnot lähipäivinä.

Hope nämä tiedostot on hyödyllistä.

 

Welcome to EDABoard.com

Sponsor

Back
Top