Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > помогите с автоматом


Автор: kuzyara 24.5.2009, 07:21
Добрый день! Я обычный студент технического вуза и понял, что электроника и схемотехника это жутко интересно, Но ... несмотря на то, что я более-менее разобрался с триггерами, транзисторами и основами электротехники, у меня возникают непреодолимые мной сложности и проблемы по переходу от абстрактного и структурного синтеза Автоматов к их плато-паяльниковой реализации. 
Поэтому я прошу Вас, кого-нибудь из гуру электроники, стать моим Наставником в этом непростом и увлекательном направлении современной науки, и предоставить мне возможность онлайн общаться с Мастером электроники посредством icq и подобных программ, дабы ниспослать мне, сыну юному, просвещение и благодать неземную. 

Посему... поскажите, как попроще реализовать в воркбенче или протеусе следующие элементы автомата(две кнопки, два таймера(мсек), кто быстрее нажмет, у того лампочка загорается):
  • генератор случайных чисел(от 1 до 9 сек) для немгновенного старта игры
  • вычитающий счетчик, который 1)это случайное число примет от ГСЧ 2) будет вычитать каждый такт 2)обнуляться при старте
  • счетчик с дешифратором на семисегментные цифровые диоды, который будет обуляться при старте, 2шт
зы:Кароче, дайте ктонить аску, а то мне нихрена не понятно, а курсач делать надо, а нубовские вопросы каждый раз постить на форум по-моему некомильфо.

Добавлено @ 07:33
№2
Задание:
Код

Играют два игрока. После запуска происходит выдержка времени (от 1 до 9 секунд), после чего загорается раздражитель (лампа). С момента загорания лампы отсчитывается время, до одной секунды, производится вывод времени на индикаторы, в миллисекундах. Если в течение секунды нажимается кнопка одного из игроков, на индикаторе остается время с момента загорания лампы до нажатия кнопки, время другого же идет, до тех пор, пока не будет нажата его кнопка. В случае одновременного нажатия обоих кнопок производится остановка времени обоих игроков. В момент нажатия кнопки игроком, оказавшимся первым, загорается лампа этого игрока. 
Перевод в начальное состояние и старт игры осуществляется кнопками  START и STOP.

Я вот тут начал кой-чего делать, с операционными автоматами разобрался, а вот как синхронизировать с таймером не знаю... и решил выпутаться так: разбил все на блоки(км1, км2, ...) км0-остановка), и пока счетчик команд не перейдет в следующее значение будет выполняться текущая команда, список условий и выходов таблице, выходы будут логическим элементом "И" соединены с генератором тактов 1кгц, чтоб выполнялись по такту.

http://ipicture.ru/Gallery/Viewfull/19348647.htmlhttp://ipicture.ru/Gallery/Viewfull/19348526.html
Разумно ли это? или можно сделать получше каким-нибудь другим способом?

Автор: I_Am_Rock 25.5.2009, 14:08
Цитата(kuzyara @  24.5.2009,  07:21 Найти цитируемый пост)
зы:Кароче, дайте ктонить аску, а то мне нихрена не понятно, а курсач делать надо, а нубовские вопросы каждый раз постить на форум по-моему некомильфо.

А начал так красиво... )

Автор: ManiaK 25.5.2009, 15:03
Цитата(kuzyara @  24.5.2009,  07:21 Найти цитируемый пост)
Поэтому я прошу Вас, кого-нибудь из гуру электроники, стать моим Наставником в этом непростом и увлекательном направлении современной науки

Желание заняться этим весьма похвальное, но, я думаю, у большинства "гуру электроники" не будет достаточного количества времени, чтобы обучать тебя smile  (но лучше, конечно, всё равно поискать - вдруг?..)

А вот книгами и литературой помочь можем.


Цитата(kuzyara @  24.5.2009,  07:21 Найти цитируемый пост)
генератор случайных чисел(от 1 до 9 сек) для немгновенного старта игры

Использовать какой-либо физический процесс для генерации случайных чисел довольно трудно (если только не существует какого-нибудь известного решения), поэтому "кости бросать" должен человек. Можно сделать приблизительно так.

Подключаешь к тактовому генератору 4-х разрядный счётчик. Старт игры нужно производить несколько позже пуска тактового генератора, лучше по нажатию кнопки. Тогда к моменту начала игры на счётчике будет 4-х разрядное число, предугадать которое человеку невозможно. В момент нажатия кнопки "Старт игры" выключаешь счёт на 4-х разрядном счётчике. От каждого бита счётчика - к комбинационной схеме (КС), которая сделает отоборажение вроде этого:

На входе | На выходе
0 | 1
1 | 2
2 | 3
3 | 4
4 | 5
5 | 6
6 | 7
7 | 8
8 | 9
9 | 1
10 | 3
11 | 5
13 | 7
15 | 9

На выходе этой КС  при нажатии кнопки "Старт игры" ты получишь число от 1 до 9. Вот тебе генератор случайных чисел. Занятие это очень интересное, поэтому лучше его сделать самостоятельно.

Как реализовать счётчик, составлять КС и пр. можно найти в интернете или достать какой-нибудь учебник. Если не сможешь ничего найти, я тебе подскажу (сходу не получится - не помню учебники, надо будет порыться в закромах родины).

Автор: kuzyara 27.5.2009, 14:19
я вот тут сделал два счетчика, регистров накопировал, дпсч к регистрам присобачил, осталось только соединить...
придумал сделать счетчик команд и пзу, которое по заданным условиям будет и СчетКоманд прибавлять и на другие выходы сигналы подавать.... вот только как пзу сделать не представляю...


но у я застопорился вот на чем: при подаче сигнала на триггеры ЗаписатьСлучЧисло, ВСЕ триггеры перебрасываются в единицу... (см аттач)наверно это потому что они срабатывают по переднему фронту... даже не знаю как быть.. попробовал регистр 4035 взять, и использовать как вычитающий счетчик, так протеус зараза виснет как только выход одного к входу другого подключаю... вот...

Автор: kuzyara 29.5.2009, 11:16
подскажите какую-нибудь среду эмулирования, типа протеуса, в которой есть микросхемы отечественного производства, в смысле такие, какие можно в магазине моего города купить... или библиотеки... 

Автор: gather 29.5.2009, 18:16
Цитата(kuzyara @  29.5.2009,  11:16 Найти цитируемый пост)
в смысле такие, какие можно в магазине моего города купить

А какие микросхемы можно купить в магазине вашего города?
В принципе, к любой нашей микросхеме можно подобрать зарубежный аналог, и эмулировать уже с аналогом.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)