89C4051 opgaver. MSB Opgave 1, Løbelys LSB MSB Opgave 2, Løbelys med 2 Led LSB x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x

Størrelse: px
Starte visningen fra side:

Download "89C4051 opgaver. MSB Opgave 1, Løbelys LSB MSB Opgave 2, Løbelys med 2 Led LSB x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x"

Transkript

1 Her er en række opgaver til at lære Assemblerprogrammering. Den første opgave går ud på at lave et program der får LED`ene et LED-kit til at lyse i flg. mønster, idet et X indikerer en tændt diode. Fordi denne microcontroller kun kan Sink e strøm, er dioderne monteret fra + 5 Volt og ned mod port P! Herunder er gengivet forskellige mønstre, der ønskes vist på lysdioderne. Pinouts for AT89C405 MSB Opgave, Løbelys LSB MSB Opgave, Løbelys med Led LSB x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x Osv. x x x x MSB Opg., Vis det binære talsystem LSB MSB Opgave 4, LSB x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x Side af 45

2 x x Alle mønstre fortsætter deres cyklus og starter forfra!! Obs. Dioderne er sat fra +5V ned til porten. De lyser altså på et 0!! Strategi: Først overvejes, hvad programmet skal: Sæt et bit-mønster ud på porten, Vente en tid, Sæt et nyt mønster ud på porten Vent igen en tid Osv. Efter alle mønstre er udført, hoppes til starten igen! Ventetiden udføres i en subrutine, kaldet Pause eller Delay Programeksempel: Start: Org 0h ; Programmet skal ligge fra adresse 0 i Rom en Mov p, #0B ; flyt en værdi på port Call pause ; kald subrutinen Pause Mov P, 0B ; sæt en ny værdi ud Call pause Osv Jmp Start ; hop op til label Start ; ; Subrutine Pause ; optager processoren ca. ¼ sek. ; ændrer værdier i reg R7 og R6 ; Pause: mov R7, #0FFh ; læg værdien FFh i register R7 Pause: Mov R6, #0FFh ; Do i reg R6 Pause: Djnz R6, Pause ;Decrement R6, og hop hvis ikke zero til label Pause Djnz R7, Pause ; som do, men til label Pause Side af 45

3 Ret ; returner fra pauseprogrammet ; End Programeksempel, gem værdi i variabel. Strategi: Det mønster, der skal ud på porten, gemmes i en variabel, dvs. et register Org 0h Start: Mov a, #0B ; Gem værdi I hukommelse Acc. ( Accumulator ) Start: Mov P, A Call pause RL A ; roter A-registeret til venstre Jmp Start Programeksempel Programmet skal køre 8 løkker, hvor lyset bevæger sig til venstre, derefter 8, hvor det bevæger sig mod højre. Derefter forfra, Ala Knight Rider Strategi: Det mønster, der skal ud på porten, gemmes i en variabel, dvs. et register. Et tal i et register holder styr på hvor mange gange, der er tilbage Org 0h Start0: Mov R0, #8d ; R0 er en tæller, der har værdien 8 Start: Mov a, #0B Start: Mov P, A ; send ud på port. Call pause RL A ; roter a registeret til venstre Djnz R0, Start ; Tæl R0 ned, og hop hvis ikke lig 0 ; Mov R0, #8d Mov a, #0B Start: Mov P, A Call pause RR A Djnz R0, Start ; Tæl R0 ned, og hop hvis ikke lig 0 Jmp start0 Look up Table Lav nu et program, til samme kit, der viser alle forrige 4 opgaver gennemløbet gang hver. Programmet skal udføres, så det er en lille løkke. Side af 45

4 Lysdioderne på port styres vha. Tabelopslag. Dvs. at i en tabel er gemt de data, - eller mønsteret, der skal sendes ud på porten. Øverst i kildeteksten er løkke-programmet. Dernæst pauserutinen, og sidst tabellen. Tabellen ligger altså i ROM, og defineres i kildeteksten med: Tabel: db 0h ;( Tabel er blot en label, db betyder Define Byte ) db 0h, 04h, 08h - osv. Data hentes til Acc vha. en datapointer. Det er en 6 bit register, der peger på en adresse i ROM en. Den bringes til at pege på tabellen med Mov dptr, #Tabel ; få datapointeren til at pege på Tabellen Data kan hentes fra tabellen til register A fra tabellen vha. følgende ordre: Mov a, #00h movc + dptr ; hent tabelværdi A-registeret indeholder før kaldet en værdi, der lægges til datapointeren før der hentes en værdi. Altså et offset. Dvs. næste tabelværdi kan hentes ved at øge værdien i A, eller ved at øge dptr. Tegn flowchart!! Lav program Program-udbygning: Sidst i tabellen anbringes værdien 0ffh. Og programmet indrettes således, at når en værdi er hentet til Acc, tjekkes den, og hvis lig 0ffh, hoppes til start igen!! Ekstra : Imellem opgaverne skal der være -dobbelt pause. ( Kald pauserutinen gange. ) Dette skal udføres, hvis der i tabellen hentes værdien 0FEh. 7-Segment Kit Der skal skrives et program til 7-segment-kittet. Først laves en konverter-tabel, en 4 bit til 7-segment konverter. Den skal kunne vise fra 0 til F. Side 4 af 45

5 Kittet har forbundet lysdioderne a til f i 7-segmentet til port som følger: Tabel: ; afecdgb* ( P.0 ikke forbundet, P. forbundet til b, P. til g osv. ) db 00b ; Viser et 0-tal ; db betyder Define Byte Derefter skrives 4 små programmer: : Skriv et program, der tæller langsomt op fra 0 til 9, eller fra 0 til F, - hvorefter der startes forfra. : Skriv kode, så der via et tastetryk genereres et tilfældigt tal fra 0 til 9. Lav koden om, så det virker som en elektronisk terning : Skriv kode, der tæller og viser antal tastetryk. Bemærk, at der skal tages højde for kontaktprel. 4: Vi skal have fundet et flowchart-program tegn / konstruer Se mit kompendium!! Stepmotor styring Lav et program til styring af stepmotor-kittet!! Der skal laves en knap, så der kan bestemmes, hvilken vej, motoren skal køre! Stepmotor!! Hastighed afhængig af kontakt, op/ned-knap, - og direction er afhængig af en anden knap. Først laves programmet bare, så motoren kører Programmet skal følges af et flowchart. Nogle bør se lidt på Nassi Schneidermann metoden! Øvrige: "Normale metode"!! Når motoren kører, skal der tilføjes en knap, der ændrer omløbsretningen Dernæst skal der bygges knapper på, så der kan justeres op / ned for hastigheden Kittet bruger en ULN00. Undersøg dens datablad!! Side 5 af 45

6 Elektronisk terning Lav et program, der styrer 7 lysdioder, og fungerer som en elektronisk terning. Opbyg på fumlebræt. Blandede Boolske logik-elementer Lav et program, der på udgang P.0 er en AND-gate funktion af P.0 og P., samtidig med at udgang P. er en NANDgate-funktion af P. og P., og samtidig med at P. er en NORfunktion af P. og P. Tegn opgaven med bolske gates, Lav et program, og afprøv på fumlebræt. Husk at udgangene ikke kan Source strøm! Side 6 af 45

7 Signalgenerator På port P monteres et RR-netværk. Send værdier ud på porten P, og mål med scoopet, det frembragte signal. Tæl fx binært op!! Der skal K pull up modstande på P.0 og P. Ucc Ucc R R k k Ucc U C4 P.0/RXD P./TXD P./INT 0 P./INT P.4/T0 P.5/T P.7 AT89C05 P.0/AIN0 P./AIN P. P. P.4 P.5 P.6 P.7 XTAL XTAL RST /VPP VCC Ucc CRYSTAL C 8 p RR netværk C 8p 0 Ucc R k 0 C 0n U + - OUT OPAMP 0 Uout Nul 00n Power on Reset 0 0 R4 47k 0 RR-netværket kan også opbygges af diskrete modstande som vist i det følgende eksempel: VCC R k R k K 0 K U P.0/RXD P./TXD P./INT0 P./INT P.4/T0 P.5/T P.7 AT89C05 P.0/AIN0 P./AIN P. P. P.4 P.5 P.6 P.7 XTAL XTAL RST/VPP VCC RR-netværk VCC R4 k C - 0 n 0 U + - OUT OPAMP VCC Side 7 af 45

8 Orgel: Der konstrueres et lille program til orgel-kittet. Find ud af, hvilket ben, der er output. Hvad skal der ske på outputtet?? Lav flowchart og lav lille test i en sub-rutine. Afprøv!! Udvid flowchartet. Læs så input fra tastaturet, og send så et signal afhængig heraf ud til lydgiveren. Side 8 af 45

9 Stopur på 4 x 7segment-kit I denne opgave skal der arbejdes med timer-interrupts. Der skal laves et stopur med 7-segment-kittet. Det skal kunne tage tid på /00del sekund. De 4 7-segmenter styres vha. multiplexing. Dvs. at der først sendes data ud til segmentet længst til højre. Herefter tændes denne i en periode, og slukkes igen. Herefter sendes data ud til nr., som så tændes osv. Her er vist et eksempel på opbygning af et multiplex-system: I dette diagram er der brugt port og. I vores uc AT89C405 skal vi bruge port til at bestemme tal-mønstret, og port til at vælge hvilket 7-segment, der skal være tændt. Følgende skitse viser Pin-belægning på stopurs-trænekittet: Her til højre vises benævnelserne på 7- segmenterne. Lille a er segmentet øverst, osv. I skemaet ses, hvilke bit i port, der er koblet til hvilket segment. Hvis pågældende portbit bliver lav, - og digit-bittet i port også er lav, tændes segmentet. f e a g d b c P.7 nc. P.6 a P.5 b P.4 f P. g P. c P. d P.0 e Hvilke af 7-segmenterne, der skal være aktive, styres af port bit p.0 til bit p.. Bemærk, at 7-segmentet er aktive på et lavt styrebit, som også ses på følgende diagram: P.7 P.6 P.5 P.4 digit 4 P. digit P. P. digit P.0 Digit længst til højre Side 9 af 45

10 Flg. skitse viser princippet i styringen af lysdioderne i 7-segmenterne. 5 Volt P.4 R k Q BC7 P. R k Q BC7 P. R k Q BC7 P.0 R4 k Q4 BC7 D D D D4 D5 D6 D7 D D D D4 D5 D6 D7 D D D D4 D5 D6 D7 D D D D4 D5 D6 D7 LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED P.6 P.5 P.4 P. P. P. P.0 R5- a b f g c d e De tal, der skal skrives i displayet, skal ligge i nogle RAM-adresser i controlleren. Ramadresserne kaldes også registre. I registrene opbevares den aktuelle tid, dvs. værdier fra 0 til 9 ( decimal ). Tallene kan ikke bare direkte sendes ud til 7-segmenterne. De skal først omkodes til et mønster, der for os viser det rigtige tal. Omkodningen sker vha. tabelopslag. De indbyggede timere Tælleren i uc'en får krystallets frekvens delt med Krystallets frekvens kan ledes ind i en 6-bit tæller. Når tælleren laver et overflow, kan der udløses et interrupt, og tiden skal tælles op. Det skal ske hver hundrededel sekund. Mente, kan udløse et interrupt 6 Bit MHz ved MHz Krystal Hvis startværdien er rigtig, går der /00 Sekund inden der laves overflow, og der sendes en mente. Tallet skal være FFFFh d Side 0 af 45

11 Blokstruktur af timerne: uc en har indbyggede tællere, timer 0, og timer. Deres opbygning og funktion vises her: Interrupt-strukturen kan visualiseres sådan: Kilde: Og følgende den måde jeg har tegnet systemet: Side af 45

12 Gate Register TMOD Timer C/T M Krystal fx MHz M0Gate Timer 0 C/T M M0 fx MHz Mov TMOD, # b Gate = 0 C/T = 0 Mode = 0 Mode-bit M & M0 : 00 = 5+8 bit 0 = 6 bit Timer / Counter 0 = 8 bit autoreload til Baudrategenerering =!! Diagrammet gælder for Timer 0 Timer fungerer på tilsvarende måde OSC/ P.4 Input T0, Pin 8 INT0 P. Pin 6 uc Input-pins U4 U U U Timer0 Run bit U6 U5 TR0 Setb TR0 Clr TF0 8 U7 Timer Overflow bit 9 TF0 U8 Mode 6 Bit Tæller U9 Load timer: fx Mov TH0, #Eh Mov TL0, #00h Clk U0 Timer 0 vektor = 0Bh Timer vektor = Bh Interrupt, fx 0Bh TF0 = Timer Nul Overflow Flag eks.: JNB TF0, $ TF0 resettes automatisk ved et udløst interrupt ET0 Enable Timer 0 Interrupt Setb ET0 EA Enable All Interrupts Setb EA Interrupt Administration Evt også Prioritetsbit Setb PT0 0 = lav prioritet = høj prioritet Tilbage til opgaven: Vi vil bruge en af de indbyggede tællere, tæller 0, og indstille den til at tælle krystallets clockfrekvens. Det er altid / del af clockfrekvensen, der kan tælles!! Tiden holdes der rede på i 4 RAM-adresser Der udnævnes 4 RAM-adresser til at holde styr på tal-værdier Minutter, 0-ere Minutter, 'ere Sekunder, 0'ere Sekunder, 'ere Tælleren kan indstilles som en 6 bit tæller. Tælleren er altid en op-tæller. Den kan loades med en startværdi, således at der går /00 del sek. før der sker et overløb. Overløb vil sige at tælleren når til FFFF +, så der overføres en mente. Denne mente eller overløb kan bringes til at udløse et interrupt. Side af 45

13 Et interrupt afbryder det igangværende program, udfører en subrutine, og returnerer igen til det igangværende program. Noget svarende til at et telefonopkald vil udløse et interrupt midt i madlavning!! Interrupt-subrutinen skal nu incremente, dvs. tælle nogle registre op. Registrene kan passende navngives fx hundel, tidel, sek og tisek. Er der tale om fx et stopur, skal subrutinen også ud over at tælle op holde øje med, om hundel er blevet større end 9. Ligeledes tidel osv. Endvidere skal tælleren genloades med startværdien!! Altså efter start, er værdierne i de 4 registre lig den tid, der er gået, med en nøjagtighed på en hundredel sekunder. Men værdierne i RAM-adresserne skal jo også vises på displayet. Det kan hovedprogrammet passende klare. Processoren kan kun vise et tal ad gangen. Der er ikke ben nok!! Derfor skal der multiplexes. Dvs. der vises et tal, fx det højreste 7-segment, et stykke tid, derefter det næste 7-segment, osv. Efter det sidste segment er vist, startes forfra. Hvis det blot går hurtigt, dvs. mere end 5 omgange pr sekund, ser øjet ikke, at displayet blinker. Det mønster, der skal sættes ud til et 7-segment, svarer jo ikke direkte til værdierne i RAMadresserne. Er der fx værdien 5 decimal i sekund-registret, skal de segmenter i 7-segmentet tændes, der fremstiller et digitalt 5-tal. Der er altså behov for en tabel, der kan omdanne en værdi til et mønster. Tabellen laves vha. sandhedsskema. Tabellen skal laves sådan, at der i tabellens element 0 er gemt et mønster, der på 7-segmentet vil vise et 0-tal. I tabellens element findes et mønster for et -tal osv. Programopbygning: /* Header Programmet er til --- Lavet af: Dato: */ ; Ramdefinitioner Hundel equ 0h ; register Hundel ligger på adresse 0h i RAM Tidel equ h ; Side af 45

14 ; Pindefinitioner Sek equ h Tisek equ h dighundel equ p.0 digtidel equ p. digsek equ p. digtisek equ p.4 org 0h jmp start ; H start: org 0bh jmp timer0int org 0h mov sp, #0h ; her kommer programmet, hvis timer 0 udløser et interrupt ; hop til interruptprogram ; her starter programmet ; stackpointeren er default 07h, men vi bruger jo ram over 07h mov dptr, #tabel ; ; Først nulstilles register-værdier mov hundel, #00h mov tidel, #00h mov sek, #00h mov tisek, #00h ; opsætning af tæller: ; opsætning af interrupt ; her starter multiplex-løkken ; ; Interrupt-rutine Timer0int: ; timeren skal have genloadet værdier, og den skal tælle registre op. Reti ; ; retur fra timer interruptprogrammet Tabel: ; xabfgcde ; sådan er bittene forbundet til segmenterne db b ; Segmenterne tænder på et 0 db db osv Side 4 af 45

15 Foruden ovennævnte forbindelser til microcontrolleren er der ført følgende pins ud til kontakter: Undersøg Timer-indmaden og find ud af, hvordan, der kan laves start / stop med P.. Udvid programmet med mulighed for at vise LAP-time. P.7 P.5... Strategi: 0 Kopier tids-raméne til nye Ram-adresser, der så vises på displayet!! Obs: Kontakten længst til venstre på kittet er RESET!! den får programmet til at starte forfra!! P. 0 Strategi: Fx: Der defineres 4 nye RAM-adrssser til Tids-kopier. Der defineres et flag, som sættes hvis P.5 er lav. Og den cleares, hvis P.7 er lav Lab_Flag EQU 0 ; ligger fysisk på Ram-adr 0.0 ;---- Sidst i Interruptrutinen, testes P.5. JB P.5, Timer0int_0 JB Lab_Flag, Timer0int_0 Call Kopier Setb Lab_Flag ; Der laves et flag, der fortæller, at der er lavet en ; Kopi. Kan også bruges i hovedrutinen, til at hoppe ; til en ny Løkke, der viser de nye RAM-adresser Timer0int_0: ;----- I hoved-mux-løkken testes for Lab_Flag, og hvis sat, hop til en ny Mux-løkke. I den nye Mux-løkke testes for P.7, og hvis lav, så Clr Lab_Flag, og hop til den anden Mux-Løkke. Side 5 af 45

16 LCD-Karakter-modul Download evt. et kompendium fra min hjemmeside om LCD-karakter-moduler. Det er lidt kompliceret at lave et program til et LCD-modul fra Scratch. Men der kan hentes hjælp fra en kodegenerator, fundet på en tysk hjemmeside. Generatoren genererer forskellige subrutiner, der kan kopieres ind i ens kildetekst. Subrutinerne kaldes så og bruges af det program, man selv skriver. Flowchartet på en af de efterfølgende sider viser de subrutiner, der genereres af kodegeneratoren til LCD-kode.. Generatoren findes på min hjemmeside. Elektronik > Atmel 89C05 > Tyvstjålet kodegenerator. OBS! Generatoren er skrevet til et display med gange 6 karakterer. Jeg har også lagt noget kode ud på min side. Det er også baseret på kodegeneratoren! Det kan hentes og bruges. Der er her blandt andet subrutiner til at positionere cursoren i displayet. Studer evt. kodegeneratoren. Generer en kode, og kopier den til kildeteksten i Keil... Studer koden og sammenhold den evt. med efterfølgende flowchart. Øverst til venstre på en af de følgende siders flowchart s ses hovedprogrammet, der kalder en initieringsrutine. Denne er nødvendig for at få liv i LCD-en. Herefter indstilles Datapointeren på en tabeladresse, og der kaldes en subrutine, der printer en string af ASCII-karakterer. Rutinen undersøger karakteren i tabellen. Når der læses et 00h, stoppes. De øvrige rutiner, der er vist er: Printc LCD_Return_Home LCD_Clear ; Sender indholdet i Acc til LCD-en, der skriver mønsteret i displayet der hvor cursoren står. Cursoren går frem og er klar til næste karakter ;Cursoren til øverste linie,. plads. ; Sletter alt i cursoren, og anbringer cursoren i første linie,. pos. Det der egentlig sker, når der sendes en værdi til LCD-en er følgende: Til hver plads, eller karakter i LCD-en er der tilknyttet en RAM-adresse, også i LCD-en. Den værdi, der sendes fra Microcontroleren, gemmes i RAM-en på pågældende plads. Værdien, dvs. tallet, i RAM-en peger nu på en ROM-adresse i LCD-en, og i LCD-ens ROM er der så et mønster, der giver et bogstav i displayet på pågældende plads. Det er indrettet således, at sendes en ASCII-værdi for fx et Y, vil netop et Y skrives i displayet. Men der er i ROM en fx også japanske tegn. Se databladet for detaljer. I ROM-en, fra adresse 0 til 7 er der i stedet RAM, hvori der fra Kontrolleren kan downloades fx specielle danske tegn. Dette kan kodegeneratoren også håndtere. Side 6 af 45

17 LCD_Send_b LCD_Prints ; Send Befehl = Ordre til LCD-en. I Acc er anbragt den kommando, der skal sendes. ; Sender en string af hex-værdier, angivet i tabel, afsluttet med 0h For en 6x display er RAM-en i displayet indrettes således, at øverste linies RAM-adresse starter i adresse 00h.. linie starter i RAM-adresse 4h For et 0x4 display er det lidt anderledes:. linie: RAM-adresse 00. linie: RAM-adresse 40h. linie: RAM-adresse 4h 4. linie: RAM-adresse 54h På nettet har jeg lagt subrutiner til at positionere Cursoren i displayet! En subrutine til at positionere cursoren kunne se således ud: ; Værdi i reg A ( til 0d ) angiver positionen på linien. Kald til Lin med d i reg Acc får så cursoren til. plads i linie. ; ; Subrutine til at positionere cursoren. ; Fx Mov a, #0h, Call Lin positionerer cursoren i linie pos.. ; Indhold i Acc angiver pladsen på linien. Lin: add a, #00h Jmp Linn Lin: add a, #40h Jmp Linn Lin: Add a, #4h Jmp Linn Lin4: Add a, #54h Linn: add a, #80h ; kode for positionering af Cursor. Call LCD_Send_b Ret ; Lav nu et program, der afhængig af nogle bit på port P skriver forskellige beskeder i displayet.! Eller efter en pause skriver nye beskeder. Flere display - manipuleringstrick Side 7 af 45

18 Mov a, # I/D S ; bit!! Call LCD_send_b Mov a, #DCBb ; 4 bit!! Call LCD_send_b Mov a, # S/C R/L * * ; 5 bit!! Call LCD_send_b Værdierne, enten 0 eller på pladserne D, C og B, findes i skemaet til højre!! I/D = Cursor incrementes efter hver Write I/D = 0 Cursor decrementes efter hver Write S = Display shift ON D = 0 Display Off D = Display On C= 0 Cursor Off C = Cursor On B = 0 Cursor blinker ikke B = Cursor Blinker S/C = Shift display, hold cursor fast S/C = 0 Move Cursor R/L = Shift Right R/L = 0 Shift Left Bemærk, det er hele displayet, der roteres Eks.: Mov a, #b Call LCD_send_b Mov a, #00b Call LCD_send_b ; Increment Cursor, Shift On ; Send Befehl / Ordre ; Display shift, Hold Cursor fast. ; Send Befehl / Ordre Følgende tegning viser et flowchart over LCD-subrutinerne: Side 8 af 45

19 F lo w c h a r t o v e r L C D - d is p la y e t L C D _ I n it L C D _ S e n d _ b S e n d e r By te i A c c til L C D S ta r t H o v e d p r o g r a m V e n t til d is p la y h a r in itia lic e r e t S ta r t H o p o v e r in te r r u p t a d r e s s e r 0h in d i S ta c k P o in te r K a ld in itie r in g s r u tin e L C D _ I N I T S e n d s ty r e b it G ø r R e g is te r s e le c t RS la v, IR- reg! G ø r RW la v, W r ite! G ø r L C D _ e n a b le la v K a ld L C D _ S e n d _ b By te / b G ø r L C D _ e n a b le høj G ø r L C D _ e n a b le la v I g e n?? K a ld L C D _ S e n d _ b / K a ld L C D _ S e n d _ b By te / 00b K a ld L C D _ C le a r C lr RS C L R RW L C D _ s e n d C le a r RW ( w r ite ) S e t RS, R e g is te r s e le c t, = D a ta r e g. S e n d H ig h N ib b le i A C C ud på p o r t I n d s til D a ta P o in te r p å ta b e la d r e s s e R e t S e t E n a b le ( S tr o b e ) C all P au s e C le a r e n a b le ( S tr o b e ) A k tiv på f a ld e n d e f la n k e! P a u s e S e n d L o w N ib b le i A C C ud på p o r t K a ld L C D - P r in ts ( P r in t s tr in g ) P a u s e i, 6 m s S e t E n a b le C all P au s e c lr E n a b le H o v e d p r o g r a m R e t R e t P r in tc S e n d k a r a k te r i A C C ud! L C D R etu r n H o m e L C D _ P r in ts S en d en s tr in g ter m in er et m ed 0 F r a D T P R I n c L C D _ R A M ( A n ta l k a r a k te r e r p r r æ k k e ) G e m A C C P U S H A c c C a ll L C D _ S e n d _ b # 8 L æ g 0 i L C D - R A M ( C u r s o r?? ) P O P A C C P U S H A C C K a r a k te r n r = 7? N e j R E T 0 til AC C H e n t d a ta A c c + P o in te r Ja Ja 68 d til AC C ( N y linie?? ) k a ld L C D _ S e n d _ b L C D - C le a r = 0? N e j I n c r D tp r C a ll L C D _ P r in tc ( K a r a k te r ) H e n t A C C k a ld L C D _ S e n e _d R e t P U S H A C C S e n d _ b # 0 i L C D _ R A M ( C u r s o r?? ) P O P A C C R E T P o p A C C R E T Side 9 af 45

20 Opgave Lav først et program, der bare skriver dit navn i displayet. Lav fx 4 linjer tekst, og efter et par sekunder skrives en ny tekst. b) Dernæst opbygges et program, der får LCD-displayet til at vise en tekst, og fx i linje en tæller, der tæller antal tastetryk på en knap. Lav eller cifre. c) Lav LCD-stopur!!! Brug relevant kode fra det tidligere eksperiment med LED-stopuret til at opbygge LCD-stopuret. Udvid evt. med Labtime d) Den interne timer bruges nu til at opbygge et ur. Tiden skal fx vises i øverste linje. Der skal tilsluttes et antal knapper til at indstille uret. I linje vises Mode. 8:4: Indstil timer Mode Op Ned Under displayet er placeret knapper. Deres betydning vises i nederste linje i displayet. Hvis Mode indstil timer er valgt, vil tryk på op forøge timetallet, Ned vil formindske. Der kan fx laves følgende modes: Normal Indstil timer Indstil minutter Nulstil sekunder Start med flowchart, for at få planlagt, hvad der skal programmeres!! Side 0 af 45

21 Servomotor. Denne øvelse går ud på at lave et program, der kan få servo-kittet til at udføre bevægelser med de to påmonterede servomotorer. Servomotorer kan normalt dreje ca. 80 grader fra side til side, men der findes også motorer, der kan rotere kontinuerligt. Benforbindelser: BLACK Ground WHITE Control pin RED +4.8V power supply (+5V works well ) Indmaden i servomotoren ser således ud! Side af 45

22 Blokdiagram: Her er vist et blokdiagram over indmaden i en servomotor. På akslen ud af motoren er der monteret et potentiometer. Denne giver en spænding fra 0 til 5 Volt, afhængig motorens position. Kilde: Herved kan elektronikken vide, hvor motoren står. Elektronikken i motoren styres af en Controller, der sender en række pulser til motoren. Pulserne omformes i motorens elektronik til et positionssignal, og motoren kører til en stilling, så forskellen mellem den indbyggede potentiometers feedback-spænding, og den ønskede position er nul. Vha bredden på pulserne på styreledningen kan man bestemme motorens position. Pulserne skal gentages hver ca. 0 ms. Motorens position styres af pulsbredden på signalledningen.. Motoren drejer fra den ene yderstilling til den anden hvis pulsernes bredde ændres fra ms til ms. Side af 45

23 Kilde: Eksempel på en header til Keil: /* program-eksempel til at styre en RC-Servomotor Programmet genererer en puls fra 0,5 ms til ms MHz. Hver gang der er gået ca. 0 ms. skal servomotoren have en puls. Hvis pulsen er ms bred, er motoren i den ene yderstilling, er den,5 ms, er motoren i midten, og hvis den er ms, er motoren i den anden yderstilling. Udmåling af de 0 ms sker i en timer, der udløser et interrupt hver 0. ms. I interruptrutinen genereres en puls, der er sammensat af først en default-puls, hvis varighed er ca. / ms, og dernæst en tid, der er afhængig af indholdet i en RAMadresse. Dvs. at hovedprogrammet kan styre motorens stilling blot ved at lægge en værdi ind i denne RAM-adresse. Ved test har der imidlertid vist sig en ret stor tolerance på pulsbredden. For nogel servomotorer skal pulsen variere fra ca. 0,5 ms til ca. ms.- for at Servoen udfører en fuld bevægelse fra yderstilling til yderstilling. */ Flowchart: Side af 45

24 Servomotor Interrupt Hver 0 ms Pause Hop forbi Int. Vektorer Opsæt interrupt mm. Genload Timerværdier Gem Registre 55 ind i R7 55 ind i R6 Smid værdi ind i RAM Lav forpuls yes Call Pause Lav puls med bredde afh. af RAM-indhold til 80d Tæl R6 ned no R6 = 0? Smid værdi ind i RAM Genload registre yes Tæl R7 ned Call Pause Return from Int. R7 = 0? Return Programeksempel: ; Konstanter: ; ; Pin_def: Servo_pin equ P.0 ; Ramdef: ; forbindelsesben til servo. pulstid equ 0Ah ; ram for valgt pulstid ; Urdef: ( Værdier til timeren ) Timer0LB equ 0DFh Timer0HB equ 0Bh ; virker, /0 del sek. Side 4 af 45

25 ;************************************************************************* Org 0h jmp start ; ORG 0h ; Interrupt from extern interrupt 0 ; jmp EX0int ORG 0Bh Jmp Timer0int ; Interrupt from Counter 0 overflow ; Hop til timerrutine / Jump to subroutine ; ORG h ; Interrupt from Extern interrupt ; jmp EXint ; ORG Bh ;Interrupt from timer ; jmp Timer ;Hop til timerrutine / Jump to subroutine ; org 0h ; seriel interrupt vektor, udløst af RI eller TI ; jmp serint ; Created by RI or TI Org 0h Start: mov sp, #0h ; Opsæt timer 0 til interrupt-generering: Mov TMOD, #0h ;Timer 0, som 6 bit timer Mov TL0,#Timer0LB ;load timer Low Byte Mov TH0,#Timer0HB ;Load timer High Byte Setb ET0 ; Enable Timer 0 interrupt clr TF0 ; læg int flag ned SETB EA ; Global interrupt enable/disable setb TR0 Mov pulstid, #d ; def startværdi i Pulstid RAM ; ; Dette eksempel øger og formindsker trinvis værdien i en ramadresse ; svarende til at servoen bevæger sig langsom fra den ene yderstilling til den anden Startloop: ; forøg værdi call Pause inc pulstid mov a, pulstid ; tjek for værdi = 79d cjne a, #80d, Startloop ;Gentag Startloop_: ; formindsk værdi call Pause dec pulstid mov a, pulstid cjne a, #d, Startloop_ ; tjek for værdi = d jmp Startloop ; loop ; ; Timer 0 interrupt rutinen: Timer0int: ; Udløses 0 gange pr sekund. Side 5 af 45

26 Mov TH0,#Timer0HB Mov TL0,#timer0LB CLR TF0 PUSH ACC PUSH PSW ; Genload Timer High Byte ; her genstartes, ; Genload Timer Low Byte ; pausetiden bliver mindre ; med længere puls! ; Reset timer overflow ; Gem ACC indhold ; Gem programstatusregiste ; nu skal der køres en puls. setb servo_pin ; puls start ; først en for-puls-varighed på ca 0,5 ms. Mov R5, #0FFh ; forpuls 0,5 ms DJNZ R5, $ ; så en puls, hvis bredde er afh. af værdi i RAM-adresse Mov R5, pulstid ; Ram med pulsbredde, værdi fra til 80d Timer0int: ; Mov R4, # djnz R4, $ djnz R5, Timer0int clr servo_pin ; puls slut ; tæl ned Timer0Int_9: POP PSW POP ACC Reti ; Pause: Ret Mov R7, #55 Pause: Mov R6, #55 djnz R6, $ Djnz R7, Pause ; End Side 6 af 45

27 Side 7 af 45

28 Timer indstilling. Microcontroleren har to indbyggede timere. Timer bruges til baudrate-generering til den serielle port. Som det ses på næste skitse kan timeren sættes op på flere måder. 4 modes, hvor jeg har prøvet mode og. Det er registrene TH0 og TL0, der er de registre, der tælles op af timer 0. De er hver 8 bit, og kan gives en værdi, vha Mov TH0, #xxh, Mov TL0, #xxh. Ligeledes kan værdierne fra registrene Moves til Acc-registeret. Timeren kan vha af bit i TMOD-registeret indstilles til fx at tælle hver. puls fra krystallet, evt. startet og stoppet af en inputpin. Den kan tælle pulser på en pin. Timeren som ur.: Sættes en fornuftig værdi ind i register TH0 og TL0, og pulser fra krystallet tælles,kan det udregnes, hvor lang tid, der går før der kommer overløb. Dvs. tælleren runder 6 -taller ( FF FFh ). Dette kan fx ske hver hundrededel sekund. Når der sker overløb, sættes et bit, et flag, TF0. Denne bit kan man holde øje med i en lille løkke. JNB TF0, $ Eller man kan lade TF0-bittet udløse et interrupt. Et interrupt er en midlertidig afbrydelse af det igangværende program. Er interrupt fra Timer 0 enablet, vil programmet hoppe til adresse 0Bh i ROM en. Denne adresse kaldes Timer 0 interruptvektoren. Fra adresse 0Bh kan der udføres et kald eller JMP til en interruptrutine. Interruptrutinen afsluttes med RETI. Ved et MHz krystal er de værdier, der skal loades ind i TH0 og TL0 efter hver overløb =????. Side 8 af 45

29 Seriel transmission af data: Der benyttes et kit med TxD forbundet til en klemme. Programmet skal skrives til at sende pakker a 8 bit til en ekstern enhed. Her modtages de læste bit, og kittets driver reagerer som det er programmeret til. Vejledning: Timer bruges til baudrate-generering. Timeren indstilles til Mode. Her arbejder timeren som 8 bit op-tæller med automatisk genload. Der flyttes en værdi ind i timerens register: TH, og timeren indstilles til at tælle clockpulserne op fra denne værdi til 0FFh. Ved hvert overløb sender timeren så en Clockpuls over til den serielle del. Ved fx 00 baud er der 00 pulser pr sek. På skitseform ser det således ud!! Timer Mode OSC/ TL Puls til UART Ved overløb Programeksempel: TH Genload Mov TMOD, #0h Mov TH, #0E8h Setb TR ; Indstil timer til mode, og direkte pulser fra osc. ; 00 Baud, = Bit pr sek. ; Sæt bit høj, dvs. sæt timer igang. Herefter indstilles mode for den serielle del: Opsætningen af den serielle port sker i SCON registeret. Enten ved at flytte en byte til SCON, eller ved at sætte bittene enkeltvis. Side 9 af 45

30 Bit 7 SCONRegisteret Bit 0 SM0 SM SM REN TB8 RB8 TI RI Mode: SM0SM 0 0: 8bitskifteregister 0 : 8bitserieltUART 0: 9bitserieltUART : 9bitserieltUART Transmitfærdig &Interruptflag 9. bit imodtaget byte i mode & 9. bit isendt byte i mode & Receive enable,skalsættes,førderkanmodtages Setb SM Setb REN ; Vælger Mode, 8 bit data, startbit og stopbit. ; Recieve Enable enables. Hvis der skal ; modtages data!! Kodeeksempel til at Sende data serielt: Clr TI Mov SBUF, A JNB TI, $ ; Clear Transmit færdig Interrupt flag ; Læg værdi fra A over i Senderbuffer ; Vent evt her indtil alle 8 bit er sendt. Kodeeksempel til at Modtage data: Clr RI JNB RI, $ Clr RI Mov A, SBUF ; Vent til RI-flaget er sat. Sker når en hel byte ; er modtaget. ; Slet flaget ; Flyt værdi over I Acc. ; Ps. Der er i realiteten SBUF- registre ; En til at sende, en til at modtage. Interrupt fra seriel port: Har et program ikke tid til at vente på et modtaget en byte eller at en byte er sendt, kan man lade den serielle port udløse et interrupt. Dette kan ske enten på RI-flaget ( Recieve Interrupt, Modtaget byte ) eller på TI-flaget, (Transmit Interrupt, Byte færdigsendt). Side 0 af 45

31 RI Bit i SCON Setb RI Clr RI TI Bit i SCON Setb TI Clr TI Kodeeksempel: Seriel interrupt Bit ES (Enable Seriel interrupt) Setb ES Interrupt-vektor h i ROM Bit EA (Enable All interrupt) Setb EA ; Den serielle interrupt-vektor ligger i adresse h i ROM-en. Org h ; Interuptvektor Jmp Seriel_int ; Hop til subrutine. ( Afslut altid med RETI ) Bit-flagene Ri og Ti bliver ikke resat ved et Interrupt. Derfor er det muligt for interrupt-rutinen at teste på de to flag, hvilken af dem, der udløste interruptet!! De skal så cleares i Interrupt-rutinen, for at der igen kan udløses et interrupt. Hele den serielle del ses næste side: Side af 45

32 Seriel datatransmission med 89C405 Oscillator-clock Fra krystallet Fx. MHz TimerRun-bit Setb TR Clock TR ;Opsætning af Timer & Seriel del: Mov TMOD, #0h Mov TH, #Baudrate Setb TR ; og opsætning af seriel Setb SM Setb REN Timer TH Baudrate-generator Baudrate-tabel: 0E8h = 0 MHz 0E8h = 00 MHz 0E6h = 00 MHz 0F4h = 400 MHZ 0FAh = 9600 MHz Setb SM => Mode, Auto reload Timeren giver en puls til den serielle del for hver overløb RxD Pin P.0 Ben Seriel data ind Modevalg Mode 0 => 8 Bit Setb SM REN Setb REN Receive enable bit SM0 SM Seriel Modtager SBUF Mov a, SBUF Baudrate-pulser Også pulser til Sender-delen Opsætning, Se øverst Setb SM ; Mode, 8 bit Setb REN Eller begge samtidig: Receive Interrupt Sættes, når en Byte er modtaget Ri Clr RI ( JNB Ri, $ ) Or Interrupt-vector Adresse 0h Mov SCON, 50h Send data seriel, eks: Clr TI Mov SBUF,A JNB TI,$ ; Vent på flag = Modtag data, eks: Clr Ri JNB RI, $ ; Vent på flag = Clr RI Mov a, SBUF / Valle 7/4-00 Senderdelen får også Baudratesignal fra Timer Clr Ti ( JNB Ti, $ ) Ti Seriel Sender SBUF Mov SBUF,A ES Setb ES Enable Seriel Interrupt Starter automatisk, med at sende det serielle signal, når der flyttes en Byte ind i SBUF. EA Setb EA Enable All Transmit Interrupt Sættes automatisk, når alle bit er sendt Programmet afbryder, hvad det er i gang med, og hopper til adresse 0h i Rommen Klockpulser fra timer til skifteregister TxD Pin P. Ben Seriel Data Ud Side af 45

33 Seriel transmission i sin simpleste form sker direkte ud af en UART og ind i en anden UART TxD forbindes til modtageren RxD. Beskrivelse: Universal Asynkron Reciever Transmitter Alt kører på 5 Volt. Der skal overføres en dataledning og stel, fælles stel!! Vigtigt!! Data læses parallelt ind i et register, - og skiftes derefter ud serielt. Der er valgt nogle Standard Baudrates: 50, 00, 600, 00, 400, 4800, ,. Side af 45

34 Signalet starter på +5 Volt. På et tidspunkt starter et signal på ledningen. Det skal modtageren bare reagere på. Hi er lig 5 Volt. Startbit er beregnet til at få modtageren til at vågne op Evt. kan vælges at sende en paritetsbit også for at modtageren kan foretage en form for test af datatransmissionen. Signal på TX ud af en UART er Normally High Side 4 af 45

35 Modtageren skal sample dvs. Skifte signal ind i et skifteregister Man skal kende Baud-rate, altså antal bit pr sekund. De to følgende grafer viser signaler ved brug af paritetsbit. Husk at forbinde 0 Volt også, dvs. husk fælles stel!! Et scoopbillede af et serielt signal!! Testinstrument, - se under instrumenter: Jeg har et testinstrument, der kan bruges, hvis man skal teste et serielt signal. Side 5 af 45

36 7 character alphanumerisk display: ( Hej Mor ) Skriv et program, der sender en række karakterer til displayet. Fx dit navn. Og efter en periode en anden tekst!! Det Alpha Numeriske display viser karakterer ud fra ASCII koden. Dvs. at hvis der sendes et 4 h vil displayet vise et stort A. Protokollen: Den måde data skal sendes på, skal aftales, så modtageren forstår det sendte. Det beskrives i en såkaldt protokol, svarende til en beskrivelse i en protokol af, hvordan en diplomat skal opføre sig ved et besøg i et land. Driverne i displayet er skrevet sådan, at der skal sendes byte til hver position I displayet. Den første byte er adressen, og den anden er data, dvs. hvad der skal skrives. Der skal sendes med en Baudrate på 00 Baud, (-0E6h-). Displayets segmenter er programmeret til at reagere på adresserne 8h, 8h 87h fra venstre. Hvis bit 8 i en byte er sat, vil displayet opfatte byten som en adresse. Desværre er ikke alle ASCII karakterer implementeret endnu. De specielle danske karakterer har jo ikke en værdi i ASCII-tabellen. De har fået tildelt ASCII-værdierne: æ = 0h ø = 0h å = 0h Æ = 04h Ø = 05h Å = 06h Selv-definerede Karakterer: Det er også muligt, at skrive selvdefinerede karakterer i displayet. Hvis der sendes en adressebyte, med Bit 4 sat høj, ( fx. 000xxxb ), afventer displayet at der kommer yderligere 5 bytes. Den første byte er mønstret i venstre søjle,. byte er næste søjle osv. Protokollen for de 5 data-bytes er: 0xxxxxxxb, hvor bit 6 er den øverste LED, og bit 0 er den nederste LED i søjlen. Bit 7 skal være 0, ellers tror de andre karakterer, at det er en adresse. Side 6 af 45

37 Protokol tilføjelse: Det burde også at være implementeret i displayets drivere, at hvis der sendes en pakke med A i Highnibble, fx 00 xxxx, vil de næste 7 byte direkte blive skrevet i de 7 segmenter. Dette er dog ikke testet endnu!! På næste side vises ASCII tabellen. ASCII er forkortelsen for American Standard Code for Information Interchange. Det er en kode skabt til at standardisere data der blev sendt til fx printere tilbage i tiden. Det var jo ikke så smart, at alle printere skulle have de samme data for at skrive en tekst. Side 7 af 45

38 ASCII-tabellen: Udvidelse af programmet: Lav program, der henter tekst i en tabel ved tabelopslag. Udvid med tjek af danske karakterer fra tabellen, og konverter dem så æ = 0h, ø = 0h osv.!! Lav flowchart!! Side 8 af 45

39 Løbelys-kit. I løbelyskittet sidder der på bagsiden en uc til hver Dot matrix display. Den højreste uc fodres med serielle data, i form af en byte, der beskriver hvilke lysdioder, i den aller højreste søjle. Når næste byte sendes til displayet, sørger uc ene for, at den forrige byte rykker tand mød venstre. Selve matrixet i de enkelte enheder er multiplexet af en controller. Der sidder yderligere et print på bagsiden med en Controller, der fodrer displayene serielt. I programmet er der et par tekststrings, indprogrammeret i tabeller. Disse tekster sendes serielt til styre-uc-erne. Teksterne i tabellerne indlæses til RAM adresse 0h og opad. De afsluttes med en 00h ~ end of file. Inden data sendes vider, bliver de omkodet til et mønster for pågældende bogstav, og yderligere omkodet, så de forskellige bit bliver flyttet rundt, til den rigtige placering i hardwaren. Det er nemlig ikke sådan på printet, at bit P.7 styrer øverste række, P.6 næstøverste osv. Programmet i styre-uc-en ønskes nu ændret så der kan modtages serielle data fra en ekstern enhed. Den eksterne enhed kan så opfattes som en programmeringsenhed, så der fx kan flyttes aktuelle beskeder over i displayet, og så disse bliver vist i stedet for de fast indprogramerede. Side 9 af 45

40 Pernille: Pernille-kittet er et tal-display. P.0, P., P., P.4 og P.5 er ført ud til extern klemme. 5 Volt + Volt 5 Volt R BC7 BC7 R R R4 Q Q4 P. Q Q BC7 P.7 BC7 0 0 Data skal sendes serielt!! f a b Diagrammet viser hvordan systemet er forbundet! e g d c Design, 0/8- *abf gcde ULN00 Protokol: Baudrate = 00, dvs. Mov TH, #0E6h Microcontroller Data skal sendes serielt som pakket BCD. 0 ere i high nibble, og ere i low nibble. Thermo printer Thermo printeren skal også have data sendt serielt. Lav et program, der - fx når der trykkes på en knap - sender en tekst til termoprinteren. Protokol: Printerens ID = 8Ah, dernæst sendes tekst som ASCII. Printeren gemmer den modtagne tekst, og skriver først en linje når den modtager en Carriage Return. Se ASCII tabellen. Her kan vi opfatte pakken som End of String. Værdien der skal sendes er 0Dh. Baudrate = 00. Side 40 af 45

41 Side 4 af 45

42 A/D-konverter TLC549 Lav et program, der vha. den serielle AD-converter TLC 549 konverterer spændingen fra et potmeter. TLC har en opløsning på 8 bit, og programmet skal sende disse, ud på porten P til 8 lysdioder! Husk at invertere dataene. (Alternativt kan et LCD-display bruges, men så skal der konverteres ) Følgende program kan bruges: ; Konverteringsrutine for TLC549 8 bit A/D-konverter. ; Pindefinitioner ADC_CLK EQU P.x ; Vælg Clockben ADC_DATA EQU P.y ; Vælg hvilken ben, der forbindes til Data ADC_CS EQU P.z ; Vælg Chip Celect Pin ; Subrutine-programmet, der konverterer og returnerer én konverteret værdi I reg A ADC: ADC: setb ADC_DATA Clr ADC_Clk Setb ADC_CS Clr A ; Start Access Clr ADC_CS Mov B, #8 ; Tæller, samtidig us delay efter CS low ADC: Mov C, ADC_DATA Setb ADC_Clk RLC A Clr ADC_CLK DJNZ B, ADC ; Data til Carry ; Clock høj ; Rotate Carry til Acc ; Clock lav for næste bit ; Gentag 8 gange ; Start næste konvertering Setb ADC_CS ; Tager mindst 7 usek! Ret Side 4 af 45

43 Side 4 af 45

44 89C05 opgaver Gate Register TMOD Timer C/T M Krystal fx MHz M0Gate Timer 0 C/T M M0 fx MHz Mov TMOD, # b Gate = 0 C/T = 0 Mode = 0 Mode-bit M & M0 : 00 = 5+8 bit 0 = 6 bit Timer / Counter 0 = 8 bit autoreload til Baudrategenerering =!! Diagrammet gælder for Timer 0 Timer fungerer på tilsvarende måde OSC/ P.4 Input T0, Pin 8 INT0 P. Pin 6 U4 U U U U6 U5 8 U7 9 U8 Load timer: fx Mov TH0, #Eh Mov TL0, #00h Mode Clk uc Input-pins Timer0 Run bit TR0 Setb TR0 Clr TF0 Timer Overflow bit TF0 6 Bit Tæller U9 U0 Timer 0 vektor = 0Bh Timer vektor = Bh Interrupt, fx 0Bh TF0 = Timer Nul Overflow Flag eks.: JNB TF0, $ TF0 resettes automatisk ved et udløst interrupt ET0 Enable Timer 0 Interrupt Setb ET0 EA Enable All Interrupts Setb EA Interrupt Administration Evt også Prioritetsbit Setb PT0 0 = lav prioritet = høj prioritet Af: Valle Thorø Udskr. /0/7 Fil:uC-Opgaver_07.docx Side 44 af 45

45 89C05 opgaver Anvendes timeren til /00 sek. interrupt, skal der genloades med MHz Oversigt over indstilling af ekstern interrupt! Extern interrupt 0 AT89C405 Pin P. /INT0 NOT Interrupt flag Clr IE0 IE0 Interrupt Vektor 0h Flanke trigget Setb EX0 EX0 EA IT0 Setb IT0 Clr IT0 Enable extern interrupt Setb EA Enable All Extern interrupt Pin P. /INT NOT Interrupt flag Clr IE IE Interrupt Vektor h Flanke trigget Setb EX EX EA IT Setb IT Clr IT Enable extern interrupt Setb EA Enable All Er der valgt flanketrigning, resettes IE0 / IE automatisk af interruptfunktionen d. /4-05 / Valle Hvis Edge triggering er enabled, bliver IE0 / IE bit resat ved hop til interrupt routine! Af: Valle Thorø Udskr. /0/7 Fil:uC-Opgaver_07.docx Side 45 af 45

89C4051 opgaver. MSB Opgave 1, Løbelys LSB MSB Opgave 2, Løbelys med 2 Led LSB x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x

89C4051 opgaver. MSB Opgave 1, Løbelys LSB MSB Opgave 2, Løbelys med 2 Led LSB x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x Den første opgave går ud på at lave et program der får LED`ene i LEDkittet til at lyse i flg. mønster, idet et X indikerer en tændt diode. Fordi denne microcontroller kun kan Sink e strøm, er dioderne

Læs mere

LCD Character display Intro

LCD Character display Intro LCD Character display Intro Der findes flere typer af LCD karakter-displays, fra forskellige firmaer. Her er vist en type, der er blå. Pins: Nummer 1 fra venstre Her er vist en nærmere beskrivelse af de

Læs mere

Seriel kommunikation

Seriel kommunikation Introduktion til seriel kommunikation. Senest redigeret d. 1/11-2011. / Valle Se genial om 8051 seriel kommunikation: http://www.edsim51.com/8051notes/8051/serial.html I AT89C4051 er der indbygget en Seriel

Læs mere

LCD Modul. Ved Power-on skal LCD-displayet initieres, og evt. indstilles til 4-bit kommunikation.

LCD Modul. Ved Power-on skal LCD-displayet initieres, og evt. indstilles til 4-bit kommunikation. Vejledning til LCD Karakter Modul, 2 x 16 karakter. På min hjemmeside findes en kodegenerator. Den er gaflet fra en tysk side. Generatoren kan generere koder til 8051-kompatible, og heriblandt koder til

Læs mere

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!)

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!) MHz KIT Rev: /- Det er ikke tilladt, at man bare udsender radiobølger på den frekvens, man ønsker. Forskellige frekvenser er udlagt til forskellige formål. Nogle til politiet, militæret, FM-radio-transmission,

Læs mere

Indholdsfortegnelse :

Indholdsfortegnelse : Udarbejdet af Kasper jensen EUC-Syd 4ES 10-3-2001 Indholdsfortegnelse : Indholdsfortegnelse :...2 Mikroprocessor general :...3 Mikroprocessors funktion :...3 AT89C4051 :...3 Programmering :...3 Assambler

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Programmerbar elektronik. uc Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Forstå princippet i programmering af en uc og se mulighederne. Programmeringen

Læs mere

Arduino Programmering

Arduino Programmering Microcontroller, Arduino I teknologi skal vi lære at lave programmer til uc for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal vi have set mulighederne, og forstået

Læs mere

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller.

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller. Flowchart Et flowchart bruges til grafisk at tegne et forløb. Det kan fx være et programforløb for en microcontroller. Et godt program til at tegne flowcharts med er, EDGE-Diagrammer, eller Smartdraw.

Læs mere

LCD intro. LCD Character display-intro. Redigeret 4/6-2019

LCD intro. LCD Character display-intro. Redigeret 4/6-2019 LCD Character display-intro Parallel interface, Forbindelsesdiagram, Ram & Rom-struktur, Biblioteksfunktioner til at styre LCD-skærmen, Lcd.Print vs Lcd.Write, Selvdefinerede karakterer, herunder æ, ø

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Kompendium til Arduino-programmering i Teknologi. Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Vi skal forstå princippet i programmering af en uc og se

