Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Э-э, дружок, как все запущено-то... К решению задачи надо приступать, изучив хотя бы азы ее компонентов - что же ты на занятиях тогда делал?

Отправлено =AVR= 14 апреля 2007 г. 22:37
В ответ на: Продолжение учебной задачки отправлено pio 14 апреля 2007 г. 21:26

Ноги порта А читаются командой in - например, in r16,PINA. С содержимым регистров (которых в АВР 32 штуки - r0..r31) можно производить арифметические и логические операции - сложение, вычитание, сравнение, логические "И", "ИЛИ", "исключающее ИЛИ", сдвиг влево-вправо, копирование в другой регистр/память/порт и т.д. Арифметические и логические операциии можно проводить с другим регистром - add r0,r1, с числом (константой) - subi r16,179, или с самим регистром - clr r0, lsl r0.

Пересылки данных можно проводить между двумя регистрами, между регистром и памятью, между регистром и портом. Память в АВР трех совершенно разных типов - память данных (RAM), энергонезависимая память программ (Flash), энергонезависимая память данных (EEPROM). Портами ввода/вывода принято называть не только сами внешние порты A/B/C/D, но и разнообразные внутренние ресурсы - таймеры, коммуникационные интерфейсы, АЦП, и вспомогательные порты, нужные для управления всем этим внутренним хозяйством. Тебе нужно как следует познакомиться как с архитектурой АВР, так и с его системой команд и ассемблером - считай, что это даже не язык, а алфавит, без которого ты просто как без глаз, ног и рук.

У семисегментных индикаторов минимум 8 выводов - там минимум 7 светодиодов. Восьмой вывод - общая точка соединения вторых выводов светодиодов, в твоем случае она подключается к "-" питания (к "земле"). Сегменты обычно для удобства именуются буквами A..G, например, так:


- F -
| |
E A
| |
- G -
| |
D B
| |
- C -

Знаки "рисуются" таким же способом, как почтовый индекс на конвертах. Чтобы получить "1", нужно зажечь A и B, "3" - F,A,G,B,C. Между каждой ножкой порта (или твоего демультиплексора) и каждым соответствующим сегментом индикатора нужно включить токоограничивающий резистор, чтобы не сжечь ни выход, ни индикатор. Для 5-вольтового питания и сегментного тока в 20 мА (достаточно яркое свечение и гарантированное соблюдение максимально допустимого тока ноги порта) его номинал должен составлять порядка 150..200 Ом. Соответственно, подключив индикатор к порту В, как описано выше (сегмент A к PB0, B к PB1, C к PB2 и т.д.), зажечь цифру "3" можно следующими командами:


ldi r16,0b01100111 ; Загрузка в r16 константы, соответствующей семисегментному коду цифры "3"
out PORTB,r16 ; Вывод этого кода в PORTB (1 = сегмент горит )

Советую как следует проштудировать русскоязычные материалы по АВР на сайтах gaw.ru и atmel.ru

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 69:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru