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

📄 税控机lcd测试.c

📁 这是JHD19264液晶显示器的驱动源程序
💻 C
字号:
#include <reg52.h> /*19264 举例*/
#include <intrins.h>
typedef unsigned char uchar;
typedef unsigned int uint;
sbit CEA   =P1^1;     //74HC139输入
sbit CEB   =P1^2;     //74HC139输入
sbit WDI   =P1^3;     //看门狗驱动
sbit	L_CS1=	P2^0;		//
sbit	L_CS2=	P2^1;		//
sbit	L_DI=	P2^2;		//
sbit	L_RW=	P3^6;		//
sbit	A14=	P2^6;
sbit	A15=	P2^7;
sbit    DIR=    P3^7;
sfr 	Datalcm=0x80;	//数据口

  
#define chip0  L_CS1 = 0;L_CS2 = 0
#define chip1  L_CS1 = 1;L_CS2 = 0
#define chip2  L_CS1 = 0;L_CS2 = 1
#define CERAM    CEB=0;CEA=0   //选择RAM
#define CELCD    CERAM;A15=1;A14=0   
#define L_E_H    RD=0
#define L_E_L    RD=1;L_RW=0;CELCD

/*sbit L_DI = P2^0;
sbit L_RW = P2^1;
sbit L_E = P2^4;
sbit L_CS1 = P2^7;
sbit L_CS2 = P2^6;
sbit L_SET = P2^3;*/
//-------
/***********液晶显示器接口引脚定义***************/
//sbit 	Up =P2^0;
//sbit	L_E=	P2^2;		//

//sbit	INH=	P3^7;
//sbit 	TestLED=P1^0;
//sbit    L_SET=P2^7;
//-------
//sbit TEST = P3^5;
//float abc;
uchar code X1[] = {
0x30,0x50,0xd0,0x90,0xf0,0x30,0x80,0x60,0x3c,0xe8,0x20,0xa0,0xe0,0x70,0x00,0x00,
0x04,0x06,0x03,0x11,0x13,0x12,0x18,0x0c,0x07,0x01,0x03,0x06,0x0c,0x1c,0x18,0x18
}; /*欢*/
uchar code X2[] = {
0x40,0x58,0x58,0xd0,0x10,0xf8,0x98,0x08,0x88,0xf8,0xf0,0x10,0xf8,0x70,0x00,0x00,
0x0c,0x04,0x04,0x07,0x04,0x05,0x0d,0x0d,0x08,0x1f,0x1b,0x19,0x38,0x38,0x18,0x18
}; /*迎*/
uchar code X3[] = {
0x30,0x30,0xf8,0xf8,0x08,0x10,0xd0,0x50,0x50,0xfc,0xfc,0x50,0xd0,0xf0,0x10,0x00,
0x00,0x00,0x1f,0x1f,0x10,0x10,0x13,0x1b,0x0f,0x07,0x05,0x0d,0x09,0x19,0x38,0x18
}; /*使*/
uchar code X4[] = {
0x00,0x00,0x00,0x00,0xfc,0xf8,0x48,0x48,0x48,0xf8,0xf8,0x48,0x48,0x48,0xfc,0xf8,
0x10,0x10,0x18,0x1e,0x0f,0x01,0x01,0x01,0x01,0x3f,0x1f,0x01,0x01,0x01,0x3f,0x3f
}; /*用*/
uchar code X5[] = {
0x18,0xfc,0x08,0x48,0x48,0xb8,0xd8,0x58,0xe8,0xb8,0xb8,0x08,0x08,0xf8,0xf8,0x00,
0x00,0x1f,0x11,0x11,0x11,0x14,0x15,0x16,0x16,0x10,0x11,0x11,0x11,0x3f,0x1f,0x00
}; /*图*/
uchar code X6[] = {
0xc0,0xc8,0xc8,0xf8,0xf8,0xc8,0xf8,0xf8,0xc8,0xc8,0x00,0x10,0x90,0xd8,0x48,0x48,
0x18,0x18,0x0c,0x0f,0x03,0x00,0x1f,0x1f,0x10,0x10,0x11,0x19,0x18,0x0c,0x04,0x06
}; /*形*/
uchar code X7[] = {
0x00,0x00,0x00,0xe0,0xe0,0x40,0x40,0x7c,0x7c,0x58,0x58,0x58,0xd0,0xd0,0x00,0x00,
0x10,0x18,0x08,0x0d,0x03,0x19,0x0d,0x01,0x01,0x0d,0x19,0x01,0x07,0x0c,0x18,0x38
}; /*点*/
uchar code X8[] = {
0x08,0xf8,0xf8,0x48,0xe8,0x98,0x90,0xd8,0xf0,0xbc,0xfc,0xd0,0x90,0x90,0x90,0x10,
0x00,0x3f,0x1f,0x02,0x03,0x05,0x06,0x07,0x07,0x06,0x3f,0x3f,0x06,0x06,0x04,0x04
}; /*阵*/
uchar code X12[] = {
0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,
0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa
}; /*....*/
uchar code X13[] = {
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
}; /*全黑*/
uchar code X14[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
}; /*全白*/
uchar code X15[]={
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
}; /*上边*/
uchar code X16[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80
}; /*下边*/
uchar code X17[]={
0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
}; /*左边*/
uchar code X18[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff
}; /*右边*/
uchar code X19[]={
0xff,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
}; /*左上*/
uchar code X20[]={
0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xff,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff
}; /*右上*/
uchar code X21[]={
0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xff,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80
}; /*左下*/
uchar code X22[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0xff
}; /*右下*/
//#pragma REGISTERBANK(0)
/*void initcomm(void)
{
PCON = 0x80;TMOD = 0X21; SCON = 0X50;
TH1 = 0XFa;TL1 = 0XFa; TR1 = 1;ES = 1;
TH0 = 0;TL0 = 0;TR0 = 1; ET0 = 1;
EA =0;
} */
/********************************/
/* 延时				*/
/********************************/
void Delay(uchar MS)
	{
		uchar us,usn;
		while(MS!=0)
			{ usn = 4;
				while(usn!=0)
					{
						us=0xf0;
						while (us!=0){us--;};
						usn--;
					}
				MS--;
			}
	}
void delay(void)
{
uchar i,j;
//abc = 0.1*5;
for (i = 0;i != 0xff;i++)
for (j = 0;j != 0xff;j++) ;
}
void LCD_C_D(bit flag,uchar ldata) /*flag=1 com flag=0 data*/
{
//uchar data i;
    L_DI = !flag; 
    L_E_L;
     L_RW = 0;
    P0 = ldata;
    _nop_();
    L_E_H;
    _nop_();
    _nop_();
    L_E_L;
    _nop_();
    _nop_();
    P0 = 0xFF; 
L_RW = 1; L_DI = 1;
}
void dis_one_zi(uchar x_add,uchar y_add,uchar code *po)
{
    uchar i,j,w;
    j = x_add*2+0xb8;
    if(y_add<4)
    {
        w=y_add*16+0x40;
        L_CS1=0; L_CS2=0;
    }
    if((y_add>3)&(y_add<8))
    {
        w=(y_add-4)*16+0x40;
        L_CS1=1;
        L_CS2=0;
    }
    if((y_add>7)&(y_add<12))
    {
        w=(y_add-8)*16+0x40;
        L_CS1=0;
        L_CS2=1;
    }
    LCD_C_D(1,j);
    LCD_C_D(1,w);
    for (i = 0; i < 32;i++)
    {
        if (i == 16)
        {
            LCD_C_D(1,j+1);
            LCD_C_D(1,w);
        }
        LCD_C_D(0,*po++);
    }
    LCD_C_D(1,0X3F);
}
void CLRLCD(uchar number)
{
    uchar data i,j;
    L_CS1 = 0; 
    L_CS2 = 0;
    for (i = 0xb8; i < 0xc0;i++)
    {
        LCD_C_D(1,i);
        LCD_C_D(1,0X40);
        for (j = 0; j < 0x40; j++)
        LCD_C_D(0,number);
    }
    L_CS1 = 1;
    L_CS2 = 0;
    for (i = 0xb8; i < 0xc0;i++)
    {
        LCD_C_D(1,i);
        LCD_C_D(1,0X40);
    for (j = 0; j < 0x40; j++)
        LCD_C_D(0,number);
    }
    L_CS1 = 0;
    L_CS2 = 1;
    for (i = 0xb8; i < 0xc0;i++)
    {
        LCD_C_D(1,i);
        LCD_C_D(1,0X40);
    for (j = 0; j < 0x40; j++)
        LCD_C_D(0,number);
    }
}
void wtcom(void)
	{
    DIR=0;
	L_DI = 0;		/*CLR	DI		*/
	L_RW = 1;		/*SETB	RW		*/
    P0 = 0xFF;		/*MOV	DATA_LCM,#0FFH  */
	L_E_H ;_nop_();
    while(P0 & 0X80);
    L_E_L;
    DIR=1;
	}
