MIC5 ~1, ZADANIE 1


ZADANIE 1

Celem zadania była obserwacja w trybie krokowym działania programu sterującego jasnością świecenia żarówki.

Program źródłowy

A

P1

Ż

W

Komentarz

START:

LCALL INICJALIZACJA

00

FF

--

;ustawienia wstępne

LCALL WYŚWIETL

05

FF

--

;wyświetla wstępną wartość opóźnień ;(opóźnienia w A)

LOOP:

JNP SIEC,$

05

FF

5

;oczekiwanie na ”0” sieci

LCALL DELAY_MS

05

FF

5

;odczekanie opóźnienia A*1ms

CLR BRAMKA

00

FF

5

;załączenie tyrystora

MOV A,#10

00

FB

ś

5

;10 do akumulatora

DJNZ ACC,$

0A

FB

ś

5

;zwłoka czasowa

SETB BRAMKA

00

FB

ś

5

;wyłączenie tyrystora

LCALL KLAWIATURA

00

FF

5

;pobiera do A nową wartość opóźnienia

SJMP LOOP

05

FF

5

;zamknięcie pętli programu

ZADANIE 2

Celem zadania było przy wykorzystaniu programu tabela.hex odczytanie wartości funkcji odpowiadających argumentom nadawanym z klawiatury.

Program źródłowy

D

A

R7

R6

kl

LCD

A

R7

R6

kl

LCD

A

R7

R6

kl

LCD

Komentarz

START:

LCALL

INICJALIZACJA

0000

00

00

00

--

--

--

00

00

--

--

--

00

00

--

--

;ustawienia ;wstępne

LOOP:

LCALL KLAWIATURA

8001

01

00

00

1

1 FB6C

02

00

00

2

2 F6DA

03

00

00

3

3 F248

;czyta klaw.

MOV

DPTR,#TABELA

8001

01

00

00

--

1 FB6C

02

00

00

--

2 F6DA

03

00

00

--

3 F248

;tabela ;funkcyjna

PUSH ACC

8001

01

00

00

--

1 FB6C

02

00

00

--

2 F6DA

03

00

00

--

3 F248

;przechowaj

; n r klawisza

RL A

8001

01

00

00

--

1 FB6C

02

00

00

--

2 F6DA

03

00

00

--

3 F248

;mnóż przez 2

PUSH ACC

8001

02

00

00

--

1 FB6C

04

00

00

--

2 F6DA

06

00

00

--

3 F248

;przechowaj ;przesunięcie

MOVC A,@A+DPTR

8001

02

00

00

--

1 FB6C

04

00

00

--

2 F6DA

06

00

00

--

3 F248

;st bajt z tabeli

MOV R7,A

8001

FB

FB

00

--

1 FB6C

F6

00

00

--

2 F6DA

F2

F2

00

--

3 F248

;wynik do R7

POP ACC

8001

FB

FB

00

--

1 FB6C

F6

F6

00

--

2 F6DA

F2

F2

00

--

3 F248

;odtwórz przes

INC A

8001

02

FB

00

--

1 FB6C

04

F6

00

--

2 F6DA

06

F2

00

--

3 F248

;wskaż mł bajt

MOVC A,@A+DPTR

8001

03

FB

00

--

1 FB6C

05

F6

00

--

2 F6DA

07

F2

00

--

3 F248

;pobierz ;młodszy bajt

MOV R6,A

8001

6C

FB

6C

--

1 FB6C

DA

F6

DA

--

2 F6DA

48

F2

48

--

3 F248

;wynik do R6

POP ACC

8001

6C

FB

6C

--

1 FB6C

DA

F6

DA

--

2 F6DA

48

F2

48

--

3 F248

;odtwórz

;nr klawisza

SJMP LOOP

8001

01

FB

6C

--

1 FB6C

02

F6

DA

--

2 F6DA

03

F2

48

--

3 F248

;pętla programu

Tabela funkcyjna

0

1

2

3

4

5

6

7

0180

brak reakcji

FB6C

F6DA

F248

EDB6

E924

E492

E000

ZADANIE 3

Celem zadania było takie uzupełnienie programu timer.asm by opóźnienie czasowe było realizowane przez timer 0.Obliczone wartości stanów początkowych timera miały zostać umieszczone w tabeli funkcyjnej.

