📄 lcm.c
字号:
#include "Includes.h"
/**************函数声明***********************/
static void ReadStatusLCM(void);
static void Delay5Ms(void);
/*****************写数据***********************/
extern void WriteDataLCM(unsigned char date)
{
ReadStatusLCM(); //检测忙
LCM_Data = date;
Delay_Xms(5);
LCM_RS = 1;
LCM_RW = 0;
LCM_E = 0; //小的延时
LCM_E = 1;
}
/*********写指令BuysC为0时忽略忙检测**************/
extern void WriteCommandLCM(unsigned char address,BuysC)
{
//if (BuysC)
ReadStatusLCM(); //根据需要检测忙
LCM_Data = address;
Delay_Xms(5);
LCM_RS = 0;
LCM_RW = 0;
LCM_E = 0;
LCM_E = 1;
}
/******************读忙状态(1忙,0不忙)*************/
void ReadStatusLCM(void)
{
LCM_Data = 0x00;
Delay_Xms(5);
LCM_RS = 0;
LCM_RW = 1;
LCM_E = 0;
LCM_E = 1;
while(Busy); //检测忙信号,忙则延时
}
/*********************LCM初始化**************************/
extern void LCMInit(void)
{
WriteCommandLCM(0x01,0); //清除屏幕
WriteCommandLCM(0x38,0); //两次功能设置8位 单行 5*7不检测忙信号
Delay_Xms(5);
WriteCommandLCM(0x38,0);
Delay_Xms(5);
WriteCommandLCM(0x01,1); //显示清屏
WriteCommandLCM(0x0C,1); // 控制光标,显示 开,闪烁
WriteCommandLCM(0x06,1); // 控制光标和文字的移动
}
/********************显示程序(对应地址写入数据)********/
extern void display_lcm(unsigned char date,unsigned char address)
{
WriteCommandLCM(address,1);
WriteDataLCM(date);
}
/****************显示字符串******************************/
extern void diaplay_string( unsigned char *adr,unsigned char N)
{
unsigned char i,a=0x80;
for(i=0;i<N;i++)
{
WriteCommandLCM(a,1);
WriteDataLCM(adr[i]);
a++;
}
}
/***********************END*******************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -