Современная электроника №2/2022
ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 52 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 2 2022 Программа вывода строки «CodeVisionAVR» на экран дисплея, работающего в 8-разрядном режи- ме: #include <io.h> #include <mega16.h> // подключе- ние заголовочных файлов #include <stdio.h> // в которых содержатся #include <delay.h> // прототипы функций #include <stdlib.h> void e ( ) { // функция формиро- вания тактового сигнала на линии Е дисплея PORTC |= 1<<7; // устанавливаем 1 на выводе PC7 микроконтроллера delay_ms(40); // задержка 40 мс PORTC &=~ (1<<7); // устанавлива- ем 0 на выводе PC7 микроконтроллера delay_ms(40); } void main() { // основная функ- ция программы DDRD=DDRC=0xff; // инициализа- ция портов PORTD=0x00; // порт PD работает на вывод данных PORTC=0x00; // порт PC работает на вывод данных e ( ); PORTC &=~ (1<<4); // RS=0 (приём команд) e ( ); PORTD=0b00001111; // вклю- чение дисплея e ( ); PORTD=0b00110100; // уста- новка 8-разрядной шины e ( ); PORTD=0b00000001; // очист- ка дисплея и установка курсора в нулевую позицию while(1) { e ( ); PORTC |= 1<<4; // RS=1 (приём данных) // запись двоичного кода симво- лов в DDRAM память для их отобра- жения на дисплее PORTD=0b01000011; // запись дво- ичного кода символа C e ( ); PORTD=0b01101111; // запись двоичного кода символа o e ( ); PORTD=0b01100100; // запись двоичного кода символа d e ( ); PORTD=0b01100101; // запись двоичного кода символа e e ( ); PORTD=0b01010110; // запись двоичного кода символа V e ( ); PORTD=0b01101001; // запись двоичного кода символа i e ( ); PORTD=0b01110011; // запись двоичного кода символа s e ( ); PORTD=0b01101001; // запись двоичного кода символа i e ( ); PORTD=0b01101111; // запись двоичного кода символа o e ( ); PORTD=0b01101110; // запись двоичного кода символа n e ( ); PORTD=0b01000001; // запись двоичного кода символа A e ( ); PORTD=0b01010110; // запись двоичного кода символа V e ( ); PORTD=0b01010010; // запись двоичного кода символа R }} Введём текст программы в окне кода CodeVisionAVR и запустим командой основного меню Project/Build All ком- пиляцию, по окончании которой выда- ётся отчёт о наличии ошибок в коде программы (рис. 11). При этом в группе Headers на панели Code Navigator ото- бразится список заголовочных файлов с расширением *.h, функции которых применяются в программе. Если ошиб- ки не обнаружены, на диске компьюте- ра будут созданы файлы .hex и .cof для записи в микроконтроллер. Перейдём в редактор Schematic Capture программы Proteus, откроем окно свойств микроконтроллера и в поле Program File укажем путь к фай- лу прошивки на диске компьютера, полученному в результате компиля- ции программного кода (при усло- вии отсутствия в коде ошибок). Кноп- кой Run the simulation, расположенной в левом нижнем углу окна редактора, или командой основного менюDebug/ Run Simulation запустим моделирова- ние собранной схемы, результат кото- рого представлен на рис. 12а. Проанализируем работу демонстра- ционной схемы, представленной на рисунке 12а. В представленном при- мере даны указания микроконтроллеру через порт PD отправить контроллеру микросхемы LM044L кодовые комбина- ции команд (если на линии PC4 ноль) или данные (если на линии PC4 еди- Таблица 2. Таблица соответствия символов английского алфавита и двоичного кода Символ Двоичный код Символ Двоичный код A 01000001 a 01100001 B 01000010 b 01100010 C 01000011 c 01100011 D 01000100 d 01100100 E 01000101 e 01100101 F 01000110 f 01100110 G 01000111 g 01100111 H 01001000 h 01101000 I 01001001 i 01101001 J 01001010 j 01101010 K 01001011 k 01101011 L 01001100 l 01101100 M 01001101 m 01101101 N 01001110 n 01101110 O 01001111 o 01101111 P 01010000 p 01110000 Q 01010001 q 01110001 R 01010010 r 01110010 S 01010011 s 01110011 T 01010100 t 01110100 U 01010101 u 01110101 V 01010110 v 01110110 W 01010111 w 01110111 X 01011000 x 01111000 Y 01011001 y 01111001 Z 01011010 z 01111010 Рис. 11. Программа вывода строки на экран буквенно-цифрового дисплея в окне кода CodeVisionAVR и результат её компиляции
RkJQdWJsaXNoZXIy MTQ4NjUy