PowerPoint-presentatie

advertisement
V1TH04 – PIC assembler
Wouter van Ooijen
Mail: [email protected]
Sheets en verdere info:
www.voti.nl/hvu/V1TH04
(deze link staat ook op sharepoint)
Onderwerp:
Materiaal:
PIC assembler programmeren
- PIC USB target board (€ 70 )
- handouts etc (worden uitgedeeld)
- (thuis) PC met XP of Vista (met USB)
- Memory stick
Hogeschool Utrecht / Institute for Information & Communication Technology
1-1
V1TH04 – PIC assembler
1-2
Wat er van u verwacht wordt
• U bent (op tijd!) aanwezig
•
•
•
•
•
•
•
Theorie in C03.14 (vanaf 10;50), praktijk in D01.12
De eerste weken iedere week een of meer opgave(n)
De opgaven moeten voor de volgende les klaar zijn
U maak de opgave(n) zelf
De opgaven worden beoordeeld op werking, code en begrip
De laatste weken een individueel projectje
Het resultaat van het projectje is uw cijfer, mits alle
voorgaande opgaven voldoende, en op tijd (anders minpunten!)
• Er is dus geen tentamen, geen projectverslag, etc.
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
1-3
Wat er van u verwacht wordt
• De opgaven zijn individueel
• Code schrijft u zelf
• Overleg mag, maar zorg dat je het uiteindelijk zelf
ook begrijpt
• Copy-and-paste is dus niet toegestaan
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
Onderwerpen voor vandaag
•
•
•
•
wat is een microcontroller
wat is assembler
hoe werk je met een microcontroller
eerste stappen in PIC assembler
Hogeschool Utrecht / Institute for Information & Communication Technology
1-4
V1TH04 – PIC assembler
1-5
Wat is een microcontroller?
meestal:
 ‘computer-achtig’ ding (computertje)
 combinatie van processor, ROM, RAM, I/O, ...
 compact
 goedkoop
 zuinig
 geschikt voor real-time
 geschikt voor embedded gebruik
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
1-6
Wat is assembler?
• De meeste directe manier om een CPU te programmeren
• Veel werk voor de programmeur
• Een stuk beter dan binair, hex of met schakelaars
programmeren ...
• Regel-georienteerd
• (meestal) 1 regel  1 CPU instructie
• maar ook: het programma dat een in assembler geschreven
programma vertaalt (de ‘compiler’)
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
1-7
een assembler fragment
; delay
movlw
H'00'
delay_loop:
addlw H'01'
skpz
goto delay_loop
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
1-8
PIC16F887
•
•
•
•
•
•
40-pins chip, max. 35 beschikbaar als I/O
met kristal maximaal 20 MHz (interne osc 8 MHz)
8k code (14-bit instructies)
368 general purpose registers (RAM)
256 bytes EEPROM
Diverse peripherals (bv A/D, timers, UART, PWM)
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
PIC programming model
• W (accumulator) – het enige echte ‘register’
• Geheugen, adressen 0 .. 0x1FF (512), waarin oa:
– File registers (memory, RAM)
– Flags – die zitten dus in het ‘geheugen’!
Hogeschool Utrecht / Institute for Information & Communication Technology
1-9
V1TH04 – PIC assembler
Hogeschool Utrecht / Institute for Information & Communication Technology
1 - 10
V1TH04 – PIC assembler
File Registers (SFR, GPR)
Hogeschool Utrecht / Institute for Information & Communication Technology
1 - 11
V1TH04 – PIC assembler
Hogeschool Utrecht / Institute for Information & Communication Technology
1 - 12
V1TH04 – PIC assembler
Literal to W, W to file, file to W
a represents an address, [ a ] the (byte) content of that address
Hogeschool Utrecht / Institute for Information & Communication Technology
1 - 13
V1TH04 – PIC assembler
1 - 14
Wat doet dit code fragment?
MOVF
MOVWF
MOVLW
MOVWF
H’20’, W
H’21’
H’30’
H’31’
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
W
Hogeschool Utrecht / Institute for Information & Communication Technology
1 - 15
V1TH04 – PIC assembler
1 - 16
Arithmetic instructions - diadic
a represents an address, [ a ] the (byte) content of that address, n a (byte) literal
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
Arithmetic
instructions
- diadic
Hogeschool Utrecht / Institute for Information & Communication Technology
1 - 17
V1TH04 – PIC assembler
1 - 18
Wat doet dit code fragment?
MOVF
ADDWF
MOVWF
H’20’, w
H’21’, w
H’21’
 Hoe kan dit korter?
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
Arithmetic instructions - monadic
a represents an address, [ a ] the (byte) content of that address
Hogeschool Utrecht / Institute for Information & Communication Technology
1 - 19
V1TH04 – PIC assembler
Arithmetic
instructions
- monadic
Hogeschool Utrecht / Institute for Information & Communication Technology
1 - 20
V1TH04 – PIC assembler
1 - 21
Wat doet dit code fragment?
RLF
MOVFW
RRF
H’30’, w
H’31’
H’32’, f
Het maakt niet uit of je hoofdletters of kleine letters
gebruikt, maar CaMelCaSe werkt niet.
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
1 - 22
Bit set and clear
a represents an address, [ a ] the (byte) content of that address, n a (byte) literal,
b a 3-bit literal (a bit number, 0..7), X : b represents bit b of X
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
Bit set and clear
Hogeschool Utrecht / Institute for Information & Communication Technology
1 - 23
V1TH04 – PIC assembler
1 - 24
Wat doet dit code fragment?
BSF
RRF
H’03’, 0
H’32’, f
Zoek in de INSTRUCTION SET SUMMARY op hoe
de RRF instructie precies werkt.
Wat gebeurt er als je de BSF instructie weg laat?
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
goto
call
return
Hogeschool Utrecht / Institute for Information & Communication Technology
1 - 25
V1TH04 – PIC assembler
In welke volgorde worden de MOVLW
instructies uitgevoerd?
Start:
CALL Main
HALT
Spagetti:
MOVLW 1
CALL spinazie
GOTO spinazie
MOVLW 2
Spinazie:
MOVLW 3
RETURN
MOVLW 4
Main:
MOVLW 5
CALL spagetti
MOVLW 6
Hogeschool Utrecht / Institute for Information & Communication Technology
1 - 26
V1TH04 – PIC assembler
Conditional skips
a represents an address, [ a ] the (byte) content of that address
Hogeschool Utrecht / Institute for Information & Communication Technology
1 - 27
V1TH04 – PIC assembler
Conditional
skips
Hogeschool Utrecht / Institute for Information & Communication Technology
1 - 28
V1TH04 – PIC assembler
diversen
Hogeschool Utrecht / Institute for Information & Communication Technology
1 - 29
V1TH04 – PIC assembler
1 - 30
Assembler build-in macro’s
SKPZ
SKPNZ
SKPC
SKPNC
= btfss 3, 2
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
1 - 31
In welke MOVLW instructies worden uitgevoerd?
movlw 5
movwf h’30’
btfsc h’30’, 0
movlw 12
btfss h’30’, 1
movlw 13
addlw 252
skpz
movlw 14
skpnc
movlw 15
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
1 - 32
wat doet dit stukje assembler code?
; delay
movlw H'00'
delay_loop
addlw H'01'
skpz
goto delay_loop
nb: skpz == btfss 3, 2
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
1 - 33
oefening 1
Op geheugenplaatsen H’20’ en H’21’
staan 2 getallen. Schrijf een programma
dat deze getallen optelt en het resultaat
in H’22’ plaatst
(3 instructies)
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
1 - 34
oefening 2
Op geheugenplaatsen H’20’ en H’21’
staan 2 getallen. Zet het grootste van
deze twee getallen in geheugenplaats
H’22’.
(diverse oplossingen mogelijk, bv 8
instructies)
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
1 - 35
Oefening 3
Op geheugenplaatsen H’20’ en H’21’ staan 2
getallen. Vermenigvuldig deze getallen en
plaats het resultaat in H’22’. Na afloop mogen
de getallen in H’20’ en H’21’ veranderd zijn.
(diverse oplossingen mogelijk, bv 10
instructies. Tip: vermenigvuldigen is herhaald
optellen, evt eerst uitschrijven in C of Java)
Hogeschool Utrecht / Institute for Information & Communication Technology
V1TH04 – PIC assembler
1 - 36
Doen
 neem de slides nog eens door
 noteer wat je niet duidelijk is !
 neem € 70 mee voor het bordje (gepast!)
 schrijf de programma’s voor de oefeningen
(mag op papier, of in notepad, etc )
dit moet voor volgende week af zijn!!
 let goed op het verschil tussen MOVLW en
MOVWF/MOVF/MOVFW.
Hogeschool Utrecht / Institute for Information & Communication Technology
Download