290 likes | 428 Views
Les 2 - onderwerpen. PIC16F688 MPLAB De assembler en de simulator Assembler pseudo-instructions Het DB026 bordje Programma: tellen op de LEDjes. MPLAB IDE. IDE : Integrated Development Environment Project management Editor Assembler Programmer/debugger interface(s)
E N D
Les 2 - onderwerpen • PIC16F688 • MPLAB • De assembler en de simulator • Assembler pseudo-instructions • Het DB026 bordje • Programma: tellen op de LEDjes Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
MPLAB IDE IDE : Integrated Development Environment • Project management • Editor • Assembler • Programmer/debugger interface(s) • Integration of third-party tools (compilers) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
PIC16F688 • Interne clock is 8 MHz (16F676: 4 MHz) • 4k code (16F676: 1k) • 256 general purpose registers (RAM, 16F676: 64) • 256 bytes EEPROM (16F676: 128) • Nanowatt features • € 3.56 (16F676: € 2.62) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
PIC16F688 memory map Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Gebruik van MPLAB (Zie ook de MPLAB quick start guide op de Microchip website) • Start MPLAB • Controleer: Configure Select Device 16F688 • (als je het bordje hebt aangesloten) Controleer: Programmer Select Programmer 5 PICkit 1 • Start een project: Project New kies een project naam, zet project directory naar keuze lokaal, op je USB stick, of op (in directory in) je network drive • Of open een bestaand project: Project Open kies een bestaand project • Een nieuwe file creeren: File New; File Save As mag zelfde naam als project (als het de hoofdfile is, of als je maar 1 file gebruikt) • Een assembler file toevoegen aan een project: Project Add Files to Project double click to add the file as source file Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Gebruik van de assembler • Check: edit properties editor tab zet “line numbers’ aan • Edit je file (saven is niet nodig maar wel verstandig) • Assembleren en linken: Project Build All • Herhalen tot de fouten en warnings eruit zijn! Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Gebruik van de simulator • Debugger select tool MPLAB SIM • Debugger reset processor reset (F6) • Debugger Clear Memory GPRs (let op!) • Debugger step into (F7) • View 4 File Registers • View 5 Special Function Registers (Waarden die in de vorige stap zijn veranderd worden rood weergegeven.) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Gebruik van de simulator • Stap nu een aantal keren tot je denkt dat je programma-lus goed werkt (F6) • Double-click op de regel na je loop om een breakpoint te zetten • Debugger Run (F9) • Controleer of het resultaat klopt Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Assembler : variabelen Absolute adressen: Met #define of EQU: movfw H’20’ movwf H’21 #define A H’20’ B EQU H’21’ movfw A movwf B Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Assembler : variabelen cblock cblock 0x20 ; name_1, name_2 name_3, name_4 ; endc ... cblock name_5, name_6 endc Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Assembler template list p=16f688, f=inhx32 #include <P16F688.INC> __CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & … movlw B'01110000' bsf H'03', 5 movwf H'8F' bcf H'03', 5 org 0 cblock H’20’ endc ; hier komt uw code sleep END staat op http://www.voti.nl/hvu/2TPRJ5/template.asm Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Een stukje van PIC16F688.INC ;----- Register Files----------------------------- INDF EQU H'0000' TMR0 EQU H'0001' PCL EQU H'0002' STATUS EQU H'0003' FSR EQU H'0004' PORTA EQU H'0005' PORTC EQU H'0007' PCLATH EQU H'000A' INTCON EQU H'000B' PIR1 EQU H'000C' Staat op C:/Program Files/MPLAB IDE/MChIP_Tools Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Het DB026 bordje • USB interface (power, data) • optional Wall-Wart power • USB / programming circuit with PIC16C745 • target PIC16F676 (or other 14-pin PICs) • I/O: • 8 LEDs, 3 seven-segment digits • keypad • potentiometer, LDR • luidsprekertje • IR transmitter, IR receiver Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
USB interface Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Wall-wart voeding Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
programming circuit Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
target PIC16F688 Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
8 LEDs Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
3 7-segment displays Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
keypad Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
LDR (lichtgevoelige weerstand) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Potentiometer (instelbare weerstand) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Luidsprekertje Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
IR receiver Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
IR transmitter Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
RJ connector Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Dwarf Board connector Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
DB026 bordje – tel op 6 LEDs • Configureer RA en RC als outputs • Zet RA op de juiste waarde voor ’LEDs’ • Loop: • Tel in een variabele • Copieer die naar RC • Wacht (ongeveer) 0.5 ms (wachtlus) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
DB026 bordje – tel op 8 LEDs • Schijf ook (telkens) de juiste waarde naar RA: • Copieeer de teller • Verschuif tot de positie klopt • Maskeer de rest weg • Voeg de ‘selecteer LEDs’ bitjes toe Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren