КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Подключение индикаторов к контроллеру
На рисунке 3.2 изображено подключение двух 3-разрядных индикаторов, как это выполнено в микроконтроллере МК-2.
Рисунок 3.2 – Подключение двух трехразрядных семисегментных индикаторов и светодиода HL1 для индикации знака “–”
Выводы управления сегментами индикаторов объединены и подключены к порту D контроллера через токоограничивающие резисторы R10-R17 с величиной сопротивления 330 Ом. При выводе логической 1 в младший разряд порта D на 14-м выводе контроллера появится напряжение 5 В, которое через резистор R10 попадет на сегменты H всех 6 цифр обеих индикаторов. Программно это выполняется так: PORTD = 1; Для выбора цифры, на какой будет подсвечен сегмент H, катоды цифр подключены через транзисторные ключи VT1-3, VT5-7. Через транзистор VT4 подключен отдельный плоский светодиод индикации знака “–”, который установлен перед вторым индикатором. При подаче положительного напряжения на базу одного из транзисторов ключей, транзистор открывается, его сопротивление перехода коллектор-эмиттер становится небольшим (около 3 Ом) и катод этой цифры соединяется с землей. При этом зажигаются сегменты только одной выбранной цифры. Управление открытием транзисторов осуществляется через разряды 5 – 0 порта B. Для снижения управляющего тока транзисторов до 1.5 мА применены резисторы R1-R7 с величиной сопротивления 2.2 кОм. При таком токе базы переход коллектор-эмиттер будет иметь сопротивление всего 2.7 Ом. Необходимость применения транзисторов вызвана тем, что при токе 15 мА одного сегмента суммарный ток всех все 8 зажженных сегментов достигнет величины 120 мА. Если бы мы подключили катоды к порту B напрямую, протекание такого тока через один вывод порта привело бы к выходу его из строя, так как максимально допустимый ток одного вывода – 20 мА и не более 80 мА на весь порт. При подключении индикаторов, как изображено на рис.3.2, для вывода цифры 2 на третьем разряде 1-го индикатора достаточно выполнить следующие операторы: PORTD = 0b11011010; или PORTD = 0xDA – зажигание сегментов AB_DE_G_ PORTB = 0b00001000; или PORTD = 1<<3; – выбор третьей цифры
Последний оператор означает сдвиг 1 на 3 двоичных разряда влево. Для вывода уже двух цифр потребуется применение динамической индикации:
m1: PORTD=0x60; //Коды сегментов цифры 1 PORTB=1<<5; //Выбор 1-й цифры delay_ms(10); //Задержка на 10 миллисекунд PORTD=0xDA; //Коды сегментов цифры 2 PORTB=1<<4; //Выбор 2-й цифры delay_ms(10); //Задержка на 10 миллисекунд goto m1; //Бесконечный цикл
Попробуйте увеличить задержку до 500 миллисекунд. Что наблюдаете? Удобно разместить коды сегментов, которые должны быть выведены, в массиве segm из 6 элементов, соответственно количеству цифр на индикаторах. Тогда программа динамической индикации значительно упростится. Выведем цифры 123 456 на двух индикаторах. int segm[6]={0x60,0xDA,0xF2,0x66,0xB6,0xBE}; //Коды сегментов цифр int scanpos=0; m1: PORTD=segm[scanpos]; //Вывод кодов сегментов цифр в порт D PORTB=1<<(5-scanpos); //Выбор цифры, на которую указывает scanpos delay_ms(3); //Задержка на 3 миллисекунды scanpos++; //Переход к следующей цифре if(scanpos>5) scanpos=0;//Возврат к первой цифре goto m1; //Бесконечный цикл
Замечание: Необходимость подключения отдельного светодиода HL1 через транзистор VT4 связана с тем, что этот вход контроллера используется для подключения программатора. В этом случае нагрузка составляет 2.2 кОм, а без транзистора нагрузка была бы 330 Ом.
Таблица 3.1 – Задание к лабораторной работе №3
Контрольные вопросы: 1. Нарисовать схему подключения светодиодов сегментов в двухразрядном индикаторе. 2. Изобразите схему подключения одно/двух/ … /семиразрядного 7-сегментного индикатора к портам Х1 и Х2 контроллера Atmega8/Atmega16. 3. Нарисуйте схему подключения к МК двух одноразрядных индикаторов для работы без применения динамической индикации. 4. Какое ограничение существует на величину тока одного вывода порта/на весь порт? 5. Напишите программу вывода заданного текста или цифр на индикаторах. 6. Напишите программу увеличения заданного разряда числа, выведенного на индикаторе при нажатии кнопки ↑ / уменьшения при нажатии ↓. 7. Напишите программу мигания всего числа, выведенного на индикаторе. Лабораторная работа №4 – Программирование таймеров
Перед выполнением данной работы изучите регистры таймеров и режимы их работы по лекциям 7 и 8, прерывания по лекции 9 и тему “Получение заданных напряжений с помощью ШИМ” из лекции 11.
Дата добавления: 2014-12-23; Просмотров: 1737; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |