86 |
9. Licznik | |
POM: |
;procedura pomiarowa | |
MOV |
R0,#20h |
;adres pamięci RAM, pod którym będzi |
;przechowany wynik pomiaru | ||
CLR |
A | |
MOV |
TL0,A |
;zerowanie licznika TO |
MOV |
TH0,A |
;» |
MOV |
B,A |
;rejestru B |
JB |
P3.2,$ |
;test stanu linii P3.2. Rozkaz jest powtarzany aż |
;stan linii będzie 0 | ||
SETB |
TRO |
;odblokowanie licznika - licznik zacznie zliczać |
;gdy na wejściu P3.2 pojawi się stan 1 1 | ||
JB |
P3.23 |
;oczekiwanie na zbocze opadające mierzonego |
;sygnału | ||
CLR |
TRO |
;zablokowanie licznika TO |
MOV |
(a R0,TL0 |
; przesłanie |
INC |
RO |
;wyniku pomiaru |
MOV |
@R0,TH0 |
;do pamięci j |
INC |
RO |
;RAM |
MOV |
@R0,B | |
LJMP |
POM |
;skok etykiety POM - ponowne wykonanie |
;pomiaru | ||
END |
1. Jak są zbudowane liczniki TO i Tl w mikrokontrolerach rodziny '51 ? i
2. Jak pracują liczniki TO i Tl w poszczególnych trybach pracy ?
3. Od czego zależy graniczna częstotliwość sygnałów wejściowych dla li ników TO i Tl ?
4. Napisać program pomiaru czasu, w którym stany przepełnienia liczn TO będą zliczane w liczniku Tl. 1
W systemach mikroprocesorowych i komputerowych podstawowym kodem zapisu liczb jest kod dwójkowy (binarny), wynikający z dwustanowej pracy wszystkich układów tworzących te systemy. Ponownie powraca problem rozumienia danych w sensie mikrokontrolera i człowieka, który myśląc o liczbach prawie zawsze myśli o liczbach dziesiętnych. Systemów zapisu liczb może być bardzo wiele. Dowolną, dodatnią liczbę całkowitą można zapisać w postaci sumy iloczynów:
Liczba = + ak-l * P^'1 + ak-2 * + - + ^2 * P^ + al * P^ + a0 * P°
gdzie: p - podstawa systemu zapisu, np.: 2 (dwójkowy), 8 (ósemkowy), 10 (dziesiętny), 16 (szesnastkowy) itd. ak - wartości kolejnych pozycji, a^ = 0 .. (p-1). k - numery kolejnych pozycji, k = 0,1, 2,...,
W stosowanym powszechnie systemie dziesiętnym podstawa systemu p=10 i wartości kolejnych pozycji mieszczą się w zakresie ak=0..9. Zapis dziesiętny liczby 1234 można przestawić jako:
1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 *10°
W systemie dwójkowym (binarnym) podstawa systemu p-2 powoduje, że wartości kolejnych pozycji mogą być równe: 0 lub 1. Liczba 1234 zapisana w kodzie dwójkowym ma postać:
1234d 0 * 211 + 1 * 210 + 0 * 29 + 0 * 28 + 1 * 27 + 1 * 26 + 0 * 21 + 1 * 24 +
+ 0 * 23 + 0 * 22 + 1 * 2] + 0*2° = 0100 1101 OOlOb
?.<? względu na możliwość pomyłki w interpretacji ciągu zero-jedynkowego uproszczenia zapisu i układów dekodujących stosowany jest także kod szesnastkowy oraz kod binarno-dziesiętny BCD (Binarny Coded Decimal). W odzie szesnastkowym (podstawa systemu p=16) stosowanych jest do zapisu ll-zb io cyfr (0..9) i 6 liter (A..F). Litery symbolizują kolejne wartości z Podziału: 10 (A), 11 (B), .. , 15 (F). Dziesiętna liczba 1234 zapisywana jest w
1234d = 4 * 162 + 13 * 161 + 2 * 16° = 4D2h
Pr?
y Opisie liczb w kodzie BCD porcjom czterech kolejnych bitów Przyporządkowuje się wartości z przedziału 0 .. 9. Dla kodu BCD typu 8421 P Odstawiona liczba ma postać:
1234d = 0001 0010 0011 0100 BCD
Zmodyfikować powyższy program tak, by koniec pomiaru był wykryj ny przez przerwanie.