2PROJ4 : PIC microcontroller programmeren in assembler (project)

2PROJ4 : PIC microcontroller programmeren in assembler (project)


mijn andere vakken

periode 2004/2005 blok 1
verplicht materiaal 1. DB026 PIC bordje met USB kabel
2. eventuele Handouts

docent kamer email klas les tijd les lokaal
Wouter van Ooijen D221 wouter@voti.nl wouter.vanooijen@hvu.nl TIV3C dinsdag 13:10 .. 16:10 D212/D213


Mogelijkheid voor inleveren of tonen van practicum resultaten: vrijdag 3 februari 2006, 9:00 .. 12:00 in de D212 (in de bekende zaal).


Het verplichte materiaal is het DB026 USB bordje met een 16F688. Handouts van de sheets en andere documentatie worden in de les uitgedeeld.

DB026

Het project bestaat uit theoretische delen (uitleg) en practische delen (assembler programmeren). Beiden vinden plaats in zaal D212/D213. Er is geen vaste tijdsindelen voor de beide onderdelen. De theoretische delen worden ondersteund door sheets. Deze sheets zullen op deze pagina ter beschikking worden gesteld zodra ze beschikbaar zijn.

Tijdens de practische delen (en thuis) worden opgaven gemaakt die worden beoordeeld. Deze beoordelingen vormen de basis voor het eindcijfer voor het project. Er is geen tentamen.

De software en veel andere documentatie die we gebruiken zijn vrij verkrijgbaar op de website van fabrikant van de PIC microcontroller:

  • de 16F688 pagina, met oa. de datasheet.
  • Het MPLAB IDE (editor, assembler, programming interface).
  • De midrange reference manual (uitgebreide uitleg over de algemene eigenschappen van 14-bit PICs).


    U kunt de PIC ook in C programmeren. Installeer daartoe eerst (als je dat nog niet gedaan hebt) MPLAB. Installeer vervolgens de picclite compiler (zie link onderaan, de fabrikant is Hi-Tech software, maar die vraagt registratie voor je mag downloaden). Kies voor de installatie directory die van MPLAB (default "C:\Program Files\MPLAB IDE"). Deze (demo) compiler is voor deze chip helaas beperkt to 1k code. De echte compiler kost $900 :(.

    De demo versie van deze compiler kent de PIC16F688 niet, selecteer daarom in MPLAB de 16F684 als target chip. Dit is een kleiner broertje van de 16F688, het voornaamste verschil is 2k code ipv 4k voor de 16F688. Maar de demo is toch al beperkt tot 1k code. Het verschil tussen de geselecteerde en de echte chip levert een melding op bij het programmeren: "PICkit's Device does not match the device selected". Deze melding kan je negeren.

    In MPLAB => project => Select Language Toolsuite kan je nu de HI-TECH PICC Toolsuite selecteren. Pas indien nodig de locaties van de toolsuite componenten aan (die staan in "C:\Program Files\MPLAB IDE\BIN"). Je source file moet nu natuurlijk een .c file zijn.

    De compiler genereert een .lst file waarin je de genereerde assembler instructies kan zien, mist je zorgt dat de compiler de -ASMLST flag meekrijgt. Als dit al niet zo staat (project -> build options -> project -> PICC Compiler) in de global settings kan je use alternate settings aanvinken en daar -ASMLST toevoegen.

    Dit knipper voorbeeld laat zien hoe je de poort registers gebruikt (die zijn gedefinieerd in pic.h) en hoe je een delay maakt.


    De indeling van de lessen en de sheets (powerpoint) en bijbehorende delen van het boek (voor zover al bekend) vindt u hieronder.

    les week sheets datasheet etc. onderwerpen
    1 36 les 1 p1-16, p121-128 microcontroller, assembler, PIC, 16F688, instructie set
    2 37 les 2 p17-22 instructie set, MPLAB, snelheid, PCL/PCLATH
    3 38 les 3 DB026 hardware.doc DB026 bordje, macro's, tellen
    4 38 les 4 DB026 schema.gif 7-segment, piep, schakelaars
    5 39 les 5   DB026 circuit, END directive, PC/PCLATH, indirect adresseren, analoge ingangen, EEPROM, IR, muziek



    Nuttige files:
  • assembler template: template.asm
  • teller test file: count.hex
  • DB026 I/O hardware (functies van de PORTA/PORTC pinnen): DB026 hardware.doc
  • PICC Lite installation: picclite-setup.exe
  • IR protocollen
  • aansluitingen van de 10-pins connector
  • PICCLITE sample code
  • TFMS5360 datasheet
  • uitleg over muziek tonen
  • ringtones on a pIC