PowerPoint-presentatie

advertisement
Computertechniek
1
Wouter van Ooijen
Mail: [email protected]
Sheets en verdere info:
www.voti.nl/hvu/2PROJ4
Onderwerp: PIC assembler programmeren
Materiaal: - PIC USB target board (€ 50 ),
- handouts etc (worden uitgedeeld)
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
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 en code
De laatste weken een projectje
Het (gewogen) gemiddelde van de opgaven en projectje is
uw cijfer
• Er is dus geen tentamen
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
3
Voor verder geinteresseerden

ISBN 0-07-136172-3 (E 68)
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
4
onderwerpen
• wat is een microcontroller
(embedded, real-time)
• wat is assembler
• hoe werk je met een microcontroller
• wat is een PIC
• de PIC16F688
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
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 van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
6
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 van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
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 van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
7
Computertechniek
 ergens in,
deel van een geheel,
(diep) verstopt,
dienstbaar aan waar ‘t in zit
 vaste functie,
dus niet vrij programmeerbaar
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
8
Computertechniek
niet:
 snel
 zo snel mogelijk
 interactief, batch
wel:
 op tijd!
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
9
Computertechniek
10
nut
responstijd
 soft real-time!
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
11
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 assembler vertaalt (de
‘compiler’)
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
12
een assembler fragment
; delay
movlw
H'00'
delay_loop
addlw H'01'
skpz
goto delay_loop
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
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 van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
13
Computertechniek
14
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 van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
15
Soorten PICs
Processor (core)
• 12-bit
• 14-bit 
• 16-bit
• 24-bit
Behuizing
• 6 .. 80 pinnen  14
• DIP, SMD, PLCC  DIP
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
16
Soorten PICs
Soort geheugen
• Mask ROM
• OTP EPROM
• Window EPROM
• Flash 
Prijzen
• $0.25 .. $30
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
17
Soorten PICs
Special Features
•  A/D
•  UART
•  Data EEPROM
•  Timers
•  Interne oscillator
• PWM
• USB
• …
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
18
Hoe schrijf je een PIC programma
•
•
•
•
•
•
•
•
•
HEX
Assembler 
C 
C++ (beperkt)
Jal
Pascal
Ladder
Basic
…
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
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 van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
19
Computertechniek
20
PIC16F688
•
•
•
•
•
•
•
14-pins chip, 12 beschikbaar als I/O
Interne clock is (maximaal) 8 MHz
met kristal maximaal 20 MHz
4k code (14-bit instructies)
256 general purpose registers (RAM)
256 bytes EEPROM
Nanowatt features
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
21
De PIC16F688
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
22
Computertechniek
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
23
Computertechniek
24
basic data paths
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
file-to-file
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
25
Computertechniek
W register
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
26
Computertechniek
file-to-W
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
27
Computertechniek
file and W
to
file or W
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
28
Computertechniek
ALU status flags
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
29
Computertechniek
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
30
Computertechniek
use status
register
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
31
Computertechniek
32
literal data
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
literals
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
33
Computertechniek
goto
call
return
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
34
Computertechniek
conditional
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
35
Computertechniek
PIC16F688
memory map
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
36
Computertechniek
37
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 van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
38
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 van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
39
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 van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
40
Doen
• neem de slides nog eens door
noteer wat je niet duidelijk is !
neem € 50 mee voor het bordje
schrijf 1 programma (volgende sheet)
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
Computertechniek
opgave voor volgende week
Op geheugenplaatsen H’20’ en H’21’
staan 2 getallen. Vermenigvuldig deze
getallen op 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 van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
41
Download