Dataopsamling Klaus Jørgensen Gruppe. Klaus Jørgensen, Jacob Clausen Og Ole Rud Erhvervs Akademi Fyn Allegade 79 Odense C 5000 fra d 2/12-02 til d 20/12-02 Vejleder: SKH.
Forord: Denne rapport omhandler en hel del programmering, hvor der skal snakkes sammen mellem et print med to temperaturmåler som er blevet konstrueret i et tidligere projekt, og et minimumssystem hvor der skal laves et program til, som kan omdanne et analogt signal til et digitalt signal. Det praktiske og programmeringen blev lavet i sammenarbejde med, Jacob Clausen og Ole Rud. Jeg har lært meget om programmering i dette projekt, det har været rat at kunne se det man har programmeret på pc en, virke med noget visuelt, I store træk har det været et rigtigt sjovt projekt. Summary: This paper is about how to make a program that workes on a minimum system, and can make a analog signal into a digital signal. In this project we used a temperature measure device, which we build in an earlier project, to create the analog signal we would need. When the minimum system is working, it collects data in to the RAM. In the procces the analog signal converts it into a digital signal, where it is transformed into a digital signal that can be sendt to the pc and come on the screen. Now we have created a device, that converts the analog signal into a digital signal, and we are now able to read the measurements on screen. This was the assignment given, in this last week befor the christmas holliday. 06-01-2003 Klaus Jørgensen 06-01-2003 1
Indholdsfortegnelse: Side 1: Forord. Side 1: Summary. Side 2: Indholdsfortegnelse. Side 3: Indledning. Side 4: Tidsplan. Side 4: Blokdiagram Hardware. Side 4: Beskrivelse af Hardware. Side 5: Beskrivelse af Hardware. Side 6: Programbeskrivelse. Side 6: Hierarki-diagram. Side 7: Beskrivelse af Hierarki-diagram. Side 8: Beskrivelse af Hierarki-diagram. Side 9: Beskrivelse af Hierarki-diagram. Side 9: Styk liste. Side 9: Litteraturliste. Side 9: Konklusion. Bilag 1: Kilde kode. 06-01-2003 2
Indledning.: Opgaveformulering.: Der skal opsamles to analoge signaler fra temperaturmåleren, henholdsvis fra LM 35 og PT1000, som skal sendes til minimumssystem der lager, den opsamlet data i rammen sammen med et opsamlings tidspunkt. Dataopsamlingen programmeres i Keil til et 80535 minimumssystem. Dataene skal kunne sendes serielt ( RS232) til pc og vises på skærmen i eks. hyper-terminal. Problemformulering.: Hvad er et minimumssystem Hvordan virker et minimumssystem? Hvordan sættets det sammen med temperaturmåleren? Kravspecifikationer.: Indgangssignaler.: 2 stk. analoge signaler fra 0 til 5 volt Digitale inputs 3 stk. knapper, 0 og 5 volt 1 dipswitch med 8 indgange Udgangssignal.: LM35 temperatur aflæses på port 5 i binær kode. PT1000 temperatur aflæses på port 5 i binær kode. Temperaturforskellen mellem PT1000 og LM 35 i binær kode. RAM-Blok status aflæses på display. 2 stk. nightridelys for at, give gruppen et bredt kendskab til c-programmering af port 5. Andre krav.: Hvis tiden tillader det, kan der evt. suppleres med: Variabel opsamlings tid Nulstilling af lager Indstilling af ur. Alarm (Ved fuld RAM-Blok) 06-01-2003 3
Tidsplan.: Klaus Jørgensen Uge 48 Uge 49 Uge 50 Introduktion til: Keil Minimumssystem ADC Tilpasning af temperaturmåler For projekt Systemdesign Udarbejdelse af system Indlæring af system. Programmering Test Test Til retning Dokumentation Blokdiagram Hardware.: Beskrivelse af Hardware.: Temperaturføler.: Temperaturføleren er fra et tidligere projekt, den kan måle to steder indendørs med en LM 35 der måles mellem +5 - +35 grader, udendørs med en PT1000 der måles mellem -10 - +40 grader. Signalerne er mellem 0 5 volt. Printet hvor temperaturføleren er monteret på, er blevet modificeret til dette projekt med tre knapper der bruges til nogle funktioner. Left bruget til indtastning af tid og ud printning på pc skærm. Right bruges som enter knap. Reset genstarter systemer så man skal indtaste tid igen. 06-01-2003 4
Der er også monteret et lille sikkerheds kredsløb til analog port 4 som består af 2 dioder (1N4148) og en 1K modstand, det har den funktion at der ikke kommer et for stort signal ind på analog port 4, signalet må kun være mellem 0 og 5 voldt. Fra temperaturmåleren og til minimumssystem er der 6 ledninger, 3 til knapperne, 2 til de analoge signaler og 1 så temperaturmåleren og minimumssystem har samme stel potentiale. Diagram over sikkerhedssystemet. Minimumssystem.: Minimumssystem har en 80c535 som µp, minimumssystemet er blevet tilpasset sådan at der på EURO connectorer ben c22 er der loddet et loddespyd på så der kan monteres en ledning, til analog port 4, mellem minimumssystemet og pc en er der et RS232 kabel. PC.: Pc en viser indholdet af ram lageret fra minimumssystem når man er hyber-tarminalen og trykker på knap left hvis man bliver bet om det. 06-01-2003 5
Programbeskrivelse.: Programmet er opbygget på en sådan måde at man skal indstille tiden før at programmet begynder at fylde ram lageret op, det gøres på følgende måde, først indtastes timer ved at trykke på knap left ind til det ønsket antal timer er opnået, for at bekræfte skal der trykkes på knap right. Derefter gentages det samme med minutter. Derefter indtastes hvor stort måle interval der skal være mellem målingerne. Der bliver målt ind til der trykkes på left, som er den knap der bruges til at udskrive data fra rammen til pc en, eller når ram lageret er fyldet op, til det der er sat som max, blinker alle lys dioderne på port 5 som en indikation af at rammen er fuld, hvis minimumssystemet er tilsluttet til en pc bipper pc speakeren også. Hvis der trykkes på reset startes programmet forfra så der skal indtastes en ny start sid. Mens der opsamles data til rammen kan der vises nogle små ting på lys dioderne på port 5 alt efter hvordan dipswitcne på port 4 står. Ramstatus: Efterhånden som ramkredsen bliver fyldt bliver værdien på port 5 højere PT1000 temperatur: i binær kode LM35 temperatur: i binær kode Forskellen mellem PT1000 og LM35 i binær kode NightRider 1: Et enkelt lys løber frem og tilbage NightRider 2: Et slukket lys løber frem om tilbage foran en tændt baggrund Hierarki-diagram.: 06-01-2003 6
Beskrivelse af Hierarki-diagram.: Når programmet bliver startet op er der blevet lavet et araye af 1000 temperaturmaalingsstruct som indeholder 3 integers, tid som er den tid som programmet har kørt i antal sekunder, PT1000 og LM 35 som inde holder temperaturen i grader, arrayet bliver lagt på adresse 0x0000 i xdata for så er der plads nok til dette projekt. Der laves også starttimer og startminut, hvor den tid der indkastets i starten af programmet ligges, mint der er det antal sekunder der er indtastet til måleinterval, sec og frac, sekund der viser hvor lang tid programmet har kørt siden start og warning, frac bruges af timeren. Main.: Main er den del af programmet der får det hele til at fungere, main starter med at kalde Init, hvorpå den køre en uendeligløkke, display funktionen kaldes, den viser forskellige ting på lys dioderne, port 5, input bliver også kaldt, den bruges til at gemmer ting i rammen med. Reset kontrolleres om er blevet aktiveret, er den det bliver funktionen reset kaldt og tiden skal indstilles igen. Left kontrolleres også, vis den er blevet aktiveret, skrives det der er i ram lageret ud på skærmen i hyber-terminal. Timer.: Timeren kaldes via af et hardware interupt, som kaldes hvert 250usek, som tæller frec op med 1, når det er sket 4000 gange tæller den variablerne sec og sekund op med et sekund, og frec sættes til 0. (4000* 250µsek = 1 sek.) Init.: Init er den funktion der sætter de flag og variabler der skal bruges i programmet, og sætter de ting som analog til digital konverteren skal bruge til 0. (ADM, MX0, MX1 og MX2). Init kalder også indstil som er en funktion, hvor man bestemmer start tidspunktet for målingerne, og måle interval i sekunder. 06-01-2003 7
Input.: Laver det analoge signal som er mellem 0 og 5 volt, om til et digitalt signal og konvertere det der efter om til en temperatur værdi i celsius og gemmer den i rammen, omregningen bruger følgende formler, T er det resultat konverteringen er kommet frem til, de 51 fordi det er 255/5 er = 51, 51 = 1 volt og 255 er = 5 volt. pt1000=((t*10)/51)-10. eks. T = 102 ((102*10)/51)-10 = 10 grader. lm35=((t*6)/51)+5. eks. T = 102 ((102*6)/51)+5 = 17 grader. 06-01-2003 Side 5. Klaus Jørgensen men inden da har den sammenlignet tiden med måleintervallet som sættes i starten af programmet, for at kontrollere om måleintervallet er opnået. Når rammen er fuld kommer der en warning, på minimumssystemet begynder P5 at blinke, hvis der er tilsluttet en PC til minimumssystemet kommer der en tekst frem på skærmen, samt Pc speakeren bipper nogle gange. Output.: Når der trykkes på knap left, bliver der udskrevet data fra rammen på minimumssystemet til pc skærmen, dette kan gøres mens der tælles op i rammen selv om der ikke er kommet en warning. Variablen time sættet til at være den indtastede timer plus det antallet af timer programmet har kørt, resten tilføjes til minutter og det der er der udover er sekunder. Display.: P5 skal vise det som der er sat på P4 med mindre at der er warning, så skal programmet straks få P5 til at blinke!!! Warningen har 5 forskellige blinke rytmer som skiftets mellem tilfældigt. Når der ikke er nogle af knapperne på P4 der er sat til logisk 0 vil der på P5 blive vist en status over hvor meget af rammen der er brugt, til dette formål er der et lille regne stykke, 1000/256 = 3.92156, de 1000 fordi det er ram lageret er sat til max 1000 målinger, og 255 fordi så er der lys i alle 8 lys dioder på P5, P5 værdien bliver en højder for vær 3.92156 måling der bliver foretaget. Når P4 bliver sat til at være 1 i binær kode vil der på P5 vises temperaturen fra PT1000, det 7 bit er minusindikator, hvis der måles en værdi på PT1000 bliver der lagt 128 til måleresultatet. 06-01-2003 8
P4 bliver sat til 3 i binær kode, bliver der på P5 vist temperaturen fra LM35, og da den ikke kan måle minusværdi er der ingen minusindikator. P4 ændres til 7 i binær kode, vises der forskellen mellem de to temperaturmåler. Der kan også vises to night rider lys på P5, hvis P4 lige med 127 i binær kode vises NightRider2, som er en slukket lys diode der løber frem og tilbage mellem de tændte, ændres P4 til 128 i binær kode er det en tændte diode der løber frem og tilbage. Reset.: Kaldes fra main hvis reset knappen bliver trukket til logisk 0, reset programmet ved at kalder init og sætter ram tælleren til 0. Styk liste.: 1 stk. PC 1 stk. Minimumssystem 2 stk. Temperaturfølere Litteraturliste.: www.keil.com Brugermanual til SAB 80515/SAB 80C515 8-Bit Single-Chip Microcontroller Family Konklusion.: Der blev gennemgået noget teori på klassen og ud fra det skulle der konstrueres et program, som skulle kunne lave et analogt signal om til digitalt signal og vise det på en pc skærm. I gruppen lavede man først nogle af de opgaver der blev udelt af læreren, som der kunne forbedres eller bare bruges, til det endelige produkt. Kravene som blev stillet er opnået til tilfredshed. 06-01-2003 9