Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 3 - onderwerpen Het DB026 bordje Programmeren: tellen op de LEDjes Macro’s
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 2 USB interface
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 3 Wall-wart voeding
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 4 programming circuit
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 5 target PIC16F688
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 6 8 LEDs
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren segment displays
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 8 keypad
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 9 LDR (lichtgevoelige weerstand)
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 10 Potentiometer (instelbare weerstand)
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 11 Luidsprekertje
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 12 IR receiver
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 13 IR transmitter
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 14 RJ connector
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 15 Dwarf Board connector
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 16 PIC16F688 memory map: I/O pinnen
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 17 DB026 bordje – aansturing
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 18 DB026 bordje – tel op 6 LEDs Configureer RA en RC als outputs Zet RA op de juiste waarde voor ’LEDs’ Loop: –Tel in een variabele –Copieer die naar RC –Wacht 2 ms (gebruik je wacht subroutine)
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 19 uitleg: read-modify-write clrf PORTA bsf PORTA, 0 bsf PORTA, 1 bsf PORTA, 2 bsf PORTA, 3 bsf PORTA, 4 bsf PORTA, 5 bsf PORTA, 6 bsf PORTA, 7
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 20 subroutine voorbeeld wait addlw 0 skpz return addlw 1 goto wait... movlw D’200’ call wait
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 21 subroutine lijkt op een C functie maar veel primitiever label waar je met een call instructie heen springt daar een reeks instructies een return instructie brengt je terug er is een stack voor de return adressen die stack is maar 8 niveau’s diep volgorde van subroutines en main is niet belangrijk let wel op als je subroutines vooraan staan!
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 22 wat is een macro naam voor een aantal regels text, eventueel met parameters wordt letterlijk ingevoegd bank0 macro bcfSTATUS, RP0 bcfSTATUS, RP1 endm
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 23 macro voorbeeld en gebruik bank0 macro clrf STATUS endm bank1macro bsfSTATUS, RP0 bcfSTATUS, RP1 endm ; switch to 8 MHz movlwB' ' bank1 movwf H'8F' bank0
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 24 Macro – listing (.lst)
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 25 Macro Subroutine marco heeft geen call/return (gebruikt de stack niet) subroutine aanroep is altijd 1 statement macro ‘aanroep’ voegt de complete macro in een macro kan assembly-time argumenten hebben
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 26 DB026 bordje – tel op 8 LEDs (1) schrijf een macro die een bit copieert: bitcopy_to_from macro dest_byte, dest_bit, source_byte, source_bit..... endm hoe? [clear destination bit] if [source bit is set] [set destination bit]
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 27 DB026 bordje – tel op 8 LEDs (2) Schijf ook (telkens) de juiste waarde naar RA. Voeg aan je vorige programma toe: copieer de ‘hogere’ bits van de teller naar de RA-buffer met behulp van je ‘copieer bit’ macro (en schrijf de RA buffer weg)