русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Функции для работы с портами ввода вывода.


Дата добавления: 2015-08-14; просмотров: 2107; Нарушение авторских прав


Inportb – ввод байта из порта ввода.

Outportb – вывод байта.

Inport – ввод слова (два байта).

Outport – вывод слова.

 

Они находятся в dos.h.

Unsigned char inportb (unsigned port);

 

Port – адрес порта ввода (0 … 65535), эта функция возвращает без знаковое символьное значение.

Void outportb (unsigned port, unsigned char value);

Port – адрес порта вывода.

Value – значение, которое выводится.

 

#include <stdio.h>

#include <dos.h>

main ( )

{

unsigned char result;

unsigned port=0; //адрес порта

result = inport (port);

printf (“Принятый байт из порта %d равен0x%x \n”, port, result);

return 0;

}

 

#include <stdio.h>

#include <dos.h>

main ( )

{

char value =’C’

unsigned port = 0; //адрес порта

outport (port, Value);

printf (“Значение %С послано в порт %d \n”, value, port);

return 0:

}

 

В conio.h содержатся следующие функции:

Inp – ввод байта.

Outp – вывод байта.

Inpw – ввод слова.

Outw – вывод слова.

 

Пример: управление каналом звука.

SPEAKER – символ, имя канала звука.

 

 
 

 

 


Счетчик СТ2 обеспечивает частоту звука (работает в режиме генератора меандра).

По входу GATE можно разрешить (1) или запретить (0) счет.

Для работы вентиля (&) на D1 = 1.

Адрес СТ2 =42h.

Адрес PYC =43h/

Д2 … Д7 – менять нельзя!

 

/*speaker.cpp Программа генерации звука*/

#include <stdio.g>

#include <dos.h> // Прототипы функций inportb ( ), outportb ( ), delay ( )

#include <conio.h> //Прототип функции kbhit ( )

#define CTRL_PT 0x43 //регистр РУС

#define CTRL_WD 0x66 //управляющее слово для СТ2

#define N_LOW 0х26 //младший байт числа N

#define N_HIGH 0x11 //старший байт числа N



#define CT2 0x42 //адрес СТ2

#defineSYST_PRT 0x61 //адрес системного порта

main ( )

{

unsigned char ch1, ch2;

outportb (CTRL_PT, CTRL_WD); //Вывод УС с РУС

outportb (CT2, N_LOW); //загрузка младшего байта числа в СТ2

outportb (CT2, N_HIGH); //загрузка старшего байта

ch1=inportb (SYST_PRT);

ch2=ch1; //создание копии

ch2=ch2 | 0x3 //Установить D0=1,D1=1

while (!kbhit ( ))

{

outportb (SYST_PRT, ch2); //есть звук

delay (1000); //задержка на 1 секунду

ch2=ch2&0xfd; // 0xfd = 1111 1101

outportb (SYST_PRT, ch2); //звук нет

delay (1000);

ch2 = ch2|0x2; // установка D1=1

}

outport (SYST_PRT, ch1);

return 0;

}

 

Звук заканчивается когда нажимается любая клавиша.

Программа не меняет Д1 … Д7.

 

Для формирования звука надо сформировать меандр:

 

 
 

 

 


Счетчик должен работать в режиме 3 (генератор прямоугольных импульсов).

Fзв = 440 Гц (нота Ля первой октавы)

N=fвх/fзв = 1931800 / 440 = 4390,45 » 1126h

Формат управляющего слова: счетчик двоичный, загрузить два байта.

01110110b = B6h.

 

 



<== предыдущая лекция | следующая лекция ==>
Функции языка Си. | Классы хранения переменных.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.574 сек.