Tallinna Tehnikaülikool
Elektroenergeetika ja
mehhatroonika instituut
SISSEJUHATUS DIGITAALTEHNIKASSE - Praktikum Programmeeritava taimeri seadistamine mikrokontrollerisÜliõpilane:
Daniil Redko
Üliõpilaskood: 164634
Õpperühm: AAVB-31
Juhendaja : Madis
Lehtla Tallinn
2017 ETTEVALMISTAVAD KÜSIMUSEDKuidas sõltub loendustrigeri (T- trigeri ) väljundsignaali sagedus sisendsignaali sagedusest?Iga sisendimpulss x lülitab oma tagafrondiga ahela esimese trigeri ringi. Iga kahe sisendimpulsi
järel lülitub trigeri väljund korraks sisse ja välja. See tähendab, et tema väljundimpulsside
muutumise sagedus on kaks korda väiksem kui sisendimpulssidel. Võib öelda, et
loendussisendiga triger
jagab impulsside sageduse kahega.
Kuidas töötab taktgeneraator?Taktgeneraator on seade, mis väljastab perioodilisi ajastusimpulsse. Mõõteseadmetes,
kaitseaparaatides, jõupooljuht
muundurites , teabe edastamisel, automaatjuhtimissüsteemide
juhtseadmetes, sh mikrokontrollerites, vajatakse lülituste juhtimiseks sageli taktsignaali.
Taktimpulsse ehk taktkellasignaale genereerivaid lülitusi nimetatakse taktgeneraatoriteks.
Mis on loendusregister (counter) ? Milleks kasutatakse Microchip PIC mikrokontrollerite
registreid nimedega T1CON, TMR1H ja TMR1L ?Impulsside loendamiseks ette nähtud loogikalülitus.
Loendur on
register , millesse salvestatud arv
sisenditele antud signaali mõjul muutub ühe võrra.
· T1CON – juhtib lülituse ja taimeri töörežiimiga;
· TMR1 (TMR1H ja TMR1L) – sisaldab 16. jadaloenduri tähendust; koosneb ka 8.
jadaregistridest, kättesaadavad lugemiseks ja salvestuseks.
Milleks on vajalikud sagedusjagurid (prescalers)? Mida saab seadistada Microchip PIC
taimeri 1 seadistusregistrist bittidega T1CKPS1 ja T1CKPS0 ?Taimeri sisendtakti saab muuta sagedusjaguri seadistusega. Taimeri ületäitumine
kajastub signaaliga registris INTCON (selle registri signaalid on kasutatavad ka katkestussignaalidena).
Registri INTCON kontrollimisega programmi abil ehk registri seisundi pollimisega.
· T1CKPS0, T1CKPS1 – taimeri jagamissageduse teguri valik.
Taktsagedused: Kui suur on teie poolt kasutatava seadme taktgeneraatori sagedus? Kui
suur on teie poolt kasutatava välisseadme (taimeri) taktsagedus ? Kui suur on lonenduri
taktsagedus taimeris ja kuidas sisend-taktsagedust sagedusjaguritega vähendatakse?
Millised võimalused on loenduri sisendsignaali sageduse muutmiseks?Taktsagedus on taktgeneraatori genereeritavate impulsside arv sekundis, mida mõõdetakse
hertsides (õnnestunud tsüklite vahel).
Kahe sõltumatu toimingu juhtimine sama taimeriga #
include 8
9 #
define Q_taimer 0b00000100
10
11
unsigned short int ;
12
13 int
main(void) {
14 int number=0;
15 INTCON &= ~Q_taimer; // Nullitakse ületäitumise tunnus
16 TMR0 = 0;
17 int n=126, m=30;
18 // Seadistatakse
taimer : PS2=1, PS1=1, PS0=1, see on sagedusjagur 1:256
19 OPTION_REG = 0b00000111;
20
21 TRISD=0; // PORTD Data Direction Register
22 TRISC &= 0b11011111; // RC5 (kollane diood) väljundiks
23
24 // AN0 analoogisisend, ülejäänud digitaalsisendid
25 ADCON1 = 0b00001110; // A/D Control Register 1
26
27
while (1){
28 if (m==0){
29 if (RC5) RC5=0;
else RC5=1; // Vigutab plaadil kollast valgusdioodi
30 m=30;
31 }
32 if (RA3)
33 PORTD=0b01011110; //0b10101010;
34
41 }
42 // Igal taimeri ületäitumisel vähendatakse n-i väärtust ühe võrra
43 // ja nullitakse taimer
44 if (INTCON & Q_taimer){
45 TMR0 = 0;
46 INTCON &= ~Q_taimer;
47 if (n) n--;
48 if (m) m--;
49 }
50 }
51 return (1);
52 }
INTCON funktsioon näitab kui taimer üle paisutab.
Muutuja n näitab aega, mille jooksul tekib
dioodile uus arv. See arv 126, mis ajaliselt on veidi sekund. Programm
loendab Taimeri TMR0
ületäitumisi kui 8-bilitline loendur on loendamisega jõudnud 255-ni.
. Missuguse taktsignaaliga töötab taimeri loendur teie tehtud ülesandes? 5MHz
Pulsilaiusmodulaatori (laiusimpulssmodulaatori)
modulatsioonisageduse ja impulsi laiuse määramine Antud ülessande registrid määravad ära heli sageduse ehk millisena heli jõuab
meieni . Heli
kostub mikrokontrolleri tranistorist.
#include
#define Q_buzz (1
Kõik kommentaarid