Теми рефератів
> Авіація та космонавтика > Банківська справа > Безпека життєдіяльності > Біографії > Біологія > Біологія і хімія > Біржова справа > Ботаніка та сільське гос-во > Бухгалтерський облік і аудит > Військова кафедра > Географія > Геодезія > Геологія > Держава та право > Журналістика > Видавнича справа та поліграфія > Іноземна мова > Інформатика > Інформатика, програмування > Історія > Історія техніки > Комунікації і зв'язок > Краєзнавство та етнографія > Короткий зміст творів > Кулінарія > Культура та мистецтво > Культурологія > Зарубіжна література > Російська мова > Маркетинг > Математика > Медицина, здоров'я > Медичні науки > Міжнародні відносини > Менеджмент > Москвоведение > Музика > Податки, оподаткування > Наука і техніка > Решта реферати > Педагогіка > Політологія > Право > Право, юриспруденція > Промисловість, виробництво > Психологія > Педагогіка > Радіоелектроніка > Реклама > Релігія і міфологія > Сексологія > Соціологія > Будівництво > Митна система > Технологія > Транспорт > Фізика > Фізкультура і спорт > Філософія > Фінансові науки > Хімія > Екологія > Економіка > Економіко-математичне моделювання > Етика > Юриспруденція > Мовознавство > Мовознавство, філологія > Контакти
Реклама
Українські реферати та твори » Информатика, программирование » Програмований периферійний інтерфейс. Генерація звуку з забороною і без заборони переривань

Реферат Програмований периферійний інтерфейс. Генерація звуку з забороною і без заборони переривань

Міністерство освіти і науки Російської федерації

Федеральне Агентство з освіти

ГОУ ВПО Московський Державний Відкритий університет

Чебоксарский інститут (філія)

Кафедра інформаційних технологій та програмування

Курсова робота

З дисципліни: В«Обчислювальні машини, системи та мережіВ»

Програмований периферійний інтерфейс. Генерація звуку з забороною і без заборони переривань.

Виконав студент:

Ванюшин А.А

Спеціальність: 220201

Форма навчання: денна

Навчальний шифр: 607026

Керівник:

Серолапкін А.В.

2008


Зміст

1. Постановка завдання

2. Пояснення

3. Код програми

4. Висновок

5. Список літератури


1. Постановка завдань

Генерація звуку. І обробка переривань.

генерація звук система програма

2. Пояснення

Установка і читання таймера.

Всі IBM PC використовують мікросхему таймера 8253 (або 8254) для узгодження імпульсів від мікросхеми системних годин. Число циклів системних годин перетвориться в один

загрузка...
імпульс, а послідовність цих імпульсів підраховується для визначення часу, або вони можуть бути послані на гучномовець комп'ютера для генерації звуку певної частоти. Мікросхема 8253 має три ідентичних незалежних канали, кожний з яких може програмуватися.

Мікросхема 8253 працює незалежно від процесора. Процесор програмує мікросхему і потім звертається до інших справ. Таким чином 8253 діє як годинник реального часу - Вона вважає свої імпульси незалежно від того, що відбувається в комп'ютері.

Однак, максимальний програмований інтервал становить приблизно 1/12 секунди. Для підрахунку інтервалів часу в годинник і хвилини потрібні якісь інші засоби. Саме з цієї причини імпульси від нульового каналу мікросхеми таймера накопичуються в змінної, що знаходиться в області даних BIOS. Цей процес показаний на рис. 2-1. Це нагромадження зазвичай називається підрахунком часу доби. 18.2 рази в секунду вихід каналу 0 обробляється апаратним перериванням (перериванням таймера), яке ненадовго зупиняє процесор і збільшує лічильник часу доби.

Число 0 відповідає полночи 12:00; коли лічильник досягає значення еквівалентного 24 годинам, він скидається на нуль. Інший час протягом доби легко визначається діленням показника лічильника на 18.2 для кожної секунди. Лічильник часу доби використовується в більшості операцій, пов'язаних з часом.

Програмування мікросхеми таймера 8253/8254.

Кожен з трьох каналів мікросхеми таймера 8253 (8254 для AT) складається з трьох регістрів. Доступ до кожній групі з трьох регістрів здійснюється через один порт; номери портів від 40H до 42H відповідають каналам 0 - 2. Порт пов'язаний з 8-бітним регістром вводу/виводу, який посилає і приймає дані для цього каналу. Kогда канал запрограмований, то через цей порт надсилається двухбайтного значення, молодший байт спочатку. Це число передається в 16-бітний регістр засувки (latch register), який зберігає це число і з якого копія міститься в 16-бітний регістр лічильника. В регістрі лічильника число зменшується на одиницю кожного разу, коли імпульс від системних годин пропускається через канал. Kогда значення цього числа досягає нуля, то канал видає вихідний сигнал і потім нова копія вмісту регістра засувки пересувається в регістр лічильника, після чого процес повторюється. Чим менше число в регістрі лічильника, тим швидше ритм. Всі три канали завжди активні: процесор не включає і не вимикає їх. Поточне значення будь-якого з регістрів лічильника може бути прочитане в будь-який момент часу, не впливаючи на рахунок.

Кожен канал має дві вхідні і одну вихідну лінії. Вихідна лінія виводить імпульси, що виникають у результаті підрахунку. Hазначеніе цих сигналів варіюється в залежності від типу IBM PC:

Установка/читання часу

При старті MS DOS запрошує у користувача поточний час. Введене значення поміщається в 4 байта, що зберігають лічильник часу доби (починаючи з 0040:006 C, молодший байт зберігається першим). Hо спочатку воно перетворюється на форму, в якій підраховується час доби, тобто час перетворюється на число вісімнадцятого часток секунди, що минули з півночі. Це число постійно оновлюється 18.2 разів у секунду перериванням таймера. Коли з'являється черговий запит на час, то поточне значення лічильника часу доби перетвориться назад в звичний формат годинник-хвилини-секунди. Якщо при старті не було введено значення, то лічильник встановлюється в нуль, наче зараз опівночі. Kомпьютер забезпечені мікросхемою календаря-годин можуть автоматично встановлювати лічильник часу доби.

Установка/читання дати.

При включенні комп'ютера MS DOS запитує в користувача поточні дату і час. Час записується в області даних BIOS. Дата же міститься в змінної в COMMAND.COM. Вона зберігається в форматі трьох послідовних байтів, які містять відповідно день місяця, номер місяця і номер року, починаючи з 0, де 0 відповідає 1980 році. У відмінності від лічильника часу доби, адреса дати в пам'яті змінюється з зміною версії DOS і становищем у пам'яті COMMAND.COM. З цієї причини для отримання дати завжди треба використовувати готові утиліти Бейсіка або MS DOS, а не звертатися до цієї змінної безпосередньо.

Машини, обладнані мікросхемою календаря-годин, автоматично встановлюють час і дату за допомогою спеціальної програми (зазвичай запускається при старті через файл AUTOEXEC.BAT). Kак отримати доступ до мікросхеми календаря-годин, див [2.1.4]. Відзначимо також, що коли лічильник часу доби BIOS переходить через відмітку 24 годин, MS DOS змінює дату.

3. Код програми .

.286

. MODEL TINY

. CODE

ORG 100h

Begin:

jmp start

DATASEG

PPI_PORT EQU 061h

ON EQU 03

OFF EQU 0FCh

MOD_PORT EQU 43h

FRQ_PORT EQU 42h

TIMERSET EQU 0B6h

PLRE EQU 5; Кількість повторів

NUM EQU 16; кількість нот

Music dw 131,5,262,5,294,5,330,5,350,5,392,5,440,5,491,5; перший мелодія

dw 491,5,440,5,392,5,350,5,330,5,294,5,262,5,131,5; друга

dw 262,5,491,5,262,5,491,5,262,5,491,5,262,5,491,5; 3-ая

dw 491,3,294,3,294,3,330,3,294,3,350,3,491,3,491,3; четвертий

Message db 'nevernj', 13,10, '$'

Message1 db 'The program have already been loaded. Unload y/n? $ '

Message2 db 'The program was loaded $'

Message3 db 10,13, 'The program was unloaded $'

atime dw 3 DUP (0)

time dw 3 DUP (0)

filename db 'time.dat', 0; Ім'я файлу з даними

timeinfo db 50 DUP (?); Час з файлу

cmdinfo db 50 DUP (?); Командний рядок

oldintoff dw? ; Зсув старого обробника переривання 1Ch

oldintseg dw? ; Сегмент старого обробника переривання 1Ch

oldintoff7 dw? ; Зсув старого обробника переривання 7h

oldintseg7 dw? ; Сегмент старого обробника переривання 7h

count db 0

musn db 1; Номер воспроизводимой мелодії

Play PROC; Відтворення музики

; Включимо Speaker

in al, PPI_PORT

or al, ON

out PPI_PORT, al

mov [Count], 0

R_play:

inc [Count]

xor ax, ax

mov al, cs: [musn]

dec ax

mov bx, 28

mul bx

mov si, ax

mov di, 00

LoopM:

mov ax, cs: word ptr Music [si]

push ax

mov ax, TIMERSET

out MOD_PORT, ax

pop ax

push ax

and ax, 0FFh

out FRQ_PORT, a...

загрузка...

Страница 1 из 3 | Следующая страница

Друкувати реферат
Реклама
Реклама
загрузка...