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

📄 t6963.c

📁 T6963控制器的液晶驱动程序
💻 C
字号:
#include "reg52.h"
#include "stdio.h"
#include "absacc.h"

#ifndef ulong
    #define ulong    unsigned long
#endif
#ifndef uint
    #define uint    unsigned int
#endif
#ifndef uchar
    #define uchar    unsigned char
#endif
/*T6963 data and command port define*/
#define LCMDW        XBYTE[0xFFF0]        /*data port*/
#define LCMCW        XBYTE[0xFFF1]        /*command port*/


/*check status byte bit 0&1,for data/command write/read*/
void fnChkST01(void)        
{
    uchar i;
    for(i=16;i>0;i--)
    {
        if((LCMCW & 0x03) == 0x03)
            break;
    }
}
/*check status bit3,for data auto write*/
void fnChkST3(void)        
{
    uchar i;
    for(i=16;i>0;i--)
    {
        if((LCMCW & 0x08) == 0x08)
            break;
    }
}
void fnCmd0(uchar uCmd)        /*write command without param*/
{
    fnChkST01();
    LCMCW = uCmd;
}
void fnCmd1(uchar uCmd,uchar uPar1)    /*write command with 1 params*/
{
    fnChkST01();
    LCMDW = uPar1;
    fnCmd0(uCmd);
}
/*write command with 2 params*/
void fnCmd2(uchar uCmd,uchar uPar1,uchar uPar2)    
{
    fnChkST01();
    LCMDW = uPar1;
    fnCmd1(uCmd,uPar2);
}

/*clear screen*/
void cls_graph(void)
{
    uchar i,j;
    fnCmd2(0x24,0x00,0x20);    /*set address pointer*/
    fnCmd0(0xB0);                /*data auto 
write*/
    for(i=0;i<128;i++)
    for(j=0;j<30;j++)
    {
        fnChkST3();
        LCMDW=0x00;
    }
    fnCmd0(0xB2);                /*end auto data 
write*/
}
void cls_text(void)
{
    uchar i,j;
    fnCmd2(0x24,0x00,0x00);    /*set address pointer*/
    fnCmd0(0xB0);                /*data auto 
write*/
    for(i=0;i<16;i++)
    for(j=0;j<30;j++)
    {
        fnChkST3();
        LCMDW=0x00;
    }
    fnCmd0(0xB2);                /*end auto data 
write*/
}


/*init LCD module*/
void fnLCMInit(void)
{
    fnCmd2(0x40,0x00,0x00);            /*text 
home,0x0000*/
    fnCmd2(0x41,30,0x00);            /*text area,30 cols for 8 bit font*/
    fnCmd2(0x42,0x00,0x20);            /*graphic home,0x2000*/
    fnCmd2(0x43,30,0x00);            /*graphic area,30 cols for 8 bit font*/
    fnCmd0(0xA0 | 0x01);            /*cursor shape*/
    fnCmd0(0x80);                    /*display 
mode*/
    fnCmd0(0x90 | 0x0F);            /*display switch*/
}

main()
{
    fnLCMInit();
    cls_graph();    /*清图形区,0x2000~0x2EFF(128*30)为一屏*/
    cls_text();     /*清文本区,0x0000~0x01DF(16*30)为一屏*/
    
    .......
   /*
   下面的程序就不用我写了吧!!
   写平时注意设置相应的地址就可以了,我现在用的就是图文混合模式,没有问题的
   */
}

⌨️ 快捷键说明

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