Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2011, 14:25   #1
Rydj
Пользователь
 
Регистрация: 22.01.2011
Сообщений: 17
Печаль Доработка программы

Доброго времени суток имеется задание: имеется 16 бинарных датчиков, формирующих сигналы с уровнями логических 0 или 1. Необходимо с периодичностью в 1 секунду производить опрос всех датчиков, подсчитывать сумму единиц результата опроса и выводить ее на двухразрядный семисегментный индикатор в виде десятичного числа.

На практике разбирали немного похожую программу:
Написать программу, постоянно опрашивающую порт ввода 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 датчиков, ток как реализовать это я не понимаю
Rydj вне форума Ответить с цитированием
Старый 15.05.2011, 15:16   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а это асм под что?
судя по командам точно не Intel
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 15.05.2011, 15:31   #3
Rydj
Пользователь
 
Регистрация: 22.01.2011
Сообщений: 17
Восклицание

это точно под интелом вроде 8080 (отечественный аналог КР580ИК80)
Rydj вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доработка программы (за деньги) termit56 Фриланс 6 28.01.2010 14:27
Доработка программы akialex Помощь студентам 3 24.12.2009 21:09
Доработка программы Дмитрий Н. Общие вопросы Delphi 5 15.04.2009 20:17
Доработка программы!! Дмитрий Н. Компоненты Delphi 0 15.04.2009 11:26
Доработка программы... barmaJIei Фриланс 1 24.04.2008 21:23