МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
Кафедра САПР
ЗВІТ
ДО ЛАБОРАТОРНОЇ РОБОТИ № 10
На тему: «Програмування програм з використанням системного
таймера 8253/8254 та робота з годинником реального часу»
З дисципліни : «Архітектура комп’ютерів»
ЛЬВІВ – 2007
Тема роботи: Програмування програм з використанням системного таймера 8253/8254 та робота з годинником реального часу.
Мета роботи: Навчитись програмувати системний таймер 8253/8254 та працювати з годинником реального часу.
ТЕОРЕТИЧНІ ВІДОМОСТІ
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
ЛАБОРАТОРНЕ ЗАВДАННЯ:
Запрограмувати таймер на виконання мелодії – БИ-2 «Полковнику никто не пишет» по вказаним кодам:
D2(1/8) G2(1/8) C3(1/8) Ais(1/8) G2(1/8) D2(1/2) P(1/4) D2(1/4) Dis2(1/4) D2(1/2) F2(1/4) Dis2(1) P(1/4) D2(1/8) G2(1/8) C3(1/8) Ais2(1/8) G2(1/8) D2(1/2) P(1/4) D2(1/4) Dis2(1/4) D2(1/2) Ais2(1/8) Ais2(1/2) A2(1/8) A2(1/2) Ais2(1/8) Ais2(1/2) A2(1/8) A2(1/2)
D2 07EF G2 05F1 C3 0474 Ais 1400
Dis2 077D F2 06AC Ais2 0A37 A2 0A97
1 3D0900 1/2 1E8480 1/4 0F4240 1/8 07A120
ХІД РОБОТИ:
Для реалізації поставленого завдання була розроблена наступна програма:
.model tiny
.code
org 100h
start: mov cx,31 ; задаємо кількість нот
mov di,0
mov si,0
cukl: push cx
xor ax,ax
mov al,10110110b ; програмуємо таймер на канал 2
out 43h,al
mov al,byte ptr nota [di] ; молодший байт ноти
out 42h,al
mov al,byte ptr nota [di+1] ; старший байт ноти
out 42h,al
in al,61h ; стан порта 61h заносимо в al
or al,00000011b ; встановлюємо 1 і 0 біти в 1
out 61h,al ; включаємо динамік
;заносимо в сx старше слово тривалості ноти
mov cx,word ptr truvalist [si+2]
;заносимо в dx молодше слово тривалості ноти
mov dx,word ptr truvalist [si]
mov ah,86h
int 15h ; робимо паузу
in al,61h
and al,11111100b ; встановлюємо 1 і 0 біти в 0
out 61h,al ; виключаємо динамік
add di,2
add si,4
pop cx
loop cukl
RET
; масив нот
nota dw 07EFh,05F1h,0474h,1400h,05F1h,07E7h,0001h,07EFh, 077Dh,07EFh,06ACh,077Dh,0001h,07EFh,05F1h,0474h,0A37h,05F1h,07EFh,0001h,07EFh,077Dh,07EFh,0A37h,0A37h,0A97h,0A97h,0A37h,0A37h,0A97h,0A97h
; масив тривалості відповідних нот
truvalist dd 7A120h,7A120h,7A120h,7A120h,7A120h,1E8480h,0F4240h, 0F4240h,0F4240h,1E8480h,0F4240h,3D0900h,0F4240h,7A120h,7A120h,7A120h,7A120h,7A120h,1E8480h,0F4240h,0F4240h,0F4240h,1E8480h,7A120h,1E8480h,7A120h,1E8480h,7A120h,1E8480h,7A120h,1E8480h
end start
ВИСНОВОК:
Під час виконання лабораторної роботи я навчився програмувати системний таймер 8253/8254 та працювати з годинником реального часу. Мною була написана програма, яка виконує мелодії – БИ-2 «Полковнику никто не пишет» по вказаним кодам.