void main(void) using 0
{
    uchar data i,j,number;
    uchar code *p;
    //Up =0;
    //TestLED=0;
    //initcomm();
//    L_SET = 0;
    for ( j = 0; j != 0xff; j++) ;
 //   L_SET = 1;
    for ( j = 0; j != 0xff; j++) ;
    //chip0;
    //wtcom();
    //LCD_C_D(1,0X3E);
   // wtcom();
   // LCD_C_D(1,0XC0);
   // wtcom();
   // LCD_C_D(1,0X3F);
    //wtcom();
    CELCD;
    CLRLCD(0x40);
    
while(1)
{
    //LCD_C_D(1,0Xb8);
    //wtcom();
   // LCD_C_D(1,0X40);
    wtcom();
   LCD_C_D(0,0);
    wtcom();
    //LCD_C_D(1,0X3E);
    p=X14;
    for (number=1;number<3;number++)
    {
        for (i = 1; i < 12;i++)
        {
            dis_one_zi(number,i,p);
        }
    }
    p=X15;
    for (number=1;number<11;number++)
    {
        dis_one_zi(0,number,p);
    }
    p=X16;
    for (number=1;number<11;number++)
    {
        dis_one_zi(3,number,p);
    }
    p=X17;
    for (number=1;number<3;number++)
    {
        dis_one_zi(number,0,p);
    }
    p=X18;
    for (number=1;number<3;number++)
    {
        dis_one_zi(number,11,p);
    }
    p=X19; 
    dis_one_zi(0,0,p);
    p=X20;
    dis_one_zi(0,11,p);
    p=X21; 
    dis_one_zi(3,0,p);
    p=X22; 
    dis_one_zi(3,11,p);
    p=X1; 
    dis_one_zi(1,3,p);
    p=X2; 
    dis_one_zi(1,5,p);
    p=X3; 
    dis_one_zi(1,7,p);
    p=X4; 
    dis_one_zi(1,9,p);
    p=X5; 
    dis_one_zi(2,3,p);
    p=X6; 
    dis_one_zi(2,5,p);
    p=X7; 
    dis_one_zi(2,7,p);
    p=X8; 
    dis_one_zi(2,9,p);
    LCD_C_D(1,0X3F);  
    delay();delay();delay();
    LCD_C_D(1,0X3E);
    p=X12;
    for (number=0;number<4;number++)
    {
        for (i = 0; i < 12;i++)
        {
            dis_one_zi(number,i,p);
        }
    }
    LCD_C_D(1,0X3F);
    p=X13;
    for (number=0;number<4;number++)
    {
        for (i = 0; i < 12;i++)
        {
            dis_one_zi(number,i,p);
        }
    }              
   // LCD_C_D(1,0X3F);
    Delay(200); 
//    TestLED=!TestLED;
    }
}

⌨️ 快捷键说明

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