PowerPoint-presentatie

advertisement
2PROJ5 – PIC assembler
1
Wouter van Ooijen
Mail: [email protected]
Sheets en verdere info:
www.voti.nl/hvu/2PROJ5
Onderwerp: PIC assembler programmeren
Materiaal: - PIC USB target board (€ 60 ),
- handouts etc (worden uitgedeeld)
- Memory stick
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
2PROJ5 – PIC assembler
2
Wat er van u verwacht wordt
•
•
•
•
•
•
•
U bent (op tijd!) aanwezig
Theorie en praktijk in D212
De eerste weken iedere week een of meer opgave(n)
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 waren
• Er is dus geen tentamen, geen projectverslag, etc.
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
2PROJ5 – PIC assembler
onderwerpen
• wat is een microcontroller
(embedded, real-time)
• wat is assembler
• hoe werk je met een microcontroller
• wat is een PIC
• de PIC16F917
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
3
2PROJ5 – PIC assembler
4
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 Computer, Communication and Media Technology
2PROJ5 – PIC assembler
5
steeds meer transistoren op een chip...
losse transistor
analoge ICs
logica
micro processor
micro controller
programmeerbare
logica
‘super’
microprocessor
klant-specifieke
logica
uC als IP
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
2PROJ5 – PIC assembler
ultra-goedkoop
chinees, inclusief de documentatie 
lastig verkrijgbaar
general-purpose
PIC, Atmel, 8051, 68HC, ...
high-end
ARM, PowerPC
special purpose:
DSP, ethernet, USB, analoog, ...
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
6
2PROJ5 – PIC assembler
 ergens in,
deel van een geheel,
(diep) verstopt,
dienstbaar aan waar ‘t in zit
 vaste functie,
dus niet vrij programmeerbaar
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
7
2PROJ5 – PIC assembler
niet:
 snel
 zo snel mogelijk
 interactief, batch
wel:
 op tijd!
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
8
2PROJ5 – PIC assembler
9
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 Computer, Communication and Media Technology
2PROJ5 – PIC assembler
10
een assembler fragment
; delay
movlw
H'00'
delay_loop
addlw H'01'
skpz
goto delay_loop
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
2PROJ5 – PIC assembler
bijna altijd cross-development:
 jij werkt op een PC
 daar draait je editor, compiler,
assembler, linker
 loader of programmer om te laden
 burn and crash
 luxer: cross-debugger, ICE
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
11
2PROJ5 – PIC assembler
Wat is een PIC?
• ooit: Peripheral Interface Controller
voor de CP1600 microprocessor
• nu: merknaam voor een zeer brede reeks
microcontrollers van fabrikant Microchip
• Harvard-architectuur
• concurrenten: AVR (Atmel), 68HC (Motorola),
8051 (diverse fabrikanten), ...
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
12
2PROJ5 – PIC assembler
Soorten PICs
Processor (core)
• 12-bit
• 14-bit 
• 16-bit
• 24-bit
Behuizing
• 6 .. 80 pinnen  40
• DIP, SMD, PLCC  DIP
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
13
2PROJ5 – PIC assembler
Soorten PICs
Soort geheugen
• Mask ROM
• OTP EPROM
• Window EPROM
• Flash 
Prijzen
• $0.25 .. $30
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
14
2PROJ5 – PIC assembler
Soorten PICs
Special Features
• A/D
• UART
• Data EEPROM
• Timers
• Interne oscillator
• PWM
• USB
• Ethernet
• etc
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
15
2PROJ5 – PIC assembler
Hoe schrijf je een PIC programma
•
•
•
•
•
•
•
•
•
HEX
Assembler 
C 
C++ (beperkt)
Jal
Pascal
Ladder
Basic
…
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
16
2PROJ5 – PIC assembler
Hoe krijg je het programma in de PIC
•
•
•
•
•
In de fabriek, eenmalig
Eraser / ex-circuit programmer (EPROM)
Ex-circuit programmer (FLASH)
In-circuit programmer 
In-circuit debugger
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
17
2PROJ5 – PIC assembler
18
PIC16F917
•
•
•
•
•
•
40-pins chip, 12 beschikbaar als I/O
met kristal maximaal 20 MHz (interne osc 8 MHz)
8k code (14-bit instructies)
256 general purpose registers (RAM)
256 bytes EEPROM
Nanowatt features
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
2PROJ5 – PIC assembler
De PIC16F917
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
19
2PROJ5 – PIC assembler
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
20
2PROJ5 – PIC assembler
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
21
2PROJ5 – PIC assembler
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
22
2PROJ5 – PIC assembler
23
file-to-file data paths
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
2PROJ5 – PIC assembler
file-to-file
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
24
2PROJ5 – PIC assembler
W register
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
25
2PROJ5 – PIC assembler
file-to-W
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
26
2PROJ5 – PIC assembler
file ‘op’ W
to
file or W
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
27
2PROJ5 – PIC assembler
ALU status flags
(check “status affected”)
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
28
2PROJ5 – PIC assembler
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
29
2PROJ5 – PIC assembler
use status
register
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
30
2PROJ5 – PIC assembler
literal data
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
31
2PROJ5 – PIC assembler
literals
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
32
2PROJ5 – PIC assembler
goto
call
return
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
33
2PROJ5 – PIC assembler
conditional
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
34
2PROJ5 – PIC assembler
PIC16F917
memory map
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
35
2PROJ5 – PIC assembler
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 Computer, Communication and Media Technology
36
2PROJ5 – PIC assembler
37
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 Computer, Communication and Media Technology
2PROJ5 – PIC assembler
38
oefening 2
Op geheugenplaatsen H’20’ en H’21’
staan 2 getallen. Zet het grootste van
deze twee getallen in geheugenplaats
H’22’.
(bv 8 instructies)
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
2PROJ5 – PIC assembler
39
Doen
 neem de slides nog eens door
 noteer wat je niet duidelijk is !
 neem € 60 mee voor het bordje
 schrijf 1 programma (volgende sheet)
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
2PROJ5 – PIC assembler
opgave voor volgende week
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. vermenigvuldigen is
herhaald optellen!)
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
40
Download