Ćwiczenie 20 Sprawko (Inne)

background image














Sprawozdanie z

ć

wiczenia numer 20

Data wykonania

ć

wiczenia: 16.10.2006

Temat

ć

wiczenia:

Mikrokontrolery z serii AVR cz. 1


Laboratorium Mikroinformatyki

Rok akademicki

Termin

Rodzaj studiów

Kierunek

Prowadz

ą

cy

Grupa

Sekcja

Poniedziałek

2006/2007

14:45-17:00

Dzienne

INF

JP

4

2

Skład sekcji:

Kamil Lebek
Michał Liszka
Dawid Pulnar
Marcin Strzelczyk







background image

1. Zadanie


Dana jest tablica tabl1 umieszczona w pamięci programu zakończona wartością 0. Do portu
A podłączono 8 diod tak, że wartość 0 na wyjściu linii portu gasi diodę. Napisać program,
który co 1 sekundę wyświetla wartości kolejnych bajtów tablicy na porcie A.
Wykorzystać mikrokontroler ATmega128 o zegarze 1MHz.

.include "m128def.inc"
.eseg
.dseg
.cseg
.ORG 0x0
rjmp start
.ORG OVF1addr ; Overflow1 Interrupt Vector Address
rjmp timer1

start: ;

pocz

ą

tek programu


; ustawienie rejestrów pomocniczych
.def TMP=r16;
.def CNT=r17;
.def MAX=r18;
.def DISP=r19;

; ustawienie stosu
ldi r17, high(RAMEND)
ldi r16, low(RAMEND)
out sph, r17
out spl, r16

; inicjalizacja licznika przerwa

ń

clr CNT
clr DISP
ldi MAX, 20

; ustawienie rejestru Z
ldi ZL, low(tabl<<1)
ldi ZH, high(tabl<<1)

; ustawienie portu A jako wyj

ś

cie i zgaszenie wszystkich diod

ser TMP
out DDRA, TMP
clr TMP
out PORTA, TMP

; ustawienie timera
ldi TMP, high(15536)
out TCNT1H, TMP
ldi TMP, low(15536)
out TCNT1L, TMP

background image

; odmaskowanie przerwania przepełnienia
ldi TMP, (1<<TOIE1)
out TIMSK, TMP

; ustawienie

ź

ródła zliczania na wewn

ę

trzny zegar

; (bez prescalera)
ldi TMP, (0<<CS12)|(0<<CS11)|(1<<CS10)
out TCCR1B, TMP

sei ; odblokowanie układu przerwa

ń


; główna p

ę

tla

czekaj:

nop

jmp czekaj

; obsługa przerwania

timer1:

; przeładuj timer
ldi TMP, high(15536)
out TCNT1H, TMP
ldi TMP, low(15536)
out TCNT1L, TMP

; obsługa przerwania
cp CNT, MAX ; if (CNT == 20)
breq wysw ; wy

ś

wietl zawarto

ść

tablicy na porcie

jmp nie_wysw ; nie wy

ś

wietlaj zawarto

ś

ci tablicy

wysw:

; CNT == 20

call read_char ; przeczytaj bajt z tablicy
out PORTA, DISP ; i wy

ś

wietl

clr CNT

; zeruj licznik

reti

nie_wysw:

; CNT < 20

inc CNT
reti

; odczyt warto

ś

ci z tablicy do DISP

read_char:

lpm DISP, Z+ ; załadowanie warto

ś

ci do wy

ś

wietlenia

tst DISP ; sprawdzenie czy koniec tablicy (0)
breq disp_null ; je

ś

li wyst

ą

piło 0 (koniec tablicy)

jmp disp_not_null

; wyst

ą

piła warto

ść

ż

na od 0

disp_null:

ldi ZL, low(tabl<<1) ; załaduj Z ponownie
ldi ZH, high(tabl<<1)
lpm DISP, Z

; załadowanie warto

ś

ci do wy

ś

wietlenia

tst DISP

brne not_null

; nie 0? to inc Z

background image

disp_not_null:

; else

ret

not_null:

ldi ZL, low(tabl<<1) ; załaduj Z ponownie
ldi ZH, high(tabl<<1)
lpm DISP, Z+
ret

; ró

ż

ne dane

tabl: .db 0xF0, 0x0F, 0xAA, 0x00
;tabl: .db 0x00, 0x0F, 0xAA, 0x00
;tabl: .db 0x00

.exit ;koniec programu

2. Dane testowe


Program przetestowano pod kątem różnych wartości danych testowych. We wszystkich
przypadkach działał poprawnie. Niektóre z testowanych postaci tablicy przedstawiono
poniżej:

tabl: .db 0xF0, 0x0F, 0xAA, 0x00
tabl: .db 0x00, 0x0F, 0xAA, 0x00
tabl: .db 0x00

3. Wnioski


Mikrokontroler ATmega128 jest rozbudowanym układem posiadającym m. in. liczniki
16-bitowe, które wykorzystano do odliczenia czasu 1 sekundy (milion taktów zegara 1 MHz).
Dużą rolę przy pisaniu programu odegrał debugger oraz symulator procesora ATmega, dzięki
którym uruchamianie oprogramowania było sporo łatwiejsze. Ostatecznie stworzony program
działał poprawnie dla wszystkich testowanych kombinacji danych.


Wyszukiwarka

Podobne podstrony:
Ćwiczenie 03 Sprawko (Inne)
Ćwiczenie 10 Sprawko (Inne)
grunty sprawko, Studia, Sem 4, Semestr 4 RŁ, gleba, sprawka i inne
Ćwiczenie 20
ćwiczenie 18 sprawko
anatomia ćwiczenia 3- Gr IX i X, Inne (Notatki materialy itp)
Cwiczenie 20 wzor sprawozdania id 125264
Cwiczenie 20, omowienie
Ćwiczenie1 20, TiR UAM II ROK, Informatyka
Cwiczenia 20-folie, Wykłady, Makroekonomia, makra, Makroekonomia, slajdy ćwiczenia
KINEZYTERAPIA ĆWICZENIA 1 20.02.2008- czucie wibracji, Kineza
Ćwiczenie 20
Ćwiczenia z 20.03.2011 (niedziela) A. Szczepanek, UJK.Fizjoterapia, - Notatki - Rok I -, Biofizyka
Cwiczenie 6 - nadwrazliwosc, Immunologia, inne
elek, 20+, Ćwiczenie 20
Opis ćwiczenia3, Studia PK, Inne - serwer Nexus, Dydaktyka, GK, grafika rastrowa 3

więcej podobnych podstron