| |||||||||||||
Опубликовано 2010-03-07 09:55:14 автором Ruslan Подключение Lcd к микроконтроллеру AVR. Урок AVR 4Научившись мигать светодиодом, вам, наверное, захочется подключить к микроконтроллеру что-то более информативное, например Lcd дисплей. Как это сделать? Да всё, как всегда, очень просто. Символьный ЖКИ мы подружим сегодня с нашим старым знакомым ATmega8. Для этого нам потребуется сам Lcd, я использовал знакосинтезирующий ЖКИ 16x2, и микроконтроллер atmega8.
Для начала напишем программу, которая будет что-либо выводить на дисплей. Для этого откроем Code Vision AVR, создадим новый проект. В закладке LCD выбираем порт, к которому будет подключен дисплей.
Я подключил к порту D, выбираем File -> Creative Save and Exit. Указываем, куда будем сохранять файлы и смотрим на код программы. Далее для вывода строки нам понадобится добавить несколько строк кода
#include <mega8.h> // Alphanumeric LCD Module functions #include <alcd.h> char *buffer_Lcd="Hello"; //Создаем выводимую строку void main(void) { // Input/Output Ports initialization // Port B initialization PORTB=0x00; DDRB=0x00; // Port C initialization PORTC=0x00; DDRC=0x00; // Port D initialization PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped TCCR0=0x00; TCNT0=0x00; // Timer/Counter 1 initialization TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization MCUCR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // USART disabled UCSRB=0x00; // Analog Comparator initialization ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC disabled ADCSRA=0x00; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; // Alphanumeric LCD initialization // Connections specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTD Bit 0 // RD - PORTD Bit 1 // EN - PORTD Bit 2 // D4 - PORTD Bit 4 // D5 - PORTD Bit 5 // D6 - PORTD Bit 6 // D7 - PORTD Bit 7 // Characters/line: 16 lcd_init(16); lcd_gotoxy(0, 0); // Переводим курсор на первый символ первой строки lcd_puts(buffer_Lcd); // Выводим строку while (1) { } } }
Давайте теперь разберемся с выводами дисплея.
sudo avrdude -c usbasp -p m8 -U flash:w:'/media/ruslan/Media/Greenchip.com.ua/Lessons/lcd/Exe/lcd.hex':i и получаем Проект в Proteus и программа к уроку находятся в архиве lcd.zip. Ну собственно и все, если что-то не получается, пишите в комментариях. Комментарии - (4)
Добавить комментарийДля отправки комментария вы должны авторизоваться. |