Програмування системного таймера 8253/8254 та робота з годинником реального часу.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Комп’ютери і мікропроцесорні системи

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет „Львівська політехніка” Лабораторна робота №13 з курсу „Комп’ютери та мікропроцесорні системи” на тему: ”Програмування системного таймера 8253/8254 та робота з годинником реального часу” Виконав Тема Програмування системного таймера 8253/8254 та робота з годинником реального часу. Мета Мета роботи – вивчити та засвоїти алгоритми роботи з системним таймером 8253/8254. Набути практичні навички роботи з програмування системного таймера. Теоретичні відомості Завдання На індивідуальне завдання я отримав таке завдання: написати програму, яка за допомогою системного таймера генерує на динаміку звукові мотиви пісні Земфіра “Прости мене, моя любов”. За вказаними кодами: C3(1/8) D3(1/4) E3(1/2) D3(1/4) C4(1/4) H3(1/4) C3(1/8) D3(1/4) E3(1/2) D3(1/4) C4(1/4) H3(1/4) C3(1/8) D3(1/4) E3(1/2) D3(1/4) C4(1/4) H3(1/4) E3(1/4) F3(1/8) D3(1/4) F3(1/8) D3(1/8) C3(1/4) F3(1/8) C3(1/8) H2(1/4) F3(1/8) H2(1/8) C3(1/8) Текст ASM програми: .MODEL Small .STACK 64 .DATA DO equ 4554 DO_ equ 4307 RE equ 4058 RE_ equ 3836 MI equ 3615 FA equ 3418 FA_ equ 3224 SOL equ 3043 SOL_ equ 2875 LIA equ 2711 LIA_ equ 2560 SII equ 2415 ; DOO equ 2281 DOO_ equ 2153 REE equ 2032 REE_ equ 1918 MII equ 1810 FAA equ 1709 FAA_ equ 1612 SOLL equ 1522 SOLL_ equ 1438 LIAA equ 1356 LIAA_ equ 1280 SIII equ 1208 OCT equ 4 QRT equ 8 HLF equ 16 FLL equ 12 FMM equ 16 ;16 P_0 equ 00h A_0 equ 152Fh B_0 equ 1400h H_0 equ 12DEh C_0 equ 11C0h CIS_0 equ 10D0h D_0 equ 0FDFh DIS_0 equ 0EFAh E_0 equ 0E23h F_0 equ 0D58h FIS_0 equ 0C98h G_0 equ 0BE3h GIS_0 equ 0B39h A_2 equ 0A97h B_2 equ 0A37h H_2 equ 096Fh C_2 equ 08EFh CIS_2 equ 0868h D_2 equ 07EFh DIS_2 equ 077Dh E_2 equ 0711h F_2 equ 06CAh FIS_2 equ 064Ch G_2 equ 05F1h GIS_2 equ 059Ch A_3 equ 054Bh B_3 equ 04FFh H_3 equ 04B7h C_3 equ 0474h CIS_3 equ 0432h D_3 equ 03F7h DIS_3 equ 03BEh E_3 equ 0389h F_3 equ 0357h FIS_3 equ 0326h G_3 equ 02F8h GIS_3 equ 02CEh CX0_1 equ 3d0900h CX0_2 equ 1E8480h CX0_4 equ 0F4240h CX0_8 equ 07A120h CX0_16 equ 03D090h ;--------------------------- Zemfira -------------------------- freq1 dw C_3,D_3,E_3,D_3,CIS_3,H_3,C_3,D_3,E_3,D_3 dw CIS_3,H_3,C_3,D_3,E_3,D_3,CIS_3,H_3,E_3,F_3 dw D_3,F_3,D_3,C_3,F_3,C_3,H_2,F_3,H_2,C_3 dur1 db HLF,QRT,OCT,QRT,QRT,QRT,HLF,QRT,OCT,QRT db QRT,QRT,HLF,QRT,OCT,QRT,QRT,QRT,QRT,HLF db QRT,HLF,HLF,QRT,HLF,HLF,QRT,HLF,HLF,HLF melody1 db 01,02,03,04,05,06,07,08,09,10 db 11,12,13,14,15,16,17,18,19,20 db 21,22,23,24,25,26,27,28,29,30,0ffh mes_1 DB " ", 0Dh, 0Ah DB " ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДї", 0Dh, 0Ah DB " і To chouse program і", 0Dh, 0Ah DB " і gast push button: і", 0Dh, 0Ah DB " і і", 0Dh, 0Ah DB " і 1 : to play M 1 і", 0Dh, 0Ah DB " і і", 0Dh, 0Ah DB " і 0 : to exit і", 0Dh, 0Ah DB " і і", 0Dh, 0Ah DB " АДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ", 0Dh, 0Ah DB "$", 0Dh, 0Ah .CODE .386 AMain Proc Far mov AX, @data mov DS, AX mov ES, AX A1: CALL A10Clean mov DX,0519h CALL B10Cursor lea DX, mes_1 CALL F10Mes mov DX,0E15h ;DH- RD. DL- CT CALL B10Cursor CALL E10ChIn cmp AL, 31h jne A0 CALL CMusic1 jmp A1 A0: cmp AL, 30h jne A1 A11: mov AX, 4C00h int 21h AMain Endp CMusic1 proc near mov al,0B6h out 43h,al in al,61h or al,3 out 61h,al mov cx,2 mov cx,12 mov si,0 CPlay1: lea bx,melody1 mov al,[bx][si] cmp al,0ffh je CStop1 cbw mov bx,offset freq1 dec ax shl ax,1 mov di,ax mov dx,[bx][di] mov al,dl out 42h,al mov al,dh out 42h,al mov ah,0 int 1ah mov bx,offset dur1 mov cl,[bx][si] mov ch,0 mov bx,dx add bx,cx CCont1: int 1ah cmp dx,bx jne CCont1 inc si jmp CPlay1 CStop1: in al,61h ;Ї®«гзЁ¬ §­ зҐ­ЁҐ Ї®ав  61h ў AL and al,0FCh ;ўлЄ«озЁвм ¤Ё­ ¬ЁЄ out 61h,al ;ў Ї®ав 61h ret CMusic1 endp ;------------------------------------------------------------------------------------------ ;------------------------------------------------------------------------------------------ A10Clean Proc Near pusha mov AX, 0600h mov BH, 07 mov CX, 00h mov DX, 184Fh int 10h popa ret A10Clean Endp ;--------------------------- B10Cursor Proc Near pusha mov AH, 02h mov BH, 00h int 10h popa ret B10Cursor Endp ;--------------------------- E10ChIn Proc Near mov AH, 01h int 21h cmp AL, 00h jne E20 int 21h E20: ret E10ChIn Endp ;--------------------------- F10Mes Proc Near mov AH, 09h ;DX - Text int 21h ret F10mes Endp ;------------------------------------------------------------------------------------------ End AMain Результати виконання програми Після запуску програми і висвітлення меню, в якому пропонується вибрати мелодію, можна, натискаючи відповідну клавішу програти мелодії. Якщо натиснути кілька разів якусь клавішу, що вибирає мелодію, то вона занесеться в буфер клавіатури і виконається відразу після закінчення дії попередньої. Для того щоб завершити виконання програми треба в меню натиснути на клавішу „0”. Висновки На даній лабораторній роботі я навчився виконувати програмування системного таймера, та виводити за допомогою нього звукові сигнали. Виконавши цю лабораторну роботу я переконався що виводити складні мелодії за допомогою динаміка небажано, тому що він не може передати повноту сприйняття звуку.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!