1 / 45

Wouter van Ooijen Mail: wouter.vanooijen@hu.nl Sheets en verdere info:

Wouter van Ooijen Mail: wouter.vanooijen@hu.nl Sheets en verdere info: www.voti.nl/hvu/2TPRJ5 (deze link staat ook op sharepoint) Onderwerp: PIC assembler programmeren Materiaal: - PIC USB target board ( € 60 ) - handouts etc (worden uitgedeeld)

livana
Download Presentation

Wouter van Ooijen Mail: wouter.vanooijen@hu.nl Sheets en verdere info:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Wouter van Ooijen Mail: wouter.vanooijen@hu.nl Sheets en verdere info: www.voti.nl/hvu/2TPRJ5 (deze link staat ook op sharepoint) Onderwerp: PIC assembler programmeren Materiaal: - PIC USB target board (€ 60 ) - handouts etc (worden uitgedeeld) - (thuis) PC met XP of Vista (met USB) - Memory stick Hogeschool Utrecht / Institute for Information & Communication Technology

  2. Wat er van u verwacht wordt • U bent (op tijd!) aanwezig • Theorie in D05.18 (vanaf 10;50), praktijk in C01.14 • 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

  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

  4. Onderwerpen voor vandaag • wat is een microcontroller (embedded, real-time) • wat is assembler • hoe werk je met een microcontroller • wat is een PIC • de PIC16F887 Hogeschool Utrecht / Institute for Information & Communication Technology

  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

  6. soorten microcontrollers ultra-goedkoop chinees, inclusief de documentatie  lastig verkrijgbaar (in kleinere aantallen, zeg < 10^5) general-purpose PIC, Atmel, 8051, 68HC, ... high-end ARM, PowerPC special purpose: DSP, ethernet, USB, analoog, LCD, ... Hogeschool Utrecht / Institute for Information & Communication Technology

  7. wat is: embedded ? • ergens in, deel van een geheel, (diep) verstopt, dienstbaar aan waar ‘t in zit • vaste functie, dus niet vrij programmeerbaar Deeply embedded : zo diep dat je de computer zelf niet meer ziet Hogeschool Utrecht / Institute for Information & Communication Technology

  8. 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

  9. een assembler fragment ; delay movlw H'00' delay_loop: addlw H'01' skpz goto delay_loop Hogeschool Utrecht / Institute for Information & Communication Technology

  10. 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 • luuxer: cross-debugger, ICE Hogeschool Utrecht / Institute for Information & Communication Technology

  11. Wat is een PIC? • ooit: Peripheral Interface Controller voor de CP1600 minicomputer • nu: merknaam voor een zeer brede reeks 8-bit microcontrollers van fabrikant Microchip • Harvard-architectuur • concurrenten: AVR (Atmel), 68HC, MSP430 (Motorola), 8051, ARM (diverse fabrikanten), Hogeschool Utrecht / Institute for Information & Communication Technology

  12. Soorten PICs Processor (core) • 12-bit (max 2k code, 2-level stack, geen interrupts) • 14-bit  (max 8k code, 8-level stack) • 16-bit • 24-bit • 32-bit Behuizing • 6 .. 80 pinnen  40 • DIP, SMD, PLCC  DIP volkomen andere processors Hogeschool Utrecht / Institute for Information & Communication Technology

  13. Soorten PICs Soort geheugen • Mask ROM • OTP EPROM • Window EPROM • Flash  • Reduced Flash Prijzen (@ 1) • $0.50 .. $30 Hogeschool Utrecht / Institute for Information & Communication Technology

  14. Hoe schrijf je een PIC programma • HEX • Assembler  • C  • C++ (beperkt) • Jal • Pascal • Ladder • Basic • … Hogeschool Utrecht / Institute for Information & Communication Technology

  15. Hoe krijg je het programma in de PIC • In de fabriek, eenmalig (mask ROM) • Eraser / ex-circuit programmer (EPROM) • Ex-circuit programmer (FLASH) • In-circuit programmer  • (In-circuit debugger) Hogeschool Utrecht / Institute for Information & Communication Technology

  16. 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

  17. Hogeschool Utrecht / Institute for Information & Communication Technology

  18. 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

  19. Hogeschool Utrecht / Institute for Information & Communication Technology

  20. File Registers (SFR, GPR) Hogeschool Utrecht / Institute for Information & Communication Technology

  21. Hogeschool Utrecht / Institute for Information & Communication Technology

  22. 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

  23. Wat doet dit code fragment? MOVF H’20’, W MOVWF H’21’ MOVLW H’30’ MOVWF H’31’ Hogeschool Utrecht / Institute for Information & Communication Technology

  24. W Hogeschool Utrecht / Institute for Information & Communication Technology

  25. 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

  26. Arithmeticinstructions- diadic Hogeschool Utrecht / Institute for Information & Communication Technology

  27. Wat doet dit code fragment? MOVF H’20’, w ADDWF H’21’, w MOVWF H’21’  Hoe kan dit korter? Hogeschool Utrecht / Institute for Information & Communication Technology

  28. Arithmetic instructions - monadic a represents an address, [ a ] the (byte) content of that address Hogeschool Utrecht / Institute for Information & Communication Technology

  29. Arithmeticinstructions- monadic Hogeschool Utrecht / Institute for Information & Communication Technology

  30. Wat doet dit code fragment? RLF H’30’, w MOVFW H’31’ RRF 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

  31. 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

  32. Bit set and clear Hogeschool Utrecht / Institute for Information & Communication Technology

  33. Wat doet dit code fragment? BSF H’03’, 0 RRF 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

  34. gotocallreturn Hogeschool Utrecht / Institute for Information & Communication Technology

  35. 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

  36. Conditional skips a represents an address, [ a ] the (byte) content of that address Hogeschool Utrecht / Institute for Information & Communication Technology

  37. Conditionalskips Hogeschool Utrecht / Institute for Information & Communication Technology

  38. diversen Hogeschool Utrecht / Institute for Information & Communication Technology

  39. Assembler build-in macro’s SKPZ = btfss 3, 2 SKPNZ SKPC SKPNC Hogeschool Utrecht / Institute for Information & Communication Technology

  40. 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

  41. 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

  42. 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

  43. 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

  44. 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

  45. Doen • neem de slides nog eens door noteer wat je niet duidelijk is ! neem € 60 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

More Related