Introduktionsuppgift till enchipsdatorn.

Relevanta dokument
Introduktionsuppgift till enchipsdatorn.

Stegmotorn Tvåfasdrivning Unipolär lindning

General Purpose registers ALU I T H S V N Z C SREG. Antag att vi behöver skriva in talet 25 till register R18

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

Introduktion till programmering och Python Grundkurs i programmering med Python

Datakommunikation med IR-ljus.

LEU240 Mikrodatorsystem

Programmering i maskinspråk (Maskinassemblering)

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

Programmering av. PADDY mini

Digital- och datorteknik

Digital- och datorteknik

Programmering i maskinspråk (Maskinassemblering)

Datorteknik 1 (AVR 1)

BDM12 Användarbeskrivning. Introduktion

Montering av Wisp628.

LABORATION. Datorteknik Y

AVRStudio på tre minuter. Micke Josefsson, 2005

Datorteknik 2 (AVR 2)

Kontrollskrivning Mikrodatorteknik CDT S2-704

Introduktion till syntesverktyget Altera Max+PlusII

Programexempel 1 AND-funktionen

Eclipse. Avsikt. Nu ska ett fönster liknande figuren till höger synas.

Digitalt lärande och programmering i klassrummet

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.

NetBeans 5.5. Avsikt. Projektfönster

Föreläsning 3. Programmering, C och programmeringsmiljö

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok.

Föreläsning 2. Operativsystem och programmering

Minnen delas in i två huvudgrupper, permanenta och icke permanenta. Non-volatile and volatile.

NetBeans 7. Avsikt. Projektfönster

LABORATION. Datorteknik Y

EV3 Roboten. Sida 1 av 13

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

Programmera i teknik - kreativa projekt med Arduino

Kortfattad instruktion för installation och användning av streckodsapplikationer

TimeLox HCU handterminal. Användarguide. ASSA ABLOY, the global leader in door opening solutions.

Programmera och ladda ny mjukvara till DT-serien. Information och nerladdning av SatEdit V3 från: Ladda hem.

TSIU50 Mikrodatorprojekt. LAB1 AVR-introduktion och logikanalysator

Micro:bit. Börja skapa egna program

Steg 1 Minnen, mappar, filer Windows 7

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik

Digital- och datorteknik

Vilken skillnad gör det var du placerar det? Prova båda.

Figur 1 Skalprogrammets meny

Steg 1 Minnen, mappar, filer Windows 8

Till flera av ovanstående finns det dessutom varianter, vilka kommer att presenteras i de olika avsnitten.

TILLÄMPNINGAR INOM DATORTEKNIK

JavaScript Block Editor:

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

CE_O3. Nios II. Inför lab nios2time

A. Datorn från grunden

Kortlaboration DIK. Digitalteknik, kombinatorik.

Digitala Projekt(EITF40) - Larm

Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit

Det finns en handledning till kortet på hemsidan. AVR STK500.

Besvara de elektroniska frågorna (se kurshemsidan). Läs kapitel i kursbok

Lathund import Ladoklista i Ping Pong

Installatörs- och användarhandbok CL-153AI

AVR 5. Styrning av trafikljus. Digitala system 15 p

Programmera och ladda ny mjukvara till DT-serien. SatEdit V3 laddas ner från Ladda hem.

Videoapparat SB4714W/2 & SB4701W/A. Installation och handhavande SB4714W/2

Programmets startmeny ser ut så här. För att få fram menyerna Avsluta, Inställningar och Användare måste du föra markören upp till det blåa fältet.

Assemblerprogrammering del 1

Extramaterial till Matematik Y

Om du behöver hjälp. Telia Simka Bruksanvisning

INTRODUKTIONSKURS Sport-Ident Degerfors OK

ALGE S4 Tidtagningsutrustning - Tävling

Templog / TempControl PC

Kopiera musik och program till hårddisken och skicka sedan skivorna på semester i förrådet. Spara skivorna

Steg 1 Minnen, mappar, filer Windows 10

Cecilia Ingard. Boksidan

Roboten. Sida 1 av 11

Instruktion Programmeringsapp och gränssnitt

-your digital fortress

BILAGA A till Programvaruprojekt ANVÄNDARKRAV MultiPC v1.0

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

QUICK GUIDE Master reset, initiering och adressering. Master Reset av LCU6516

Ipad i teknikundervisningen

Instruktion till. PigWin PocketPigs. Del 1 - Installation

Installationsguide ELCAD 7.10

Programmera Avant 5 med PC mjukvara

A-del motsvarande KS1

Hantering av Handi ipaq 2190

E-POST3 Ett lättanvänt e-postprogram med stöd för talsyntes

ASSA Smartair. Användarmanual Programmeringsenhet till TS1000. ASSA ABLOY, the global leader in door opening solutions.

M7005 och IBR Användarhandbok

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

Instruktioner för uppdatering från Ethiris 4.10 till 5.x

Digitalteknik: CoolRunner-II CPLD Starter Kit

web: fax: tel: kontor , Toby Edmundsson mobil: , Jan

Datorteknik TSIU02 Lab 2 Morsesändare v0.7

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

Travel Phrase Guide. Instruktionshäfte

Bruksanvisning Bläckfisken USB

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Digitalteknik: CoolRunner-II CPLD Starter Kit Med kommentarer för kursen ht 2012

c a OP b Digitalteknik och Datorarkitektur 5hp ALU Design Principle 1 - Simplicity favors regularity add $15, $8, $11

Transkript:

Introduktionsuppgift till enchipsdatorn. I den här övningen skall du bekanta dig med enchipsdatorn MC68HC908JL och utvecklingssystemet CESAM-Flash. Du skall läsa in data från en tryckströmställare och mata ut data på ett antal lysdioder. Som slutövning skall du skriva ut lite text på en LCD-display. Vi kommer att använda lab-modul nr.1. Enchipsdatorn MC68HC908JL har tre portar, kallade A,B och D, via vilka datorn hämtar in data från omvärlden och skickar ut sina resultat. Enchipsdatorn sitter monterad i en hållare på ett litet kretskort där även strömförsörjningen och kommunikation till en PC är ordnad. Vi kallar detta kort för modermodulen. Till detta kort kan man sedan ansluta olika dottermoduler anpassade för olika uppgifter. Vi skall arbeta med modul 1, som är ett enkelt in- och utmatningskort. På detta kort är port D ansluten till 8 lysdioder, där man alltså kan skicka ut ett resultat. På porten B sitter en 8-bitars DIP-switch, via vilken man kan mata in infomation, och på bit 0 i A-porten sitter en tryckströmställare. Den exakta kopplingen framgår av schemat. Alla ingångar är försedda med pullup-motstånd på 4. kohm. 1 DS181 VCC RST 0.1u 8 0.1u 14 Vcc 8 4 Out OSC 5 1 VDD RST OSC1 OSC IRQ VSS MC68HC908JL AC 0.1u +10V A0 6 A1 8 A 9 A A4 A5 1 B0 0 B1 18 B 1 B 15 B4 1 B5 11 B6 10 B 16 D0 19 D1 4 D D 6 D4 5 D5 14 D6 1 D J9 B4 A4 B1 A1 B A A +5v B16 A16 A6 A PA 0 A8 PA 1 PA A9 A15 PA A5 PA 4 PA 5 A10 A11 A1 B15 A14 B14 A1 B1 B1 B11 B10 B9 B8 B B6 B5 B UREG AC PB0 PB1 PB PB PB4 PB5 PB6 PB PD0 PD1 PD PD PD4 PD5 PD6 PD INT J10 +5v UREG AC PA0 PA1 PA PA PA4 PA5 PB0 PB1 PB PB PB4 PB5 PB6 PB PD0 PD1 PD PD PD4 PD5 PD6 PD INT B4 A4 B1 A1 B A A B16 A16 A6 A A8 A9 A15 A5 A10 A11 A1 B15 A14 B14 A1 B1 B1 B11 B10 B9 B8 B B6 B5 B 5V 9 8 6 5 4 1 1 4 5 6 8 16 15 14 1 1 11 10 9 PINJL PINJ L 5V Lysdioder och omkopplare anslutna till datorns portar. Vi kommer att använda utvecklingssystemet CESAM-Flash för att skriva, översätta, simulera och promma ditt program. Utvecklingssystemet består av ett program och moderkortet som ansluts till en COM-port på datorn. Hela programmet är menystyrt, med en huvudmeny och ett antal undermenyer. Från huvudmenyn kan du starta editorn, assemblatorn, simulatorn och utföra promningen. 00-09-01 Introduktion- 1 PN

