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

📄 test140

📁 该程序为SED1335 控制器 图形液晶显示模块DMF50174的驱动程序
💻
字号:
#include <AT898252.h>
#include <math.h>
#include <absacc.h>
#include <string.h>
#include <intrins.h>
#define  uchar unsigned char
#define	 uint  unsigned int

/* 直接访问方式地址定义,根据用户平台接口修改 */
#define  wcadd1 XBYTE[0x0100]  		/* 写指令代码地址 */
#define  wdadd1 XBYTE[0x0000]  		/* 写参数及显示数据地址 */
#define  rdadd1 XBYTE[0x0100]  		/* 读参数及显示数据地址 */
#define  rbadd1 XBYTE[0x0000]  		/* 读忙状态地址 */


/* 程序参数定义,根据用户选择的LCM型号修改 */
#define  PARA 0x30;

/* 定义调用子程序 */
void CCW1_PR(uchar O_X,uchar O_Y,uchar code_1);  /* 汉字写入子程序(文本方式) */
void INT_1();
void CGRAM();
void CLEAR();
void main();
void delay_s(uchar x);

/*-------------------240128的SYSTEM SET 参数-------------------------------*/
uchar SYSTAB[8]={0x30,0x87,0x07,0x27,0x42,0xf0,0x30,0x00};
uchar SCRTAB[10]={0x00,0x00,0xf0,0x0b0,0x05,0xf0,0x70,0x1a,0x00,0x00};

/*-------------------320240的SYSTEM SET 参数-------------------------------*/
/*unsigned char SYSTAB[8]={0x30,0x87,0x07,0x28,0x42,0xf0,0x29,0x00};
  unsigned char SCRTAB[10]={0x00,0x00,0xf0,0xce,0x04,0xf0,0x80,0x00,0x00,0x00};*/
/* 在此可以观察文本方式下的字符及光标的显示效果(写入内容为"Sevicer tel:") */
//unsigned char CTAB1[12]={0x53,0x65,0x76,0x69,0x63,0x65,0x72,0x20,0x54,0x45,0x4c,0x3a};
/* 文本方式下的汉字显示方法
 在文本方式下显示汉字, 需要在SED1335 等显示RAM 内建立一个自定义字符库
 CGRAM,然后通过在相应的单元写入相应的字符代码来实现汉字的显示.
 SED1335 等的字符代码对应的是8x8 点阵的字符块, 而一个汉字需要四个8x8
 点阵的字符块组合显示, 所以在建立汉字的CGRAM 时, 需要四个字符代码管理一个
 汉字, 一般是按左上部, 左下部, 右上部和右下部四部分分配代码. 比如在演示程
 序中建立 "清华" 两个汉字的CGRAM,那么这两个汉字的代码为80H(81H,82H,83H)和
 84H(85H,86H,87H). */
 
code unsigned char CGTAB[4][32]={0x00,0x40,0x37,0x10,0x83,0x60,0x2F,0x08,    /* 清 */
                                 0x13,0x22,0xE3,0x22,0x23,0x22,0x22,0x22,
                                 0x40,0x48,0xFC,0x40,0xF8,0x40,0xFE,0x08,
                                 0xFC,0x08,0xF8,0x08,0xF8,0x08,0x28,0x10,
                                 0x04,0x04,0x08,0x08,0x18,0x29,0x4A,0x08,    /* 华 */
                                 0x09,0x01,0xFF,0x01,0x01,0x01,0x01,0x01,
                                 0x40,0x48,0x58,0x60,0xC0,0x40,0x44,0x44,
                                 0x3C,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,
                                 0x04,0xFF,0x05,0x41,0x33,0x14,0x01,0xF6,    /* 蓬 */
                                 0x1B,0x10,0x13,0x10,0x17,0x10,0x28,0x47,
                                 0x44,0xFE,0x40,0xF8,0x10,0xE0,0x18,0x46,
                                 0xF8,0x40,0xF8,0x40,0xFC,0x40,0x46,0xFC,
                                 0x00,0x43,0x30,0x10,0x00,0x07,0xF1,0x11,    /* 远 */
                                 0x11,0x11,0x12,0x12,0x14,0x28,0x47,0x00,
                                 0x10,0xF8,0x00,0x00,0x08,0xFC,0x20,0x20,
                                 0x20,0x24,0x24,0x1C,0x00,0x06,0xFC,0x00  };
