|
楼主 |
发表于 2010-1-11 15:24:50
|
显示全部楼层
仔细看整个程序,发现回复【1楼】lvhaian 安哥
-----------------------------------------------------------------------
明白了
仔细看了整个程序,发现在使用该函数的时候都是后四位都是0,而在后四位非零情况时用的是
/*******************************************************************************************************
** 函数名称: lcd_write_byte
** 功能描述: 向LCD写入数据
** 输入参数: INT8U byte: 数据
** INT8U type: 类型
** 输出参数: 无
********************************************************************************************************/
void lcd_write_byte(INT8U byte, INT8U type)
{
if(type)
{LCD_DATA_MODE;}
else
{LCD_CMD_MODE;}
temp = byte;
if(byte & BIT_POSITION7)
{BIT_SET(LCD_DATA7_PORT, LCD_DATA7);}
else
{BIT_CLR(LCD_DATA7_PORT, LCD_DATA7);}
if(byte&BIT_POSITION6)
{BIT_SET(LCD_DATA6_PORT, LCD_DATA6);}
else
{BIT_CLR(LCD_DATA6_PORT, LCD_DATA6);}
if(byte&BIT_POSITION5)
{BIT_SET(LCD_DATA5_PORT, LCD_DATA5);}
else
{BIT_CLR(LCD_DATA5_PORT, LCD_DATA5);}
if(byte&BIT_POSITION4)
{BIT_SET(LCD_DATA4_PORT, LCD_DATA4);}
else
{BIT_CLR(LCD_DATA4_PORT, LCD_DATA4);}
LCD_E_HIGH; // E 信号
delay_us(5);
LCD_E_LOW;
delay_xus(39); // 39 us!
byte <<= 4;
if(byte & BIT_POSITION7)
{BIT_SET(LCD_DATA7_PORT, LCD_DATA7);}
else
{BIT_CLR(LCD_DATA7_PORT, LCD_DATA7);}
if(byte & BIT_POSITION6)
{BIT_SET(LCD_DATA6_PORT, LCD_DATA6);}
else
{BIT_CLR(LCD_DATA6_PORT, LCD_DATA6);}
if(byte & BIT_POSITION5)
{BIT_SET(LCD_DATA5_PORT, LCD_DATA5);}
else
{BIT_CLR(LCD_DATA5_PORT, LCD_DATA5);}
if(byte & BIT_POSITION4)
{BIT_SET(LCD_DATA4_PORT, LCD_DATA4);}
else
{BIT_CLR(LCD_DATA4_PORT, LCD_DATA4);}
LCD_E_HIGH; // E 信号
delay_xus(5);
LCD_E_LOW;
delay_ms(2); // 延时 10 mS
} |
|