Перейти к содержанию
    

Правильно ли я сделал?

А может быть применить микроконтроллер (МК)? Я сильнро сомневаюсь, что разработанную схему на микропроцессорном комплекте кто-то будет собирать, а тем более отлаживать и тд. А вот собрать ее на МК и отладить на один - два порядка проще. И появляется очень огромный плюс - наглядность!

Курсовые не для этого пишутся, БП на транзисторах тоже рассчитывал, когда LM317 уже повсюду валялась.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И вот еще одна идея.

Как лучше сделать обработку кнопки "Готов"?

1) Использование 1 режима, т.е. когда сигналы С2 и С4 - стробы.

1) Вместо использования портов C2 и С4, можно использовать кнопку на любой разряд порта С, но в режиме 0, т.е. просто проверять значение разряда.

2) Использовать вывод INT, на который завести эту кнопку, и завести через резисторы 10кОм на D7-0 +5В. Когда процессор считает вектор прерывания, а это будет команда RST7, произойдет вызов прерывания и в нем я и обработаю нажатие. Причем после обработки сделаю так:

IE

HLT

Т.е. приостанавлю работу процессора пока снова не придет сигнал нажатия кнопки. Т.е. буду экономить энергию:-) Чем я бы я в цикле проверял значение порта С.

Так какой вариант лучше? Мне стал сейчас нравиться 3. Но может в нем есть какие-то ошибки, которые я не увидел?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2) Использовать вывод INT, на который завести эту кнопку, и завести через резисторы 10кОм на D7-0 +5В. Когда процессор считает вектор прерывания, а это будет команда RST7, произойдет вызов прерывания и в нем я и обработаю нажатие. Причем после обработки сделаю так:

IE

HLT

Т.е. приостанавлю работу процессора пока снова не придет сигнал нажатия кнопки. Т.е. буду экономить энергию:-) Чем я бы я в цикле проверял значение порта С.

Так какой вариант лучше? Мне стал сейчас нравиться 3. Но может в нем есть какие-то ошибки, которые я не увидел?

На общую шину данных никаких кнопок и резисторов цеплять недопустимо. Тем более она уже перегружена. Кажется ВВ55 умел вызывать прерывание при активности на каком-то порте.

 

ЗЫ. Энергию ВМ80 не умеет экономить. Это же не микроконтроллер. Ну может быть какие-нибудь еденицы процентов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот что точно неправильно, так это вешать такую массивную картину в начале темы. Можно было файл прикрепить. Я так и не дождался, пока она целиком вылезет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2) Использовать вывод INT, на который завести эту кнопку, и завести через резисторы 10кОм на D7-0 +5В. Когда процессор считает вектор прерывания, а это будет команда RST7, произойдет вызов прерывания и в нем я и обработаю нажатие. Причем после обработки сделаю так:

IE

HLT

Проще завести эту кнопку на РЕСЕТ. Тем более, что прерывания требуют ОЗУ. Которого у вас нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проще завести эту кнопку на РЕСЕТ. Тем более, что прерывания требуют ОЗУ. Которого у вас нет.
Прерывания прежде всего требуют контроллера прерываний 580ВН59, которого нет. А фиксировать нажатие кнопки лучше всего традиционным способом: по опросу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Контроллер прерывания необязателен. Просто все вектора надо забить одинаковым значением. Какой-нибудь да сработает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Контроллер прерывания необязателен. Просто все вектора надо забить одинаковым значением. Какой-нибудь да сработает.
Я извиняюсь за может быть провокационный или глупый вопрос: а вы случайно процессор К580ВМ80 не путаете с микроконтроллером AVR? Вы вообще знакомы с его архитектурой? А то, я что-то не пойму, про какие такие вектора прерываний в процессоре вы тут упоминаете? :cranky:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я припоминаю контроллер прерываний выставляет на шину данных адрес обработчика (или вектор). Или номер. Уже не помню.

Но то, что что-то высталяет на шину - точно помню. Если адрес - то тогда да, ничего не забъешь.

 

Вроде вспомнил. Он выставляет код CD (вызов подпрограммы CALL), а потом 2 байта адреса.

Значит, если резюками создать слабые подтяжки вверх и вниз, то можно симитировать обработчик прерывания по адресу CDCD. Вот так примерно.

Изменено пользователем DpInRock

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ВН 59 не обязательно нужен, можно просто завести на D7-0 единицу. Тогда при попытку считывания команды, будет считано FF, что являяется командой RST7, которая передаст управление на адресс 7*8.

Там я и размещу обработчик приема данных.

И еще вопрос. А что по приходу команды HLT, процессор отрубается в спящий режим. Так разве в этом режиме не будет экономия энергии, ну и просто мне кажется это лучше, чем если бы он постоянно проверял разряд порта?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы лучше программу попробуйте написать для начала без вызовов подпрограмм.

Сомнения сильные охватывают. Что удастся.

 

По поводу хальта - вам экономия не нужна.

По хальту можно сделать завершение алгоритма, по ресету (кнопка готовности) - начало. Заодно избавитесь от необходимости всякие дребезки убирать. Хотя их и не сильно нужно убирать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...