Vi skall gå igenom uppgiften steg för steg för att visa hur du löser en uppgift: 1. Din första uppgift blir att tända lysdioderna 0,,4,6 och släcka de övriga. Starta CESAM-Flash-programmet genom att dubbelklicka på ikonen. Du kommer då att få upp programmets huvudmeny. Programmet minns vilket projekt du sist arbetade med, och föreslår det som projekt. Vill du i stället skapa ett nytt projekt gör du det genom att skriva in ett nytt namn, och därefter klicka på OK. Då kommer du tillbaka till programmets huvudmeny. Härifrån kan man välja att starta editorn, att uföra översättningen till maskinkod (assemblera), att simulera programmet eller att bränna in koden i enchipsdatorns minne. Editering. Starta editorn. I setup-menyn har du kunnat välja mellan några olika editorer, t.ex. den i windows inbyggda Notepad (Anteckningar). Du har också möjlighet att använda Uedit som har s.k syntax-färgning, dvs reserverade ord och andra delar av programmet får olika färger. Pröva den, det underlättar avsevärt Förattgöradetlättattkommaigångfrånbörjanharviskrivitstommentillettprogram, där det mesta man behöver redan finns deklarerat. Direkt efter det att du startat editorn, importerar du denna stomme, kallad FRAME.JL, genom att klicka på Special Function och Insert File. Så letar du dig fram till filen Frame.jl, markerar den och klickarpå Öppna.Dåkopierasfilenframeinidittprojekt,ochduslipperskrivadessa rader själv. Om du använder Notepad öppnar du filen Frame.P6 och markerar all text. Därefter öppnar du ditt nya program och klistrar in textem med hjälp av paste. Lämna filen Frame.JL utan att spara några ändringar i den. I alla program måste vissa satser alltid finnas, bl.a. dessa: Definiera de symboler som behövs. I detta fall PORTD och DDRD. Definiera startvektorn. Sätt en label på första exekverbara satsen i programmet. Denna label utnyttjar du även vid definitionen av startvektorn. Avsluta programmet med END. Du ser att det är just dessa delar som den inlästa filen FRAME.JL innehåller. Nu skall du skriva de satser som utför uppgiften. För att tända och släcka lysdioderna på PortD skall du skicka ut information på portens alla bitar. Portens alla bitar skall alltså riktas utåt. Det åstadkomms genom att skriva ettor till portens riktningsregister. Det gör vi i med en MOV-sats. Vi får alltså följande: MOV #%11111111,DDRD ;Rikta hela PortD utåt Tänk på den syntax (grammatik) som är definierad för det här programmeringsspråket. Den finns beskriven i Appendix C i läroboken Konstruera med Enchipsdatorer. Alla satser, utom lägen och andra namn, måste börja minst ett mellanslag in på raden. Nu har du riktat dataflödet utåt på PortD. Nu skall vi skicka ut själva data som tänder eller släcker lysdioderna. Som framgår av kopplingsschemat sitter lysdioderna 00-09-01 Introduktion- PN

