UMEÅ UNIVERSITET Tillämpad fysik och elektronik Digitalteknik Björne Lindberg Håkan Joëlson 2007-11-22 v 2.3 DIGITALTEKNIK Laboration D164 Logiska funktioner med mikroprocessor Kombinatoriska funktioner med PIC16F84 Sekvensfunktioner med PIC16F84 Innehåll Inledning... Uppgift 1...Grindar Uppgift 2-8... Kombinatoriska funktioner Uppgift 9-11...Sekvensfunktioner Namn... Personnummer... Studieprogram... Epostadress... Datum för visad koppling (signerad)... Datum för inlämning... LAB_D164.DOC
Inledning Denna laboration är avsedd att ge en inblick i hur de grundläggande logiska funktionerna i dagens moderna DIGITALTEKNIK kan förverkligas med en enkel mikroprocessor.. Laborationen har två huvudmoment: 1. KOMBINATORISKA KRETSAR 2. SEKVENSKRETSAR Den processor som förutsätts är PIC16F84. Den har integrerade minnen och funktioner för tidhållning och kommunikation. Den förtjänar därför att benämnas enchipsprocessor. Referenser Förbered laborationen genom att läsa häftet Logiska funktioner med mikroprocessor. Detta häfte ger handfast vägledning och många tips till hur man kan lösa laborationsuppgifterna. Bitvis finns det direkta mönster för hur redovisningen av denna laboration lämpligen ska utformas. Utnyttja fortlöpande det referensmaterial som finns på följande internetadresser: PIC16F84A Data Sheet: http://ww1.microchip.com/downloads/en/devicedoc/35007b.pdf MPLAB manualer och programvara: http://www.microchip.com/stellent/idcplg?idcservice=ss_get_page&nodeid=1406&ddocnam e=en019469&part=sw007002 Utrustning Persondator typ IBM eller kompatibel. Komplett laborationsdäck alternativt 4 st lysdioder 4 st motstånd på ca 300-500 Ω 4 st motstånd på 20-50 kω Kopplingsplatta 5 volts matningsspänning Mikrokontroller PIC16F84 Utvecklingsprogramvara Redovisning Ta varje laboration som ett tillfälle att träna på att dokumentera ett vetenskapligt studium: syfte, förutsättningar, genomförande och resultat. I denna laborationsanvisning anvisas åtgärder och dokumentation av olika omfång för olika uppgifter som bitar i en träning i akademiskt förfarande. Ingenstans får detta uppfattas som en begränsning ha ett öppet sinne att testa och pröva och undersöka egna idéer och upplsag. Obligatorisk redovisning sker skriftligt och praktiskt enligt examinationskraven för aktuell kurs (tex såsom specificerats på kursens hemsida). Där anges vilka uppgifter som ska redovisas och hur. Normalt ska skriftlig redovisning innehålla: förarbete, dvs någon slags dokumentation av avvägningar och beräkningar som ligger till grund för den lösning man väljer (för sekvensfunktioner ska det tex inkludera kodning av inoch utsignaler) assembler-kod kopplingsschema som tydligt visar användning av portar någon slags beskrivning av resultat Normalt ska praktisk redovisning bestå av att visa upp en fungerande koppling för lab.handledare. I slutänden är det examinationsvillkoren för aktuell kurs som har sista avgörandet. Laboration D164 Kombinatoriska funktioner med PIC16F84 2
Uppgift 1 Grindar Realisera följande grindar med PIC16F84 utifrån den givna informationen. 2-ingångars NAND (Not AND) Sanningstabell a b f 0 0 1 0 1 1 1 0 1 1 1 0 Symbolschema a b & Komplettera kopplingsschemat med bennummer och genomför samtliga led fram till testning av funktionen. f 3-ingångars NAND Sanningstabell a b c f 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 Symbolschema a b c & Komplettera kopplingsschema, skriv källkod och simulera. f 2-ingångars NOR-grind Sanningstabell a b f 0 0 1 0 1 0 1 0 0 1 1 0 Symbolschema Komplettera kopplingsschema. Skriv källkod och simulera. 3-ingångars NOR-grind Sanningstabell a b c f 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 Symbolschema a b c > 1 Välj lämpliga ben för anslutning av signalerna a,b,c och f. Komplettera kopplingsschemat, skriv källkod och simulera.. f Laboration D164 Kombinatoriska funktioner med PIC16F84 3
Kombinatoriska funktioner med PIC16F84 Uppgift 2 Realisera med PIC16F84 en logisk funktion som har nedanstående sanningstabell. Rita fullständigt kopplingsschema, skriv källkod och simulera. a B C f 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 Utsignalen kopplas via en lysdiod till jord. Uppgift 3 En digital funktion beskrivs med boolesk algebra på följande sätt f = abc + abc+ abc Realisera med PIC16F84. Rita kopplingsschema, skriv källkod, simulera och koppla upp. Uppgift 4 En digital krets har 5 st insignaler och en utsignal. Dess logiska funktion ska vara sådan att om exakt tre av insignalerna är höga ska utsignalen bli hög. Beskriv med sanningstabell, rita kopplingsschema, skriv källkod, simulera och koppla upp. Uppgift 5 Realisera sanningstabellen med hjälp av en programtabell för PIC16F84 enl. avsnitt Söka värden i en tabell med hjälp av index i häftet Logiska funktioner med mikroprocessorer. Skriv programmet så, att bitarna f4-f1 behandlas som en enda fler-bits port. Som ett förbredande led kan därför kolumnen Hexkod fyllas i. c b a f4 f3 f2 f1 Hexkod 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 0 1 1 Rita komplett kopplingsschema och skriv tabellen. Skriv källkod och simulera. Laboration D164 Kombinatoriska funktioner med PIC16F84 4
Uppgift 6 Kodomvandlare Realisera en fyra-bitars BINÄR - GRAY-kodomvandlare. Rita ett fullständigt kopplingsschema, skriv källkod och simulera. Binär Gray B3 B2 B1 B0 G3 G2 G1 G0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 1 1 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 0 0 Uppgift 7 Realisera den digitala funktionen i uppgift 2 med tekniken att använda tabell i källkoden. Uppgift 8 Kodlås Konstruera ett kodlås med samma funktion som sista uppgiften i laboration D161, dvs realisera den med enbart en PIC16F84. Kodlåsets ingång ska bestå av en array (rad) med 8 ingångsbitar där varje bit kan tilldelas 0 eller 1 och utgången ska bestå av två bitar med möjliga värden 0 eller 1. Värdet på dessa två bitar ska bero på hur de 8 switcharna på ingången är ställda, och är tänkta att så småningom styra en låsmekanism. Låset ska fungera så att: Felaktig insignal ska generera 00 på utgången Din personliga kod ska generera 01 på utgången (Ut1 Ut0 = 0 1) Vaktmästarens specialkod ska generera 10 på utgången (Ut1 Ut0 = 1 0) Den administrative chefens specialkod ska generera 11 på utgången. Kodlås In7 In6 In5 In4 In3 In2 In1 In0 Kombinatoriskt nät Ut1 Ut0 Laboration D164 Kombinatoriska funktioner med PIC16F84 5
Din personliga kod i decimal form får du genom att dividera ditt födelsedatum (ååmmdd) med 230. Dela upp svaret i en heltalsdel och en rest. Kasta heltalsdelen och resten blir din kod i decimal form. Konvertera sedan din kod i decimalform till binär form och du har din kod. Vaktmästarens och administrative chefen har dock lite sämre minne och behöver fler koder att välja mellan: Vaktmästarens specialkod är samtliga talvärden fr.o.m. 240 t.o.m. 247 (här decimalt uttryckta). Administrative chefens specialkod är samtliga talvärden fr.o.m. 248 t.o.m. 255 (uttryckta decimalt). Tips: Tänk efter hur du definierar riktningarna på portarna. Laboration D164 Kombinatoriska funktioner med PIC16F84 6
Sekvensfunktioner med PIC16F84 Uppgift 9 Hiss A Tillståndsdiagrammet ska illustrera en hiss i en byggnad med fyra våningar. Utsignalerna (Z) beror enbart av det tillstånd (S) man befinner sig. Insignalerna (I) anger till vilken våning hissen ska. Rita kopplingsschema, skriv källkod och simulera. a. Realisera med automatiskt tillståndsbyte med fördröjning. (Se progamexempel 4, särskilt kommentaren s 21 längst ner, i häftet Logiska funktioner för mikroprocessor.) b. Realisera med en subrutin CLOCK, som läser av en ingång, RB0. Varje gång en ny puls kommer på ingången ska tillståndsmaskinen gå vidare till nästa tillstånd. I2,I3 I3 I3 S3/Z3 I2,I1,I0 S2/Z2 I2 I1,I0 S1/Z1 I1 I1,I2,I3 I0 S0/Z0 I0 Laboration D164 Sekvensfunktioner med PIC16F84 7
Uppgift 10 Hiss B Denna uppgift är en variant på uppgift 10. Här ska ytterligare två utsignaler genereras. Den ena har beteckningen UPP och den andra NER. UPP ska genera 40 pulser med frekvensen 5 Hz på PB7 samt en hög nivå på PB6. NER ska generera samma pulsskur på PB7 men en låg nivå på PB6. Rita kopplingsschema, skriv källkod, simulera och koppla upp. I denna laboration kan en stegmotor och en stegmotordrivkrets användas för att realisera en mera verklighetstrogen hissanordning. I3/UPP I2,I3/UPP I3/Z3 S3/Z3 I2,I1,I0/NER S2/Z2 I2/Z2 I1,I0/NER S1/Z1 I1/Z1 I1,12,13/UPP I0/NER S0/Z0 Uppgift 11 Automat I0/Z0 Realisera följande tillståndsmaskin (samma som sista uppgiften i laboration D162) med assembler och en PIC16F84-mikrokontroller. 00/01 01 01/10 11/10 10/01 00 00/00 10/00 11/11 11/01 01/01 10 10/11 01/00 11/00 01/11 11 00/10 10/10 00/11 Laboration D164 Sekvensfunktioner med PIC16F84 8