⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd12232_drv.c

📁 各种器件的驱动程序
💻 C
字号:
/*********************************************************************************************************
**				                               Small RTOS(51)
**                                   The Real-Time Kernel(For Keil c51)
**
**                                  (c) Copyright 2002-2002, 许守才
**                                           All Rights Reserved
**
**                                                  V1.20.0
**
**
**--------------文件信息--------------------------------------------------------------------------------
**文   件   名:
**创   建   人: 许守才
**最后修改日期: 2004年8月31日
**描        述:
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人:
** 版  本:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
** 修改人:
** 版  本:
** 日 期:
** 描 述:
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

sbit    P_cs=P1^0;
sbit    P_clk=P1^1;
sbit    P_dat=P1^2;
#define WR_COMMAND  0x00
#define WR_DATA     0x01
#define RD_STAUSTE  0x02
#define RD_DATA     0x03


void wr_command(uchar dat )
{
    P_dat=1;
    P_clk=0;
    P_clk=1;  //d0
    P_clk=0
    P_clk=1;  //d1
    P_clk=0;
    P_clk=1;  //d2
    P_clk=0;
    P_clk=1;  //d3
    P_clk=0;
    P_clk=1;  //d4
    P_clk=0;
    P_dat=0;
    P_clk=1;
    P_clk=0;
    P_clk=1;
    P_clk=0;
    P_clk=1;
    P_clk=0;
    ACC=dat;
    for(dat=4;dat>0;dat--)
    {
        CY=ACC & 0x08;
        P_dat=CY;
        P_clk=1;
        P_clk=0;
    }
    for(dat=4;dat>0;dat--)
    {
        P_dat=0;
        P_clk=1;
        P_clk=0;
    }
    for(dat=4;dat>0;dat--)
    {
        CY=ACC & 0x08;
        P_dat=CY;
        P_clk=1;
        P_clk=0;
    }
    for(dat=4;dat>0;dat--)
    {
        P_dat=0;
        P_clk=1;
        P_clk=0;
    }
}

void wr_data(uchar dat )
{
    P_dat=1;
    P_clk=0;
    P_clk=1;  //d0
    P_clk=0
    P_clk=1;  //d1
    P_clk=0;
    P_clk=1;  //d2
    P_clk=0;
    P_clk=1;  //d3
    P_clk=0;
    P_clk=1;  //d4
    P_clk=0;
    P_dat=0;
    P_clk=1;  //d5
    P_clk=0;
    P_dat=1;
    P_clk=1;  //d6
    P_clk=0;
    P_dat=0;
    P_clk=1;  //d7
    P_clk=0;
    ACC=dat;
    for(dat=4;dat>0;dat--)
    {
        CY=ACC & 0x08;
        P_dat=CY;
        P_clk=1;
        P_clk=0;
    }
    for(dat=4;dat>0;dat--)
    {
        P_dat=0;
        P_clk=1;
        P_clk=0;
    }
    for(dat=4;dat>0;dat--)
    {
        CY=ACC & 0x08;
        P_dat=CY;
        P_clk=1;
        P_clk=0;
    }
    for(dat=4;dat>0;dat--)
    {
        P_dat=0;
        P_clk=1;
        P_clk=0;
    }
}

void delay_us( uint i )
{
    for(;i>0;i--);
}

void delay_ms(uint i)
{
    for(;i>0;i--)
    delay_us(1000);
}

void Lcd_init(void)
{
    wr_command(0x30);
    delay_us(100);
    wr_command(0x30);
    delay_us(100);
    wr_command(0x0c);
    delay_us(100);
    wr_command(0x01);
    delay_ms(10);
    wr_command(0x06);
    delay_us(100);
}

void Lcd_hanzi( uchar x,uchar y,char *p )
{
    if( x>1 || y>6 )return;
    wr_command(0x80+(x<<4)+y);
    delay_us(100);
    wr_command(*p);
    delay_us(100);
    wr_command(*(p+1));
    delay_us(100);
}

void main( void )
{
    Lcd_init();
    Lcd_hanzi(0,0,"许");
    while(1);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -