Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 1 Les 4 - onderwerpen Tellen op een enkel 7-segment display Multiplexen (tellen op meerdere displays) Beep read switches
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 2 7 –segment display eigenlijk gewoon 7 LEDjes je kan 1 cijfer selecteren dmv RA0, RA1, RA2:
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 3 segment letters A B C DFDF E F G DP
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 4 multiplexen Laat Digit 1 zien (wacht) Doe eentueel ander werk Laat Digit 2 zien (wacht) Laat Digit 3 zien (wacht)
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 5 multiplexen Laat het volgende Digit zien Doe eentueel ander werk eventueel (extra) vertraging
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 6 opdrachten les : tellen tel op de 1 cijfer van het 7-segment display van 0 tot 9 (en dan weer opnieuw, bv 1 tikken per seconde) Gebruik een sprongtabel (les 2) om te vertalen van een getal (0..9) naar het bitpatroon van de segmenten.
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 7 opdrachten les : tellen tel op de 3 cijfer van de 7- segment displays van 0 tot 999 (en dan weer opnieuw, bv 5 tikken per seconde)
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 8 opdrachten les 4 - 3: beep Maak een programma dat 1 keer een piep laat horen (bv 1/4 seconde op 1 kHz) Piepen is niets anders dan knipperen, maar dan met een luidspreker in plaats van een LED, en wat sneller. 1 kHz = 1ms per puls = 500 us hoog / 500 us laag 500 us = 1000 instructies bij 8 MHz 1/4 seconde = 250 pulsen
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 9 opdrachten les : vrije opdracht De laatste twee/drie lessen (en thuis!) ga je werken aan een vrije opdracht. Verzin zelf een project(je). Stem af. Schijf zelf de opdracht. een paar suggesties: (random!) RC5 IR zender RC5 ontvanger voorwerp-detector (IR zender + ontvanger) Fur Elise Reactiesnelheid tester ‘Kitt’ display met 10 verschillende patronen (selecteer mbv de knoppen, sla op in de EEPROM) iets externs, bv LCD
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 10 Read the switches Zet de juiste code op RA0.. RA2 om een rij schakelaars te selecteren Zet ANSEL (0x91, dus bank 1) op 0 Zet CMCON0 op 7 Wacht even (bv 5us = 10 instructies) Lees RC0.. RC3 Als een van die pinnen hoog is dan is de schakelaar in die kolom ingedrukt Herhaal (eventueel) voor de andere 3 rijen
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 11 Switch bounce (denderen) Als je een drukknop indrukt maakt hij niet 1 keer contact: hij dendert een tijdje (maximaal ~ 50 ms)
Computertechniek Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 12 opdrachten les 4 - 5: count Maak een programma dat op de drie 7-segment digits telt hoe vaak de drukknop ‘1’ is ingedrukt. Zorg dat je de schakelaar ten minste 1000 keer per seconde checkt Als je het effect van denderen hebt gezien maak de lus dan trager (check de schakelaars max. 20 ker perseconde) for(;;){ show digit(s) check schakelaar verhoog de teller }