Регистры параллельного порта
Добавлено: Пт июн 12, 2015 05:18:01
Как реализовать в 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);
}
}
Эта программа работает только если не включая питания замкнуть землю и статус регистр, а потом подать напряжение, то светодиод загорится. Разомкнув землю с регистром светодиод продолжает гореть, хотя должен погаснуть. Снова выключив питание в разомкнутом состоянии (землю и статус регистр) и подать напряжение, то светодиод уже не загорается.
Вот код программы на 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);
}
}
Эта программа работает только если не включая питания замкнуть землю и статус регистр, а потом подать напряжение, то светодиод загорится. Разомкнув землю с регистром светодиод продолжает гореть, хотя должен погаснуть. Снова выключив питание в разомкнутом состоянии (землю и статус регистр) и подать напряжение, то светодиод уже не загорается.