Студентам > Курсовые > Устройство ввода и отображения информации на базе БИС КР580ВВ79
Устройство ввода и отображения информации на базе БИС КР580ВВ79Страница: 8/8
|
Текст
программы приведен в приложении 1.
5. Выбор
элементной базы.
Для создания разрабатываемого устройства были использованы ИМС
микропроцессорного комплекта КР580 как наиболее совместимые с контроллером
ввода-вывода КР580ВВ79. Остальные ИМС (инвертор и дешифратор) были выбраны из
соображений электрической совместимости и надежности разрабатываемого
устройства.
Другие полупроводниковые приборы (транзисторы и светоизлучающие
диоды) были выбраны из соображения их максимальной электрической совместимости
с выходными характеристиками ИМС, несмотря на их относительно большое
энергопотребление по сравнению с другими светоизлучающими знакогенерирующими
приборами.
Резисторы С2-23 были выбраны, исходя из соображений рационального
сочетания цены и стабильности их параметров.
Переключатели малогабаритные МП10 были выбраны, исходя из таких их
преимуществ, как малые габариты и большая надежность, а следовательно, и
наработка на отказ.
выводы
Разработанное в данном курсовом проекте устройство ввода и
отображения информации на базе контроллера КР580ВВ79 является полезным устройством
при проектировании систем безопасности на базе обычных персональных ЭВМ типа IBM PC.
Разработанное устройство не требует для подключения никаких дополнительных
устройств и имеет достаточно гибкое, легко настраиваемое под конкретные
потребности програмное обеспечение. Кроме того, возможности ввода данного
устройства могут быть значительно расширены за счет неполного использования
матрицы датчиков, причем добавлены могут быть не только кнопочные датчики, а
например, температурные либо оптические. Это не потребует дополнения схемы
устройства, а только соответствующей доработки программного обеспечения.
Исходя из выше сказанного, можно утверждать, что разработанное
устройство вполне можно применять в составе различных систем, где кроме
стандартных устройств ввода и отображения (а также последующего анализа)
информации необходимы дополнительные, компактные и многофункциональные
устройства. Несмотря на некоторую моральную устарелость БИС КР580ВВ79,
устройства на ее основе вполне можно применять в тех областях, где скорость
работы и энергопотребление не играют решающей роли.
ЛИТЕРАТУРА.
1. Лю Ю-Чжен, Гибсон Г. Микропроцессоры семейства 8086/8088.
Архитектура, программирование и проектиро вание микропроцессорных систем., Пер.
с англ. , М.: Р и С, 1987г.
2. Аналоговые и цифровые интегральные схемы. Под ред.
С.В.Якубовского, Радио и связь, 1980.
3. Микропроцессорные средства и системы, журнал.
Приложение
1. Листинг управляющей программы.
{программа управления устройством
ввода и отображения информации на базе
БИС КР580ВВ79
Разработка: Кузин Е.А.}
program KR580;
uses crt,dos;
const Recode:
array[1..16] of byte = ($01,$02,$04,$08,$10,$20,$40,$80,$03,$05,
$09,$0B,$12,$22,$42,$82);
{код}
Code:
array[1..16] of integer = (1,2,3,3,3,4,4,5,6,6,0,0,0,0,0,0);
var i,k:integer;
Display:array[1..16] of integer;
tmp:byte;
OK :
boolean;
label NEW,AGAIN;
procedure
OutByte(portN,bte:byte);{вывод байта в порт}
begin
case portN of
$378: asm
mov
al,bte
out
$378,al
end;
$37A: asm
mov
al,bte
out
$37A,al
end;
end(*case*);
Delay(10);
end;
function
InByte(portN:byte):byte;{чтение байта из порта}
begin
case portN of
$378: asm
in
al,$378
end;
$379: asm
in
al,$379
end;
$37A: asm
in
al,$37A
end;
end(*case*);
asm
mov InByte,al
end;
Delay(10);
end;
procedure Init; {первичная
инициализация устройства}
begin
OutByte($37A,$03);
{aппаратный сброс}
OutByte($37A,$19);
{программирование режима }
OutByte($378,$19);
{работы }
end;
procedure Wait; {ожидание
прерывания от устройства}
begin
repeat until
InByte($379) <> 0;
end;
procedure
OutToDisplay(Symbol:integer); {вывод символа на дисплей}
{таблица перекодировки выводимых
символов}
const
Recode:array[1..15] of byte =
($60,$da,$f2,$66,$b6,$be,$e0,$fe,$f6,$fc,$ee,$3e,$9c,$9e,$8c);
begin
OutByte($37A,$09);
OutByte($378,Recode[Symbol]);
end;
function
StatusWord:boolean;{чтение слова состояния}
var SW:byte;
begin
StatusWord :=
false;
OutByte($37A,$15);
SW :=
InByte($378);
if SW <>
0 then StatusWord := TRUE;
end;
procedure
ResetINT; {сброс INT}
begin
OutByte($37A,$19);
OutByte($378,$F0);
end;
procedure ResetDSPL;{сброс после
вывода на дисплей}
begin
OutByte($37A,$19);
OutByte($378,$D2);
end;
procedure Bell;{подача
звукового сигнала}
begin
Sound(1200);
Delay(1000);
NoSound;
end;
function
GetChar:byte; {чтение символа с клавиатуры}
begin
If not StatusWord
then
begin
OutByte($37A,$19);
OutByte($378,$40);
OutByte($37A,$05);
GetChar :=
Inbyte($378);
if GetChar
= 0 then
begin
OutByte($37A,$19);
OutByte($378,$41);
OutByte($37A,$05);
GetChar
:= Inbyte($378)+2;
end
else
begin
Bell;Bell;
WriteLN('аппаратная
ошибка !!!');
end;
ResetINT;
end;
begin
AGAIN:
Init;
k := 0;
repeat
begin
Wait;
tmp :=
GetChar;
i := 0;
repeat
inc(i);
until
Recode[i] = tmp;
inc(k);
case i of
1..13: begin
Display[k] := i;
OutToDisplay(i);
end; {цифры}
14: k:=16; {ВВОД}
15: goto
AGAIN;{СБРОС}
16:
Bell; {ЗВОНОК}
end(*case*);
end;
until k=16;
for i:=0 to 16
do
if Display[i]
<> Code[i] then OK := true; {ПРОВЕРКА ПАРОЛЯ}
if OK then Exec('proc.exe,'');
{пароль проверен, запуск другой программы}
goto AGAIN;
end.
Copyright © Radioland. Все права защищены. Дата публикации: 2004-09-01 (0 Прочтено) |