Π‘ΡΠ΅Π΄ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
LCD Π΄ΠΈΡΠΏΠ»Π΅Π΅Π² Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠ΅ (ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΠ΅) Π΄ΠΈΡΠΏΠ»Π΅ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° hd44780 Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌ 4-ΠΈΠ»ΠΈ 8-Π±ΠΈΡΠ½ΡΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ. Π ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ 7-ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ½ΡΠΌΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ, Π΄ΠΈΡΠΏΠ»Π΅ΠΈ Π½Π° Π±Π°Π·Π΅ HD44780 ΠΎΠ±Π»Π°Π΄Π°ΡΡ Π½Π° ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠΎΠΊ Π½Π° ΡΠΊΡΠ°Π½Π΅ Ρ ΡΠ°Π·Π½ΡΡ
ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ - 1,2 ΠΈΠ»ΠΈ 4; ΡΠΈΡΠ»ΠΎ Π²ΠΈΠ΄ΠΈΠΌΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΡΡΠΎΠΊΠ΅: 8,10,16,20,24,30,32 ΠΈΠ»ΠΈ 40, ΠΎΠ΄ΠΈΠ½ ΡΠΈΠΌΠ²ΠΎΠ» Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 5x8 ΡΠΎΡΠ΅ΠΊ, Π·Π° ΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠ°ΠΌ HD44780, ΡΠΎΠΊ ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π±Π΅Π· ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠΈ ΠΎΡΠ΅Π½Ρ ΠΌΠ°Π» - 100β¦200 ΠΌΠΊΠ. ΠΠ±ΡΡΠ½ΠΎ Ρ
ΠΎΡΠΎΡΠ΅ΠΉ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΎΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ.
ΠΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ HD44780 ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ:
-
RS - Π΄ΠΈΡΠΏΠ»Π΅ΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΡΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊ Π½Π΅ΠΌΡ ΠΏΠΎΡΡΡΠΏΠ°Π΅Ρ (Π΄Π°Π½Π½ΡΠ΅/ΠΊΠΎΠΌΠ°Π½Π΄Π°)
-
RW - Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ
(ΡΡΠ΅Π½ΠΈΠ΅/Π·Π°ΠΏΠΈΡΡ)
-
D0-D7 - ΡΠΈΠ½Π° ΠΊΠΎΠΌΠ°Π½Π΄/Π΄Π°Π½Π½ΡΡ
-
E - ΡΡΡΠΎΠ±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄/Π΄Π°Π½Π½ΡΡ
)
ΠΡΠ²ΠΎΠ΄ RW ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ Π΅ΡΠ»ΠΈ Π½Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π½ΡΠΆΠ΄Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΠ (ΡΡΠΎ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°), Π·Π°ΡΠ°ΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π² HD44780. Π’ΠΎΠ³Π΄Π° Π²ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ΅Π΄ΡΡΠΈΠΉ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π²ΡΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΈΠ·Π½Π°ΠΊ RS - 0 ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ, 1 - Π½Π° Π΄Π°Π½Π½ΡΠ΅, Π²ΡΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π° Π»ΠΈΠ½ΠΈΡΡ
DB7β¦DB0 8-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ Π½Π° Π²ΡΠ²ΠΎΠ΄Π΅ E ΡΡΡΠΎΠ±ΠΈΡΡΡΡΠΈΠΉ ΠΈΠΌΠΏΡΠ»ΡΡ (Π°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΡΠΎΠ½Ρ β Π·Π°Π΄Π½ΠΈΠΉ). ΠΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ HD44780 ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π²Π°ΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΠΏΠ° ΠΏΡΠΈΠ½ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ - Π²ΡΠ΅ ΡΡΠΎ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΎ Π² Π΄ΠΎΠΊΠ΅ ΡΠΎΠ²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ΄Π°ΡΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΠΎΡΠ° Π±Ρ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΊΠΎΠ΄:
config.h | hex | picsim.js
HD44780.h
#ifndef HD44780_h
#define HD44780_h
// commands
#define LCD_CLEARDISPLAY 0x01
#define LCD_RETURNHOME 0x02
#define LCD_ENTRYMODESET 0x04
#define LCD_DISPLAYCONTROL 0x08
#define LCD_CURSORSHIFT 0x10
#define LCD_FUNCTIONSET 0x20
#define LCD_SETCGRAMADDR 0x40
#define LCD_SETDDRAMADDR 0x80
// flags for display entry mode
#define LCD_ENTRYRIGHT 0x00
#define LCD_ENTRYLEFT 0x02
#define LCD_ENTRYSHIFTINCREMENT 0x01
#define LCD_ENTRYSHIFTDECREMENT 0x00
// flags for display on/off control
#define LCD_DISPLAYON 0x04
#define LCD_DISPLAYOFF 0x00
#define LCD_CURSORON 0x02
#define LCD_CURSOROFF 0x00
#define LCD_BLINKON 0x01
#define LCD_BLINKOFF 0x00
// flags for display/cursor shift
#define LCD_DISPLAYMOVE 0x08
#define LCD_CURSORMOVE 0x00
#define LCD_MOVERIGHT 0x04
#define LCD_MOVELEFT 0x00
// flags for function set
#define LCD_8BITMODE 0x10
#define LCD_4BITMODE 0x00
#define LCD_2LINE 0x08
#define LCD_1LINE 0x00
#define LCD_5x10DOTS 0x04
#define LCD_5x8DOTS 0x00
#endif
ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ Π²ΡΠ΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π΅ ΡΠ°ΠΊ ΡΠΆ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ LCD_CLEARDISPLAY...LCD_SETDDRAMADDR
, Π½ΠΎ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»Π°Π³ΠΈ - Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π»Ρ LCD_DISPLAYCONTROL
ΡΡΠΎ LCD_DISPLAYON...LCD_BLINKOFF
.
lcd.c
#include <xc.h>
#include "HD44780.h"
#define LCD_EN_PIN PORTEbits.RE1
#define LCD_RS_PIN PORTEbits.RE2
#define LCD_PORT PORTD
#define _LCD_DEFAULT_STATE_DISPLAYCONTROL (LCD_DISPLAYON | LCD_CURSORON | LCD_BLINKON)
#define _LCD_DEFAULT_STATE_DISPLAYMODE (LCD_ENTRYLEFT | LCD_ENTRYSHIFTDECREMENT)
static void _lcd_wr(const unsigned char val) {
LCD_PORT = val;
}
static void _lcd_en_pulse() {
__delay_ms(3);
LCD_EN_PIN = 0;
__delay_ms(3);
LCD_EN_PIN = 1;
}
void lcd_cmd(const unsigned char val) {
_lcd_wr(val);
LCD_RS_PIN = 0;
_lcd_en_pulse();
}
void lcd_dat(const unsigned char val) {
_lcd_wr(val);
LCD_RS_PIN = 1;
_lcd_en_pulse();
}
void lcd_init() {
// SEE PAGE 45/46 FOR INITIALIZATION SPECIFICATION!
// according to datasheet, we need at least 40ms after power rises above 2.7V
__delay_ms(40);
LCD_RS_PIN = 0;
LCD_EN_PIN = 1;
// this is according to the hitachi HD44780 datasheet
// page 45 figure 23
lcd_cmd(LCD_FUNCTIONSET | LCD_8BITMODE);
__delay_ms(5);
lcd_cmd(LCD_FUNCTIONSET | LCD_8BITMODE);
__delay_ms(1);
lcd_cmd(LCD_FUNCTIONSET | LCD_8BITMODE);
// finally, set # lines, font size, etc.
lcd_cmd(LCD_FUNCTIONSET | LCD_8BITMODE | LCD_2LINE);
// turn the display off
lcd_cmd(LCD_DISPLAYCONTROL | LCD_DISPLAYOFF);
lcd_cmd(LCD_CLEARDISPLAY); // clear display, set cursor position to zero
__delay_ms(2); // this command takes a long time!
// turn the display on with default cursor and blinking
lcd_cmd(LCD_DISPLAYCONTROL | _LCD_DEFAULT_STATE_DISPLAYCONTROL);
// Initialize to default text direction (for romance languages)
lcd_cmd(LCD_ENTRYMODESET | _LCD_DEFAULT_STATE_DISPLAYMODE);
}
ΠΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ lcd_init()
Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΡΠΈΡΡΠ°Π» Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°ΠΌΠΈ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΊ HD44780.
main.c
/*
xc8 --chip=18f4620 main.c
*/
#define _XTAL_FREQ 5e4
#include <xc.h>
#include "config-4620.h"
#include "lcd.c"
static void lcd_print(const char *str) {
while (*str) {
lcd_dat(*str++);
}
}
int main() {
// lcd
PORTD = TRISD = 0;
PORTE = 0;
TRISE = 1;
lcd_init();
lcd_cmd(LCD_SETDDRAMADDR | 0); // first line 0 column
lcd_print("Hey PICSim.js !");
lcd_cmd(LCD_SETDDRAMADDR | 0x40); // second line 0 column
lcd_print("Life is good :)");
while(1) {}
return 0;
}
Π£ PIC18 Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΈΡΠΎΠ² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ Π½ΠΈΡ
ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» config.h
. ΠΠ΅ΡΠ²ΡΠΌ Π΄Π΅Π»ΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΡ
ΠΊΠΎΠΌΠ°Π½Π΄ lcd_cmd
Π΄ΠΈΡΠΏΠ»Π΅ΠΉ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ, Π·Π°ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ Π΄Π°Π½Π½ΡΡ
lcd_dat
. Π₯ΠΎΡΡ Π²ΠΈΠ΄ΠΈΠΌΡΡ
ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΡΡΡΠΎΠΊΠ΅ Π΄ΠΈΡΠΏΠ»Π΅Ρ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ 16, Π²ΡΠ΅Π³ΠΎ ΠΈΡ
ΡΠ°ΠΌ 64 (0x40) - ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΡΠΎ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ HD44780 ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°.
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ HD44780 ΡΡΡΠ΄Π½ΠΎ Π΄Π΅ΡΠΆΠ°ΡΡ Π²ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Π² Π³ΠΎΠ»ΠΎΠ²Π΅, ΠΏΠΎΡΡΠΎΠΌΡ ΠΊΠΎΠ΄ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π²ΠΈΠ΄Ρ arduino Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Β«LiquidCrystalΒ».
config.h | liquid-crystal.c | hex | picsim.js
/*
xc8 --chip=18f4620 main.c
*/
#define _XTAL_FREQ 5e4
#include <xc.h>
#include <stdint.h>
#include "config-4620.h"
#include "liquid-crystal.c"
static void clear_print(const char *str){
lcd_clear(); // clear display, set cursor position to zero
lcd_print(str);
}
int main() {
// lcd
PORTD = TRISD = 0;
PORTE = 0;
TRISE = 1;
lcd_init();
while(1) {
clear_print("PICSim.js :)");
lcd_set_cursor(3, 1); // second line third column
lcd_print("Show time !");
__delay_ms(4444);
clear_print("No CURSOR");
lcd_no_cursor(); // hide cursor
__delay_ms(2000);
lcd_cursor(); // show cursor
clear_print("No BLINK");
lcd_no_blink(); // blink OFF
__delay_ms(2000);
lcd_blink(); // blink ON
clear_print("ON/OFF");
for (uint8_t i = 0; i < 4; i++) {
lcd_display(); // display ON
__delay_ms(1000);
lcd_no_display(); // display OFF
__delay_ms(1000);
}
lcd_display();
clear_print("SCROLL right");
for (uint8_t i = 0; i < 10; i++) {
__delay_ms(500);
lcd_scroll_display_right();
}
clear_print("SCROLL left");
for (uint8_t i = 0; i < 10; i++) {
__delay_ms(500);
lcd_scroll_display_left();
}
// PICSimLab: not implemented ?
// lcd_right_to_left()
// lcd_autoscroll()
// lcd_create_char()
}
return 0;
}
ΠΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ Π·Π°ΡΠΎΡΠ΅Π½ Π½Π° Π΄ΠΈΡΠΏΠ»Π΅ΠΉ, ΡΠΎΡΡΠΎΡΡΠΈΠΉ ΠΈΠ· Π΄Π²ΡΡ
ΡΡΡΠΎΠΊ - ΡΡΠΎ Π·Π°Π΄Π°ΡΡΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· LCD_8BITMODE | LCD_2LINE
. Π’Π°ΠΊΠΆΠ΅ Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ Π½ΠΎΠ³ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Ρ 8-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ Π½Π° 4-Π±ΠΈΡΠ½ΡΠΉ LCD_4BITMODE
ΡΠΎΡΠΌΠ°Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄/Π΄Π°Π½Π½ΡΡ
, ΠΏΠΎΠΏΡΡΠ½ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΏΡΠ°Π²ΠΈΠ² ΡΡΠ½ΠΊΡΠΈΡ _lcd_wr
.
ΠΠ°Π»Π΅Π΅ Π°Π½Π°Π»ΠΎΠ³ΠΎ-ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»Ρ (ΠΠ¦Π).
There are comments.