#include "stm32f0xx.h"
#include "hd44780.h"
#include "stm32f0xx_gpio.h"
#include "stm32f0xx_rcc.h"
;
int main(void)
{
lcd_init();
lcd_clear();
lcd_set_xy(3,0);
lcd_out("ELEKTRONIK");
lcd_set_xy(4,1);
lcd_out("KILAVUZU");
while(1)
{
}
}
LCD.H Dosyası içeriği:
#include "stm32f0xx.h"
/////Kulanıcı port tanımları /////
#define LCD_PORT GPIOB
#define LCD_CD GPIO_Pin_7
#define LCD_RW GPIO_Pin_9
#define LCD_EN GPIO_Pin_10
#define LCD_DB4 GPIO_Pin_14
#define LCD_DB5 GPIO_Pin_13
#define LCD_DB6 GPIO_Pin_11
#define LCD_DB7 GPIO_Pin_12
#define LCD_PORT_AC RCC_AHBPeriph_GPIOB
///////////////////////////////////
typedef enum {
COMMAND = 0,
DATA = !COMMAND
} dat_or_comm;
typedef enum {
LCD_DISABLE = 0,
LCD_ENABLE = !LCD_DISABLE
} lcd_state;
typedef enum {
CURSOR_DISABLE = 0,
CURSOR_ENABLE = !CURSOR_DISABLE
} cursor_state;
typedef enum {
NO_BLINK = 0,
BLINK = !NO_BLINK
} cursor_mode;
void lcd_init();
void lcd_send(unsigned char byte, dat_or_comm dc);
void lcd_set_state(lcd_state state, cursor_state cur_state, cursor_mode cur_mode);
void lcd_clear(void);
void lcd_out(char * txt);
void lcd_set_xy(uint8_t x, uint8_t y);
void lcd_set_user_char(unsigned char char_num, unsigned char * char_data);
void lcd_delay(void);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
LCD.C Dosya içeriği:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "hd44780.h"
#include "stm32f0xx_gpio.h"
#include "stm32f0xx_rcc.h"
#include "stm32f0xx.h"
void delay(i)
{
while(i--);
}
void lcd_delay(void) {
volatile uint32_t tmpvar;
for (tmpvar=4000;tmpvar!=0;tmpvar--);
}
void lcd_init() {
RCC_AHBPeriphClockCmd(LCD_PORT_AC, ENABLE);
GPIO_InitTypeDef gpio;
gpio.GPIO_Pin = LCD_CD | LCD_RW | LCD_EN | LCD_DB6 | LCD_DB7 | LCD_DB5 | LCD_DB4;
gpio.GPIO_Mode = GPIO_Mode_OUT;
gpio.GPIO_OType = GPIO_OType_PP;
gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
gpio.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LCD_PORT, &gpio);
delay(500);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_SetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_SetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_SetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_ResetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_ResetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB5);
GPIO_ResetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_DB7);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_ResetBits(LCD_PORT, LCD_DB4);
GPIO_ResetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_ResetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_ResetBits(LCD_PORT, LCD_DB5);
GPIO_ResetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_SetBits(LCD_PORT, LCD_DB6);
GPIO_SetBits(LCD_PORT, LCD_DB7);
GPIO_SetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_SetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_ResetBits(LCD_PORT, LCD_DB5);
GPIO_ResetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_SetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_ResetBits(LCD_PORT, LCD_DB5);
GPIO_ResetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
lcd_set_state(LCD_ENABLE,CURSOR_DISABLE,NO_BLINK);
lcd_clear();
lcd_send(0x06,COMMAND);
}
void lcd_set_user_char(uint8_t char_num, uint8_t * char_data) {
uint8_t i;
lcd_send(((1<<6) | (char_num * 8) ), COMMAND);
for (i=0;i<=7;i++) {
lcd_send(char_data[i],DATA);
}
lcd_send((1<<7), COMMAND);
}
void lcd_set_xy(uint8_t x, uint8_t y) {
if (y==0) {
lcd_send( ((1<<7) | (x)),COMMAND);
} else {
lcd_send( ((3<<6) | (x)),COMMAND);
}
}
void lcd_out(char * txt) {
while(*txt) {
lcd_send(*txt,DATA);
txt++;
}
}
void lcd_clear(void) {
lcd_send(0x01,COMMAND);
}
void lcd_set_state(lcd_state state, cursor_state cur_state, cursor_mode cur_mode) {
if (state==LCD_DISABLE) {
lcd_send(0x08,COMMAND);
} else {
if (cur_state==CURSOR_DISABLE) {
if (cur_mode==NO_BLINK) {
lcd_send(0x0C,COMMAND);
} else {
lcd_send(0x0D,COMMAND);
}
} else {
if (cur_mode==NO_BLINK) {
lcd_send(0x0E,COMMAND);
} else {
lcd_send(0x0F,COMMAND);
}
}
}
}
void lcd_send(uint8_t byte, dat_or_comm dc) {
GPIO_ResetBits(LCD_PORT, LCD_DB7 | LCD_DB6 | LCD_DB5 | LCD_DB4 | LCD_CD | LCD_EN);
if (dc) {
GPIO_SetBits(LCD_PORT, LCD_CD);
}
if (byte & 0x10) {
GPIO_SetBits(LCD_PORT, LCD_DB4);
}
if (byte & 0x20) {
GPIO_SetBits(LCD_PORT, LCD_DB5);
}
if (byte & 0x40) {
GPIO_SetBits(LCD_PORT, LCD_DB6);
}
if (byte & 0x80) {
GPIO_SetBits(LCD_PORT, LCD_DB7);
}
GPIO_SetBits(LCD_PORT, LCD_EN);
lcd_delay();
GPIO_ResetBits(LCD_PORT, LCD_EN);
lcd_delay();
GPIO_ResetBits(LCD_PORT, LCD_DB7 | LCD_DB6 | LCD_DB5 | LCD_DB4);
if (byte & 0x01) {
GPIO_SetBits(LCD_PORT, LCD_DB4);
}
if (byte & 0x02) {
GPIO_SetBits(LCD_PORT, LCD_DB5);
}
if (byte & 0x04) {
GPIO_SetBits(LCD_PORT, LCD_DB6);
}
if (byte & 0x08) {
GPIO_SetBits(LCD_PORT, LCD_DB7);
}
GPIO_SetBits(LCD_PORT, LCD_EN);
lcd_delay();
GPIO_ResetBits(LCD_PORT, LCD_EN);
lcd_delay();
}
/////Kulanıcı port tanımları /////
#define LCD_PORT GPIOB
#define LCD_CD GPIO_Pin_7
#define LCD_RW GPIO_Pin_9
#define LCD_EN GPIO_Pin_10
#define LCD_DB4 GPIO_Pin_14
#define LCD_DB5 GPIO_Pin_13
#define LCD_DB6 GPIO_Pin_11
#define LCD_DB7 GPIO_Pin_12
#define LCD_PORT_AC RCC_AHBPeriph_GPIOB
///////////////////////////////////
typedef enum {
COMMAND = 0,
DATA = !COMMAND
} dat_or_comm;
typedef enum {
LCD_DISABLE = 0,
LCD_ENABLE = !LCD_DISABLE
} lcd_state;
typedef enum {
CURSOR_DISABLE = 0,
CURSOR_ENABLE = !CURSOR_DISABLE
} cursor_state;
typedef enum {
NO_BLINK = 0,
BLINK = !NO_BLINK
} cursor_mode;
void lcd_init();
void lcd_send(unsigned char byte, dat_or_comm dc);
void lcd_set_state(lcd_state state, cursor_state cur_state, cursor_mode cur_mode);
void lcd_clear(void);
void lcd_out(char * txt);
void lcd_set_xy(uint8_t x, uint8_t y);
void lcd_set_user_char(unsigned char char_num, unsigned char * char_data);
void lcd_delay(void);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
LCD.C Dosya içeriği:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "hd44780.h"
#include "stm32f0xx_gpio.h"
#include "stm32f0xx_rcc.h"
#include "stm32f0xx.h"
void delay(i)
{
while(i--);
}
void lcd_delay(void) {
volatile uint32_t tmpvar;
for (tmpvar=4000;tmpvar!=0;tmpvar--);
}
void lcd_init() {
RCC_AHBPeriphClockCmd(LCD_PORT_AC, ENABLE);
GPIO_InitTypeDef gpio;
gpio.GPIO_Pin = LCD_CD | LCD_RW | LCD_EN | LCD_DB6 | LCD_DB7 | LCD_DB5 | LCD_DB4;
gpio.GPIO_Mode = GPIO_Mode_OUT;
gpio.GPIO_OType = GPIO_OType_PP;
gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
gpio.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LCD_PORT, &gpio);
delay(500);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_SetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_SetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_SetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_ResetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_ResetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB5);
GPIO_ResetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_DB7);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_ResetBits(LCD_PORT, LCD_DB4);
GPIO_ResetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_ResetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_ResetBits(LCD_PORT, LCD_DB5);
GPIO_ResetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_SetBits(LCD_PORT, LCD_DB6);
GPIO_SetBits(LCD_PORT, LCD_DB7);
GPIO_SetBits(LCD_PORT, LCD_DB5);
GPIO_SetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_SetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_ResetBits(LCD_PORT, LCD_DB5);
GPIO_ResetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
GPIO_ResetBits(LCD_PORT, LCD_EN); // E V
GPIO_SetBits(LCD_PORT, LCD_CD);
GPIO_ResetBits(LCD_PORT, LCD_RW);
GPIO_ResetBits(LCD_PORT, LCD_DB6);
GPIO_ResetBits(LCD_PORT, LCD_DB7);
GPIO_ResetBits(LCD_PORT, LCD_DB5);
GPIO_ResetBits(LCD_PORT, LCD_DB4);
GPIO_SetBits(LCD_PORT, LCD_EN); // E ^
delay(50000);
lcd_set_state(LCD_ENABLE,CURSOR_DISABLE,NO_BLINK);
lcd_clear();
lcd_send(0x06,COMMAND);
}
void lcd_set_user_char(uint8_t char_num, uint8_t * char_data) {
uint8_t i;
lcd_send(((1<<6) | (char_num * 8) ), COMMAND);
for (i=0;i<=7;i++) {
lcd_send(char_data[i],DATA);
}
lcd_send((1<<7), COMMAND);
}
void lcd_set_xy(uint8_t x, uint8_t y) {
if (y==0) {
lcd_send( ((1<<7) | (x)),COMMAND);
} else {
lcd_send( ((3<<6) | (x)),COMMAND);
}
}
void lcd_out(char * txt) {
while(*txt) {
lcd_send(*txt,DATA);
txt++;
}
}
void lcd_clear(void) {
lcd_send(0x01,COMMAND);
}
void lcd_set_state(lcd_state state, cursor_state cur_state, cursor_mode cur_mode) {
if (state==LCD_DISABLE) {
lcd_send(0x08,COMMAND);
} else {
if (cur_state==CURSOR_DISABLE) {
if (cur_mode==NO_BLINK) {
lcd_send(0x0C,COMMAND);
} else {
lcd_send(0x0D,COMMAND);
}
} else {
if (cur_mode==NO_BLINK) {
lcd_send(0x0E,COMMAND);
} else {
lcd_send(0x0F,COMMAND);
}
}
}
}
void lcd_send(uint8_t byte, dat_or_comm dc) {
GPIO_ResetBits(LCD_PORT, LCD_DB7 | LCD_DB6 | LCD_DB5 | LCD_DB4 | LCD_CD | LCD_EN);
if (dc) {
GPIO_SetBits(LCD_PORT, LCD_CD);
}
if (byte & 0x10) {
GPIO_SetBits(LCD_PORT, LCD_DB4);
}
if (byte & 0x20) {
GPIO_SetBits(LCD_PORT, LCD_DB5);
}
if (byte & 0x40) {
GPIO_SetBits(LCD_PORT, LCD_DB6);
}
if (byte & 0x80) {
GPIO_SetBits(LCD_PORT, LCD_DB7);
}
GPIO_SetBits(LCD_PORT, LCD_EN);
lcd_delay();
GPIO_ResetBits(LCD_PORT, LCD_EN);
lcd_delay();
GPIO_ResetBits(LCD_PORT, LCD_DB7 | LCD_DB6 | LCD_DB5 | LCD_DB4);
if (byte & 0x01) {
GPIO_SetBits(LCD_PORT, LCD_DB4);
}
if (byte & 0x02) {
GPIO_SetBits(LCD_PORT, LCD_DB5);
}
if (byte & 0x04) {
GPIO_SetBits(LCD_PORT, LCD_DB6);
}
if (byte & 0x08) {
GPIO_SetBits(LCD_PORT, LCD_DB7);
}
GPIO_SetBits(LCD_PORT, LCD_EN);
lcd_delay();
GPIO_ResetBits(LCD_PORT, LCD_EN);
lcd_delay();
}
Hiç yorum yok:
Yorum Gönder