Digital Termometer J10 B4 A4 GND GND GND B1 GND GND GND GND B3 A3 +5V +5V A3 +5V A2 +5V +5V A2. +5v B16 A16 UREG UREG B1 6 AC AC A1 6 A6 6



Relevanta dokument
Datakommunikation med IR-ljus.

Stegmotorn Tvåfasdrivning Unipolär lindning

Dig i tal Termometer

Digitala Projekt (EITF11)

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Föreläsning 3.1: Datastrukturer, en översikt

Systemkonstruktion SERIEKOMMUNIKATION

Mätningar på transistorkopplingar

Grunderna i stegkodsprogrammering

Installationsguide. För att installera mjukvara och hårdvara, följ nedanstående anvisningar.

WAGO IO System Service Seminar. Diagnostik

Provmoment: Ladokkod: Tentamen ges för: Tentamen TE111B El3. Namn: Personnummer: Tentamensdatum: Tid: 14:00-18:00.

7 Använd siffrorna 0, 2, 4, 6, 7 och 9, och bilda ett sexsiffrigt tal som ligger så nära som möjligt.

Teckentavlor. Inställning av styrsätt med programvalsratten

En ideal op-förstärkare har oändlig inimedans, noll utimpedans och oändlig förstärkning.

Lathund för att arbeta med pdf

Läs detta innan du fortsätter, eller skriv ut det, klicka runt lite och läs samtidigt.

D/A- och A/D-omvandlarmodul MOD687-31

Telefrang Smoke Control System Installationsmanual för Midi- och MaxiSmoke Sida 1 av 12

19. Skriva ut statistik

RödGrön-spelet Av: Jonas Hall. Högstadiet. Tid: minuter beroende på variant Material: TI-82/83/84 samt tärningar

RVS5000PC. Allmänt. RVS5000PC produktblad

Semester och arbetstidsförkortning

Introduktionsuppgift till enchipsdatorn.

Föreläsningsanteckningar 3. Mikroprogrammering II

Manual för version V2

Användarmanual till AD OnLine

Växtviskaren EITF11 Digitala projekt VT15, I12

Lathund GUL Lärare. Allmänt. Hur du presenterar Dig själv för kursdeltagarna. Hur du lägger upp din kontaktlista

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

Personligare e-post Mejl med fokus på avsändaren

Lathund för överföring av rapporter och ljudfiler

VASS HBI Användarmanual

Skapa ett register över din grupp/klass

TSIU50 Mikrodatorprojekt. LAB1 AVR-introduktion och logikanalysator

Användarhandbok OE/OSSpeaker V.10.3

Repetitionsuppgifter i Matematik inför Basår. Matematiska institutionen Linköpings universitet 2014

Nordline. Monteringsanvisning Garageport. Lertagsgatan Hallsberg

Installationsanvisning för kursens programvara på egen dator

ZACI är den programvara som är navet i kommunikationen när det gäller kortbetalningar.

Inledning. Att bli medlem

4:4 Mätinstrument. Inledning

Användarmanual Jobb i Stan. CV-Handboken. Registrering, jobbsökning mm. Copyright Aditro. All rights reserved.

Tentaupplägg denna gång

Sidor i boken , , 3, 5, 7, 11,13,17 19, 23. Ett andragradspolynom Ett tiogradspolynom Ett tredjegradspolynom

Låt ipad bli fjärrkontroll för din Mac

Mobil lagerhantering med streckkodsskanner

Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer

Excelfiler läggs till i ArcMap på samma sätt som annan data, genom Lägg till Dataknappen.

Programmering Grundkurs (6H2950) Grundläggande Programmering (6A2001)

En guide till FirstClass

Beskrivning av hur du ansluter en E-terminal från Beijer Electronics till HC900 via Ethernet så att denna kan visa och manipulera data i HC900.

DE FYRA RÄKNESÄTTEN (SID. 11) MA1C: AVRUNDNING

Lathund till Dexter IUP

Programmering av Thangram portregister System XIP (VA/08)

Administration av landstingsstatistik. Statistiktjänsten

Installationsanvisning för anslutning via ADSL mot HoforsNet i Windows XP.

En handledning för studerande på Högskolan Kristianstad

Till assemblersystemet Zuper 80 Assembler krävs en SPECTRAVIDEO 328/318+minst 16K ram extra.

Konfigurera Xenta från Point

