📄 lcd.c
字号:
#include "LCD.h"
void Init_LCD(void)
{
SET_DISABLE;
SET_RS_OUT;
SET_RW_OUT;
SET_EN_OUT;
LCD_DDR = 0x00;
LCD_DATA = 0xff;
LCD_SendData(0x38,0); //reset
LCD_SendData(0x08,0); //close display
LCD_SendData(0x01,0); //clear
LCD_SendData(0x06,0); //set pointer
LCD_SendData(0x0e,0); //open display
}
void LCD_WaitReady(void)
{
LCD_DDR = 0x00;
LCD_DATA |= 0xff;
SET_RS_CMD;
SET_RW_READ;
SET_ENABLE; //RS=0 R/W=1 EN=1
while(LCD_PIN & 0x80)
; //if Bit 7 = 1 then busy
SET_DISABLE;
}
void LCD_SendData(uint8_t cmd,uint8_t data)
{
if(cmd != 0x38)
LCD_WaitReady();
if(cmd)
{
SET_RS_CMD;
SET_RW_WRITE; //R/W=0 RS=0
LCD_DATA = cmd;
LCD_DDR = 0xff;
}
else
{
SET_RS_DATA;
SET_RW_WRITE;//R/W=0 RS=1
LCD_DATA = data;
LCD_DDR = 0xff;
}
SEND_EN_SINGAL;
}
void LCD_Clear(void){LCD_SendData(0x01,0);}
void LCD_SetXY(uint8_t x,uint8_t y)
{
if(y)
LCD_SendData(ADDR_ROW2 + x,0);
else
LCD_SendData(ADDR_ROW1 + x,0);
}
void LCD_DispStr(char *p)
{
while(*p)
LCD_SendData(0,(uint8_t)*(p++));
}
void LCD_DispNum(uint32_t num)
{
char buf[11]={0};
char *p = *buf[10];
uint8_t i;
do{
*(--p) = num%10 + '0';
num /= 10;
}while(num)
LCD_DispStr(p);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -