PIC Opg 1 Løsning

Fra HTX Arduino
Spring til navigation Spring til søgning

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


Digitale Opgaver
Kombinatorisk Logik Opgave 1a - Opgave 1b - Opgave 2 - Opgave 3 - Opgave 4 - Opgave 5 - Opgave 6 - Opgave 7 - Opgave 8 - Opgave 9 - Opgave 10
Sekvensiel Logik Opgave 11 - Opgave 12 - Opgave 13 - Opgave 14
Analoge Opgaver
Modstande og Ohms lov Modstands Opgave 1 - Modstands Opgave 2 - Modstands Opgave 3 - Modstands Opgave 4 - Modstands Opgave 5 - Modstands Opgave 6 - Modstands Opgave 7 - Modstands Opgave 8 - Modstands Opgave 9 - Modstands Opgave 10
Kondensator og Spole Kondensator opgaver 1 - Kondensator DC opgave 1 - Kondensator AC opgave 1 - Spolen 1 - Seriekobling og parallelkobling - Spolen 2 - Beregning af spoleværdier (selvinduktionen) - Spolen 3 - Tidskonstant for RL-led - Spolen 4 - Beregning af induktiv-reaktansen
Operationsforstærker Opamp Opgave 1 - Opamp Opgave 2 - Opamp Opgave 3
Diverse Opgaver Opgaver Diagram - Opgaver Transformator - Transistor opgave - Zenerdiode Opgave 1
Programmerings Opgaver
Arduino Arduino Blink - Arduino Opgave 01 - Blink - Arduino Button - Analog Out - Arduino StateChangeDetection - Arduino termometer - Arduino termostat - Arduino udgangsforstærkning
PIC PIC Opgave 1 - Blink - PIC Opgave 2 - Gates - PIC Opgave 3 - Udvidet blink - PIC Opgave 4 - Kombinatorik - PIC Opgave 5 - Flip-flops - PIC Opgave 6 - Løbelys - PIC Opgave 6a - kontakt - PIC Opgave 7 - Udvidet løbelys - PIC Opgave 8 - Sekventielle kredsløb - PIC Opgave 9 - Multivibratorer - PIC Opgave 10 - Samtidighed - PIC Opgave 11 - Tastatur - PIC Opgave 12 - Display - PIC Opgave 13 - A-D converter - PIC Opgave 14 - Interrupt - PIC Opgave 15 - Seriel komm - PIC Opgave 16 - Lyskryds - PIC Opgave 17 - Tyverialarm
PIC Opgave Løsninger PIC Opg 1 Løsning - PIC Opg 2 Løsning - PIC Opg 3 Løsning - PIC Opg 4 Løsning - PIC Opg 5 Løsning