Современная электроника №1/2020
ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 78 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 1 2020 ный код 0b00000010, который активи- зирует второй столбец матрицы. При этом через порт РС на верхние выво- ды микросхемы точечного индикато- ра подаётся двоичный код 0b10110000, которыйвключает 5 светодиодов второ- го столбца матрицы (см. рис. 8а). После паузыдлительностью20мс впортPDпро- граммнымпутёмподаётся двоичныйкод 0b00000100, который активизирует тре- тий столбецматрицы. Впорт РСподаёт- ся двоичный код 0b00110000, который включает 6 светодиодов в этом столбце (см. рис. 8б). Послепаузыдлительностью 20 мс в порт PD подаётся двоичный код 0b00011000, который активизирует два столбцаматрицы(4-йи5-й). Как в4-м, так ив5-мстолбцах точечнойматрицынуж- новключить светодиоды, расположенные в 1-й, 3-йи 8-й строках (см. рис. 8в), поэ- тому в данном случае удобно активизи- ровать сразу два столбца и подать через порт РС микроконтроллера на верх- ние выводы индикатора двоичный код 0b01111010, значения 1-го, 3-го и 8-го бита которого равны нулю. После пау- зы длительностью20 мс в порт PDпода- ётся двоичный код 0b00100000, активи- зирующий6-йстолбецматрицы, в кото- ромврезультате записикода0b00000010 впортРСбудутподсвечены1-йис 3-гопо 8-йсветодиоды(см. рис. 8г). Далеепосле паузыпрограммаинициализациимикро- контроллера выводит в порт PD двоич- ныйкод0b01000000, которыйактивизи- рует 7-йстолбецматрицы. Приэтомчерез портРСна верхние выводымикросхемы точечного индикатора подаётся двоич- ныйкод0b10000111, которыйвключает четыре светодиода (см. рис. 8д). Когда на дисплее отрисовано всё изо- бражение, последовательность действий повторяется сначала. В результате на дисплее точечного индикатора будет отображён символ (цифра 5). Статиче- ское изображение получено вследствие непрерывного выполнения в цикле последовательной активизации задан- ных столбцов точечной матрицыи под- светки в них указанных светодиодов. Для формирования изображения на индикаторе можно применить и код, написанный на языке С (см. листинг 2), однако в результате применения подпро- граммы, написанной на ассемблере, на дисплее точечнойматрицыбыла получе- на более чёткая и стабильная картинка. Рассмотрим формирование изобра- жения с эффектом бегущей строки. Для этого внесём изменения в программу вывода символа (цифры 5), написан- ную на языке С (см. листинг 3). Запустим в CodeVisionAVR компиля- цию кода программы. По её оконча- нии на диске компьютера будет соз- дан hex-файл, путь к которому укажем в окне свойств микросхемы ATmega16 в Proteus. В поле CKSEL Fuses этого окна установим значение тактовой частоты микроконтроллера 1MHz. Запустим в Proteus моделирование собранной схемы (см. рис. 9) и проа- нализируем её работу. Программным путём были даны указания микрокон- троллеру через порт PD отправить по- очерёднона нижние выводымикросхе- мы точечного индикатора двоичный код, который активизирует 2–7-й столб- цыматрицы. При этомчерез порт РСна верхние выводы микросхемы точечно- го индикатора подаётся двоичный код, который включает нужные светодиоды активного столбцаматрицы. Подача зна- Рис. 7. Результат работы программы вывода символа на дисплей точечной светодиодной матрицы разрешением 8 × 8 Рис. 8. Процесс формирования изображения на дисплее точечной светодиодной матрицы разрешением 8 × 8: а) вывод первого столбца символа; б) вывод второго столбца символа; в) вывод 3-го и 4-го столбцов символа; г) вывод 5-го столбца символа; д) вывод 6-го столбца символа Листинг 2 while(1) { // начало цикла PORTC=0b10110000; // вывод первого столбца символа «5» PORTD=0b00000010; delay_ms(20); // задержка 20 мс PORTC=0b00110000; // вывод второго столбца символа «5» PORTD=0b00000100; delay_ms(20); PORTC=0b01111010; // вывод 3-го и 4-го столбца символа «5» PORTD=0b00011000; delay_ms(20); PORTC=0b00000010; // вывод 5-го столбца символа «5» PORTD=0b00100000; delay_ms(20); PORTC=0b10000111; // вывод 6-го столбца символа «5» PORTD=0b01000000; delay_ms(20); } а б в г д
RkJQdWJsaXNoZXIy MTQ4NjUy