ARM

A31G123ML + Keil uVision : ์บ๋ฆญํ„ฐ LCD (HD44780)๋กœ ๋ฌธ์ž ์ถœ๋ ฅํ•˜๊ธฐ

๊ฒŒ์ž„๊ต์ˆ˜ 2025. 4. 18. 07:53
๋ฐ˜์‘ํ˜•

๐Ÿ–ฅ๏ธ A31G123ML + Keil uVision โ€” ์บ๋ฆญํ„ฐ LCD(HD44780) ์ถœ๋ ฅํ•˜๊ธฐ

์ด๋ฒˆ ํŽธ์—์„œ๋Š” ABOV A31G123ML MCU๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 16x2 ์บ๋ฆญํ„ฐ LCD์— ํ…์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

HD44780 ๊ธฐ๋ฐ˜ LCD๋Š” ๋ณ‘๋ ฌ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ๊ฐ„๋‹จํ•œ UI๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

๐Ÿงฐ ์ค€๋น„๋ฌผ

  • ABOV A31G123ML ๋ณด๋“œ
  • 16x2 ์บ๋ฆญํ„ฐ LCD (HD44780 ํ˜ธํ™˜)
  • 10kฮฉ ๊ฐ€๋ณ€์ €ํ•ญ (๋ฐ๊ธฐ ์กฐ์ ˆ)
  • ๋ธŒ๋ ˆ๋“œ๋ณด๋“œ, ์ ํผ์„ 

๐Ÿ”Œ ํ•€ ์—ฐ๊ฒฐ (4-bit ๋ชจ๋“œ)

LCD ํ•€MCU ํ•€
RSP1.0
ENP1.1
D4~D7P1.2 ~ P1.5
RWGND (์“ฐ๊ธฐ์ „์šฉ)
VSSGND
VDD5V
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);
๋ฐ˜์‘ํ˜•