Bygga voltmätare med PIC16F870 (som jag har ett gäng liggande) till ett dubbelt (+-) 30V nätaggregat.
Jag behöver hjälp av er som är erfarna av att programmera PICar för att lösa detta.
Kan även tillägga att jag håller på att lära mig assembler och min kunskap inom det så långt är att jag kan få PICen att blinka lite lysdioder, sampla AD converter och skicka det till en port i binärt format osv. Ganska basic egentligen.
Nu vill jag lära mig mer!
Jag hade tänkt följande: EN F870 ska sampla 4 olika analoga ingångar som ska motsvara positiv spänning, negativ spänning, positiv ström och negativ ström i aggregatet.
4 stycken 4-siffrors LED-displayer ska användas för att visa värdena, dvs en 4-siffrors LED-display för spänning på nätaggregatets positiva utgång, en display för strömmen på samma utgång, nästa display visar den negativa utgångens spänning och slutligen en som visar negativ ström.
ex. (+)12.15(V) , 00.35(A) , (-)08.45(V) , 02.30(A)
texten inom parentes ska tryckas på frontpanelen på agget.
Displayerna bör man väl kunna köra på samma portar på PICen och sedan multiplexa matningen till dom så att endast en display är aktiv åt gången?
Samtidigt multiplexar man även dom olika siffrorna i varje display.
Det stora problemet är att jag har inte en aning om hur jag ska omvandla mina AD mätdata (10 bitar =1024 decimala värden) till begriplig displaydata. Att sampla och skicka ut binärt kan jag, men det blir ju ren grekiska på en 7 segments display. Dessutom ska ADns b'1111111111' motsvara 30.00 volt på min display, inte 1024 V

Jag får använda lookup tabeller för att tända rätt segment som motsvarar siffrorna, det är jag med på.
Frågan är hur jag omvandlar mina AD-värden till rätt "nivå" och sedan räknar fram vilka siffror på displayen som ska tändas och vilka data dom ska få.
Jag har lite svårt att ens formulera problemet men jag antar att ni som har programmerat och drivit displayer förstår ändå.
Jag vill inte att någon ska skriva assemblerprogrammet åt mig, jag behöver bara en knuff i rätt riktning och kanske några exempel som visar hur jag ska gå tillväga.
All hjälp uppskattas!