Jump to content

    
Sign in to follow this  
na1s

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

Recommended Posts

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

IE

HLT

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

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

Share this post


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

IE

HLT

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

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

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


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

IE

HLT

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

Share this post


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

Share this post


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

Share this post


Link to post
Share on other sites

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

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

 

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

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

Edited by DpInRock

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this