LABORATORIUM PODSTAW SYSTEMÓW MIKROPROCESOROWYCH
|
|||
TEMAT. REGULATOR TYRYSTOROWY. PRACA W CZASIE RZECZYWISTYM
|
CWICZENIE NR5. |
GRUPA ED.5.3 |
OCENA |
IMIĘ I NAZWISKO Grzegorz Piejak Mariusz Szymanek |
DATA 18-12-99 |
ZADANIE nr1.
Sterowanie tyrystorem.
Tabela stanów występujących w kolejnych krokach wykonywania programu żarówka.hex po wykonaniu danej instrukcji w akumulatorze, porcie P1 i na wyświetlaczu LCD:
Tabela nr 1
Krok |
Program źródłowy |
A |
P1 |
Ż |
W |
Komentarz |
1 |
LJMP |
00 |
FF |
0 |
- |
|
2 |
LCALL INICJALIZACJA |
05 |
FF |
0 |
0 |
;ustawienia wstępne |
3 |
LCALL WYŚWIETL |
05 |
FF |
0 |
5 |
;wyświetl wstępną wartość opóźnienia |
4 |
LOOP: JNB SIEĆ,$ |
05 |
FF |
0 |
5 |
;oczekiwanie na „0” sieci |
5 |
LCALL DELAY_MS |
00 |
FB |
0 |
5 |
;opóźnienie A*1ms |
6 |
CLR BRAMKA |
00 |
FB |
1 |
5 |
;załączenie żarówki |
7 |
MOV A,#10 |
0A |
FB |
1 |
5 |
;załadowanie #10 do akumulatora |
8 |
DJNZ ACC,$ |
00 |
FB |
1 |
5 |
;opóźnienie ≈ 10 μs |
9 |
SETB BRAMKA |
00 |
FF |
0 |
5 |
;wyłączenie żarówki |
10 |
LCALL KLAWIATURA |
05 |
FF |
0 |
5 |
;pobranie nowej wartości opóźnienie |
11 |
SJMP LOOP |
05 |
FF |
0 |
5 |
;zamknięcie pętli programu |
Naciskając kolejne klawisze klawiatury matrycowej zmieniamy opóźnienie załączenia żarówki względem momentu przejścia przez zero sieci i przez to sterujemy jasnością świecenia żarówki( im większy numer klawisza tym żarówka świeci ciemniej).
ZADANIE nr2.
Adresowanie indeksowe.
Tabela stanów występujących w kolejnych krokach wykonywania programu tabela.hex po wykonaniu danej instrukcji w akumulatorze, rejestrze DPTR, R7, R6 i na wyświetlaczu LCD:
Program źródłowy |
D |
A |
R7 |
R6 |
KL |
LCD |
Komentarz |
SJMP |
0000 |
00 |
FB |
6C |
0 |
0 |
|
LCALL INICJACJA |
0180 |
01 |
FB |
6C |
0 |
1 |
;ustawienia wstępne |
LOOP: LCALL KLAWIATURA |
0180 |
01 |
FB |
01 |
0 |
1 |
;czyta klawiaturę |
MOV DPTR,#TABELA |
0180 |
01 |
09 |
01 |
0 |
1 |
;tabela funkcyjna |
PUSH ACC |
0180 |
01 |
09 |
6C |
0 |
1 |
;przechowanie nr klawisza |
RL A |
0180 |
02 |
FB |
6C |
0 |
1 |
;mnóż przez 2 |
PUSH ACC |
0180 |
02 |
FB |
6C |
0 |
1 |
;przechowanie przesunięcia |
MOVC A,@A+DPTR |
0180 |
BC |
FB |
6C |
0 |
1 |
;starszy bajt z tabeli |
MOV R7,A |
0180 |
BC |
FB |
6C |
0 |
1 |
;wynik do R7 |
POP ACC |
0180 |
02 |
FC |
6C |
0 |
1 |
odtwórz przesunięcie |
INC ACC |
0180 |
03 |
FB |
6C |
0 |
1 |
;wskaż młodszy bajt |
MOVC A,@A+DPTR |
0180 |
FB |
FB |
6C |
0 |
1 |
;pobierz młodszy bajt |
MOV R6,A |
0180 |
FB |
FB |
6C |
0 |
1 |
;wynik do R6 |
POP ACC |
0180 |
01 |
FB |
6C |
0 |
1 |
;odtwórz numer klawisza |
SJMP LOOP |
0180 |
01 |
FB |
6C |
0 |
1 |
;pętla programu |
Tabela funkcyjna:
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0180 |
- |
FB |
F6 |
F2 |
ED |
E6 |
99 |
E0 |
0188 |
- |
6C |
DA |
48 |
B6 |
24 |
99 |
E0 |
Program tabela.hex przyporządkowuje numerowi klawisza naciśniętego z klawiatury matrycowej wartość zapisaną w tabeli funkcyjnej zamieszczonej w programie. Numer naciśniętego klawisza i wartość z tabeli funkcyjnej wyświetlane są na wyświetlaczu LCD.
ZADANIE nr3.
Sterowanie fazowe, odliczanie czasu w timerze mikrokontrolera.
Uzupełnienie programu timer.asm :
;********* Ustawienie Timerów *********
;TIMER 0
T0_G EQU 0 ;GATE
T0_C EQU 0 ;COUNTER/-TIMER
T0_M EQU 1 ;MODE (0..3)
TIM0 EQU T0_M+T0_C*4+T0_G*8
;TIMER 1
T1_G EQU 0 ;GATE
T1_C EQU 0 ;COUNTER/-TIMER
T1_M EQU 0 ;MODE (0..3)
TIM1 EQU T1_M+T1_C*4+T1_G*8
TMOD_SET EQU TIM0+TIM1*16
START:
LCALL INICJALIZACJA
MOV TMOD,#TMOD_SET
LOOP:
MOV TL0 ,R6
MOV TH0,R7
JNB SIEC, $
SETB TR0
SETB TR1
JNB TF0,$
CLR TR1
CLR TR0
Tabela stanów początkowych dla timera0 dla poszczególnych opóźnień podawanych z klawiatury.
Tabela funkcyjna:
Opóźnienie w ms. |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
TL0 |
66 |
CC |
33 |
99 |
ED |
66 |
CC |
TH0 |
FC |
F8 |
F5 |
F1 |
FF |
EA |
E6 |
Program timer.hex steruje jasnością świecenia żarówki w zależności od numeru naciśniętego klawisza wybierany jest inny stan początkowy timera0 ( przy wykorzystaniu adresowania indeksowego), który decyduje o czasie opóźnienia z jakim ma być zapalona żarówka względem momentu przejścia przez zero sieci.
jest wyświetlana na wyświetlaczu LCD.