Les 5 - onderwerpen

18
2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 5 - onderwerpen DB038 hardware : toetsenbordje 16F887 : memory banks, code pages DB038 hardware : luidsprekertje Opdracht1 : lees toetsenbord Opdracht2 : sirene Opdracht3 : bedenk je eindopdracht Lees van de DB038 manual hoofdstuk 3 door (PIC 14- bit architecture and instruction set summary)

description

Les 5 - onderwerpen. DB038 hardware : toetsenbordje 16F887 : memory banks, code pages DB038 hardware : luidsprekertje Opdracht1 : lees toetsenbord Opdracht2 : sirene Opdracht3 : bedenk je eindopdracht - PowerPoint PPT Presentation

Transcript of Les 5 - onderwerpen

Page 1: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

1

Les 5 - onderwerpen

• DB038 hardware : toetsenbordje• 16F887 : memory banks, code pages• DB038 hardware : luidsprekertje• Opdracht1 : lees toetsenbord• Opdracht2 : sirene• Opdracht3 : bedenk je eindopdracht

Lees van de DB038 manual hoofdstuk 3 door (PIC 14-bit architecture and instruction set summary)

Page 2: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

2

DB038

16 toetsjes

Page 3: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

3

keypad

DB038 manual 2.7

Page 4: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

4

keypad

DB038 manual 2.18

Page 5: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

5

Keypad lezen

• Maak pin RA1 een ingang (bit 1 in TRISA)

• Maak poort A een digitale poort:

ANSEL = 0

• Zet een waarde 0x01, 0x02, 0x04 of 0x08 op PORTD

• Zet een waarde 4 .. 7 op PORTE

• Wacht ten minste 10 µs

• Lees pin RA1 (hoog == toets is ingedrukt)

• Doe dit voor alle 16 toetsen

DB038 manual 2.18.1

Page 6: Les 5 - onderwerpen

2PROJ5 – PIC assembler

• Maak pin RA1 een ingang (bit 1 in TRISA)

• Maak poort A een digitale poort:

ANSEL = 0

CMCON0 = 0x07

• Zet een waarde 0x01, 0x02, 0x04 of 0x08 op PORTD

• Zet een waarde 4 .. 7 op PORTE

• Wacht ten minste 10 µs

• Lees pin RA1 (hoog == toets is ingedrukt)

• Doe dit voor alle 16 toetsen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

6

PIC16F887 memory map

Page 7: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

7

PIC –register bank selection

Page 8: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

8

banksel

0063 1683 1303 00099 banksel TRISA0065 1485 00100 bsf ( TRISA & 0x7F ), 1 00101 0066 1683 1703 00102 banksel ANSEL0068 0188 00103 clrf ( ANSEL & 0x7F ) 00104 0069 1283 1303 00105 banksel 0

banksel TRISA

bsf ( TRISA & 0x7F ), 1

banksel ANSEL

clrf ( ANSEL & 0x7F )

banksel 0

Gebruik dus altijd banksel, en schakel terug naar bank 0!DB038 manual 3.9

Page 9: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Code paging

11 bits == maar 2k instructies...

Page 10: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Code paging

Als je minder dan 2k code gebruikt geen probleem

Anders: GOTO LGOTOCALL LCALL

Maar: LGOTO en LCALL worden vertaald naar meerdere instructies, dus je kan niet skippen! Wel kan:

PAGESEL daarzoSKPNZ

GOTO daarzoDB038 manual 3.8

Let op pagesel – banksel !

Page 11: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

11

DB038‘Luid’sprekertje

extern

Page 12: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

12

DB038 circuit – luidspreker

DB038 manual 2.14

Externe luidspreker

Page 13: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

13

piepen

• RE0..RE3 output, waarde 0x02• RA1 output• En nu maar ‘knipperen’ op RA1

DB038 manual 2.14.1

Page 14: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

14

opdrachten les 5 - 1 : keypad uitlezen

• Schrijf een subroutine die het keypad uitleest.• Laat op een of meer 7-segment displays zien

welke toets er is ingedrukt, formaat naar eigen keuze

Page 15: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

15

opdrachten les 5 - 2 : sirene• Schrijf een piep-subroutine met twee parameters: de tijdvertraging,

uitgedrukt in 10 µs per fase, en het aantal pulsen, uitgedrukt in 10 pulsen. (Dus: piep(3,10) is 100 periodes van 60 µs per periode.) Je kan maar 1 waarde in W meegeven, dus de andere waarde (of eventueel beiden) moet in een afgesproken geheugenplaats staan.

• Schrijf een piep macro om het aanroepen van die piep subroutine wat makkelijker te maken. De macro heeft twee argumenten (beide vaste getallen): de tijdsvertraging, en het aantal pulsen.

• Je hoofdprogramma moet dit doen:While(1) {

Piep gedurende 1 seconde op 1 kHz (=1000Hz)0.1 seconde stiltePiep gedurende 1/2 seconde op 2 kHz0.5 seconde stilte

}

• 2 kHz wat is dan de tijdvertraging?• 1/2 seconde op 2 kHz hoeveel pulsen is dat?

Page 16: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

16

opdrachten les 5 - 3 : verzin je vrije opdracht

De laatste twee lessen (en thuis!) ga je werken aan een vrije opdracht. Verzin zelf een project(je). Stem af. Schijf zelf de opdracht.

citeria:• niet te makkelijk• niet te moeilijk• hardware gebruiken is een plus, externe hardware plus plus

Demonstreren in de projectenweek (mag ook eerder), gebruikelijke tijd en plaats.

Page 17: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

17

een paar suggesties:• Muziekjes (Fur Elise, Jingle Bells, etc)• rekenmachine• (audio) beat detector + patroon• licht => geluid• (random?) RC5 IR zender; RC5 ontvanger• voorwerp-detector (IR zender + ontvanger)• Reactiesnelheid tester• spelletjes• ‘Kitt’ display met 10 verschillende patronen (selecteer

mbv de knoppen, sla op in de EEPROM)• iets externs, bv een motor aansturen, PC keyboard, TV,

iets loggen naar een PC en daar iets mee doen

Page 18: Les 5 - onderwerpen

2PROJ5 – PIC assembler

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

18

Mogelijke onderwerpen voor les 6/7

A/D converter uitlezen (potmeter, M335, LDR)

Aansturen van twee motortjes

Omgaan met “dender” van een schakelaar

UART (serieel naar PC via de 2e USB connector) Werking IR afstandsbedieningen

• Muziek?• Interfacen van een PC keyboard en/of muis?• I2C? Dallas 1-wire?