Добавил:
інстаграм _roman.kob, курсові роботи з тєрєхова в.в. для КІ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Фаліштинський / Лабораторна робота №4

.pdf
Скачиваний:
0
Добавлен:
31.05.2020
Размер:
1.34 Mб
Скачать

Міністерство науки і освіти України

Технічний коледж національного університету

«Львівська політехніка»

ЗВІТ

з лабораторної роботи №4

Дослідження роботи LCD індикатора HD44780 у віртуальному середовищі Proteus

Виконав: студент групи 31-КІ

ФАЛІШТИНСЬКИЙ О. І.

Прийняв:

Терехов В. В.

Львів - 2020

Мета: Приєднання рідкокристалічного індикатора (HD44780) до мікроконтролерів AVR

#include <avr/io.h> #include <util/delay.h> #define RS PC0 #define EN PC2

void lcd_com(unsigned char p)

{

PORTC &= ~(1 << RS); PORTC |= (1 << EN);

PORTD &= 0x0F; PORTD |= (p & 0xF0); _delay_us(100);

PORTC &= ~(1 << EN); _delay_us(100); PORTC |= (1 << EN);

PORTD &= 0x0F; PORTD |= (p << 4); _delay_us(100);

PORTC &= ~(1 << EN); _delay_us(100);

}

void lcd_dat(unsigned char p)

{

PORTC |= (1 << RS)|(1 << EN);

PORTD &= 0x0F; PORTD |= (p & 0xF0); _delay_us(100);

PORTC &= ~(1 << EN); _delay_us(100); PORTC |= (1 << EN);

PORTD &= 0x0F; PORTD |= (p << 4); _delay_us(100);

PORTC &= ~(1 << EN); _delay_us(100);

}

void lcd_init(void)

{

DDRC |= (1 << PC2)|(1 << PC0);

PORTC = 0x00;

DDRD = 0xFF; PORTD = 0x00; _delay_ms(50); PORTD |= (1 << PD5);

PORTD &= ~(1 << PD4);

PORTC |= (1 << EN);

PORTC &= ~(1 << EN); _delay_ms(5); lcd_com(0x28); lcd_com(0x08); lcd_com(0x01); _delay_us(100); lcd_com(0x06); _delay_ms(10); lcd_com(0x0C);

}

int main (void)

{

unsigned char znak = 0; lcd_init();

while(1)

{

lcd_com(0x80); lcd_dat(znak/100 +'0'); lcd_dat((znak/10)%10 +'0'); lcd_dat(znak%10 +'0'); lcd_dat('=');

lcd_dat(znak); _delay_ms(100);

znak++;

}

}

Висновок: В даній лабораторній роботі я навчився приєднувати рідко кристалічні індикатори до мікроконтролерів AVR, та застосовувати їх на практиці.