/*********************/
/*     演示主程序    */
/*********************/
void main()
{
	uchar code_1;
	uint O_X,O_Y;
//	delay_s(10);
	INT_1();  			 /* 调初始化子程序 */

	CGRAM();     			/* 调CGRAM子程序 */
//	delay_s(1);
    	code_1=0x80;  			/* 取字模 */
    	O_X=0x00;
    	O_Y=0x00;
    	CCW1_PR(O_X,O_Y,code_1);  	/* 调中文显示子程序(文本方式)  */

//    	code_1=0x80;  			/* 取字模 */
//  	O_X=0x00;
//    	O_Y=0x00;
//    	CCW1_PR(O_X,O_Y,code_1);  	/* 调中文显示子程序(文本方式)  */
    	
    	code_1=0x84;  			/* 取字模 */
    	O_X=0x02;
    	O_Y=0x00;
    	CCW1_PR(O_X,O_Y,code_1);  	/* 调中文显示子程序(文本方式)  */
    	
    	code_1=0x88;  			/* 取字模 */
    	O_X=0x04;
    	O_Y=0x00;
    	CCW1_PR(O_X,O_Y,code_1);  	/* 调中文显示子程序(文本方式)  */
    	 
    	code_1=0x8c;  			/* 取字模 */
    	O_X=0x06;
    	O_Y=0x00;
    	CCW1_PR(O_X,O_Y,code_1);  	/* 调中文显示子程序(文本方式)  */

    	delay_s(200);
    	delay_s(200);
    	delay_s(200);
    	delay_s(200);
    	delay_s(200);
    	delay_s(200);
    	delay_s(200);
    	delay_s(200);
    	delay_s(200);
    	CLEAR();

 //   	delay_s(200);
 //   	delay_s(200);
	CGRAM();     			/* 调CGRAM子程序 */
    	code_1=0x80;  			/* 取字模 */
    	O_X=0x00;
    	O_Y=0x02;
    	CCW1_PR(O_X,O_Y,code_1);  	/* 调中文显示子程序(文本方式)  */


     	
    	code_1=0x84;  			/* 取字模 */
    	O_X=0x02;
    	O_Y=0x02;
    	CCW1_PR(O_X,O_Y,code_1);  	/* 调中文显示子程序(文本方式)  */
    	
    	code_1=0x88;  			/* 取字模 */
    	O_X=0x04;
    	O_Y=0x02;
    	CCW1_PR(O_X,O_Y,code_1);  	/* 调中文显示子程序(文本方式)  */
    	 
    	code_1=0x8c;  			/* 取字模 */
    	O_X=0x06;
    	O_Y=0x02;
    	CCW1_PR(O_X,O_Y,code_1);  	/* 调中文显示子程序(文本方式)  */

    	code_1=0x80;  			/* 取字模 */
  	O_X=0x08;
    	O_Y=0x02;
    	CCW1_PR(O_X,O_Y,code_1);  	/* 调中文显示子程序(文本方式)  */
   	
//    	code_1=0x80;  			/* 取字模 */
//    	O_X=0x02;
//   	O_Y=0x02;
//   	CCW1_PR(O_X,O_Y,code_1); 	/* 调中文显示子程序(文本方式)  */
  	
	while(1);
}

