Полная версия этой страницы:
Правильно ли я сделал?
Народ, вот есть такое задание на курсовой:
Цитата
Разработать устройство типа электронной «проходной». Ожидает, когда человек вставит индивидуальную карточку в приёмник и нажмёт кнопку «готов». На каждой индивидуальной карточке имеется матрица перфорированных отверстий 2*8. Устройство считывает байты с карточки и
передаёт по каналу ИРПС в асинхронном режиме на головную ЭВМ. Использовать ВМ80, ВВ55, ВВ51 и ВИ53
Обосрите плиз, скажите где неправильно, и как будет лучше.
Вот как сделано:
Ну, народ, нужны комментарии? Пожалуйста.
Пожалуйста: конденсаторы на +5 и -5 кверх ногами поставлены.
RAM в системе отсутствует - это так и задумано? RC цепочка на RESET слишком медленная.
Да рамы специально нет, в процессе работы память не нужна.
Еще ошибки?
Емкость на ГФ24 последовательно с кварцем, так и должно быть? Обычно кварц соединяется между выводами микросхемы и соединяются два кондера с этих выводов на землю.
rezident
May 7 2008, 17:56
Самого главного в схеме нет - источника питания

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

Самого главного в схеме нет - источника питания

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

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

офф..
а кафедра ЭВМ какого универа? А то тут ностальгией повеяло

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

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

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

2) Использовать вывод INT, на который завести эту кнопку, и завести через резисторы 10кОм на D7-0 +5В. Когда процессор считает вектор прерывания, а это будет команда RST7, произойдет вызов прерывания и в нем я и обработаю нажатие. Причем после обработки сделаю так:
IE
HLT
Проще завести эту кнопку на РЕСЕТ. Тем более, что прерывания требуют ОЗУ. Которого у вас нет.
rezident
May 15 2008, 13:53
Цитата(DpInRock @ May 15 2008, 18:21)

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

Контроллер прерывания необязателен. Просто все вектора надо забить одинаковым значением. Какой-нибудь да сработает.
Я извиняюсь за может быть провокационный или глупый вопрос: а вы случайно
процессор К580ВМ80 не путаете с
микроконтроллером AVR? Вы вообще знакомы с его архитектурой? А то, я что-то не пойму, про какие такие вектора прерываний в процессоре вы тут упоминаете?
DpInRock
May 15 2008, 15:59
Насколько я припоминаю контроллер прерываний выставляет на шину данных адрес обработчика (или вектор). Или номер. Уже не помню.
Но то, что что-то высталяет на шину - точно помню. Если адрес - то тогда да, ничего не забъешь.
Вроде вспомнил. Он выставляет код CD (вызов подпрограммы CALL), а потом 2 байта адреса.
Значит, если резюками создать слабые подтяжки вверх и вниз, то можно симитировать обработчик прерывания по адресу CDCD. Вот так примерно.
ВН 59 не обязательно нужен, можно просто завести на D7-0 единицу. Тогда при попытку считывания команды, будет считано FF, что являяется командой RST7, которая передаст управление на адресс 7*8.
Там я и размещу обработчик приема данных.
И еще вопрос. А что по приходу команды HLT, процессор отрубается в спящий режим. Так разве в этом режиме не будет экономия энергии, ну и просто мне кажется это лучше, чем если бы он постоянно проверял разряд порта?
DpInRock
May 15 2008, 16:40
Вы лучше программу попробуйте написать для начала без вызовов подпрограмм.
Сомнения сильные охватывают. Что удастся.
По поводу хальта - вам экономия не нужна.
По хальту можно сделать завершение алгоритма, по ресету (кнопка готовности) - начало. Заодно избавитесь от необходимости всякие дребезки убирать. Хотя их и не сильно нужно убирать.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.