PIC Opg 1 Løsning
Denne side gennemgår løsningen for PIC Opgave 1 - Blink
Løsningsforslag for Blink.
Generelt er alle løsningerne lavet med den sædvanlig opstartskode til en PIC16F684, og selve funktionen realiseret i et forever loop.
Opstartskoden kan ses generelt gennemgået i
Koden som jal-filer
Alle eksemplerne kan hentes i denne ZIP-fil.
At få udgangen til at blinke
For at få et ben til at fungere som udgang, så skal det sættes op i program-koden. Det kan gøres som følger:
-- Definer navne på port ben var bit LED1 is pin_a0 -- Definer Input / Output pin_a0_direction = output
Hele koden skal danne et loop, der bliver ved med at udføre koden, indtil der slukkes. Det gøres med et forever-loop. Inde i forever-loopet ser koden ud som følgende:
27 forever loop -- fortsæt i det uendelige 28 LED1 = high 29 delay_100ms(5) 30 LED1 = low 31 delay_100ms(5) 32 end loop -- end forever
Linje 27 er starten af forever-loopet, hvor koden starter igen, hver gang den er nået ned til linje 32, der afslutter forever-loopet
Linje 28 tænder lysdioden på PIC-boardet. Linje 29 holder en pause i programmet på et halvt sekund (det der rent faktisk sker er, at programmet looper igennem så meget kode at det tager et halvt sekund, hvor den ikke laver andet).
Linje 30 slukker så lysdioden igen, og linje 31 laver en ny pause på et halvt sekund.
Koden ligger som opg1a.jal i denne ZIP-fil.
At få blinket til at være afhængigt af en kontakt
For at få et ben til at fungere som indgang, så skal det sættes op i program-koden. Det kan gøres som følger:
var bit Kontakt1 is pin_a3 pin_a3_direction = input
Der udvides i koden inde i forever-loopet, så den ser ud som følgende:
29 forever loop -- fortsæt i det uendelige 30 if Kontakt1 then 31 LED1 = high 32 end if 33 delay_100ms(5) 34 LED1 = low 35 delay_100ms(5) 36 end loop -- end forever
Det er linje 30 og 32 der er sat ind i koden, og det gør at linje 31 kun bliver udført, hvis Kontakt1 indgangen er høj.
Koden ligger som opg1b.jal i denne ZIP-fil.
| PIC | |
|---|---|
| PIC-Typer | PIC16F84 - PIC12F675 - PIC16F628 - PIC16F684 - PIC16F690 - PIC16F877 - PIC18F2550 |
| Programmeringsbegreber | Maskinkode - Mikrocontroller |
| Programmeringsmiljø | PIC-brænder - UsbPicProg - Analog indgang - ICSP |