Hallo Elektroniker, heute will ich Euch mal mein letztes Projekt, oder besser gesagt einen Teil davon vorstellen und vielleicht passt es bei dem einen oder anderen von Euch. Wie der Name sagt, handelt es sich um eine 3fach Spannungs / Strom- Anzeige auf einem 2x16 Display. Ich wollte damit mein doch schon etwas betagtes Labornetzteil aufwerten. Da ich eine Festspannung (5V) und 2 variable ( 1x unsymetrisch 0-25V und 1x Symetrisch 2-15V ) habe, ist die Anzeige entsprechen vorbereitet. ( Punkte ) Die Stromanzeige ist für alle gleich auf max. 4,096A ausgelegt. Woher 4.096A ?? Der Grundmeßbereich des A/D ( LTC1093 6 Kanal A/D mit 10 Bit) beträgt hier 4,096V. An einem Rsense von 0,1 Ohm ergibt das .... na ?? Im Schaltplan ist exemplarisch für Vref ein LM4040 eingezeichnet. Dieser kann natürlich durch entsprechende Referenz Spannunsgquellen zB. REF19xx von Analog oä. ersetzt werden. BITTE...keine Z-Dioden...... es gibt keine mit 4.096V !!!!!! Die Genauigkeit des ges. Systems steht und fällt damit !!!! Die Anzeige entspricht der Kanalbelegung. Kanal 0,1,2 erste Zeile und Kanal 3,4,5 zweite Zeile. Die Einstellregeler am Eingang des A/D haben lediglich symbolischen Charakter. Dei Anzeige sieht wie folgt aus: | 5,05 12,2 15,8 V| Kanal: 0 1 2 | 1,01 0,12 0,92 A| 3 4 5 Die Spannungsmessung erfolgt auf Kanal 0-2. Die Strommessung erfolgt auf Kanal 3-5. Die Einstellregler für Kanal 3-5 (symbolisch) sollten durch entsprechende I/U Wandler oder Differenzverstärker ersetzt werden. Da alle benötigten Informationen vorliegen, ist auch möglich eine 6fach Spannungsanzeige oder 6 fach Stromanzeige oder irgendeine Kombination daraus zu machen. Ich habe lediglich Kanal 1 und 2 mit Vornullunterdrückung ausgestattet. Da Ihr aber alle selber Fit seid, könnt Ihr den Rest selber machen. Denken ist im Gegensatz zum Rauchen nicht schädlich. ;-) Das Programm ist so gestaltet das es auf jeder 8051 basierender MCU läuft. Entwickelt auf 89C51ED2 RAM Speicher ( intern) wird nur bis 7Fh benutzt !!!! Also geht auch 89C2051. Die Querzfrequenz liegt bei typ. 11.059 MHz ( Gruß von V.24 ) Grüße Stephan ps.: im Schaltplan ist nicht jedes Detail und jeder Wert angegeben. Wie gesagt.....nachdenken schadet nicht.
Hi Stephan, den MAX186 nehme ich wegen 8x12Bit + interner 4,096V Ref. Mit meinem Fluke189 messe ich bei 4 Modulen nie 4,096V. Als DAU verwende ich den LTC1446, der hat intern 4,096V. Stimmt aber auch nicht genau. Lade mal des LTSpice, dann sind die analog Schaltungen kleiner und berechenbar. Der USB-89C51A läuft mit 24Mhz, X2-Mode, seriell geht grade noch so mit 115200. Und wieder kleine mecker: MOV R6,A ; Low wert ; MOV A,R6 ;überflüssig subtraktion: CLR C hier: INC zähler1 ;bei Rückspring ist c nie gesetzt MOV A,R6 SUBB A,#fah MOV R6,A MOV A,R5 SUBB A,#0 MOV R5,A MOV A,R6 ;überflüssig JNC hier ;subtraktion . . . MOVC A,@a+dptr ;leg gleich ASCII ab! ADD A,#30h ;dann überflüssig MOV zähler001,A So, erst mal mehr nicht, für heute habe fertig. Gruß Pieter
hast auch immer was zu meckern...... Nich böse gemeint :-) Machs gut
@Pieter,
jo stimmt MOV A,R6 1x überflüssig, stammt noch von der
Fehlersuche......
>subtraktion: CLR C
hier: INC zähler1 ;bei Rückspring ist c nie
gesetzt
MOV A,R6
SUBB A,#fah
Sollte nicht JEDE Subtraktion mit CLR C anfangen sofern sie nicht das
Ergebnis einer vorherigen ist und C noch gebraucht werden könnte ???
Jo ASCII könnte man auch gleich ablegen, da viele Straßen nach ROM
führen. Aber die Tabelle war fertig und ein ADD a,#30h einzufügen ist
nun mal kürzer als die Tabelle neu zu schreiben.
un man lernt jeden Tag was dazu ......
Machs gut
Hi Stephan,
>>Sollte nicht JEDE Subtraktion mit CLR C anfangen
nö, der Rücksprung kommt ja nur wenn KEIN C, warum also das nicht
gesetzte C nochmal löschen??? Einfach Zeit sparen.
Das war heute morgen nicht mehr fehlerfrei:
MOV R6,A ; Low wert
;MOV A,R6 ;überflüssig
subtraktion: CLR C
hier: INC zähler1 ;bei Rückspring ist c nie gesetzt
;MOV A,R6 ;überflüssig, A ist immer R6
SUBB A,#fah
MOV R6,A
MOV A,R5
SUBB A,#0
MOV R5,A
MOV A,R6 ;das wird doch gebraucht
JNC hier ;wenn Rückstellung
ADD A,#fah
Mit Gruß
Pieter
ich weis da obere ist zu viel.... wie geasgt Fehlersuche. Display spinnte ja rum... wegen Init von Zähler1 udn 01. Ist jetzt drin und gut. Warst mal bei Allegro ???? Interessant Sachen haben die da. Stromsensoren. Was mir gefällt ist der A3977SED. für ne fräse ?? !!! Sample schon geordert !!! CNC at Home !!
@Pieter, "MOV R6,A ; Low wert ..." hatten wir das Ganze nicht schon längst: http://www.mikrocontroller.net/attachment.php/341943/DISP409.A51 - negative Zahl addieren spart "CLR C" - "XCH" spart ein "MOV", wenn man den Accu noch braucht. Peter
jo Peter, so isses, aber im Vordergrund stand ja der Lerneffekt nicht das abschreiben. Ich wollte wissen was Ihr anders oder kürzer machen würdet. Davon habe ich einiges aufgenommen wie zB MOV A,'0'-1. Oder das High Byte bei Überlauf links liegen zu lassen. Solche Sachen bleiben hängen. 1oder 2 Zeilen mehr machen den Kohl nicht fett. Hauptsache ist doch man liegt nicht völlig daneben. Also bis dann
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.