Файл: Лабораторная работа 1 по курсу Микропроцессоры и микроконтроллеры Порты вводавывода.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 07.12.2023
Просмотров: 152
Скачиваний: 4
Входные буферы все выводов построены по схеме триггера Шмитта. Для всех входов имеется возможность подключения внутреннего подтягивающего резистора между входом и шиной питания VCC.Управление портами ввода-выводаОбращение к портам производится через регистры ввода-вывода. Под каждый порт в адресном пространстве ввода-вывода зарезервировано по три адреса, по которым размещены следующие регистры:– регистр данных порта PORTx;– регистр направления данных DDRx;– регистр выводов порта PINx.Действительные названия регистров получаются подстановкой порта вместо символов «x». Соответственно, регистры порта A называются PORTA, DDRA, PINA и так для остальных портов. Поскольку с помощью регистров PINx осуществляется доступ к физическим значениям сигналов на выводах порта, они доступны только для чтения, тогда как остальные два регистра доступны и для чтения, и для записи. Запись в регистры PINx не оказывает никакого эффекта. Каждому выводу порта соответствуют три бита регистров ввода-вывода: PORTxn (регистр PORTx), DDRxn (регистр DDRx) и PINxn (регистр PINx). Вместо символа «x» подставляется буква порядкового номера порта, например A, B и т.д., и вместо символа «n» – номер требующегося вывода порта (0, 1, …, и т.д.). Если разрядность порта меньше восьми, в регистрах порта используется соответствующее число младших битов. Незадействованные старшие биты регистров доступны только для чтения и всегда содержат нуль.Бит xn регистра DDRx определяет направление передачи данных через контакт ввода/вывода. Если этот бит установлени в состояние «лог. 1», то n-й вывод порта является выходом, если же сброшен в «лог. 0» - входом. Бит PORTxn регистра PORTx выполняет двойную функцию. Если вывод функционирует как выход (DDRxn = 1), то этот бит определяет состояние вывода порта. Если бит установлен в «лог. 1», на выводе устанавливается напряжение высокого уровня. Если бит сброшен в «лог. 0», на выводе устанавливается напряжение низкого уровня.Если же вывод функционирует как вход (DDRxn = 0), то бит PORTxn определяет состояние внутреннего подтягивающего резистора для данного вывода. При установке бита PORTxn в 1 подтягивающий резистор подключается между выводом микроконтроллера и линией питания.Задание «Огонь», появляющийся в начале работы программы в младшем разряде PORTA, проходит все его разряды, после чего проходит последовательно все разряды других портов,
возвращаясь в исходную позицию так, как показано на рисунке 1.1.
Рис 1.1. Иллюстрация к заданию
Алгоритм программы
Проверка кода в программе Proteus
Рисунок 1.2 Схема подключения в программе Proteus
И
сходный код программы
Вывод
При выполнение лабораторной работы мною были изучены:
– назначения и устройство портов ввода-вывода микроконтроллера AVR ATmega128;
– схемотехнические решения подключения к портам ввода-вывода кнопок и светодиодов;
– разработана первая программа «Бегущие огни».
- Представлена соответствующая программе блок-схема работы.
- Программа проверена в программном обеспечении Proteus.
- Программа проверена на лабораторном стенде на контроллере AVR ATMega128.