Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лр7-2

.docx
Скачиваний:
0
Добавлен:
26.03.2021
Размер:
109.33 Кб
Скачать

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

Тема: Підключення до AVR LSD дисплея HD44780.

Лістинг програми:

#include <mega8.h>

#asm

.equ __lcd_port=0x12

#endasm

#include <lcd.h>

#include <delay.h>

#define pause delay_ms(100)

typedef unsigned char byte;

flash byte char0[8]={

0b00000,

0b00000,

0b00000,

0b00000,

0b00000,

0b00000,

0b00001 };

flash byte char1[8]={

0b00001,

0b00000,

0b00000,

0b00000,

0b00000,

0b00000,

0b00000, };

flash byte char2[8]={

0b00001,

0b00101,

0b00011,

0b01001,

0b00101,

0b10011,

0b11111 };

flash byte char3[8]={

0b11111,

0b10011,

0b00101,

0b01001,

0b00011,

0b00101,

0b00001 };

flash byte char4[8]={

0b10000,

0b10100,

0b11000,

0b10010,

0b10100,

0b11001,

0b11111 };

flash byte char5[8]={

0b11111,

0b11001,

0b10100,

0b10010,

0b11000,

0b10100,

0b10000 };

flash byte char6[8]={

0b00000,

0b00000,

0b00000,

0b00000,

0b00000,

0b00000,

0b10000 };

flash byte char7[8]={

0b10000,

0b00000,

0b00000,

0b00000,

0b00000,

0b00000,

0b00000 };

void define_char(byte flash *pc,byte char_code)

{

byte i,a;

a=(char_code<<3)|0x40;

for (i=0; i<8; i++) lcd_write_byte(a++,*pc++);

}

void avr_init(void)

{

PORTD=0x00;

DDRD=0xff;

}

void main(void)

{

avr_init();

lcd_init(16);

define_char(char0,0);

define_char(char1,1);

define_char(char2,2);

define_char(char3,3);

define_char(char4,4);

define_char(char5,5);

define_char(char6,6);

define_char(char7,7);

lcd_gotoxy(0,0);

lcd_putchar(0x00);

lcd_gotoxy(0,1);

lcd_putchar(0x01);

lcd_gotoxy(1,0);

lcd_putchar(0x02);

lcd_gotoxy(1,1);

lcd_putchar(0x03);

lcd_gotoxy(2,0);

lcd_putchar(0x04);

lcd_gotoxy(2,1);

lcd_putchar(0x05);

lcd_gotoxy(3,0);

lcd_putchar(0x06);

lcd_gotoxy(3,1);

lcd_putchar(0x07);

}

Рисунок 1 – Виконання програми

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]