2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 2 - onderwerpen Herhaling instructieset en.

Slides:



Advertisements
Verwante presentaties
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Een programma opbouwen.
Advertisements

HM-ES-th1 Les 9 Hardware/Software Codesign with SystemC.
Ronde (Sport & Spel) Quiz Night !
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Backtracking: –Permutaties –Koninginnen.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Gelinkte lijsten Finite State.
Les 5 - onderwerpen Aansturen van vier 7-segment displays
Leiden University. The university to discover. ICLON, Interfacultair Centrum voor Lerarenopleiding, Onderwijsontwikkeling en Nascholing Denkgereedschap.
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
Jelle Aarnoudse Beginnen met PIC's Jelle Aarnoudse
1/1/ / faculty of Computer Science eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(2): Vertalen.
Neurale Netwerken Kunstmatige Intelligentie Rijksuniversiteit Groningen April 2005.
1Ben Bruidegom A Harvard Machine Calculator Calculator  Computer.
1Ben Bruidegom A Harvard Machine Recapitulatie Calculator Calculator  Calculator met “loopjes” Calculator met “loopjes”  Processor.
Werken aan Intergenerationele Samenwerking en Expertise.
2009 Tevredenheidsenquête Resultaten Opleidingsinstellingen.
1Ben Bruidegom 1 Micro controllers introduction. 2Ben Bruidegom 2 Areas of use & Numbers of machines You might have 1 or 2 Pentium class chips at home.
1 Van Harvard naar MIPS. 2 3 Van Harvard naar MIPS Microprocessor without Interlocked Pipeline Stages Verschillen met de Harvard machine: - 32 Registers.
PLAYBOY Kalender 2006 Dit is wat mannen boeit!.
DB&SQL8- 1 VBA Visual Basics for Applications: eigen Office versie vanaf Office2000 gelijk voor alle applicaties Programmeren onder meer nodig voor Het.
Tussentoets Digitale Techniek. 1 november 2001, 11:00 tot 13:00 uur. Opmerkingen: 1. Als u een gemiddeld huiswerkcijfer hebt gehaald van zes (6) of hoger,
MPLAB. MPLAB MPLAB is een “Integrated Development Environment (IDE) voor Microchip microcontrollers.
Computerarchitectuur
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  D3EEMS1  programmed I/O: de.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 3 - onderwerpen Het.
KPRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology Les 2 sheet 1 Wat gaan we doen:  Een (vaste) melodie.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB038 hardware : LEDs en displays.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB038 hardware : LEDs en displays.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Het ARM bord met wat library functies.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  basis files: ram-rom.zip.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
Security Technology PICT les 1
PEMSY1http:// 1  Herhaling: - ACPS - set status, conditioneel uitvoeren - indexed addressing  Nieuw: - CMP, CMN - half-word.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:
DU2PRES1 : C vervolg Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Beginselen van C opgaves… volgende week: ARM.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag GUI  command line redirection.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 6 - onderwerpen seriele interface (UART -
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Wouter van Ooijen Mail:
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 5 - onderwerpen Errata.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 2 - onderwerpen PIC16F688.
1 december KC Development Tools Hands-on Oracle HTML DB v2.0.
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
TOPIC O: Pointers | pag. 1 Pointer = adres in het geheugen, is zelf geen geheugen! Expliciet geheugen aanvragen vóór gebruik.
17/08/2014 | pag. 1 Fractale en Wavelet Beeldcompressie Les 3.
Fractale en Wavelet Beeldcompressie
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 6 - onderwerpen Code paging Switch bounce.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  herhaling ARM assembler instructies.
De financiële functie: Integrale bedrijfsanalyse©
Link Popularity Het principe van linkpopulariteit kun je als volgt samenvatten: hoe meer webpagina's er naar een bepaalde webpagina linken, des te belangrijker.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 7 onze.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 C programmeren voor niet-C programmeurs les 2 definitie.
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
ZijActief Koningslust
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen  DB036 printjes subroutines.
Computertechniek 2 – ARM assembler Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1  programma draaien vanuit ROM.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 6 - onderwerpen Uitleg.
Onderwerp: PIC assembler programmeren
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 2 - onderwerpen  Helaas nog geen printjes.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 2 - onderwerpen MPLAB.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB027 hardware : LEDs en displays.
VPEMSY1, D3ECPT2 : ARM Assembler 1 Hogeschool Utrecht / Electrical Engineering & Design 1  Herhaling: CMP, CMN,
PEMSY1http:// 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 4 - onderwerpen DB038 hardware : luidsprekertje.
2TPRJ5 – PIC assembler Hogeschool Utrecht / Institute for Information & Communication Technology Wouter van Ooijen Mail: Sheets.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1.
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag Een embedded systeem: ARM bord.
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.
Transcript van de presentatie:

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 2 - onderwerpen Herhaling instructieset en Assembler ‘truukjes’ Bespreking opgaven 1 en 2 van de vorig les Allokeren van variabelen Gebruik van MPLAB, simuleren DB038 bordje Gebruik van MPLAB, bordje, en pickit2 Opgave met simulator: vermenigvuldigen Opgave op bordje: tellen op de LEDs

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 2 file + w => (zelfde) file, of w Let op, wat doet: ADDWF 0x21 ?

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 3 Instructies: bit set/clear, bit test

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 4 - W ‘op’ literal => w - Control - Miscalaneous

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 5 Assembler “truukjes” Ingebouwd: SKPZ, SKPNZ, SKPC, SKPNC SETC, CLRC, SETZ, CLRZ MOVFW Macro’s: #define W 0 #define F 1 Let op mogelijke fouten, wat doet: RRC W, F

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 6 oefening 1 : optellen ; tel de variabelen H'20' en H'21' op, ; stop de som in H'22' movf H'20', w addwf H'21', w movwf H'22' sleep ; zet dit na je code end; zet dit aan het einde van je file

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 7 oefening 2 : maximum ( C ) // versie 1 if( a > b ){ max = a; } else { max = b; } // versie 2 max = a; if( b > a ){ max = b; } // versie 3 max = ( a > b ) ? a : b;

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 8 SUBWF instruction – 16F887 datasheet

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 9 oefening 2 : maximum (versie 1a) ; bepaal het maximum van de variabelen H'20' en H'21' ; stop dit maximum in H'22‘(10 instructies) ; vergelijk movfw H'20' subwf H'21', w; H’21’ – H’20’ skpnc; C  resultaat is positief  H’20’ is kleiner goto kleiner; C  neem H’21’ goto groter ; als we hier komen was H'21' groter kleiner movfw H'21' movwf H'22' goto klaar groter ; als we hier komen was H'20' dus groter movfw H'20' movwf H'22' klaar if( a > b ){ max = a; } else { max = b; }

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 10 oefening 2 : maximum (versie 1b) ; bepaal het maximum van de variabelen H'20' en H'21' ; stop dit maximum in H'22‘(9 instructies) ; vergelijk movfw H'20' subwf H'21', w; H’21’ – H’20’ skpnc; C  resultaat is positief  H’20’ is kleiner goto kleiner; C  neem H’21’ ; als we hier komen was H'20' dus groter movfw H'20' movwf H'22' goto klaar ; als we hier komen was H'21' groter kleiner movfw H'21' movwf H'22' klaar if( a > b ){ max = a; } else { max = b; }

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 11 oefening 2 : maximum (versie 2) ; dat kan ook wat korter (6 instructies) ; neem aan dat H'20' het maximum is movf H'20', w movwf H'22' ; vergelijk met H'21' ; movfw H'20' is niet nodig, dat zit al in W subwf H'21', w ; dit beinvloedt de C flag niet!!! movf H'21', w skpnc movfw H'22' max = a; if( b > a ){ max = b; }

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 12 oefening 2 : maximum (versie 3) ; of zo (ook 6 instructies) ; vergelijk movfw H'20' subwf H'21', w ; dit beinvloed de flags niet!!! movf H'20', w skpnc movf H'21', w movwf H'22' max = ( a > b ) ? a : b;

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 13 MPLAB IDE IDE : Integrated Development Environment Project management Editor Assembler Programmer/debugger interface(s) Integration of third-party tools (compilers)

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 14 Gebruik van MPLAB (Zie ook de MPLAB quick start guide op de Microchip website ) Start MPLAB Controleer: Configure  Select Device  16F887 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 (heel erg lange pad-namen kunnen problemen geven) 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

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 15 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!

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 16 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.)

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 17 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 een loop om een breakpoint te zetten Debugger  Run (F9) Controleer of het resultaat klopt

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 18 Opgave 1  test je ‘vermenigvuldig’ programma in de simulator, als het goed werkt: demonstreren en laten het aftekenen

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 19 PIC16F887 memory map

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 20 Assembler : variabelen – doe het zelf Absolute adressen: Of met #define of EQU: movfw H’20’ movwf H’21 #define A H’20’ BEQU H’21’ movfw A movwf B

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 21 Assembler : variabelen – laat ‘cblock’ het doen cblock 0x20 name_1, name_2, A, B name_3, name_4 endc... cblock name_5 name_6 : 2 endc

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 22 Assembler template (zie website) list p=16f887, f=inhx32 #include org 0 cblock H’20’ endc ; hier komt uw code sleep END

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 23 Een stukje van PIC16F887.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

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 24 subroutine lijkt op een C/Java/C# functie maar veel primitiever label waar je met een call instructie heen springt daar een reeks instructies een return (of retlw) instructie brengt je terug er is een stack voor de return adressen die stack is maar 8 niveau’s diep volgorde van subroutines en main is niet belangrijk, maar let wel op als je subroutines vooraan staan!

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 25 subroutine voorbeeld wait addlw 0 skpz return addlw 1 goto wait... movlw D’200’ call wait

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 26 DB038 Contains: Target chip: PIC16F887 Programmer: pickit2 clone Power: from USB (2x), Wall-Wart / NiCad Peripherals: LSP, LEDs (and much more)

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 27 DB038 Programming connector Power (zet de jumper op linker 2x3 rechts, op rechter 1x3 links) 8 LEDs reset Programming activity LED Power LED

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 28 Using DB038 Get les2-count.zip (from my website) Unzip to new directory (let op path!) Double-click count.mcp Edit count.asm Assemble Correct errors and repeat....

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 29 an (empty) DB038 program ;================================================================ ; ; count.asm ; ;================================================================ ; initialisation etc for DB038 ; also beeps and activated the LEDs #include ;================================================================ ; main ;================================================================ ; put your code here ;================================================================ ; end of assembler source ;================================================================ SLEEP END

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 30 DB INC 1.Includes the Microchip16F887 include file (register definitions) 2.Sets the configuration word(s) (oa. 20 MHz crystal, external reset) 3.ORG 0, CBLOCK H’20’ 4.M10WAIT subroutine – die mogen jullie vandaag gebruiken (wacht 10 ms) 5.Initialises TRIS (direction) registers 6.Beeps 7.Activates LEDS, pattern 0x55

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 31 PICkit 2 V1.20 Gebruik V1.20 !!! Device Family > Midrange (14 bit core)

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 32 PICkit 2 V1.20 Selecteer de.hex file die je in MPLAB hebt aangemaakt:.HEX

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 33 PICkit 2 V1.20 Zet target 5.0V aan (niet nodig op bord 1.05) Zet programmeren van de Data EEPROM (voorlopig) uit

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 34 opgave 2 – tel op 8 LEDs (DB038 bord) Main loop: –Tel in een variabele –Copieer die naar PORTD –Wacht even (gebruik de M10WAIT subroutine, die wacht 10 ms) Allokeer je variabelen nu en voortaan altijd op de nette manier (cblock). Hoe snel zal de meest linker LED ongeveer gaan knipperen?