Steg 4 b. Molntjänster Onedrive Office 365 Windows 10. Mars -16 Liljedalsdata.se. Liljedalsdata Molntjänster En del av steg 4 Sida 1

INSTRUKTIONSMANUAL QHW+

Administration - Skapa och administrera användare. Din roll som administratör 1. Meny och huvudfunktioner 2-4. Skapa en användare...

A-del motsvarande KS1

BiDisp2 PRODUKTIONSSYSTEM. Robust och flexibel display för industriella tillämpningar

Klicka på en sökrad för att få fram hänvisningar, fullständig information och möjlighet att skicka meddelande via e-post eller sms.

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

Installations och drifthandbok

Att göra investeringskalkyler med hjälp av

Användarmanual konsult

Snabbmanual IC-PCR100.

Resultatnivåns beroende av ålder och kön analys av svensk veteranfriidrott med fokus på löpgrenar

Microprocessor / Microcontroller. Industrial Electrical Engineering and Automation

2. Komma igång Skapa grupper och elever Skriv också ut sidan 13 så att eleverna har en snabbguide till programmet.

4 proffstips för icloud

Detta är en kort Manual för Vecturas portal för presentation av inventeringar. Adressen till portalen är:

Switch Driver 5. Programvara för Radio Switch, JoyBox och JoyCable. Sensory Software

Styra olika typer av objekt som animering, video, ljud och Flashfilm

QlikView - Lathund för Flödesmodellen bas

easy&cosy digital thermostat Installationsguide

MANUAL NETALERT FÖR ANDROID VERSION 3.3

Din manual NOKIA LS-2

VIDA ADMIN LATHUND INNEHÅLL

Elisabeth Bejefalk IT-Assistent Avesta kommun

ORDNA DINA BILDER. Var finns bilderna Var bör de finnas

Här kan du välja befintligt upplägg eller skapa ett nytt. Klicka på edit uppe till höger för att redigera och/eller skapat nytt.

DATORTEKNIK. Tangentbord, knappsatser och deras avkodning

Det finns möjlighet att skicka SMS från ett flertal ställen i Rebus-systemet, detta dokument går igenom alla ställen där det fungerar.

NRS Excelrapporter. Välj Export av data. Gör dina val.

Lagadministration Linda Emterby

Handbok Artikulate. Andreas Cord-Landwehr Ondrila Gupta Översättare: Stefan Asserhäll

Ändra, kopiera eller radera publikation (staff)

Manual Nedladdningsbara klienten NLK

Lathund, till Photo Story, för skräckslagna lärare

SÅindex 5 i Microsoft Excel 2010

Decipher och Datataker DT100

4 Laboration 4. Brus och termo-emk

Google Apps For Education

55200 Inspelningsbar microfon

Systemkonstruktion LABORATION REALTIDSPROGRAMMERING

Transkript:

Digital Termometer I den här uppgiften skall vi mäta temperaturen på ditt kaffe. Vi använder en termistor som temperaturkänslig givare och timerkretsen 555 som A/D omvandlare. Temperaturen presenterar vi sedan dels på en LCD display, men skickar den även till en PC och visar den på datorskärmen. Eftersom termistorn har ett olinjärt samband mellan temperatur och resistans måste vi göra en polynomanpassning av resistansen mot temperaturen. Termistorn har en negativ temperaturkoefficient (NTC), dvs dess resistans sjunker (mycket olinjärt) med stigande temperatur. Ändringen är verkligen stor, resistansen ändrar sig med en tiopotens för en ändring av några tiotal grader. Det gör att vi kan använda termistorn som en enkel och billig temperaturgivare. För att konvertera temperaturen till ett tal som enchipsdatorns program sedan kan behandla vidare låter vi först resistansen hos termistorn styra tiden hos en monostabil vippa.denärbyggdmedtimerkretsen555.tidenhosvippanmätervisedan genomatt räkna datorns klockpulser(k) i enchipsdatorns timer-del under den tid vippan är omställd. to PC +5V 1 VCC 2 RST G ND DS18 13 3 RS23 2 Com mun ication VDD 0.1u 28 RST +5V 0.1u 14 Vc c 8 4 Out OSC1 OSC 5 OSC2 1 IRQ 3 VSS MC6 8HC9 08JL3 A0 A1 A2 A3 A4 A5 B0 B1 B2 B3 B4 B5 B6 B D0 D1 D2 D3 D4 D5 D6 D J9 J10 B4 A4 B1 A4 B4 A1 B1 A1 B3 B3 A3 +5V +5V A3 A2 +5V +5V A2 +5V +5v +5v +5V B16 A16 UREG UREG B1 6 AC AC A1 6 2 A6 A6 6 A PA 0 PA0 A 8 A8 PA 1 PA1 A8 9 A9 PA 2 PA2 A9 PA 3 PA3 23 A15 A1 5 PA 4 PA4 2 A5 A5 PA 5 PA5 21 20 18 1 15 12 11 10 16 19 24 22 26 25 14 13 A10 A11 A12 B15 A14 B14 A13 B13 B12 B11 B10 B9 B8 B B6 B5 B2 PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD INT PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD INT A1 0 A11 A1 2 B1 5 A1 4 B1 4 A1 3 B1 3 B1 2 B11 B1 0 B9 B8 B B6 B5 B2 0.1uF 4 5 RS 6 R/W E 8 D0 9 D1 10 D2 11 D3 12 D4 13 D5 14 D6 D 3 C 2 5 TRIG 5V 4 R Q 3 555 DI S CV THR 6 330 nf 5V TERMISTOR 32PINJL3 32PINJL3 LCD Teori Termometern använder timern 555 och ett NTC-motstånd. Tiden ( t ) som vippan är omställd i sitt instabila läge ges av formeln: t =1.1RC där R är termistorns resistans och C är 0.33 mikrofarad. Vid rumstemperatur, c:a 25 grader, är termistorns resistans 10 kohm. Vi får då att vippan står i sitt instabila läge 2003-09-01 Termometern- 1 PN

under c:a 3,6 ms. Timern i enchipsdatorn har en klockfrekvens på 2,456 MHz eftersom vi använder 9,8304 MHz oscillator. Vi kommer alltså att räkna c:a 9000 klockpulser under denna tid, om vi sätter prescalern till ett. Antalet räknade klockpulser (K) är alltså proportionellt mot tiden (t). K=245600*t eller K=0,892*R dvs R=1,12*K Vidare vet vi att temperaturen(t) är någon okänd funktion(f) av termistorns resistans (R). T=f(R) Kombinerar vi dessa uttryck får vi att temperaturen (T) är någon (matematiskt okänd) funktion av antalet klockpulser (K). T=f(K) Nu skall vi konvertera de räknade klockpulserna (K) till temperatur (T). Tyvärr råder det ju inte ett enkelt linjärt samband mellan termistorns resistans och temperaturen, utan det är något krokigt logaritmartat okänt samband. Har man ett olinjärt samband kan man alltid antaga att det gäller ett polynomsamband i ett delintervall. Går man till extremvärden spricker det, men det skall vi passa oss för. Vi antar alltså helt frankt att vi kan ange temperaturen T som ett polynom av de räknade klockpulserna K (dvs indirekt tiden t), dvs att: T=A 0 +A 1 *K 1 +A 2 *K 2 +A 3 *K 3... där A 0,A 1,A 2 osv är polynomets koefficienter som ger sambandet mellan klockpulser och temperatur. Då gäller det att på något sätt bestämma koefficienterna i polynomet så att vi, när vi sedan känner antalet klockpulser, bara kan sätta in dem i polynomet och helt enkelt beräkna temperaturen. För att bestämma koefficienterna i polynomet använder vi oss av ett separat polynomanpassningsprogram kallat SENSOR. Det programmet vill som indata ha en tabell med temperaturen given för olika antal klockpulser. Du måste alltså mäta upp givarens egenskaper genom att mäta antalet klockpulser vid några olika temperaturer. Du går sedan in i programmet SENSOR och talar om namnet på den datafil där du kommer att lagra dina mätvärden. Där startar du editorn och skriver in dina mätvärden som en tvåkolumners tabell, med klockpulserna i den första kolumnen och temperaturen i den andra. Lämna editorn och spara dina mätvärden i en fil. Du kan nu prova att göra polynomanpassningen för några olika gradtal. Sannoligt blir det bra med tredje gradens polynom. När du är nöjd med anpassningen sparar du koefficienterna som en ny fil i datorn. Koefficienterna kommer då att sparas på en form som enchipsdatorns assemblator och biblioteksprogram direkt kan hantera. 2003-09-01 Termometern- 2 PN

När du nu känner koefficienterna i polynomet är det enkelt för enchipsdatorn att utifrån ett uppmätt antal klockpulser beräkna temperaturen. Du använder subrutinen POLYNOM som ligger i biblioteksmodulen POLYNOM.LIB, som du helt enkelt kopierar in i ditt eget program. Nu gäller det att få ut den beräknade temperaturen på LCD-displayen. Du måste då först omvandla talformatet för temperaturen från flyttalsformat (dvs med taldel och exponent) till ett vanligt binärt heltal. Det finns det en biblioteks-rutin föri biblioteksmodulen MATH.LIB. Därefter skall talet omvandlas från binärt tal (talbasen två) till decimalt tal (talbasen tio). Det gör du med biblioteksrutinen BINBCD.LIB. Och slutligen skall BCD-talen göras om till ASCII tecken med BCDASCII.LIB och matas ut på displayen. Kommunikation med PC. Flash-systemets moderkort är bestyckat med kretsar som möjliggör kommunikation med en PC via ett s.k. seriellt gränssnitt, kallat RS-232. Kommunikationen sker mellan en av PC s.k. COM-portar och moderkortet. Den vanligaste användningen av denna kommunikation är vid programmeringen av enchipsdatorns Flash-minne, men vi kan också använda den för att låta PC och enchipsdatorn överföra kommandon och mätdata. Enchipsdatorn använder bit 4 i A-porten för denna kommunikation, och PC använder någon av sina COM-portar. Överföringen sker i 9600 Baud, dvs 9600 bitar per sekund. Eftersom varje tecken kräver totalt 11 bitar (inklusive en startbit och två stoppbitar) kan man överföra c:a 80 tecken per sekund. För att underlätta programmeringen av enchipsdatorn finns en biblioteksfil, kallad RS232.LIB, som innehåller rutiner för sändning och mottagning av tecken, och för sändning av en textsträng till PC. Eftersom enchipsdatorn använder bit fyra i A-porten både för sändning och mottagning, kan man naturligtvis inte både sända och mottaga samtidigt. Om man är duktig på att programmera en PC kan man skriva egna program för PC som sänder kommandon och tar emot och visar mätdata från enchipsdatorn. Annars följer det med ett litet program som man kan köra i sin PC. Det är bara att kopiera in EXE-filen på lämpligt ställe i datorn och dubbelklicka på programnamnet så går programmet igång. Det finns inget som man behöver installera. Nu är det dags att börja skriva programmet. Till din hjälp finns ett flödesdiagram som du kan utnyttja för att få en snygg struktur på ditt program. I kopplingsschemat över kretsen ser du att det finns två förbindelser mellan enchipsdatorn och 555-kretsen. Den första går från bit 3 i A-porten till 555-kretsens trig-ingång. Den signalen används för att trigga 555 och därmed göra en mätning av tiden. 555 triggas av en negativt gående signal (en negativ flank). Omedelbart efter triggningen måste denna signal tas tillbaka till hög nivå för att inte 555 skall tvingas kvar i sitt instabila läge, utan tillåtas gå tillbaka till sitt stabila läge sedan RC-tiden förflutit.denna signal skall alltså normalt ligga på hög nivå. 2003-09-01 Termometern- 3 PN

Den andra signalen går från 555-kretsens Q-utgång till Interrupt (IRQ) och bit 5 i A-porten på enchipsdatorn. Genom att signalen går till Interruptingången kan du avgöra när 555-kretsen tippar tillbaka till sitt stabila läge. 1. Börja med att skriva ett program som gör en mätning med timerkretsen men bara skriver ut antalet klockpulser på displayen. Det programmet skall du ha för kalibreringen. Tänk på att innan du triggar 555 måste du ha stoppat timern, nollställt den och valt prescaler till ett. Därefter triggar du 555-an och startar timern. Sedan är det bara att vänta på att interruptpinnen, och därmed 555 Q-utgång, skall bli låg för att markera att 555 tippat tillbaka till sitt stabila läge. Då läser man av tidens 16 bitar i timerns räknarregister och lagrar talet i variablerna R1M och R1L. Detta binära tal omvandlar du först till ett decimalt tal med hjälp av biblioteksrutinen BINBCD.LIB. Du får då talet på BCD-format. Slutligen omvandlar du de decimala BCD-talen till ASCII-tecken med biblioteksrutinen BCDASCII.LIB, för att därefter skriva ut ASCII-strängen på LCD-displayen med biblioteksrutinen LCDSTR. 2. Mät upp antalet klockpulser för minst10 olika temperaturer i intervallet 60-20 grader. Tappa upp lite varmvatten och låt det svalna. Termisk jämvikt inträder så småningom, så det gäller att ta det lite lungt. Använd en vanlig sprittermometer. Skriv in mätvärdena i en fil på datorn med hjälp av SENSOR-programmets editor. Tänk på om det är temperaturen eller antalet klockpulser som skall stå i första kolumnen. 3. Gör sedan själva polynomanpassningen. Prova med olika gradtal. Kontrollera att ingen datapunkt avviker alltför kraftigt så att man kan befara en felmätning i den punkten. Spara de framräknade koefficienterna som en fil i datorn. 4. Utöka nu ditt program så att det tar antalet klockpulser och sätter in det i polynomet och räknar fram temperaturen. Så låter du programmet skriva ut temperaturen i stället för antalet klockpulser på displayen. Observera att samma variabler kan uppträda i flera biblioteksrutiner. Det finns alltså en risk för dubbeldeklaration. Tänk även på att vissa variabler måste stå i den ordning som de är deklarerade i MATH.LIB modulen. Det beror på att man använder indexerad adressering, och därför förväntar sig variablerna i den deklarerade ordningen. Detta gäller exempelvis variablerna i matterutinerna. Titta efter i texten som inleder biblioteksmodulerna vad som gäller. 5. Utöka programmet med lite snygg text i displayen, t.ex. TEMP=. 6. Efter temperaturen skall du skriva ett gradtecken och C på displayen. Gradtecknet har ASCII-värdet $DF på LCD-displayen.. När programmet snurrar och visar temperaturen på LCD-displayen är det dags att bygga ut programmets mät-loop så att det först inväntar att det tar emot ett T från PC innan det gör en mätning. När programmet har gjort en mätning och skrivit ut temperaturen på LCD-displayen, skall det även skicka mätvärdet (bara siffrorna) som en textsträng till PC och avsluta överföringen med tecknet Return som har ASCII-värdet $0D. 2003-09-01 Termometern- 4 PN

8.Omduhinnerkanduutökaantaletsiffrortillattomfattaävenendecimal.Dåskalldu multiplicera temperaturen med 10 innan du omvandlar till binärt heltal, och sedan stoppa in decimalpunkten på rätt ställe när du skriver ut talet. Observera dock att det är lättattfåframenmassasiffrormedendator,medattdeskallhanånsignifikansockså! PC-programmet. Programmet är utvecklat i Delphi-5 från Borland och är på c:a 100 rader Pascal-kod. När programmet startas måste du ange vilken COM-port som Flash-systemet sitter anslutet till. Därefter öppnar du kommunikationen med enchipsdatorn. Du kan sedan skicka ut enstaka T -tecken genom att klicka på knappen Sänd ett T, eller skicka ett T i sekunden genom att klicka på Kör Kontinuerligt. PC-programmet läser av inkomna tecken 100 gånger i sekunden och när den får ett Return skriver den ut alla inkomna tecknen i fönstret. Innan du får avsluta programmet måste du stänga kommunikationen med COM-porten. Därefter kan du avsluta programmet genom att klicka i krysset längst upp till höger. 2003-09-01 Termometern- 5 PN

Flödesdiagram för termometern. INITIERINGAR Bit 3 i port A riktas utåt och sätts till 1 Hela port D riktas utåt (LCD) Bitarna,6,5 i port B utåt (LCD) Initiera LCD-displayen Invänta att 555 är klar att triggas Invänta ett "T" från PC Stoppa och nollställ Timern Välj prescaler Starta timern och trigga 555 Invänta att 555 tippar tillbaka Stoppa timern Hämta timerns värde UTÖKNING FRÅN KALIBRERING TILL MÄTNING Nollställ exponenten R1E Ladda IX med adressen till polynomet Beräkna temperaturen ur polynomet Gör om temperaturen från flyttal till heltal Gör om från binärt heltal till decimalt tal (BCD) Gör om BCD-talen till ASCII-tecken Flytta cursorn till början av raden på displayen Skriv ut texten "Temp=" på displayen Skriv ut temperaturens ASCII-tecken Skicka mätvärdet till PC Skicka ett "Return" till PC 2003-09-01 Termometern- 6 PN