Læs mere

Introduktion til Microcontrollere Version

Introduktion til Microcontrollere Version Denne intro til Micro controllere er oprindeligt skrevet til Atmels AT89C2051, der er baseret på en gammel 8051-familie fra INTEL. Den man køber nu hedder AT89C405. Det er en opgraderet udgave med dobbelt

Læs mere

TG 8. Indhold: TG8 - Kredsløbsbeskrivelse Gruppemedlemmer: Kim Andersen, Kasper Jensen & Thyge Mikkelsen Dato: Modtaget af: Søren Knudsen

TG 8. Indhold: TG8 - Kredsløbsbeskrivelse Gruppemedlemmer: Kim Andersen, Kasper Jensen & Thyge Mikkelsen Dato: Modtaget af: Søren Knudsen TG 8 EUC-Syd Sønderborg 6. Skoleperiode Elektronikmekaniker Indhold: TG8 - Kredsløbsbeskrivelse Gruppemedlemmer: Kim Andersen, Kasper Jensen & Thyge Mikkelsen Dato: 30 04-2002 Modtaget af: Søren Knudsen

Læs mere

Atmel Micro controler. 89C2051 & 89c4051

Atmel Micro controler. 89C2051 & 89c4051 89C405 Kompendium Version maj 00 Senest redigeret aug 0, Marts 04, Sept 05, Atmel Micro controler 89C05 & 89c405 ATMEL 89C05/405 er en aflægger af en ældre type, en 805. 805 havde ikke intern hukommelse,

