Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 15

Включение индикатора по нажатию кнопок

21.06.2014, 00:59. Показов 2164. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В соответствии с вариантом при нажатии одной из кнопок S1-S3 включить индикатор HL1-HL3, при отпускании кнопки индикатор должен гаснуть.
Нужно S1 и HL1.

Не по теме:

Вторая задача по той же теме (чтобы не плодить темы, да простят меня админы): В соответствии с вариантом при нажатии Кнопки 1 включить Индикатор, при нажатии Кнопки 2 выключить Индикатор.
Кнопки S1, S1 и Подсветка ЖКИ.

И третья: Написать программу «бегущего огня» для HL1-HL3 с заданным преподавателем периодом.



Информация, которая прилагалсь с заданием:
Для организации ввода-вывода информации в микроконтроллере ATMega32 используются 4 восьмиразрядных порта ввода-вывода: Порт А, Порт В, Порт С и Порт D.
Все линии портов ввода/вывода могут работать как на ввод информации, так и на ее вывод независимо друг от друга. Максимальная нагрузочная способность одного вывода порта составляет 20 мА независимо от направления тока (втекает ток либо вытекает). В то же время суммарный ток одного порта не должен превышать 100 мА, суммарный ток всех четырех портов микросхемы не должен превышать 200 мА.
Для программного управления портами с каждым из них связано 3 регистра: PORTx, DDRx, PINx (где х={A,B,C,D}). С регистрами PORTx, DDRx можно выполнять операции чтения/записи, регистр PINx доступен только для чтения.
Регистр DDRx служит для выбора режима ввода либо вывода информации. Первоначально во все разряды порта записаны нули, в результате чего порт настроен на ввод и находится в высокоимпедансном состоянии. Для перевода какого-либо разряда порта на вывод необходимо записать в этот разряд 1.
Пример 1:
// переведем порт С в режим вывода информации
ldi r16,255 ; r16←0b11111111
out DDRC,r16 ;DDRC←0b11111111

Пример 2:
// переведем разряд порта PС3 в режим вывода информации
sbi DDRC,3

Для вывода информации необходимо записать соответствующее значение в регистр PORTx.

Пример 3:
// Выведем значение 20 в порт С
ldi r16,20 ; r16←20
out PORTC,r16

При этом сначала информация записывается в регистр PORTx (что требует одного машинного такта), затем поступает на вывод микросхемы (еще через один такт).
Запись единицы в разряд n регистра PORTx при нулевом значении бита n в регистре DDRx (порт настроен на ввод) включает встроенный резистор («подтяжку») номиналом 50кОм между плюсом питания и соответствующим выводом микросхемы, что позволяет достаточно просто использовать внешние кнопки; именно так подключены S1-S3 на лабораторном макете. При разомкнутом выключателе на выводе порта присутствует логическая единица, при замкнутом – логический ноль.
Пример 4:
// Включим «подтяжку» для разряда PC3 порта С
cbi DDRC,3 ; PС3 – в режим ввода
sbi PORTC,3 ; «подтяжка» для РС3

Для ввода информации через порт необходимо считать значение регистра PINx, отражающего состояние сигналов на выходах микросхемы.
ВНИМАНИЕ! Использование для чтения информации регистра PORTx даст записанное в него ранее значение, но не значение, присутствующее на выводе микросхемы! ИСПОЛЬЗУЙТЕ РЕГИСТР PINx!

Пример 5:
// Прочитаем значение бита 3 порта С
in r16,PORTC ; r16 ←POPTС
andi r16,0b00001000 ; выделяем третий бит с помощью маски
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.06.2014, 00:59
Ответы с готовыми решениями:

Последовательное включение сегментов 7-с индикатора ATmega8515
Здравствуйте, Возможно ли последовательно переключать сегменты семисегментного индикатора так (допустим: 1, 2, 5, 6), чтобы казалось, что...

[Atmega32] Включить сегменты LED-индикатора в зависимости от состояния кнопок
К линии 0 и линии 1 Порта В микроконтроллера Присоедены кнопки (Нажатие приведёт к замыканию линии на 0). К Порту А подключина Панель LED....

По нажатию одной из кнопок переменная, выводимая на дисплей, увеличивается, по нажатию другой - уменьшается
Придумать программу которая будет решать следующую задачу: Подключить 2 кнопки. Написать программу, которая будет работать следующим...

4
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
21.06.2014, 13:09
Вопрос-то в чем? Вот я зажег у себя индикатор, погасил, вам легче стало?

1- где схема?
2- где наработки?
3- что конкретно не получается?

p.s.: и судя по прилагаемой информации методичка все таки имеется.
0
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 15
21.06.2014, 14:48  [ТС]
Методичка есть, но админы заблокировали тему, надуюсь в сообщении можно выкладывать файлы:
Вложения
Тип файла: doc LabRab3.doc (47.0 Кб, 20 просмотров)
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
21.06.2014, 16:29
Не по теме:
FedDia, Вы всерьёз думаете, что кто то Вашу методичку будет читать?

Выкладывайте нарисованную схему и программный код(пусть будет с ошибками за это ни кто критиковать не будет), тогда есть шанс получить ответ.
0
21.06.2014, 16:55

Не по теме:

...не могу назвать МУ то, что было в посту приложено.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.06.2014, 16:55
Помогаю со студенческими работами здесь

[PIC16F84A] По нажатию кнопки переключить состояние индикатора (горит – не горит)
Вообще ничего не понимаю в микроконтроллерах. В общем есть 2 задачи с PIC16F84A 1: Напишите программу, которая по нажатию кнопки...

Включение и остановка таймера по нажатию на button
Вообщем есть Button, надо что бы я нажал, запустился таймер, ещё раз нажал эту кнопку - остановился. Написал так: Но работать не хочет.....

Включение анимации и переход на другую сцену по нажатию DownArrow
Здравствуйте, я хотел сделать, чтобы по нажатию кнопки проигрывалась анимация, а потом перекидывало на другую сцену. Но у меня почему-то...

По нажатию кнопок рассчитать
Помогите пожалуйста. По нажатию кнопок рассчитать: общую сумму стипендий по заданной группе и среднемесячную стипендию этой группы....

Удаленное включение и перезагрузка PC замыканием Power/Reset кнопок микроконролером
Доброго времени суток. Хочу создать устройство, которое позволяет удаленно включать/перезагружать компьютер. Устройство должно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru