ATon 0 10 апреля, 2005 Опубликовано 10 апреля, 2005 · Жалоба Здраствуйте, посоветуйте, пожалуйста. Надо разработать на основе микроконтроллера AT89C51 10-канальную систему контроля длины заготовки. Должна рассчитываться длина заготовпи при движении по конвееру, считается что скорость движения задана,т.е. считать нужно время, сигналы "начала" и "конца" заготовки поступают с фотодатчиков конвеера. Каким образом можно обрабатывать 10 каналов сразу, можно ли обойтись как-нибудь 1 микропроцессором? Если можно, то каим образом? Подскажите, если есть какие-нибудь идеи. Сам я думаю про подключение внешних таймеров, но какие нужны, и какие они вобще бывают не знаю. P.S.: Если эта тема больше подходит к форуму по микросхемам, то переместите ее пожалуйста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
m16 0 10 апреля, 2005 Опубликовано 10 апреля, 2005 · Жалоба датчик - схема генерирующая одиночный имульс по фронту и спаду - триггер - сигналы от триггеров объединяем схемой И и заводим на внешнее прерывание проца , сигналы от датчиков заводим на 10 портов настроенных на ввод -10 портов настроенных на вывод на сбросы триггеров . запускаем таймер на непрерывный счет. алгоритм - от датчика Н приходит сигнал начало загот. - устаналиваеся триггер Н - прерывание - считываем таймер на лету - опрашиваем порты - определяем номер датчика изменивший свое состояние (с 0 на 1 или с 1 на 0) в первом случае записываем в ячейку Нначало во втором Нконец . сбрасываем триггер вызвавший прерыв. разрешаем прерывание. между прерываниями занимаемся подсчетом длины заготовки. удачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ATon 0 10 апреля, 2005 Опубликовано 10 апреля, 2005 (изменено) · Жалоба Спасибо! Лед тронулся )) Еще к системе требуется подключить клавиатуру (10 каналов - "Пуск","Останов") и светодиоды состояния конвеера (тоже соответственно работает, не работает, т.е. нажата соответствующая кнопка или нет). Как вы думаете, лучше использовать контроллер клавиатуры и дисплея (i8279) или просто подключить 14 портов? Еще нужно подключить внешнюю память программ (т.е. порты P2 и Р0 получаются заняты). Главный вопрос такой: если подключить к Р0 и Р2 внешнюю память, можно ли использовать эти порты еще как-нибудь (контроллер клавиатуры работает, например, с ними же)? Изменено 10 апреля, 2005 пользователем ATon Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexandr 0 10 апреля, 2005 Опубликовано 10 апреля, 2005 · Жалоба Если вы используете внешнюю память программ, то порты P0 и P2 по другому назначению использовать не получится. Соответственно для подключения клавиатуры, светодиодов и датчиков у Вас портов не хватит => без внешнего оборудования не обойтись. Советую ставить два контроллера - один отвечает за интерфейс с пользователем, другой за обработку. И Вам будет проще и система станет легко масштабируемой. Есть еще вариант - помоему у Philips были 51-ые с большим количеством портов. Кстати, а почему вопрос про AT89C51 задается в разделе про AVR-ы ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nameless 0 11 апреля, 2005 Опубликовано 11 апреля, 2005 · Жалоба Здраствуйте, посоветуйте, пожалуйста. Надо разработать на основе микроконтроллера AT89C51 10-канальную систему контроля длины заготовки. Должна рассчитываться длина заготовпи при движении по конвееру, считается что скорость движения задана,т.е. считать нужно время, сигналы "начала" и "конца" заготовки поступают с фотодатчиков конвеера. Каким образом можно обрабатывать 10 каналов сразу, можно ли обойтись как-нибудь 1 микропроцессором? Если можно, то каим образом? Подскажите, если есть какие-нибудь идеи. Сам я думаю про подключение внешних таймеров, но какие нужны, и какие они вобще бывают не знаю. P.S.: Если эта тема больше подходит к форуму по микросхемам, то переместите ее пожалуйста. <{POST_SNAPBACK}> Берем два мультиплексора - один обьединяет датчики (1-ползет заготовка; 0 - нет заготовки) другой - клавиши. Единым циклом перебираем входы мультиплексоров (4 линии) и по двум линиям принимаем решение о начале/конче заготовки и о нажатии той или иной клавиши (+2 линии). Все остальные линии - на индикатор. Если удается сделать "ровный" цикл опроса (!!!)- то ошибка измерения длины становится предсказуемой (=1 период сканирования * const скорость ковеера)... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
m16 0 11 апреля, 2005 Опубликовано 11 апреля, 2005 · Жалоба расширить порты вввода-вывода очень просто ---- через адреса внешней памяти . навешать можно сколько угодно. и если производительность проца устраивает то нет необходимости использовать другой с большим количеством портов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Alexandr 0 11 апреля, 2005 Опубликовано 11 апреля, 2005 · Жалоба Теоретически конечно можно подцепить еще что-то на внешнюю шину адреса, но при этом все равно придется ставить нечто вроде дешифатора адреса, который выбирал бы с каким устройством работаем. Придется ограничить размер кода во внешней памяти и как было сказано - уменьшится производительность. Плюс придется учесть такой аспект как согласование по импедансу (несколько нагрузок на шине хуже чем одна). Поэтому в данном случае, когда необходимо подключить клаву, сведиоды и датчики - такой вариант не самый удачный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 11 апреля, 2005 Опубликовано 11 апреля, 2005 · Жалоба Клавиатура укладывается в матрицу 3х4, а индикацию можно на регистр с последовательным входом положить. Итого 3+4+2=9 пин получается. А порт только один свободный как я понимаю? Хотя для контроллера с внешней шиной, экономить пины и использовать регистры с последовательным входом не имеет смысла наверное. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
veter 0 11 апреля, 2005 Опубликовано 11 апреля, 2005 · Жалоба а я встречал схему расширения портов на плисине, очень удобно. там можно и дешифраторы и мультиплексоры и тп и тд реализовывать. вдобавок: та ПЛИС использовалась как расширитель портов и подключались сразу и жки и сди и клава и много чего ещё, а обращение к внешним устройствам как к памяти. по моему быстро, дешиво и сердито :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Joker 0 11 апреля, 2005 Опубликовано 11 апреля, 2005 · Жалоба Да, действительно это не AVR, извиняюсь :unsure: <{POST_SNAPBACK}> Можно использовать AVR с большим кол-вом портов либо легко на PICе скажем 18LF452 или чем-то подобном Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrey_Sudnov 0 12 апреля, 2005 Опубликовано 12 апреля, 2005 · Жалоба а я встречал схему расширения портов на плисине, очень удобно. там можно и дешифраторы и мультиплексоры и тп и тд реализовывать. вдобавок: та ПЛИС использовалась как расширитель портов и подключались сразу и жки и сди и клава и много чего ещё, а обращение к внешним устройствам как к памяти. по моему быстро, дешиво и сердито :) <{POST_SNAPBACK}> Да уж сразу использовать ПЛИС, организовать в ней автомат и выполнять на нем всю работу. А про этого чудо зверя под названием семейство MSC51 советую забыть как про страшный сон. Настоятельно рекомендую перейти на AVR, еще лучше на ARM (например Phillips). Стоят даже дешевле сейчас, работают быстрее, потребляют меньше, и самое главное, если вы знакомы с С и имеете понятие о машинном коде, разработка будет проходить гораздо быстрее. Да, а если это у вас проект по учебе, уговорите преподавателя, что хотите отказаться от применения микроконтроллеров позапрошлого века и применить нармальный чип. Ну я понимаю, когда используют это по инерции, но когда их закладывают в новые устройства, к тому же технологические! А если вам захочется потом соединить 10 цехов таких, причем один находится на другом конце города? Или еще что-нибудь взбредет в голову начальству? Я все это говорю из личного опыта, когда мяня заставили применить AT89C51 как ядро системы телекомуникаций, типа там всего лишь 4 кнопки и светодиод будет, будешь при аварии его зажигать, ага. А потом им захотелось маршрутизатор делать на базе этого устройства, когда несколько сотен их уже стояло у заказчика. Видал я такое начальство подальше. Best regards, Andrey. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ATon 0 23 апреля, 2005 Опубликовано 23 апреля, 2005 · Жалоба Да, проект что ни на есть учебный. учат меня ,а я учусь. Менять МК не хочу, потому что в нем я хоть чуть чуть разбираюсь, а потом мне кажется, что ограниченность ресурсов - не всегда большой минус, а повод для размышления, как с этим справится. Хотелось бы сделать все на ПЛИСЕ, но времени разбираться опять мало, если потом буду делать что-нибудь реальное, обязательно приму к сведению, все что вы мне посоветовали. К стати спасибо, за то что откликнулись (Форум мне этот очень нравится ;) ) Вот а пока я тут разбираюсь у меня возник вопрос: Если расширять порты ввода/вывода с помощью регистров (ну допустим мы их сделали на ПЛИСЕ), то какие они должны быть с тремя состояниями? И подключать их к выводам порта монтажным или? Я имею ввиду если к этому регистру обращаться как к внешней памяти данных... Сначала выбираем этот регистр (chip select или что там?) - на порте P0 адрес в 1м такте, потом во 2 такте с регистра поступают данные опять же в порт P0 (это логика работы с внешней памятью - считывание данных). Вот, что делать-то :unsure: регистр с 3 состояниями и монтажное или? А если работаем на вывод? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 23 апреля, 2005 Опубликовано 23 апреля, 2005 · Жалоба Те регистры, которые работают на вывод и будут работать на P0, должны быть с третьим состоянием. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться