Регистры параллельного порта

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Аватара пользователя
rus7am
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Сб июл 09, 2011 22:17:09
Откуда: Саратов

Регистры параллельного порта

Сообщение rus7am »

Как реализовать в LPT взаимосвязь статус регистра и регистра данных. Чтобы при изменении сигнала в статус регистре на одном из регистров данных появлялся сигнал? Мне надо написать программу в C под DOS. Прогу я загружаю в контроллер и к регистру данных подключаю светодиод для индикации изменения сигнала.

Вот код программы на C:


#include <dos.h>
#include <conio.h>

#define PORT 0x278

void main()
{

int data;
clrscr();

while(!kbhit());
{

data=inportb(PORT+1);

if (((data & 0x08)/0x08)==1)
outportb(PORT, 0x01);
else

outportb(PORT, 0x00);






}
}
Эта программа работает только если не включая питания замкнуть землю и статус регистр, а потом подать напряжение, то светодиод загорится. Разомкнув землю с регистром светодиод продолжает гореть, хотя должен погаснуть. Снова выключив питание в разомкнутом состоянии (землю и статус регистр) и подать напряжение, то светодиод уже не загорается.
Чем больше ищешь, тем больше узнаешь...
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: Регистры параллельного порта

Сообщение ChipKiller »

rus7am писал(а):Как реализовать в LPT взаимосвязь статус регистра и регистра данных.
... не стоит забывать про 0x27A... Для инициализации можно использовать ф-ции BIOS

ps. .. рекомендую почитать М.Гука "Аппаратные интерфейсы ПК"
bad2cat
Потрогал лапой паяльник
Сообщения: 367
Зарегистрирован: Пт июн 12, 2015 09:21:56
Откуда: Челяба-сити

Re: Регистры параллельного порта

Сообщение bad2cat »

рекомендую почитать про 8255 и Джордейна.
misyachniy
Прорезались зубы
Сообщения: 219
Зарегистрирован: Вт июл 02, 2013 09:17:49

Re: Регистры параллельного порта

Сообщение misyachniy »

data - нужно объявить как char.
if (((data & 0x08)/0x08)==1) обычно пишут if ((data & 0x08)!=0)
Аватара пользователя
rus7am
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Сб июл 09, 2011 22:17:09
Откуда: Саратов

Re: Регистры параллельного порта

Сообщение rus7am »

Спасибо Вам всем за помощь!Программа наконец заработала!
Чем больше ищешь, тем больше узнаешь...
Ответить

Вернуться в «Периферия»