📄 lcd1602.c
字号:
#include "config.h"
#include"lcd1602.h"
/****************************************************************************
* 名称:ChkBusy()
* 功能:检查总线是否忙
****************************************************************************/
void ChkBusy()
{
//PINSEL0|=0xffc00000;
IODIR0=0x00f0;
while(1)
{
IOCLR0=rs;
IOSET0=rw;
IOSET0=en;
if(!(IOPIN0 & busy))break;
IOCLR0=en;
}
IODIR0=0xfff0;
}
/****************************************************************************
* 名称:WrOp()
* 功能:写函数
****************************************************************************/
void WrOp(uint8 dat)
{
uint32 date;
date=(dat<<8);
ChkBusy();
IOCLR0=rs; //全部清零
IOCLR0=rw;
IOCLR0=0xff00; //先清零
IOSET0=date; //再送数
IOSET0=en;
IOCLR0=en;
}
/****************************************************************************
* 名称:WrDat()
* 功能:写数据函数
****************************************************************************/
void WrDat(uint8 dat) //读数据
{
uint32 date;
date=(dat<<8);
ChkBusy();
IOSET0=rs;
IOCLR0=rw;
IOCLR0=0xff00; //先清零
IOSET0=date; //再送数
IOSET0=en;
IOCLR0=en;
}
void lcdinit()
{
WrOp(0x38);
WrOp(0x06); //光标加1
WrOp(0x0c); //开显示
}
/****************************************************************************
* 名称:DisText()
* 功能:显示文本函数
****************************************************************************/
void DisplayText(uint8 addr,uint8 *p)
{
WrOp(addr);
while(*p !='\0')WrDat(*(p++));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -