МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ
“ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра САПР
Звіт
до лабораторної роботи №10
“Програмування системного таймера.”
Тема роботи:
Програмування системного таймера
Мета роботи:
Навчитися програмувати системний таймер та працювати з годинником реального часу написавши програму, яка відтворює мелодію пісні.
ТЕОРЕТИЧНІ ВІДОМОСТІ
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Хід роботи
Ноти
С3
Ais2
G2
Gis2
F2
F3
Dis3
E3
H
0474
0A37
05F1
059C
06AC
0357
03BE
0389
D
1140
2615
1521
1436
1708
855
958
905
Текст програми:
. ;made by Tsaruk
.model tiny
.code
org 100h
Start:
mov bp,offset MyName;Zadajem zmishcenna strichku v bx
mov dh,0
mov dl,30
mov bl,2h
mov cx,26
mov ah,13h
mov al,1
int 10h;pereruvanna BIOS
;;;;;;;;;;;;;
mov ah,9
lea dx,sname
int 21h;Pereruvanna dos 'Vuvodut strichky sho v dx'
;;;;;;;;;;;;;
mov al,0B6h;;Вибираєм канал, який керує динаміком
out 43h,al
call beep;;Vukluk procedyru beepera
ret
beep proc near
in al,61h;поточний стан порту 61h у al
or al,3h;yvimknenn
out 61h,al
mov si,0
nextnote:;perehid na nastypny noty
lea bx,MD
mov al,[bx][si]
cmp al,0FFh
je stop_melody
CBW
;vstanovutu chastoty
mov bx,offset FM
dec ax
shl ax,1
mov di,ax
mov dx,[bx][di]
; start sound
mov al,dl
out 42h,al
mov al,dh
out 42h,al
; delay
mov ah,0
int 1Ah;init zatrumku
mov bx,offset delay
mov cl,[bx][si]
mov ch,0
mov bx,dx
add bx,cx
continue_play:
int 1Ah
cmp dx,bx
jne continue_play
inc si
jmp nextnote
stop_melody:
in al,61h
and al,0fch;vukluchaje
out 61h,al
pause:
mov ah,0
int 1Ah
mov cl,PuS
mov ch,0
mov bx,dx
add bx,cx
resume_pause:
int 1Ah
cmp dx,bx
jne resume_pause
ret
beep endp
FM dw 0474h,0474h,0A37h,059Ch,05F1h,059Ch,0432h,0474h,0A37h,0000h,0A37h,0A37h;Chastotu not
dw 059Ch,05F1h,059Ch,05F1h,0474h,0A37h,059Ch,0A37h,05F1h,0474h,0474h,0A37h
dw 059Ch,05F1h,059Ch,06ACh,0357h,03BEh,0432h,0000h,0A37h,0A37h,0A37h,0000h
dw 0474h,0432h,0474h,0474h,0474h,0000h,0432h,0389h,0000h
delay db 4,4,4,8,4,8,4,8,8,8,4,4,4,8,4,8,8,4,8,4,8,4,4,4,8,4,4,4,4,8,8,8,4,8,4,4,4,8,4,8,4,4,4,8,8;Zatrumku
MD db 1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,0FFh;Kilkist not
PuS db ?
sname db 0Dh,0Ah,'Chaj Vdvoem -Laska moja ',0Dh,0Ah,'$'
MyName db 'Tsaruk V.B. KH-318 ','$'
end start
Висновок :
На даній лабораторній роботі я навчився програмувати системний таймер та працювати з годинником реального часу написавши програму, яка відтворює мелодію пісні.