kopplade till via ett motstånd på 0 Ohm. För att få ström genom en lysdiod och därmed tända den, måste du lägga ut en låg spänning, dvs en nolla på biten i porten. Vi skall alltså lägga ut nollor på bitarna 0,,4,6 i porten och ettor på de övriga. Även här använder vi oss av en MOV-sats. MOV #%10101010,PORTD ;skicka ut data på portens dataregister När du skrivit programmet med hjälp av utvecklingssystemets editor, sparar du programmet och går tillbaka till huvudmenyn. Assemblering Begär sedan assemblering av programmet genom att klicka på knappen Assemble. Då läser assemblatorn igenom raderna i ditt program och skriver ut eventuella felmeddelanden. Läs felmeddelandena och försök att förstå vad du har gjort för fel. Om du får felmeddelanden startar du åter editorn samtidigt som du har fönstret med felmeddelandena uppe. Iblandkanettendafeldramedsigföljdfelsåattdetservärreutändetär.Rättadefeldu ser, spara filen och assemblera om. Efter några vändor har du säkert klarat av dina syntaxfel. Eftersom felmeddelandena refererar till radnummer är det ju ytterst lämpligt att använda en editor som visar radnummer. Simulering När du kommit igenom assembleringen utan fel, är det dags att börja provköra ditt program. Det gör du med hjälp av simulatorn. Simulatorn att ett program som efterliknar själva enchipsdatorn in i minsta detalj, men som körs i PCn. Det ger dig möjligheten att exakt följa vad som händer i datorn när du kör programmet. Du kan se vad som händer i register och portar och hur mikro-sekunderna tickar fram. Starta simulatorn genom att klicka på knappen Simulate. Du uppmanas då att klicka på knappen Reset så att ditt programs maskinkod laddas in i simulatorn, klar för simulering. Stega dig sedan igenom programmet instruktion för instruktion (single stepping) genom att klicka på knappen Step och se att ditt program går rätt. Du ser i PORT-fönstret hur först riktningen på alla bitar i D-porten vänds utåt. (innehållet växlar från iiiiiiii till oooooooo). Därefter blir databitarna satta till 10101010. Vad händer när datorn kommit till sista satsen i ditt program?? Just det - du får konstiga felmeddelanden. Det beror på att processorn hela tiden fortsätter och hämtar och utför operationskoder från minnet, även om du inte har skrivit dit några. Du måste därför hela tiden sysselsätta processorn även om det inte finns något mera att göra. Du måste avsluta programmet genom att kommendera processorn på stället marsch. Det gör du genom att skriva en sats där processorn hela tiden hoppar tillbaka till samma sats. Det gör du så här: HIT: BRA HIT ;Gå in i en oändlig loop Närduärnöjdmedsimuleringenavdittprogram,ärdetdagsattprovadetihårdvaran. Promning. Som sista steg i utvecklingen av ditt program skall du överföra maskinkoden in i enchipsdatorns programminne och provköra labkortet med enchipsdatorn monterad. 00-09-01 Introduktion- PN

Det gör du genom att ansluta moderkortet till en av datorns COM-port och klicka på prom -knappen. Då öppnas programmeringsmenyn. Där anger du vilken port som programmeraren sitter ansluten till. Först måste enchipsdatorns Flash-minne raderas. Det gör du genom att klicka på Erase. Du kommer då att få en uppmaning att göra en s.k. Power Up Reset. Det innebär att du skall stänga av matningsspänningen från pluggtransformatorn under några sekunder och koppla bort eventuella dottermoduler. Därefter ansluter du åter matningsspänningen. Då kommer Flash-minnet att raderas. Därefter klickar du på prom - knappen. Då kommer maskinkoden att föras över till enchipsdatorn och brännas in i enchipsdatorns Flash-minne. När du fått meddelande om att enchipsdatorn är programmerad, måste du åter göra en Power Up Reset för att få enchipsdatorn att starta med ditt program.. När du ansluter matningsspänningen startar enchipsdatorn från början av programmet (power up reset), och lysdioderna börjar nu lysa så vackert. När programmet är färdigtestat tar du ut assembleringslistan på printern och sparar den i din kurspärm.. Nästa program skall ligga i en oändlig loop och läsa in statusen från tryckomkopplaren. Om den är uppsläppt skall alla lysdioder lysa, och om man trycker ned knappen skall lysdioderna slockna. Börja ett nytt program genom att ladda in FRAME.JL till ditt nya program. Tänk på att när du läser av tryckomkopplaren så går informationen in i datorn, så biten 0 i A-porten måste programmeras att vara riktade inåt. Gå igenom samma procedur med editering, assemblering, simulering och promning som i första uppgiften, och spara assembleringslistan när du är klar. Som du ser i kopplingsschemat sitter tryckomkopplaren ansluten till bit 0 i A-porten. Börja med att programmera upp riktningarna på portarna: START: LDA #%11111111 ;Rikta hela Port D utåt STA DDRD LDA #%0000 ;Rikta hela Port A inåt STA DDRA Närportarnanuärinitieradelåterduprogrammetgåruntienoändligloop.Inutiloopen känner du av statusen på bit 0 i A-porten och beroende på om den är en 1 eller 0 skickar du ut åtta nollor eller ettor på lysdioderna: LOOP: BRSET 0,PORTA,NOLL ;Är knappen uppsläppt BRCLR 0,PORTA,ETT ;eller nedtryckt? NOLL: MOV #%00000000,PORTD ;Tänd lysdioderna BRA LOOP ;Gå runt i programmet ETT: MOV #%11111111,PORTD ;Släck lysdioderna 00-09-01 Introduktion-4 PN