Læs mere

Øvelse. Øvelse. D.1 CMOS-øvelse. Under øvelsen laves notater, som senere bruges i den efterfølgende journal! Opgave 1:

Øvelse. Øvelse. D.1 CMOS-øvelse. Under øvelsen laves notater, som senere bruges i den efterfølgende journal! Opgave 1: D.1 CMOS-øvelse Under øvelsen laves notater, som senere bruges i den efterfølgende journal! Opgave 1: A): Opbyg flg. kredsløb: Tilslut til 12 Volt. De to indgange er kortsluttede, og forbundet til en ledning

Læs mere

Arduino Programmering

Arduino Programmering Microcontroller-programmering med Arduino I teknologi skal vi lære at lave programmer til en microcontroller for at have muligheden til eksamen at kunne lave intelligente el-produkter. I hvert fald skal

Læs mere

Analog Øvelser. Version. A.1 Afladning af kondensator. Opbyg følgende kredsløb: U TL = 70 % L TL = 50 %

Analog Øvelser. Version. A.1 Afladning af kondensator. Opbyg følgende kredsløb: U TL = 70 % L TL = 50 % A.1 Afladning af kondensator Opbyg følgende kredsløb: U TL = 70 % L TL = 50 % Når knappen har været aktiveret, ønskes lys i D1 i 30 sekunder. Brug formlen U C U start e t RC Beskriv kredsløbet Find komponenter.

Læs mere

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at beskrive et forløb. Det kan fx være en microcontrollers programafvikling.

Flowchart og Nassi ShneidermanN Version. Et flowchart bruges til grafisk at beskrive et forløb. Det kan fx være en microcontrollers programafvikling. Flowchart Et flowchart bruges til grafisk at beskrive et forløb. Det kan fx være en microcontrollers programafvikling. Der findes nogle gode programmer til at tegne flowcharts med, men de skal købes. Fx

Læs mere

Projekt - RoboNet Del Journal.

Projekt - RoboNet Del Journal. Projekt - RoboNet Del Journal. Udarbejdet af: Klaus Jørgensen. Gruppe: Jacob Clausen, Klaus Jørgensen og Ole Rud It og Elektronikteknolog, 2a Erhvervsakademiet Fyn Udarbejdet i perioden: 20/01-03 03/02-03

Læs mere

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato:

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi C Opgave: Brev til Sigurd Lære: John Austin Side 1 af 13 Dato: Side 1 af 13 Dato: 03-06-03 Til Sigurd Som aftalt får du nu tilbygningen til 80C535 kittet, keyboard og programmet med programopdatering. Den sidste opgave her, gik så ud på at tilslutte et tastatur, og

Læs mere

ORCAD Digital U1A er en tæller. Den får clocksignaler ind på ben 1. På ben 2 er der en reset-funktion.

ORCAD Digital U1A er en tæller. Den får clocksignaler ind på ben 1. På ben 2 er der en reset-funktion. OR igital OR OPGER IGITL.) yg dette kredsløb op: er må kun bruges komponenter fra underbiblioteket /pspice/ Stel, findes ved klik i højre side, og i biblioteket Source. og R findes i Pspice / nalog. 7

Læs mere

Analyseopgaver. Forklar kredsløbet. Forklar kredsløbet. 3.0 DC Adapter med Batteri Backup.

Analyseopgaver. Forklar kredsløbet. Forklar kredsløbet. 3.0 DC Adapter med Batteri Backup. Analyseopgaver. Simpel NiMH lader. Forklar kredsløbet.. Infrarød Remote Control tester Forklar kredsløbet.. DC Adapter med Batteri Backup. Der bruges en ustabiliseret Volt adapter. Den giver normalt ca.

Læs mere

GSM SMS Modem MODEL: SA RTU-1 V1.01

GSM SMS Modem MODEL: SA RTU-1 V1.01 GSM SMS Modem MODEL: SA RTU1 V1.01 Brugervejledning Indgange: Der er fire indgange på modulet. De kan programmeres som normale indgange. De kan programmeres som tæller. Udgange: Der er en udgang på modulet

Læs mere

ELCANIC A/S. ENERGY METER Type ENG110. Version 3.00. Inkl. PC program: ENG110. Version 3.00. Betjeningsvejledning

ELCANIC A/S. ENERGY METER Type ENG110. Version 3.00. Inkl. PC program: ENG110. Version 3.00. Betjeningsvejledning ELCANIC A/S ENERGY METER Type ENG110 Version 3.00 Inkl. PC program: ENG110 Version 3.00 Betjeningsvejledning 1/11 Generelt: ELCANIC A/S ENERGY METER Type ENG110 er et microprocessor styret instrument til

Læs mere

Introduktion til Microcontrollere Version

Introduktion til Microcontrollere Version Denne intro er oprindeligt lavet til AT89C4051 fra 8051-familien fra INTEL. Her introduceres den gamle 8051-familie, - og assemblerprogrammering. Men senere skal vi programmere i C, på Atmels AVR-processor,

Læs mere

IAI Quick Start Guide

IAI Quick Start Guide IAI Quick Start Guide Opsætning: Manualen til controllerene ligger i: Produkter\IAI\Manual\RoboCylinder\Controller\ Her ligger den i en undermappe alt efter hvilken type controller det er. Installer RCPC

Læs mere

Programmeringskursus Kursusaften 3. Programmering for begyndere Brug af Arduino. Display. Kursusaften 3 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Programmeringskursus Kursusaften 3. Programmering for begyndere Brug af Arduino. Display. Kursusaften 3 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Display EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Sidste gang havde vi

Læs mere

Opgaver - PLC - analogteknik - forbindelsesteknik...3 Opgaver - PLC - analogteknik - programmering...9

Opgaver - PLC - analogteknik - forbindelsesteknik...3 Opgaver - PLC - analogteknik - programmering...9 PLC - analogteknik INDHOLDSFORTEGNELSE Opgaver - PLC - analogteknik - forbindelsesteknik...3 Opgaver - PLC - analogteknik - programmering...9 2-20 Rekv. 0 Prod. 20-11-2005-21:51 Ordre 000 EFU OPGAVER -

Læs mere

X88. X88 er en GSM/SMS baseret fjernstyring med: 8 indgange 8 relæudgange Mulighed for temperaturføler

X88. X88 er en GSM/SMS baseret fjernstyring med: 8 indgange 8 relæudgange Mulighed for temperaturføler X88 X88 er en GSM/SMS baseret fjernstyring med: 8 indgange 8 relæudgange Mulighed for temperaturføler Let at betjene. Hurtig montering. Let konfiguration. Hurtig. Fleksibel. Passer i en alm gruppetavle.

Læs mere

Talsystemer I V X L C D M 1 5 10 50 100 500 1000. Hvad betyder halvanden??. Kan man også sige Halvtredie???

Talsystemer I V X L C D M 1 5 10 50 100 500 1000. Hvad betyder halvanden??. Kan man også sige Halvtredie??? Romertal. Hvordan var de struktureret?? Systematisk?? I V X L C D M 1 5 10 50 100 500 1000 Regler: Hvis et lille tal skrives foran et stort tal trækkes tallet fra: IV = 5-1 = 4 Hvis et lille tal skrives

Læs mere

Nedenstående opgaver er lavet til en Allen-Bradley PLC, men uden videre tilpasses andre PLC typer.

Nedenstående opgaver er lavet til en Allen-Bradley PLC, men uden videre tilpasses andre PLC typer. PLC, analogteknik Øvelse 1 Nedenstående opgaver er lavet til en Allen-Bradley PLC, men uden videre tilpasses andre PLC typer. Timer 1.1 "TON" Timer on delay: I skal konstruerer en styring, hvor en lampe

Læs mere

ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning

ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning ELCANIC A/S Counter Type CNT150 Version 2.00 Inkl. PC programmet: Cnt150 Version 3.00 Betjeningsvejledning Generelt: ELCANIC A/S COUNTER Type CNT150 er en microprocessor baseret tæller. Specielt designet

Læs mere

Design & Produktion. Valle Thorø. Sønderborg. ELektronik. ( Pendler-ordning gør det muligt! )

Design & Produktion. Valle Thorø. Sønderborg. ELektronik. ( Pendler-ordning gør det muligt! ) Design & Produktion Valle Thorø Sønderborg ELektronik ( Pendler-ordning gør det muligt! ) 1.G 2.G 3.G Teknologi B Teknologi B Evt. teknologi A Teknikfag, Elektronik 5 lekt. Pr uge 5 lekt. Pr uge 9 lekt.

Læs mere

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund AVR MP3 29-05-08 Indholdsfortegnelse 1 Introduktion...2 2 Udviklingsmiljø...2 3 Beskrivelse af systemet...3 3.1 VS1001k...3 3.2 MP3 file formatet...6 4 Konklusion...6 5 Litteratur liste...6 6 Illustrations

Læs mere

Video Projector Controller. Brugermanual

Video Projector Controller. Brugermanual Jægergårdsgade 152/05A DK-8000 Aarhus C DENMARK WWW.WAHLBERG.DK l Video Projector Controller Brugermanual WWW.WAHLBERG.DK TELEPHONE +45 86 18 14 20 CELL PHONE +45 40 52 20 88 EMAIL: mads@wahlberg.dk Feb

Læs mere

MCE2040 SERIEL KOMMUNIKATIONSMODUL

MCE2040 SERIEL KOMMUNIKATIONSMODUL Kokkedal Industripark 4 DK-2980 Kokkedal DANMARK Tlf.: +45 49 18 01 00 Fax: +45 49 18 02 00 MCE2040 SERIEL KOMMUNIKATIONSMODUL Overførsel af status og vægt for digitale vejeceller via simpel PC/PLC protokol

Læs mere

Motorline JAG (indbygget limit switch) Dansk brugermanual

Motorline JAG (indbygget limit switch) Dansk brugermanual Motorline JAG (indbygget limit switch) Dansk brugermanual Til brug for Motorline MC2 kontrolpanel i kombination med Motorline JAG eller Motorline LINCE 230Vac lågeautomatik. Motorline LINCE (kører på tid)

Læs mere

Internt interrupt - Arduino

Internt interrupt - Arduino Programmering for begyndere Brug af Arduino Internt interrupt - Arduino - Afslutning EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Intern interrupt Jeg vil rydde lidt op. Her er nogle punkter vil har glemt

Læs mere

Projekt - RoboNet Del Journal.

Projekt - RoboNet Del Journal. Projekt - RoboNet Del Journal. A/D Konvertering. Udarbejdet af: Klaus Jørgensen. Gruppe: Jacob Clausen, Klaus Jørgensen og Ole Rud It og Elektronikteknolog, a Erhvervsakademiet Fyn Udarbejdet i perioden:

Læs mere

System Arkitektur og Integration

System Arkitektur og Integration Mikael Svenstrup System Arkitektur og Integration 1/24 System Arkitektur og Integration MM11: Seriel kommunikation 2 (SW) Indhold Mikael Svenstrup System Arkitektur og Integration 2/24 Tidligere har i

Læs mere

Indholdsfortegnelse:

Indholdsfortegnelse: 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

Læs mere

Datamaters arkitektur og programmering

Datamaters arkitektur og programmering Mikael Svenstrup Datamaters arkitektur og programmering 1/24 Datamaters arkitektur og programmering MM11: Seriel kommunikation 2 (SW) Indhold Mikael Svenstrup Datamaters arkitektur og programmering 2/24

Læs mere

Lyskryds. Thomas Olsson Søren Guldbrand Pedersen. Og der blev lys!

Lyskryds. Thomas Olsson Søren Guldbrand Pedersen. Og der blev lys! Og der blev lys! OPGAVEFORMULERING:... 2 DESIGN AF SEKVENS:... 3 PROGRAMMERING AF PEEL KREDS... 6 UDREGNING AF RC-LED CLOCK-GENERAOR:... 9 LYSDIODER:... 12 KOMPONENLISE:... 13 DIAGRAM:... 14 KONKLUSION:...

Læs mere

Mircobit Kursus Lektion 3 (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.)

Mircobit Kursus Lektion 3   (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.) Mircobit Kursus Lektion 3 http://microbit.org/ (Du skal her vælge Lets Code Og nederst Microsoft Block Editor.) I sidste lektion var der en opgave man selv skulle prøve at løse. Man skulle lave et tabel

