本帖最后由 隐身状态 于 2012-2-12 11:48 编辑
/****************************************************************************
* File: main.c
* 功能:向LCD输出字符
****************************************************************************/
#include <LPC21xx.H>
#define rs (1<<8)
#define rw (1<<9)
#define en (1<<10)
#define busy 0x00000080
#define uint8 unsigned char
#define uint32 unsigned int
/****************************************************************************
* 名称:ChkBusy()
* 功能:检查总线是否忙
****************************************************************************/
void ChkBusy()
{
IO0DIR=0x700; //P0.0~P0.7为输入
while(1)
{
IO0CLR=rs;
IO0SET=rw;
IO0SET=en;
if((IO0PIN&busy)==0)
break;
IO0CLR=en;
}
IO0CLR=en;
IO0DIR=0x7ff;
}
/****************************************************************************
* 名称:WrOp()
* 功能:写函数
****************************************************************************/
void WrOp(uint8 dat)
{
ChkBusy(); //检测是否繁忙
IO0CLR=rs;
IO0CLR=rw;
IO0CLR=0xff; //先清零
IO0CLR=en;
IO0SET=dat;
IO0SET=en;
IO0CLR=en;
}
/****************************************************************************
* 名称:WrDat()
* 功能:写数据函数
****************************************************************************/
void WrDat(uint8 dat)
{
ChkBusy(); //检测是否繁忙
IO0SET=rs;
IO0CLR=rw;
IO0CLR=en;
IO0CLR=0xff; //先清零
IO0SET=dat;
IO0SET=en;
IO0CLR=en;
}
/****************************************************************************
* 名称:lcd_init()
* 功能:lcd初始化函数
****************************************************************************/
void lcd_init(void)
{
WrOp(0x38);
WrOp(0x0c);
WrOp(0x06);
WrOp(0x01);
}
/****************************************************************************
* 名称:DisText()
* 功能:显示文本函数
****************************************************************************/
/*
/****************************************************************************
* 名称:main()
* 功能:显示文本
****************************************************************************/
int main(void)
{ PINSEL0=0x00000000; //IO选择GPIO
PINSEL1=0x00000000;
IO0DIR=0x7ff; //设置为输出
IO0CLR=0x7ff;
lcd_init();
WrOp(0x80);;
WrDat(2) ;
}
这程序有问题 吗??为什么LCD1602没显示 |
|