Робота із символьними індикаторами
Автор: Микола Тимчик • Май 11, 2023 • Лабораторная работа • 1,052 Слов (5 Страниц) • 122 Просмотры
Міністерство освіти і науки України
Вінницький національний технічний університет
Кафедра IСТ
Лабораторна робота №4
"Робота із символьними індикаторами"
Виконала:
ст. гр. ПЗТ-22МС
__________ Базалицька М.Р.
Перевірив:
_________ Макогон В. І.
Вінниця 2023
Мета роботи: : Розглянути особливості роботи рідиннокристалічних індикаторів та їх використання із мікроконтролерами AVR.
[pic 1]
Рисунок 1 – Зібрана схема
[pic 2]
Рисунок 2 – Робота РКІ під час моделювання при натиснуті кнопці PA0
[pic 3]
Рисунок 3 – Робота РКІ під час моделювання при натиснуті кнопці PA0
[pic 4]
Рисунок 2 – Код програми у MicrochipStudio
Код програми:
#include <avr/io.h>
#include <util/delay.h>
// Підключення до дисплею
#define PORT_DATA PORTD
#define PIN_DATA PIND
#define DDR_DATA DDRD
#define PORT_SIG PORTB
#define PIN_SIG PINB
#define DDR_SIG DDRB
#define RS 5
#define RW 6
#define EN 7
// Функція запису команди до дисплею
void LcdWriteCom(unsigned char data)
{
PORT_DATA = data; // вивід даних на шину індикатора
PORT_SIG &= ~(1 << RS); // установка RS в 0 - команди
PORT_SIG &= ~(1 << RW); // установка RW в 0 - запис
PORT_SIG |= (1 << EN); // установка E в 1
_delay_us(2);
PORT_SIG &= ~(1 << EN); // установка E в 0 - записуючий фронт
_delay_us(40);
}
// Функція запису даних до дисплею
void LcdWriteData(unsigned char data)
{
PORT_DATA = data; // вивід даних на шину індикатора
PORT_SIG |= (1 << RS); // установка RS в 1 - дані
PORT_SIG &= ~(1 << RW); // установка RW в 0 - запис
PORT_SIG |= (1 << EN); // установка E в 1
_delay_us(2);
PORT_SIG &= ~(1 << EN); // установка E в 0 - записуючий фронт
_delay_us(40);
}
// Функція ініціалізації дисплею
void LcdInit(void)
{
DDR_DATA = 0xFF;
DDR_SIG |= (1 << RS) | (1 << RW) | (1 << EN);
...