Onderwerp: PIC assembler programmeren Wouter van Ooijen Mail: wouter.vanooijen@hu.nl 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
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
wat is een microcontroller (embedded, real-time) wat is 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
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
steeds meer transistoren op een chip... ontstaansgeschiedenis steeds meer transistoren op een chip... losse transistor analoge ICs logica programmeerbare logica klant-specifieke logica micro processor ‘super’ microprocessor micro controller uC als IP Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
soorten microcontrollers 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
wat is: embedded ? 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
wat is real-time ? niet: snel zo snel mogelijk interactief, batch wel: op tijd! Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
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
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
embedded development 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
Wat is een PIC? voor de CP1600 microprocessor 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
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
Soorten PICs Soort geheugen Mask ROM OTP EPROM Window EPROM Flash Prijzen $0.25 .. $30 Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
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
Hoe schrijf je een PIC programma HEX Assembler C C++ (beperkt) Jal Pascal Ladder Basic … Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
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
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
De PIC16F917 Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
file-to-file data paths Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
file-to-file Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
W register Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
file-to-W Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
file ‘op’ W to file or W Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
ALU status flags (check “status affected”) Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
use status register Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
literal data Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
literals Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
goto call return Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
conditional Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
PIC16F917 memory map Hogeschool Utrecht / Institute for Computer, Communication and Media Technology
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
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
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
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
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