Læs mere

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Programmering for begyndere Brug af Arduino Programmeringskursus Interrupt - Arduino EDR Hillerød Knud Krogsgaard Jensen / OZ1QK Interrupts Programmeringskursus Genbrug Interrupts Betyder blot at man afbryder

Læs mere

0.1 Modultest af hardware

0.1 Modultest af hardware 0.1 Modultest af hardware Hardwaren af M2 testes ved, at de enkelte blokke først testes hver for sig, og derefter testes det, om hele modulet virker. TS2-monitoren brændes i ROM, og ved at forbinde M2

Læs mere

Seriel kommunikation RS232 / RS485

Seriel kommunikation RS232 / RS485 (fortsat fra Positionering/standardfunktion med RS232/RS485) Speed Commanderen har indbygget en seriel kommunikationsenhed, som understøtter RS232 og RS485 kommunikation. Speed Commanderen skal monteres

Læs mere

uprocessorens hardware

uprocessorens hardware uprocessorens hardware 8080 Architecture Kernen i en processor er ALUen. Det er den som kan udfører simple regne operationer. De tal den arbejdermed gemmes i en række registre. Når et tal skal hentes eller

Læs mere

danske karakterer på Lcd

danske karakterer på Lcd Arduino og LCD ( 16/3-13 ) Når Arduinoen kobles til et LCD-display, kan man ikke umiddelbart skrive de danske karakterer æ, ø og å. Bag hver karakterplads i LCD-en er der en 8-bit RAM. Hvis der skrives

Læs mere

DiSEqC-Positioner. Best. nr. HN4892 (Brugsanvisnings nr. 361)

DiSEqC-Positioner. Best. nr. HN4892 (Brugsanvisnings nr. 361) DiSEqC-Positioner Best. nr. HN4892 (Brugsanvisnings nr. 361) DiSEqC 1.0/1.2 Positioner DiSEqC-omformer, som gør at man kan styre en parabolmotor 36-Volts type med alle digital modtagere som har standard

Læs mere

X88S. SMS fjernstyring til sommerhuse

X88S. SMS fjernstyring til sommerhuse X88S SMS fjernstyring til sommerhuse X88s er en GSM/SMS baseret fjernstyring med: 6 indgange 8 relæudgange 2 temperaturfølere Billig i drift, intet abonnement. Kan køre på taletidskort. Nem og hurtig montering.

Læs mere

Analoge indgange og A/D konvertering. Analoge udgange

Analoge indgange og A/D konvertering. Analoge udgange Programmering for begyndere Brug af Arduino Programmeringskursus Analoge indgange og A/D konvertering Analoge udgange Knud Krogsgaard Jensen OZ1QK Oversigt Oversigt over i aften: A/D konvertering iterations

Læs mere

Bruger manual for SW 3.06

Bruger manual for SW 3.06 Ecco 101 VÆGTE & VEJESYSTEMER Power Tare Charge KG Max 200 Kg O T Bruger manual for SW 3.06 Nyskovvej 13 DK-6580 Vamdrup Tlf. +45 76 92 02 00 Fax +45 75 58 06 31 E-mail: scales@farmertronic.com www.farmertronic.com

Læs mere

Fable Kom godt i gang

Fable Kom godt i gang Fable Kom godt i gang Opdateret: 26-03-2018 Indholdsfortegnelse 1. Først skal du installere programmet på din computer 3 2. Når programmet er installeret er du klar til at pakke robotten ud 4 3. Nu er

Læs mere

Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i)

Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i) Eksamens spørgsmål i Teknologi (Digital) 3. Semester (i) 1. DS1821 1-WIRE KOMMUNIKATION (HERUNDER TIMING KRAV) ------------------------ 2 2. DS1821 SOFTWARE (OPBYGNING AF STYREPROGRAM I SYSTEM51 C) -----------

Læs mere

Temperaturmåler. Klaus Jørgensen. Itet. 1a. Klaus Jørgensen & Ole Rud. Odense Tekniskskole. Allegade 79 Odense C 5000 28/10 2002.

Temperaturmåler. Klaus Jørgensen. Itet. 1a. Klaus Jørgensen & Ole Rud. Odense Tekniskskole. Allegade 79 Odense C 5000 28/10 2002. Temperaturmåler Klaus Jørgensen Klaus Jørgensen & Ole Rud Odense Tekniskskole Allegade 79 Odense C 5000 28/10 2002 Vejleder: PSS Forord.: Denne rapport omhandler et forsøg hvor der skal opbygges et apparat,

Læs mere

Relæ - Timer relæ m. 18 funktioner, 12 V

Relæ - Timer relæ m. 18 funktioner, 12 V 1602494800 - Relæ - Timer relæ m. 18 funktioner, 12 V Kompakt og avanceret timer-relæ, med 18 forskellige og smarte funktioner. Det opsættes nemt med kontakterne og displayet, hvor det også er muligt at

Læs mere

Filnavn: main.c 17-05-2002

Filnavn: main.c 17-05-2002 /*Afgangsprojket Intelligent hus styringssystem med LAN. Hovedprogram til brug i PIC 16F628, placeret på slaveenhed. filnavn: dato: Funktion: fra master, main.asm 2/4-2002-2002 tk Kommunikerer med Master-PC,

Læs mere

Dansk El-montage manual Portautomatik

Dansk El-montage manual Portautomatik Dansk El-montage manual Portautomatik (med fysiske ende stop) Terminaler: Power Portstyring 1 2 Power input 220/230Vac. Kabeldim. 3x1.5 PVIKJ eller lign. 3 4 Advarselslampe. Udgang 230Vac/20W. Signalet

Læs mere

Vejledning til Tidtagningssystem til ridebanespring. Sønderborg. Knap for addering af 6 sekunder ved total nedrivning af forhindring.

Vejledning til Tidtagningssystem til ridebanespring. Sønderborg. Knap for addering af 6 sekunder ved total nedrivning af forhindring. Tidsur til Ridebanespring Model: Sønderborg Med visning af tid for hovedspring / omspring. Visning af fejl Automatisk addering af fejl ved overskridelse af fejlfri tid Visning af starttid for næste klasse.

Læs mere

Example sensors. Accelorometer. Simple kontakter. Lysfølsomme. modstande. RFID reader & tags. Temperaturfølsomme. Flex Sensor.

Example sensors. Accelorometer. Simple kontakter. Lysfølsomme. modstande. RFID reader & tags. Temperaturfølsomme. Flex Sensor. Simple kontakter Accelorometer Example sensors Lysfølsomme modstande RFID reader & tags Temperaturfølsomme modstande Flex Sensor Ultralyds afstandsmåler Piezo Pressure/vibration Piezo Sound/buzzer Peltier

Læs mere

DC-Motor Controller. Brugermanual

DC-Motor Controller. Brugermanual Forside Jægergårdsgade 152/05A DK-8000 Aarhus C DENMARK WWW.WAHLBERG.DK DC-Motor Controller Brugermanual Firmware V4.00 Produkt indhold 1 styreboks til styring af 1 DC-motor. 1 strømforsyning 100 240 volt

Læs mere

Kom godt i gang med Fable-robotten

Kom godt i gang med Fable-robotten Kom godt i gang med Fable-robotten 1. Først skal du installere programmet på din computer. Gå ind på shaperobotics.com og under support vælger du download: Her vælger du, under PC App om du kører Windows

Læs mere

NORDISK CONTROL A/S. FUNKTIONSBESKRIVELSE AF PORTSTYRING NC6005 3 X 400V 50Hz

NORDISK CONTROL A/S. FUNKTIONSBESKRIVELSE AF PORTSTYRING NC6005 3 X 400V 50Hz NORDISK CONTROL A/S FUNKTIONSBESKRIVELSE AF PORTSTYRING NC6005 3 X 400V 50Hz Portstyringen NC6005 er en CE-mærket universal 3-knaps styring interface for ABDL-Anlæg. Af primære funktioner kan nævnes: hukommelse

Læs mere

Hardware dokumentation Skrevet af. Gruppen. Version 1.0

Hardware dokumentation Skrevet af. Gruppen. Version 1.0 Hardware dokumentation Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. VERSIONSHISTORIE...3 1.3. VALG AF HARDWARE...3 2. ADGANGS ENHED...4 2.1. FUNKTIONS DIAGRAM...4

Læs mere

BW & BWS vejeindikator.

BW & BWS vejeindikator. Fejl beskeder: Fejl besked Beskrivelse Løsning ----- Overbelastning Reducere vægt. Err 1 Forkert dato Ændre datoen ved at bruge format : yy;mm:dd Err 2 Forkert tid Ændre tiden ved at bruge format: hh:mm:ss

Læs mere

Metal Detektor. HF Valgfag. Rapport.

Metal Detektor. HF Valgfag. Rapport. Metal Detektor. HF Valgfag. Rapport. Udarbejdet af: Klaus Jørgensen. Gruppe: Klaus Jørgensen Og Morten From Jacobsen. It- og Elektronikteknolog. Erhvervsakademiet Fyn Udarbejdet i perioden: 9/- /- Vejledere:

Læs mere

ES faset varmeregulator Varmeregulator der styres af enten potentiometer, DC eller temperatur.

ES faset varmeregulator Varmeregulator der styres af enten potentiometer, DC eller temperatur. ES 7 faset varmeregulator Varmeregulator der styres af enten potentiometer, DC eller temperatur. HEAT MASTER LSC A/S POWER HEAT ON ES 7 / 5 / 996 Beskrivelse: Regulator for tilslutning af faser. Der reguleres

Læs mere

Fjernbetjening Flex Teknisk manual

Fjernbetjening Flex Teknisk manual Fjernbetjening Flex Teknisk manual VEKA INT. Indblæsnings aggregat 1 Beskrivelse Flex fjernbetjening kan bruges til at styre ventilationsanlæg med V1 og V2 printkort. Tekniske data Knapper på display Knap

Læs mere

Intro til AVR. Mads Pedersen, OZ6HR mads@oz6hr.dk

Intro til AVR. Mads Pedersen, OZ6HR mads@oz6hr.dk Intro til AVR Mads Pedersen, OZ6HR mads@oz6hr.dk Projektidé Brug en AVR-microcontroller Mål temperatur vha. temperatursensor Vis på display Send til computer og vis temperatur Slide 2 Plan 27/10-2005:

Læs mere

Fable Kom godt i gang

Fable Kom godt i gang Fable Kom godt i gang Vers. 1.3.1 Opdateret: 29-08-2018 Indholdsfortegnelse 1. Installer programmet 3 2. Pak robotten ud 5 3. I gang med at programmere 6 4. Programmér Fable til at køre fra 90 til -90

Læs mere

Start af nyt schematic projekt i Quartus II

Start af nyt schematic projekt i Quartus II Start af nyt schematic projekt i Quartus II Det følgende er ikke fremstillet som en brugsanvisning der gennemgår alle de muligheder der er omkring oprettelse af et Schematic projekt i Quartus II men kun

Læs mere

MYLOQ 1101 Kodecylinder

MYLOQ 1101 Kodecylinder MYLOQ 1101 Kodecylinder Brugsanvisning DK Vigtig information før anvending Kodecylinderen skal aktiveres før brug (se side 3). En administrationskode skal tilføjes. Vær sikker på at få skrevet den nye

Læs mere

QUICKVEJLEDNING til multiguard Master IO. Montering

QUICKVEJLEDNING til multiguard Master IO. Montering QUICKVEJLEDNING til multiguard Master IO Montering 1. Klargør et SIM-kort, så pinkoden er 1234 eller deaktiveret. Monter kortet i enheden. Enheden har nu 1234 som password eller kører uden password. Kortet

Læs mere

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003

Navn: Søren Guldbrand Pedersen Klasse: 2i Fag: up/ansi Opgave: Brev til Sigurd Lære: John Austin Side 1 af 8 Dato: 14-05-2003 Side 1 af 8 Dato: 14-05-2003 Til Sigurd Som aftalt vil jeg her fremsende vores program til vores 80C535 kit og display. Det gik jo ud på at vi skulle starte med at få den til at intialiserer displayet,

Læs mere

Genius laderegulator Monterings og brugervejledning

Genius laderegulator Monterings og brugervejledning Genius laderegulator Monterings og brugervejledning Laderegulatorens opbygning Genius er en avanceret laderegulator for solceller/solpaneler der kontroller, overvåger og styrer indladning og afladning

Læs mere

Manual IHC Kompatibelt SMS modem. Generel info:... 2 Controllere:... 2 Manualen... 2 Komandoer syntax... 2 Lysdioder... 2 Tilslutning:...

Manual IHC Kompatibelt SMS modem. Generel info:... 2 Controllere:... 2 Manualen... 2 Komandoer syntax... 2 Lysdioder... 2 Tilslutning:... Manual IHC Kompatibelt SMS modem. Modemmet er kompatibelt med LK IHC visual2 controllere. IHC er registreret varemærke hos LK, Schneider Electric. Generel info:... 2 Controllere:... 2 Manualen... 2 Komandoer

Læs mere

Betjeningsvejledning. SMS modul

Betjeningsvejledning. SMS modul Betjeningsvejledning SMS modul HW: P052A.0517 / MC35i SW: P052ASMS.070628 LBJ electronic, DK-7100 Vejle Før du tager dit nye SMS modul i brug, er det vigtigt, at du gennemlæser denne vejledning, og udfører

Læs mere

Vejledning til Tidtagningssystem til ridebanespring. Sønderborg. Manuel Signal ( Radiosignal ) knap på pult ( Stopursfunktion )

Vejledning til Tidtagningssystem til ridebanespring. Sønderborg. Manuel Signal ( Radiosignal ) knap på pult ( Stopursfunktion ) Model: Sønderborg Valgfri portrækkefølge. Visning af tid for hovedspring / omspring. Visning af fejl Automatisk addering af fejl ved overskridelse af fejlfri tid Mulighed for visning af starttid for næste

Læs mere

KONSTANT REGN 6 BETJENINGSVEJLEDNING VERSION 18 DATO 20-1-95 UDLÆSNING I DISPLAY. - Indtrækshastighed. - Total vandingstid

KONSTANT REGN 6 BETJENINGSVEJLEDNING VERSION 18 DATO 20-1-95 UDLÆSNING I DISPLAY. - Indtrækshastighed. - Total vandingstid UDLÆSNING I DISPLAY - Indtrækshastighed - Total vandingstid - Længde af den udtrukne slange - For- og eftervanding valgt - Tryk sensor - Stop sensor - Hastigheds sensor - Motor 1, motor der regulere turbinen

Læs mere

1.1 Indledning. Features: Højintensitet LED-display. Fleksibel forsyning (12-45V). Kan placeres op til 100m fra controlleren.

1.1 Indledning. Features: Højintensitet LED-display. Fleksibel forsyning (12-45V). Kan placeres op til 100m fra controlleren. Indhold. Indledning...3.2 Strømforsyning...4.3 Modul-interface...5.3 Modul-interface...6 2. Kommandooversigt...7 2.2 Register og flag-oversigt...8 2.3 Udlæsning til display...9 2.4 Registerbeskrivelser...

Læs mere

Seriel kommunikation

Seriel kommunikation Odense Tekniske Gymnasium Seriel kommunikation Skribenter Mathias Bejlegaard Madsen, 3.H Udførelsesdato 4. januar til Vejleder Afleveringsdato Indholdsfortegnelse 1 Introduktion 2 2 Bedstemor diagram 2

Læs mere

up/ansi Eksamensspørgsmål

up/ansi Eksamensspørgsmål Side af 3 Dato: 26-06-2003 up/ansi Eksamensspørgsmål Spørgsmål : Erklæring af variable Skal placeres i første blok kan også placeres blandt erklæringer / definitioner af funktioner, dette er dog IKKE klogt.

Læs mere

Start på Arduino og programmering

Start på Arduino og programmering Programmering for begyndere Brug af Arduino Start på Arduino og programmering EDR Hillerød Knud Krogsgaard Jensen / OZ1QK 1 Start på Arduino og programmering Sidste gang (Introduktion) Programmeringssproget

Læs mere

Thevenin / Norton. 1,5k. Når man går rundt i en maske, vil summen af spændingsstigninger og spændingsfald være lig med 0.

Thevenin / Norton. 1,5k. Når man går rundt i en maske, vil summen af spændingsstigninger og spændingsfald være lig med 0. Maskeligninger: Givet følgende kredsløb: 22Vdc 1,5k 1Vdc Når man går rundt i en maske, vil summen af spændingsstigninger og spændingsfald være lig med. I maskerne er der sat en strøm på. Retningen er tilfældig

Læs mere

WEA-Base Brugervejledning til vejetransmitter

WEA-Base Brugervejledning til vejetransmitter WEA-Base Brugervejledning til vejetransmitter Version 3.4 WEA-Base Brugervejledning til vejetransmitter WEA-Base Brugervejledning til vejetransmitter Version 3.4 Indholdsfortegnelse 1. Tekniske data...

Læs mere

SVINGNING. 2 x 5,3 kw AC

SVINGNING. 2 x 5,3 kw AC SVINGNING 2 x 5,3 kw AC SIDE 1/8 MOTOR TEGNING SIDE 2/8 JUSTERINGSVEJLEDNING FOR AC SVINGNING FUNKTIONSBESKRIVELSE AF SVINGNING Svingningen er drevet af to parallel koblet kortslutningsmotorer. Fra frekvensomformer

Læs mere

FireBUS PARKERINGSVENTILATION

FireBUS PARKERINGSVENTILATION FireBUS PARKERINGSVENTILATION QUICK GUIDE Quick guiden beskriver hvordan et mindre anlæg kan installeres og idriftsættes. Alle moduler tildeles en individuel adresse på DIP-switchen i modulet Modulerne

Læs mere

Indhold. Vejledning til ur - DGT 2010

Indhold. Vejledning til ur - DGT 2010 Vejledning til ur - DGT 2010 Indhold Knapper på uret... 2 Korrigere tiden - give ekstra tid... 3 Standard indstilling... 3 1 tids kontrol uden tillægs tid - program 3... 3 2 tids kontroller uden tillægs

Læs mere

Introduktion til programmering. Af mikroprocessor Atmel ATmega328P i en Arduino Uno

Introduktion til programmering. Af mikroprocessor Atmel ATmega328P i en Arduino Uno Introduktion til programmering Af mikroprocessor Atmel ATmega328P i en Arduino Uno Min baggrund: Intel 4004, 4 bit, maskinsprog Intel 8008, 8 bit, maskinsprog bit for bit I sprogene: assembler, Fortran

Læs mere

Alle dip 1 7 sættes til On for at opnå stand-alone operation fra PC.

Alle dip 1 7 sættes til On for at opnå stand-alone operation fra PC. Hurtig opstart af Infranor CD1 p og pm: Dette er en enkelt og kortfattet vejledning i opsætningen af CD 1 p og pm driver til anvendelse i stand-alone mode. Ingen Profibus forbindelse. For senere opkobling

Læs mere

SPIDER Quick guide. DATO: August 2017 FORHANDLER: WASYS A/S. Langebjergvænget Roskilde

SPIDER Quick guide. DATO: August 2017 FORHANDLER: WASYS A/S. Langebjergvænget Roskilde SPIDER Quick guide DATO: August 2017 FORHANDLER: WASYS A/S Langebjergvænget 18 4000 Roskilde +45 7221 7979 Indhold Om SPIDER... 3 Funktioner ved SPIDER... 3 Spændingsforsyning... 3 Installation og fysiske

Læs mere

Bruger manual AGAM kontrolboks

Bruger manual AGAM kontrolboks Bruger manual AGAM kontrolboks Kontrol boks set- up Front tavle (dør) 1. LED : Indikerer hvilke funktioner der er tilsluttet. (Lys tændt = funktion tændt ; lys slukket = funktion slukket). #1- Hovedpumpe

Læs mere

Projekt Træningsmaskine

Projekt Træningsmaskine Computer- og El-teknik A. Holstebro Tekniske Gymnasium - HTX Projekt Træningsmaskine Afleveret: Fredag d. 10/10-2008. Udarbejdet af: Bent Arnoldsen, Holstebro HTX. Gruppemedlem: Hjalmar Krarup Andersen,

Læs mere

Lektion 6 / Analog Arduino

Lektion 6 / Analog Arduino 1 Jeremiah Teipen: Electronic Sandwich BSPR11 Lektion 6 / Analog Arduino Mogens Jacobsen / moja@itu.dk Siden sidst 2 Har I fået nogle LEDs til at blinke? Har I brugt kontakter? Hvad har I eksperimenteret

Læs mere

Storage oscilloscope

Storage oscilloscope Dette dokument er et forsøg på at gøre brugen af GDS-1072A-U Digital Storage Oscilloscope lidt lettere. Hent: Fabrikantens Manual (PDF), En anden Manual: PC-software ( Brug PC-en sammen med Scopet ), Driver

Læs mere

Kompendium. Flip Flops og Tællere

Kompendium. Flip Flops og Tællere 9/9-05 Kompendium Flip Flops og Tællere Rettelser og tilføjelser modtages gerne / Valle Flip Flop s Ucc SW Set R k 0 Reset SW U OR R k Uout En Flip Flop er et kredsløb, der kan være sat enten i den ene

Læs mere

Frederiksen. Brugsvejledning for GM-tæller 5135.3X. 23.09.03 Aa 5135.3X

Frederiksen. Brugsvejledning for GM-tæller 5135.3X. 23.09.03 Aa 5135.3X Brugsvejledning for GM-tæller 5135.3X 23.09.03 Aa 5135.3X Disse to tællere er beregnet til at registrere antallet af pulser fra GM-rør. Tælleren kan indstilles til et antal faste tidsintervaller, eller

Læs mere

QUICKVEJLEDNING til multiguard DIN6. Montering

QUICKVEJLEDNING til multiguard DIN6. Montering QUICKVEJLEDNING til multiguard DIN6 Montering 1. Klargør et SIM-kort, så pinkoden er 1234 eller deaktiveret. Monter kortet i enheden. Enheden har nu 1234 som password eller kører uden password. Kortet

Læs mere