|
发表于 2009-10-8 19:50:42
|
显示全部楼层
LCD的驱动肯定有问题,时续不对
/*********************
I/O口初始化
**********************/
void LCD_IO_Init()
{
DDRC=0XFF;
DDRA=0XFF;
PORTC=0XFF;
PORTA=0XFF;
}
/********************************
写寄存器地址函数
********************************/
void LCD_WriteRegister(uint8 index)
{
LCD_RS_L ;
LCD_CS_L;
DATA = index;
LCD_WR_L;
LCD_WR_H;
LCD_CS_H;
LCD_RS_L;
}
/***************************
写寄存器数据函数
****************************/
void LCD_WriteByte(uint8 data)
{
LCD_RS_H;
LCD_CS_L;
DATA= data;
LCD_WR_L;
LCD_WR_H;
LCD_CS_H;
LCD_RS_L;
}
/***************************************************
//写寄存器数据函数
//输入:type 数据位数: 1为16位,0为8位。
****************************************************/
void LCD_WriteCommand(uint8 type,uint8 index,uint16 val)
{
LCD_WriteRegister(index);
if(type)
{
LCD_WriteByte(val>>8);
}
LCD_WriteByte(val&0xff);
}
/***************************
//写16位数据函数
//输入: val数据
****************************/
void LCD_WriteData(uint16 val)
{
LCD_WriteByte(val>>8);
LCD_WriteByte(val&0xff);
}
这样一改就好了 |
|