R
Rydj
Доброго времени суток имеется задание: имеется 16 бинарных датчиков, формирующих сигналы с уровнями логических 0 или 1. Необходимо с периодичностью в 1 секунду производить опрос всех датчиков, подсчитывать сумму единиц результата опроса и выводить ее на двухразрядный семисегментный индикатор в виде десятичного числа.
На практике разбирали немного похожую программу:
Написать программу, постоянно опрашивающую порт ввода 1, на четыре младших разряда которого поступает двоично-десятичный код, и выводящую соответствующую этому коду десятичную цифру на семисегментый индикатор, подключенный к порту вывода 2.
Решил взять её за основу
Я так понял что мне нужно 2 порта каждый порт опрашивает по 8 датчиков, ток как реализовать это я не понимаю
На практике разбирали немного похожую программу:
Написать программу, постоянно опрашивающую порт ввода 1, на четыре младших разряда которого поступает двоично-десятичный код, и выводящую соответствующую этому коду десятичную цифру на семисегментый индикатор, подключенный к порту вывода 2.
Решил взять её за основу
Код:
START: IN 01h;ввести байт данных из порта ввода 1.
ANI 00001111b ;обнулить не интересующие нас четыре старших разряда введенного байта.
LXI DE,0000h ;обнулить регистровую пару DE.
MOV E,A ;переслать двоичный код индицируемой цифры в младший регистр E регистровой пары DE.
LXI HL,TABL ;записать в регистровую пару HL адрес, соответствующий метке TABL.
DAD DE ;сложить содержимое регистровых пар DE и HL, результат занести в HL, т.е. в HL сформировался адрес ячейки памяти с индицируемым семисегментным кодом.
MOV A,M ;переслать семисегментный код из адресованной ячейки памяти в аккумулятор.
OUT 02h ;Вывести семисегменый код в порт вывода 2.
JMP START;перейти в начало программы.
TABL: DB 3Fh;занести в последо-вательные ячейки памяти таблицу семисегментных кодов, начиная с ячейки с адресом, соответствую-щим метке TABL*.
DB 06h
DB 5Bh
DB 4Fh
DB 66h
DB 6Dh
DB 7Dh
DB 07h
DB 7Fh
DB 6Fh
Я так понял что мне нужно 2 порта каждый порт опрашивает по 8 датчиков, ток как реализовать это я не понимаю