Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Правильно ли я сделал?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
na1s
Народ, вот есть такое задание на курсовой:
Цитата
Разработать устройство типа электронной «проходной». Ожидает, когда человек вставит индивидуальную карточку в приёмник и нажмёт кнопку «готов». На каждой индивидуальной карточке имеется матрица перфорированных отверстий 2*8. Устройство считывает байты с карточки и
передаёт по каналу ИРПС в асинхронном режиме на головную ЭВМ. Использовать ВМ80, ВВ55, ВВ51 и ВИ53

Обосрите плиз, скажите где неправильно, и как будет лучше.
Вот как сделано:
na1s
Ну, народ, нужны комментарии? Пожалуйста.
aaarrr
Пожалуйста: конденсаторы на +5 и -5 кверх ногами поставлены.
RAM в системе отсутствует - это так и задумано? RC цепочка на RESET слишком медленная.
na1s
Да рамы специально нет, в процессе работы память не нужна.

Еще ошибки?
uriy
Емкость на ГФ24 последовательно с кварцем, так и должно быть? Обычно кварц соединяется между выводами микросхемы и соединяются два кондера с этих выводов на землю.
rezident
Самого главного в схеме нет - источника питания wink.gif Если я еще правильно помню, то для КР580ВМ80 регламентируется порядок подачи напряжений питания. Сначала подается -5В, затем +5В и затем +12В. Сниматься напряжения должны в обратном порядке. И хотя +5В и +12В допускается снимать одновременно, но -5В обязательно в последнюю очередь.
И кстати, да, а чего это вы добавлением ОЗУ манкируете? Я в свое время писал тест для тестирования ПК Специалист с использованием одних лишь регистров 580-го. Но вам ведь не тест, а управляющую программу написать нужно. Так что без ОЗУ тут никак.
DpInRock
Без оперативной памяти невозможно будет использовать прерывания и вызов подпрограмм.

Впечатление, что на форум просочился на машине времени студент из 1985 года. Машину времени сделал, а вот курсач - никак не получается.
na1s
Цитата(rezident @ May 7 2008, 20:56) *
Самого главного в схеме нет - источника питания wink.gif Если я еще правильно помню, то для КР580ВМ80 регламентируется порядок подачи напряжений питания. Сначала подается -5В, затем +5В и затем +12В. Сниматься напряжения должны в обратном порядке. И хотя +5В и +12В допускается снимать одновременно, но -5В обязательно в последнюю очередь.
И кстати, да, а чего это вы добавлением ОЗУ манкируете? Я в свое время писал тест для тестирования ПК Специалист с использованием одних лишь регистров 580-го. Но вам ведь не тест, а управляющую программу написать нужно. Так что без ОЗУ тут никак.

Просто программа будет без вызовов процедур.
А насчет питания, как можно решить данную проблему?
sahka
собственно, если Вы думаете, что в наших технических ВУЗах что-то кардинально поменялось в плане оборудывания за последние 10 лет, то вы ошибаетесь =)
na1s
Цитата(uriy @ May 7 2008, 20:22) *
Емкость на ГФ24 последовательно с кварцем, так и должно быть? Обычно кварц соединяется между выводами микросхемы и соединяются два кондера с этих выводов на землю.

В книге Микропроцессорные системы Щелкунова Дианова это выглядит так:
SSerge
Помнится, сигналы Ф1 и Ф2 у ГФ24 были 12-вольтовые, так что подавать Ф2 на вход инвертора не есть правильно. Для такого случая у ГФ24 есть специальный выход синфазный с Ф2, но с TTL уровнями.
cioma
офф..
а кафедра ЭВМ какого универа? А то тут ностальгией повеяло smile.gif
na1s
Цитата(cioma @ May 7 2008, 21:47) *
офф..
а кафедра ЭВМ какого универа? А то тут ностальгией повеяло smile.gif

На Урале
DpInRock
Я бы предложил сделать на комплекте 1804.
Преимущества:
1. Микросхем намного больше.
2. Уровень программирования - на шаг ниже - микропрограммирование.
3. Потребление гораздо выше
4. Бстродейтсвие в 5 раз выше.
haker_fox
А может быть применить микроконтроллер (МК)? Я сильнро сомневаюсь, что разработанную схему на микропроцессорном комплекте кто-то будет собирать, а тем более отлаживать и тд. А вот собрать ее на МК и отладить на один - два порядка проще. И появляется очень огромный плюс - наглядность!
DASM
Цитата(haker_fox @ May 8 2008, 05:33) *
А может быть применить микроконтроллер (МК)? Я сильнро сомневаюсь, что разработанную схему на микропроцессорном комплекте кто-то будет собирать, а тем более отлаживать и тд. А вот собрать ее на МК и отладить на один - два порядка проще. И появляется очень огромный плюс - наглядность!

Курсовые не для этого пишутся, БП на транзисторах тоже рассчитывал, когда LM317 уже повсюду валялась.
na1s
И вот еще одна идея.
Как лучше сделать обработку кнопки "Готов"?
1) Использование 1 режима, т.е. когда сигналы С2 и С4 - стробы.
1) Вместо использования портов C2 и С4, можно использовать кнопку на любой разряд порта С, но в режиме 0, т.е. просто проверять значение разряда.
2) Использовать вывод INT, на который завести эту кнопку, и завести через резисторы 10кОм на D7-0 +5В. Когда процессор считает вектор прерывания, а это будет команда RST7, произойдет вызов прерывания и в нем я и обработаю нажатие. Причем после обработки сделаю так:
IE
HLT
Т.е. приостанавлю работу процессора пока снова не придет сигнал нажатия кнопки. Т.е. буду экономить энергию:-) Чем я бы я в цикле проверял значение порта С.
Так какой вариант лучше? Мне стал сейчас нравиться 3. Но может в нем есть какие-то ошибки, которые я не увидел?
GetSmart
Цитата(na1s @ May 15 2008, 17:51) *
2) Использовать вывод INT, на который завести эту кнопку, и завести через резисторы 10кОм на D7-0 +5В. Когда процессор считает вектор прерывания, а это будет команда RST7, произойдет вызов прерывания и в нем я и обработаю нажатие. Причем после обработки сделаю так:
IE
HLT
Т.е. приостанавлю работу процессора пока снова не придет сигнал нажатия кнопки. Т.е. буду экономить энергию:-) Чем я бы я в цикле проверял значение порта С.
Так какой вариант лучше? Мне стал сейчас нравиться 3. Но может в нем есть какие-то ошибки, которые я не увидел?
На общую шину данных никаких кнопок и резисторов цеплять недопустимо. Тем более она уже перегружена. Кажется ВВ55 умел вызывать прерывание при активности на каком-то порте.

ЗЫ. Энергию ВМ80 не умеет экономить. Это же не микроконтроллер. Ну может быть какие-нибудь еденицы процентов.
MrYuran
вот что точно неправильно, так это вешать такую массивную картину в начале темы. Можно было файл прикрепить. Я так и не дождался, пока она целиком вылезет.
DpInRock
Цитата(na1s @ May 15 2008, 15:51) *
2) Использовать вывод INT, на который завести эту кнопку, и завести через резисторы 10кОм на D7-0 +5В. Когда процессор считает вектор прерывания, а это будет команда RST7, произойдет вызов прерывания и в нем я и обработаю нажатие. Причем после обработки сделаю так:
IE
HLT

Проще завести эту кнопку на РЕСЕТ. Тем более, что прерывания требуют ОЗУ. Которого у вас нет.
rezident
Цитата(DpInRock @ May 15 2008, 18:21) *
Проще завести эту кнопку на РЕСЕТ. Тем более, что прерывания требуют ОЗУ. Которого у вас нет.
Прерывания прежде всего требуют контроллера прерываний 580ВН59, которого нет. А фиксировать нажатие кнопки лучше всего традиционным способом: по опросу.
DpInRock
Контроллер прерывания необязателен. Просто все вектора надо забить одинаковым значением. Какой-нибудь да сработает.
rezident
Цитата(DpInRock @ May 15 2008, 21:11) *
Контроллер прерывания необязателен. Просто все вектора надо забить одинаковым значением. Какой-нибудь да сработает.
Я извиняюсь за может быть провокационный или глупый вопрос: а вы случайно процессор К580ВМ80 не путаете с микроконтроллером AVR? Вы вообще знакомы с его архитектурой? А то, я что-то не пойму, про какие такие вектора прерываний в процессоре вы тут упоминаете? cranky.gif
DpInRock
Насколько я припоминаю контроллер прерываний выставляет на шину данных адрес обработчика (или вектор). Или номер. Уже не помню.
Но то, что что-то высталяет на шину - точно помню. Если адрес - то тогда да, ничего не забъешь.

Вроде вспомнил. Он выставляет код CD (вызов подпрограммы CALL), а потом 2 байта адреса.
Значит, если резюками создать слабые подтяжки вверх и вниз, то можно симитировать обработчик прерывания по адресу CDCD. Вот так примерно.
na1s
ВН 59 не обязательно нужен, можно просто завести на D7-0 единицу. Тогда при попытку считывания команды, будет считано FF, что являяется командой RST7, которая передаст управление на адресс 7*8.
Там я и размещу обработчик приема данных.
И еще вопрос. А что по приходу команды HLT, процессор отрубается в спящий режим. Так разве в этом режиме не будет экономия энергии, ну и просто мне кажется это лучше, чем если бы он постоянно проверял разряд порта?
DpInRock
Вы лучше программу попробуйте написать для начала без вызовов подпрограмм.
Сомнения сильные охватывают. Что удастся.

По поводу хальта - вам экономия не нужна.
По хальту можно сделать завершение алгоритма, по ресету (кнопка готовности) - начало. Заодно избавитесь от необходимости всякие дребезки убирать. Хотя их и не сильно нужно убирать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.