МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
Кафедра САПР
ЗВІТ
ДО ЛАБОРАТОРНОЇ РОБОТИ № 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 «Полковнику никто не пишет» по вказаним кодам.