/************************/
/*   初始化子程序函数   */
/************************/
void INT_1()
{
     	uchar i;
      	CLEAR();       			/* 调清屏子程序 */
     	wcadd1=0x40;   			/* SYSTEM SET代码 */
     	for(i=0;i<8;i++)
        {
		wdadd1=SYSTAB[i];  	/* 写入参数 */
        }
        
      	wcadd1=0x44;   			/* SCROLL代码 */
      	for(i=0;i<10;i++)
        {
        	wdadd1=SCRTAB[i];   	/* 写入参数 */
        }

//      	CLEAR();       			/* 调清屏子程序 */
        
      	wcadd1=0x5a;   			/* HDOT SCR 代码 */
      	wdadd1=0x00;   			/* 设置参数P1 */
      	wcadd1=0x5b;   			/* OVLAY 代码 */
      	wdadd1=0x00;   			/* 设置参数:显示一,三区为文本属性 */
//      	CLEAR();       			/* 调清屏子程序 */
//     	delay_s(1);
//	delay_s(200);
      	wcadd1=0x59;   			/* 显示状态设置 */
      	wdadd1=0x54;   			/* 设置参数:显示一~四区开显示 */
}

/*************************/
/*    清屏子程序函数     */
/*************************/
void CLEAR()
{
    	uint i,j;
    	wcadd1=0x4c;   /* CSRDIR 代码 */
    	wcadd1=0x46;   /* CSRW 代码 */
    	wdadd1=0x00;   /* 设置参数光标指针低8位 */
    	wdadd1=0x00;   /* 设置参数光标指针高8位 */
    	wcadd1=0x42;   /* MWRITE 代码 */
    	for(j=0;j<1638;j++)       /*清64K的显示存储器*/
      	{
        	for(i=0;i<40;i++)     /*写入一行*/
          	{
            		wdadd1=0x00;     /* 写入数据 */
//            		_nop_();
//            		_nop_();
          	}
      	}
}
/************************/
/*   CGRAM子程序函数    */
/************************/
void CGRAM()
{
   	uchar i,j;
   	wcadd1=0x5c;  	/* CGRAMADR 代码 */
   	wdadd1=0x00;  	/* 设置SAG=0x3000 */
   	wdadd1=0x30;
   	wcadd1=0x46;  	/* CSRW 代码 */
   	wdadd1=0x00;  	/* 设置CSR=0x3400(字符代码=80H)*/
   		 	/* CSR=SAG+8*80H*/
   	wdadd1=0x34;
   	wcadd1=0x4c;  	/* CSRDIR 代码 */
   	wcadd1=0x42;  	/* MWRITE 代码 */
   	for(j=0;j<4;j++)
     	{
   		for(i=0;i<32;i++)
      		{
       			wdadd1=CGTAB[j][i];  /* 写入字模数据 */
       		}
    	}
    	delay_s(1);
}

/***************************/
/*  写汉字子程序(文本)函数 */
/***************************/
void CCW1_PR(uint O_X,uint O_Y,uchar code_1)
{
    	uint i,j;
    	i=PARA;
    	j=i*O_Y+O_X;
    	wcadd1=0x4f;      /* CSRDIR 代码(下移) */
    	wcadd1=0x46;      /* CSRW 代码 */
    	wdadd1=j%256;     /* 设置光标地址 */
    	wdadd1=j/256;
    	wcadd1=0x42;      /* MWRITE 代码 */
    	wdadd1=code_1;    /* 写入汉字代码 */
    	wdadd1=code_1+1;  /* 写入汉字代码 */
    	j++;
    	wcadd1=0x46;      /* CSRW 代码 */
    	wdadd1=j%256;     /* 设置光标地址 */
    	wdadd1=j/256;
    	wcadd1=0x42;      /* MWRITE 代码 */
    	wdadd1=code_1+2;  /* 写入汉字代码 */
    	wdadd1=code_1+3;  /* 写入汉字代码 */
}

void delay_s(uchar x)
{
	uchar i;
	
	while(x>0)
	{
		for(i=200;i>0;i--)
		{}
		x--;
	}
}


 

⌨️ 快捷键说明

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