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

Лабораторна робота №4

.docx
Скачиваний:
7
Добавлен:
31.05.2020
Размер:
1.84 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, та застосовувати їх на практиці.

Соседние файлы в предмете Схемотехника ЭВМ