;TITLE `ZAROWKA'

B0R2 EQU 2

B0R6 EQU 6

B0R7 EQU 7

SIEC EQU P3.4

BRAMKA EQU P1.2

T0_G EQU 0

T0_C EQU 0

T0_M EQU 1

TIM0 EQU T0_M.+T0_C*4+T0_G*8

T1_G EQU 0

T1_C EQU 0

T1_M EQU 0

TIM1 EQU T1_M.+T1_C*4+T1_G*8

TMOD_SET EQU TIM0 + TIM1*16

LJMP START

ORG 100H

START:

LCALL INICJALIZACJA

MOV TMOD, TMOD_SET

LOOP:

CLR TR0

CLR TF0

MOV TL0,R6

MOV TH0,R7

JNB SIEC,$

SETB TR0

JNB TF0,$

CLR BRAMKA

MOV A,#10

DJNZ ACC,$

SETB BRAMKA

LCALL KLAWIATURA

SJMP LOOP

INICJALIZACJA:

LCALL LCD_CLR

MOV R7,#0

MOV R6,#0

RET

KLAWIATURA:

LCALL LCD_CLR

LCALL WAIT_KEY

LCALL WRITE_DATA

INC A

MOV A,@A + PC

RET

TABELA:

0FCH, 018H ; 256-252 256-232

0F8H, 030H ; 256-248 256-208

0F4H, 048H ; 256-244 256-184

0F0H, 060H ; 256-240 256-160

0ECH, 078H ; 256-236 256-136

0E8H, 090H ; 256-232 256-112

0E4H, 0A8H ; 256-228 256-88

0E0H, 0C0H ; 256-224 256-64

RET

ZADANIE 4

Celem zadania było uzupełnienie programu siec.asm tak by po asemblacji mierzył on częstotliwość sieci.

Algorytm programu:

;TITLE `Pomiar częstotliwości'

SIEC EQU P3.4

BRAMKA EQU P1.2

T0_G EQU 0

T0_C EQU 1

T0_M EQU 1

TIM0 EQU T0_M.+T0_C*4+T0_G*8

T1_G EQU 0

T1_C EQU 0

T1_M EQU 1

TIM1 EQU T1_M.+T1_C*4+T1_G*8

TMOD_SET EQU TIM0 + TIM1*16

TH1_SET EQU 256-180

TL1_SET EQU 0

LJMP START

ORG 100H

START:

MOV TMOD,TMOD_SET ;ustawienie trybów pracy timerów

LOOP:

MOV R0,#20

MOV TL0,#0 ;zerowanie timera 0

MOV TH0,#0

JNB SIEC,$ ;czekaj na 0 sieci

SETB TR0

TIME:

MOV TH1,TH1_SET ;ustawienie wartości początkowych

MOV TL1,TL1_SET ;timera 1 odliczenie 50ms

CLR TF1 ;zerowanie flagi przepełnienia

SETB TR1 ;uruchomienie timera 1

LICZ:

JNB SIEC,TEST ;zliczanie przez timer 0 zdarzeń U=0

SETB TR0

RET

TEST:

JNB TF1,LICZ ;sprawdzanie ustawienia flagi

RET

DJNZ R0,TIME ;pętla odliczania czasu R0*50ms

CLR TR0 ;zatrzymanie timerów

CLR TR1

MOV A,TL0 ;zapisanie w ACC stanu timera 0

MOV B,#2 ;podzielenie stanu ACC przez 2

DIV AB ;wynik do akumulatora

LCALL WYSWIETL

CPL P1.7 ;zmiana stanu diody LED

SJMP LOOP ;zamknięcie pętli

WYSWIETL:

LCALL LCD_CLR ;wyczyścić wyświetlacz

MOV B,#10 ;zamiana liczby na postać dziesiętną

DIV AB ;przez wydzielenie dziesiątek

LCALL WRITE_HEX ;wypisanie wartości częstotliwości

MOV A,B

LCALL WRITE_HEX

MOV A,#' ` ;wyświetlenie napisu Hz

LCALL WRITE_DATA

MOV A,#'H`

LCALL WRITE_DATA

MOV A,#'z`

LCALL WRITE_DATA

RET



Wyszukiwarka

Podobne podstrony:
1?le i zadania iP metody kontroli i oceny
zbi r5~1, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, zadania
MIC5, ZADANIE 1
zadania 1
zbi rt~1, wisisz, wydzial informatyki, studia zaoczne inzynierskie, podstawy programowania, zadania
Zadania z treścia
Prezentacja 2 analiza akcji zadania dla studentow
1
1
Przedmiot i zadania dydaktyki 4
zadanie 1 v 002
Przedmiot dzialy i zadania kryminologii oraz metody badan kr
KOLOKWIUM 2 zadanie wg Adamczewskiego na porownawczą 97
X~1
CELE I ZADANIA EDUKACJI MEDIALNEJ(1)

więcej podobnych podstron