ЛАБОРАТОРНАЯ РАБОТА № 3 ВВОД/ВЫВОД ИНФОРМАЦИИ ИЗ МИКРОКОНТРОЛЛЕРА | |
Автор: drug | Категория: Технические науки / Информатика | Просмотров: | Комментирии: 0 | 21-07-2013 15:39 |
ЛАБОРАТОРНАЯ РАБОТА № 3
ВВОД/ВЫВОД ИНФОРМАЦИИ ИЗ МИКРОКОНТРОЛЛЕРА
Для организации ввода-вывода информации в микроконтроллере 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 ; выделяем третий бит с помощью маски
Задания на лабораторную работу
1. В соответствии с вариантом при нажатии одной из кнопок S1-S3 включить индикатор HL1-HL3, при отпускании кнопки индикатор должен гаснуть.
Вариант |
Кнопка |
Индикатор |
1 |
S1 |
HL1 |
2 |
S1 |
HL2 |
3 |
S1 |
HL3 |
4 |
S2 |
HL1 |
5 |
S2 |
HL2 |
6 |
S2 |
HL3 |
7 |
S3 |
HL1 |
8 |
S3 |
HL2 |
2. В соответствии с вариантом при нажатии Кнопки 1 включить Индикатор, при нажатии Кнопки 2 выключить Индикатор.
Вариант |
Кнопка 1 |
Кнопка 2 |
Индикатор |
1 |
S1 |
S2 |
Подсветка ЖКИ |
2 |
S1 |
S2 |
HL1 |
3 |
S1 |
S3 |
HL2 |
4 |
S1 |
S3 |
HL3 |
5 |
S2 |
S1 |
Подсветка ЖКИ |
6 |
S2 |
S1 |
HL1 |
7 |
S2 |
S3 |
HL2 |
8 |
S2 |
S3 |
HL3 |
3. Написать программу «бегущего огня» для HL1-HL3 с заданным преподавателем периодом.
- Что входит в раздел Sinks?
- Лабораторная работа №1 по дисциплине «Технологии и методы программирования» на тему: Алгоритмы.
- Перечень вопросов для зачета Информационная безопасность
- Вопросы к экзамену по дисциплине “Технология физического уровня передачи данных ” для специальности 230111 Компьютерные сети.
- Вопросы и задания к Лекции 4