BRA LOOP ;loopa i programmet Assemblera och provkör programmet.. I den sista introduktionsuppgiften skall du skriva ditt eget namn på en display av flytande kristaller ansluten till enchipsdatorn. En display av flytande kristaller (Liquid Crystal Display - LCD) är uppbyggd av två glasskivor mellan vilka den vätska finns som är det aktiva mediet (de flytande kristallerna). Om vätskan utsätts för en elektrisk spänning ändrar den sina optiska egenskaper, bl.a. sin transmissionsförmåga för ljus. För att kunna lägga spänningen över vätskan har man lagt ett mycket tunnt metallmönster på insidan av de båda glasen. Detta metallmönster leder ström och gör att man kan få spänningen över olika partier av vätskan. Elektroderna i metallmönstret är utformade som punktmatriser och genom att aktivera olika punkter kan man generera olika bokstäver, siffror och tecken. För att kunna hantera displayen på ett enkelt sätt är den utrustad med ett kretskort med styrelektronik. För att skriva tecken på displayen, behöver enchipsdatorn bara skicka ut ASCII-tecken till LCD-displayens styrelektronik. Denna tar sedan hand om tecknen och aktiverar de olika punkterna i displayen så att det bildas motsvarande tecken på displayen. För att underlätta programmeringen av LCD-displayen finns det en programbiblioteksmodul kallad LCDflash.LIB. Där finns alla de rutiner du behöver för att initiera displayen och sedan använda den. Kopiera in denna biblioteksmodul i slutetavdittegetprogramsåattdusedankananropadeolikasubrutinerdubehöver,på samma sätt som du tidigare kopierade in programramverket FRAME. Innan man kan börja skriva tecken på displayen måste den initieras. Det sker genom att du helt enkelt anropar subrutinen LCDINI i biblioteksmodulenmed satsen: JSR LCDINI ;Tvåradig display Om du fortfarande använder den enradiga displayen initierar du den med satsen: JSR LCDINI ;Enradig display Därefter kan du skicka ut enstaka tecken eller hela textsträngar till displayen genom att använda olika subrutiner i modulen. Läs igenom den inledande texten i biblioteksmodulen så att du vet vilka subrutiner som finns och hur de skall användas. Därefter skall du skriva ut ditt eget namn på displayen. Då måste du först lagra ditt namn i enchipsdatorns minne. Det gör du enklast med satsen: NAMN: DB Kalle Anka,0 Obs! att denna sats för att definiera minnesinnehåll inte får ligga insprängd bland de körbara satserna, utan skall ligga före eller efter dessa. Ett lämpligt ställe är där det står: Här läggs programmets konstanter, textsträngar och tabeller. Nollan på slutet på textsträngen måste finnas för att utskriftsrutinen skall veta att det är slut på texten. Labeln NAMN har du satt på texten för att du skall kunna veta var i minnet (vid vilken adress) som texten ligger. 00-09-01 Introduktion- 5 PN

När du anropar rutinen för utskrift av en textsträng till LCD-displayen, måste du tala omförrutinenvariminnetsomtextenligger.detgördugenomattladdaindexregistret med adressen till texten innan du anropar rutinen. Den laddningen av indexregistret gör du med satsen: LDHX #NAMN LDHX innebär att du laddar indexregistret, och #NAMN att du laddar med adressen till labeln NAMN. När denna förberedelse är klar kan du anropa utskriftsrutinen med satsen: JSR LCDSTR SubrutinenLCDSTRkommerdåattskrivautdeteckensomdenhittariminnetvid den adress som indexregistret pekar på, ända tills den stöter på nollan som avslutade ditt namn. Då avslutas utskrifts-subrutinen och datorn hoppar tillbaka till ditt huvudprogram. Eftersom uppgiften är klar i och med utskriften av namnet måste du stanna processorn på något sätt. Det kan du exempelvis göra genom att låta programmet gå in i en oändlig loop där man hela tiden hoppar tillbaka till samma sats, så här: HIT: BRA HIT Som sista sats i hela programmet måste det finnas ett END för att tala om för assemblatorn att nu är det slut på texten i programmet. Assemblera, simulera och promma ditt program på samma sätt som i de tidigare uppgifterna. I rutinen för initiering av LCD-displayen finns en vänterutin som kommer att ta några sekunder att utföra i simulatorn, men hav tålamod! 00-09-01 Introduktion- 6 PN