晒下LCD的代码

2019-07-15 20:37发布

本帖最后由 alittleharry 于 2014-3-16 20:09 编辑

下面是1602液晶初始化代码 ,4位模式数据线模式;第2段到第5段是什么意思?LCD指令码没有0X0002和 0X0003
//LCD_DATA 为数据总线
//LCD_CMD_W_timing() 为写指令操作时序
void OpenLCD(void)

{               
        Temp_LCD_DATA = LCD_DATA ;                                // Save the Port Value of LCD_DATA
        LCD_E = 0 ;
        LCD_DATA &= 0xfff0;                                                // LCD DB[4:7] & RS & R/W --> Low
        DIR_LCD_DATA &= 0xfff0;                                        // LCD DB[4:7} & RS & R/W are output function
        DIR_LCD_E = 0;                                                        // Set E pin as output
        DIR_LCD_RS = 0 ;
        DIR_LCD_RW = 0 ;
//第2段
        LCD_DATA &= 0xfff0 ;
        LCD_DATA |= 0x0003 ;
        LCD_CMD_W_Timing() ;
        LCD_L_Delay() ;

        LCD_DATA &= 0xfff0 ;
        LCD_DATA |= 0x0003 ;
        LCD_CMD_W_Timing() ;
        LCD_L_Delay() ;

        LCD_DATA &= 0xfff0 ;
        LCD_DATA |= 0x0003 ;
        LCD_CMD_W_Timing() ;
        LCD_L_Delay() ;
//第5段
        LCD_DATA &= 0xfff0 ;
        LCD_DATA |= 0x0002 ;
        LCD_CMD_W_Timing() ;
        LCD_L_Delay() ;

        WriteCmdLCD(DISP_2Line_4Bit) ;
        LCD_S_Delay() ;

        WriteCmdLCD(DISP_ON) ;
        LCD_S_Delay() ;

        WriteCmdLCD(ENTRY_INC) ;
        LCD_S_Delay() ;

        WriteCmdLCD(CLR_DISP) ;
        LCD_L_Delay() ;

        LCD_DATA = Temp_LCD_DATA ;                        
}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
woodmice
1楼-- · 2019-07-16 01:37
 精彩回答 2  元偷偷看……
alittleharry
2楼-- · 2019-07-16 06:05
woodmice 发表于 2014-3-14 22:12
没弄明白你说的问题是啥

        LCD_DATA &= 0xfff0 ;
        LCD_DATA |= 0x0003 ;
        LCD_CMD_W_Timing() ;
        LCD_L_Delay() ;

        LCD_DATA &= 0xfff0 ;
        LCD_DATA |= 0x0003 ;
        LCD_CMD_W_Timing() ;
        LCD_L_Delay() ;

        LCD_DATA &= 0xfff0 ;
        LCD_DATA |= 0x0003 ;
        LCD_CMD_W_Timing() ;
        LCD_L_Delay() ;

        LCD_DATA &= 0xfff0 ;
        LCD_DATA |= 0x0002 ;
        LCD_CMD_W_Timing() ;
        LCD_L_Delay() ;
就是问上面这些是什么意思,LCD指令码中没有0X0003和0x0002
alittleharry
3楼-- · 2019-07-16 11:23
自顶一下{:1:}
woodmice
4楼-- · 2019-07-16 14:01
前3组设置数据长度为8位,行数和字型点阵不明,因为低4位数据线未连接
第四组将数据长度设置成4位,紧随其后的一组将行数设置成2行,字型设置成5*7点阵
这个不是3和2编码的指令,这个是0X3?和0X2?,因为数据线在4位操作时是和LCD1602的DB7-DB4连接,所以出现在 位3-位0 的指令要作为lcd1602的 位7-位4 来看
woodmice
5楼-- · 2019-07-16 16:50
多看一下器件资料,这个问题就明白了
alittleharry
6楼-- · 2019-07-16 18:41
 精彩回答 2  元偷偷看……

一周热门 更多>