Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2012, 22:52   #1
shadow71769
 
Регистрация: 12.03.2012
Сообщений: 3
Восклицание Необходимо написать программу! (ASM)

Добрый день (вечер) уважаемые программисты! Необходимо написать программу для микроконтроллера 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: Дополнительные вопросы о ньюансах работы программы задавайте в теме, буду отвечать по возможности.
Вложения
Тип файла: zip прибор.zip (44.6 Кб, 7 просмотров)
shadow71769 вне форума Ответить с цитированием
Старый 13.03.2012, 01:39   #2
shadow71769
 
Регистрация: 12.03.2012
Сообщений: 3
По умолчанию

Сообщение для подъема темы...
shadow71769 вне форума Ответить с цитированием
Старый 13.03.2012, 08:08   #3
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

Что-то мне подсказывает, что в данном разделе тема будет более уместна:
http://programmersforum.ru/forumdisplay.php?f=29
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 13.03.2012, 11:20   #4
shadow71769
 
Регистрация: 12.03.2012
Сообщений: 3
По умолчанию

Спасибо за подсказку.
shadow71769 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо написать программу 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