![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 12.03.2012
Сообщений: 3
|
![]()
Добрый день (вечер) уважаемые программисты! Необходимо написать программу для микроконтроллера Atmega32. Датащит данного МК с асмом здесь: Atmega 32
Теперь условие задачи: Начну с особенностей: нельзя использовать выводы RXD, RXT. (14,15 pin), используется резонатор с частотой 8 МГц. Имеется 5 кнопок, висят на выводах (можете располагать как Вам удобно), что должны делать опишу далее. 5 семисегментных индикаторов, точка не используется, все они подключены сегментами на порт А (А0..А6), индикация динамическая, с другого порта 5 ножек используется для переключения индикаторов, частота смены не менее 250Гц, не более 500Гц, такое переключение позволяет передавать данные через один порт на все индикаторы, меняя только знакоместо. По типу: Индикация в динамике, только в данном случае - пять знакомест, 2 вместе и 3 соответственно, управляются через транзисторы, строб по катодам, поджиг сегмента "1" на порту. Теперь непосредственно о программе: Программа запускается при подаче питания на МК, не по прерыванию. С клавиатуры (две пары кнопок играют роль "+" и "-", то есть увеличение и уменьшение) устанавливается частота (период) импульсов на выходе микроконтроллера, скважность импульсов при этом равна 2, то есть длительность паузы соответствует длительности импульса, например частота 1Гц, тогда 0.5 сек - пауза, 0.5 сек- импульс, частота импульсов устанавливается с шагом в 1, дольше держим кнопку, идет ускоренное увеличение частоты, но такое чтобы можно было успеть отпустить по достижении нужной (например 25, 48...). Первые две кнопки и "двойной" семисегментный индикатор - одна часть программы, работающей параллельно со второй частью. Выдаются импульсы на порт (выбираем какой удобнее) с устанавливаемой с кнопок частотой (РАЗ В МИНУТУ!, не Герцы!!!) и одновременно идем отображение данной частоты на сдвоенный индикатор, в десятичной системе от 0 до 99. Вторая часть программы делает тоже самое, параллельно с первой но частота изменяется от 0 до 250 раз в минуту (десятичная система) и значение выдается на строенный индикатор. С приходом прерывания, используется пятая кнопка и INT0 или INT1 (по желанию) программа "от 0 до 250" заменяется подпрограммой, которая из 10 ячеек памяти с интервалом в 5 секунд перебирает значения (48, 72, 56, 44 ,89, 125, 65, 57, 77, 50 десятичные) и с заданной частотой (раз в минуту), выдает импульсы на тот же вход куда ранее подавались от "0 до 250", на экране отображается выдаваемое значение, регулировать данные значения не нужно, по нажатию той же кнопки вызова подпрограммы, возвращается исходная "от 0 до 250". Итого: Задаем частоту на обоих выходах и одновременно отображаем на экранах LED сегментников в десятичном коде ,не в хексе, и соответственно одновременно получаем импульсы на двух портах задаваемой частоты, менять которую можно в любой момент, опрос клавиатуры идет непрерывно, либо на втором используем генератор случайных чисел из ячеек памяти по прерыванию, и опять же осуществляем вывод и отображение, либо возвращаемся обратно к регулируемой частоте. Для того чтобы было понятнее прикрепляю рисунок интерфейса ввода - вывода, и алгоритм программы (нарисован символично). В виде архива, файл visio. За написанную ,проверенную и правильно работающую программу будет вознаграждение, также это будет доказательством способностей программиста и в дальнейшем - прием на высокооплачиваемую постоянную работу. P.S: Дополнительные вопросы о ньюансах работы программы задавайте в теме, буду отвечать по возможности. |
![]() |
![]() |
![]() |
#2 |
Регистрация: 12.03.2012
Сообщений: 3
|
![]()
Сообщение для подъема темы...
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]()
Что-то мне подсказывает, что в данном разделе тема будет более уместна:
http://programmersforum.ru/forumdisplay.php?f=29
Правильно поставленная задача - три четверти решения.
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 12.03.2012
Сообщений: 3
|
![]()
Спасибо за подсказку.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Необходимо написать программу | tessera | Фриланс | 6 | 10.11.2011 23:11 |
Необходимо написать программу | Pavel_work_cool | Фриланс | 15 | 27.06.2011 20:01 |
Необходимо написать программу | hiphone | Фриланс | 3 | 17.06.2011 06:16 |
Необходимо написать программу за $$$ | kkkron | Фриланс | 3 | 15.03.2009 13:22 |