๋ฐ์ํ
๐ฅ๏ธ A31G123ML + Keil uVision โ ์บ๋ฆญํฐ LCD(HD44780) ์ถ๋ ฅํ๊ธฐ
์ด๋ฒ ํธ์์๋ ABOV A31G123ML MCU๋ฅผ ์ฌ์ฉํ์ฌ 16x2 ์บ๋ฆญํฐ LCD์ ํ ์คํธ๋ฅผ ์ถ๋ ฅํด๋ณด๊ฒ ์ต๋๋ค.
HD44780 ๊ธฐ๋ฐ LCD๋ ๋ณ๋ ฌ ๋ฐฉ์์ผ๋ก ์๋ํ๋ฉฐ, ๊ฐ๋จํ UI๋ฅผ ๊ตฌํํ ๋ ๋งค์ฐ ์ ์ฉํ๊ฒ ํ์ฉ๋ฉ๋๋ค.
๐งฐ ์ค๋น๋ฌผ
- ABOV A31G123ML ๋ณด๋
- 16x2 ์บ๋ฆญํฐ LCD (HD44780 ํธํ)
- 10kฮฉ ๊ฐ๋ณ์ ํญ (๋ฐ๊ธฐ ์กฐ์ )
- ๋ธ๋ ๋๋ณด๋, ์ ํผ์
๐ ํ ์ฐ๊ฒฐ (4-bit ๋ชจ๋)
LCD ํ | MCU ํ |
---|---|
RS | P1.0 |
EN | P1.1 |
D4~D7 | P1.2 ~ P1.5 |
RW | GND (์ฐ๊ธฐ์ ์ฉ) |
VSS | GND |
VDD | 5V |
VO | ๊ฐ๋ณ์ ํญ ์ค๊ฐํ |
๐ป ์ฝ๋ ์์: Hello LCD ์ถ๋ ฅ
#include "A31G123.h" #include "lcd.h" int main(void) { lcd_init(); // LCD ์ด๊ธฐํ lcd_clear(); lcd_gotoxy(0, 0); lcd_puts("A31G123ML Ready"); lcd_gotoxy(0, 1); lcd_puts("Hello LCD!"); while (1); }
โป lcd.h / lcd.c๋ ์ง์ ๊ตฌํํ๊ฑฐ๋ ์คํ์์ค๋ฅผ ์ฌ์ฉํด๋ ๋ฉ๋๋ค.
๐ ์์: lcd.h์ ๋ค์ด๊ฐ ํจ์๋ค
```c void lcd_init(void); void lcd_clear(void); void lcd_gotoxy(uint8_t x, uint8_t y); void lcd_puts(const char *str);๋ฐ์ํ