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

📄 test140.lst

📁 该程序为SED1335 控制器 图形液晶显示模块DMF50174的驱动程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  TEST140                                                                03/15/2005 11:37:03 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE TEST140
OBJECT MODULE PLACED IN .\TEST140.OBJ
COMPILER INVOKED BY: D:\2_soft\C51\BIN\C51.EXE .\TEST140.C DEBUG OBJECTEXTEND

stmt level    source

   1          /***************************包含的头文件******************************/
   2          #include <AT898252.h>
   3          #include <math.h>
   4          #include <absacc.h>
   5          #include <string.h>
   6          #include <intrins.h>
   7          
   8          /*****************************宏定义**********************************/
   9          #define  uchar unsigned char
  10          #define	 uint  unsigned int
  11          
  12          /****************************端口声明*********************************/
  13          #define  wcadd1 XBYTE[0x0100]  		//写指令代码地址 
  14          #define  wdadd1 XBYTE[0x0000]  		//写参数及显示数据地址 
  15          #define  rdadd1 XBYTE[0x0100]  		//读参数及显示数据地址
  16          #define  rbadd1 XBYTE[0x0000]  		//读忙状态地址
  17          
  18          /***************************函数的声明********************************/
  19          void CCW1_PR(uchar O_X,uchar O_Y,uchar code_1);	//汉字写入子程序(文本方式)
  20          void INT_1(void);				//液晶初始化子程序
  21          void CGRAM(void);				//CGRAM子程序函数
  22          void CLEAR(void);				//清屏子函数
  23          void main(void);				//液晶显示演示主函数
  24          void delay_s(uchar x);				//延时子程序
  25          void display1(void);				//黑白阴影显示子函数
  26          void display2(void);				//数字,英文显示子函数
  27          
  28          /**************************全局变量的定义*****************************/
  29          #define  PARA 0x30
  30          
  31          uchar SYSTAB[8]={0x30,0x87,0x07,0x27,0x42,0xf0,0x30,0x00};		//320240的SYSTEM SET参数
  32          uchar SCRTAB[10]={0x00,0x00,0xf0,0x00,0x40,0xf0,0x00,0x80,0x00,0x00};	//320240的SCROLL参数
  33          
  34          uchar CTAB1[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};	//数字0~9
  35          uchar CTAB2[26]={0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,
  36          		 0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,
  37          		 0x55,0x56,0x57,0x58,0x59,0x5a};			//大写字母A~Z
  38          uchar CTAB3[26]={0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,
  39          		 0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,
  40          		 0x75,0x76,0x77,0x78,0x79,0x7a};			//小写字母a~z
  41          /* 文本方式下的汉字显示方法
  42           在文本方式下显示汉字, 需要在SED1335 等显示RAM 内建立一个自定义字符库CGRAM,
  43           然后通过在相应的单元写入相应的字符代码来实现汉字的显示.SED1335 等的字符代
  44           码对应的是8x8 点阵的字符块, 而一个汉字需要四个8x8点阵的字符块组合显示, 所
  45           以在建立汉字的CGRAM 时, 需要四个字符代码管理一个汉字, 一般是按左上部, 左下
  46           部, 右上部和右下部四部分分配代码. 比如在演示程序中建立 "清华" 两个汉字的
  47           CGRAM,那么这两个汉字的代码为80H(81H,82H,83H)和84H(85H,86H,87H). 
  48           */
  49           code uchar CGTAB[4][32]={0x00,0x40,0x37,0x10,0x83,0x60,0x2F,0x08,    /* 清 */
  50                                    0x13,0x22,0xE3,0x22,0x23,0x22,0x22,0x22,
  51                                    0x40,0x48,0xFC,0x40,0xF8,0x40,0xFE,0x08,
  52                                    0xFC,0x08,0xF8,0x08,0xF8,0x08,0x28,0x10,
  53                                    0x04,0x04,0x08,0x08,0x18,0x29,0x4A,0x08,    /* 华 */
  54                                    0x09,0x01,0xFF,0x01,0x01,0x01,0x01,0x01,
  55                                    0x40,0x48,0x58,0x60,0xC0,0x40,0x44,0x44,
C51 COMPILER V6.12  TEST140                                                                03/15/2005 11:37:03 PAGE 2   

  56                                    0x3C,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,
  57                                    0x04,0xFF,0x05,0x41,0x33,0x14,0x01,0xF6,    /* 蓬 */
  58                                    0x1B,0x10,0x13,0x10,0x17,0x10,0x28,0x47,
  59                                    0x44,0xFE,0x40,0xF8,0x10,0xE0,0x18,0x46,
  60                                    0xF8,0x40,0xF8,0x40,0xFC,0x40,0x46,0xFC,
  61                                    0x00,0x43,0x30,0x10,0x00,0x07,0xF1,0x11,    /* 远 */
  62                                    0x11,0x11,0x12,0x12,0x14,0x28,0x47,0x00,
  63                                    0x10,0xF8,0x00,0x00,0x08,0xFC,0x20,0x20,
  64                                    0x20,0x24,0x24,0x1C,0x00,0x06,0xFC,0x00  };
  65          
  66          /************************液晶显示演示主函数***************************/
  67          void main(void)
  68          {
  69   1      	uchar code_1;
  70   1      	uint O_X,O_Y;
  71   1      //	delay_s(200);
  72   1      	delay_s(200);
  73   1      	INT_1();			//调初始化子程序 
  74   1      	delay_s(20);
  75   1      	
  76   1      	CGRAM();     			//调CGRAM子程序
  77   1      	display1();			//黑白阴影显示子程序
  78   1      	
  79   1          	CLEAR();			//清屏
  80   1         	
  81   1      	CGRAM();     			//调CGRAM子程序
  82   1      	delay_s(1);
  83   1          	code_1=0x80;  			//取字模
  84   1          	O_X=0x10;
  85   1          	O_Y=0x02;
  86   1          	CCW1_PR(O_X,O_Y,code_1);  	//调中文显示子程序(文本方式)
  87   1      
  88   1      	code_1=0x84;  			//取字模
  89   1          	O_X=0x12;
  90   1          	O_Y=0x02;
  91   1          	CCW1_PR(O_X,O_Y,code_1);  	//调中文显示子程序(文本方式)
  92   1          	
  93   1          	code_1=0x88;  			//取字模
  94   1          	O_X=0x14;
  95   1          	O_Y=0x02;
  96   1          	CCW1_PR(O_X,O_Y,code_1);  	//调中文显示子程序(文本方式)
  97   1          	
  98   1          	code_1=0x8c;  			//取字模
  99   1          	O_X=0x16;
 100   1          	O_Y=0x02;
 101   1          	CCW1_PR(O_X,O_Y,code_1);  	//调中文显示子程序(文本方式)
 102   1          	
 103   1      	display2();
 104   1      	while(1);
 105   1      }
 106          
 107          /************************初始化子程序函数*****************************/
 108          void INT_1()
 109          {
 110   1           	uchar i;
 111   1            	CLEAR();       			//调清屏子程序
 112   1           	wcadd1=0x40;   			//SYSTEM SET代码
 113   1           	for(i=0;i<8;i++)
 114   1              {
 115   2      		wdadd1=SYSTAB[i];  	//写入参数
 116   2              }
 117   1              
C51 COMPILER V6.12  TEST140                                                                03/15/2005 11:37:03 PAGE 3   

 118   1            	wcadd1=0x44;   			//SCROLL代码
 119   1            	for(i=0;i<10;i++)
 120   1              {
 121   2              	wdadd1=SCRTAB[i];   	//写入参数
 122   2              }
 123   1             
 124   1           	wcadd1=0x5a;   			//HDOT SCR 代码
 125   1            	wdadd1=0x00;   			//设置参数P1
 126   1            	wcadd1=0x5b;   			//OVLAY 代码
 127   1            	wdadd1=0x00;   			//设置参数:显示一,三区为文本属性
 128   1      //     	delay_s(1);
 129   1      //	delay_s(200);
 130   1            	wcadd1=0x59;   			//显示状态设置
 131   1            	wdadd1=0x54;   			//设置参数:显示一~四区开显示
 132   1      }
 133          
 134          /****************************清屏子函数*******************************/
 135          void CLEAR(void)
 136          {
 137   1          	uint i,j;
 138   1          	wcadd1=0x4c;			//CSRDIR 代码
 139   1          	wcadd1=0x46;   			//CSRW 代码
 140   1          	wdadd1=0x00;   			//设置参数光标指针低8位
 141   1          	wdadd1=0x00;   			//设置参数光标指针高8位
 142   1          	wcadd1=0x42;   			//MWRITE 代码 
 143   1          	for(j=0;j<1638;j++)       	//清64K的显示存储器
 144   1            	{
 145   2              	for(i=0;i<40;i++)     	//写入一行
 146   2                	{
 147   3                  		wdadd1=0x00;    //写入数据
 148   3                	}
 149   2            	}
 150   1      }
 151               
 152          /*************************CGRAM子程序函数***************************/
 153          void CGRAM(void)
 154          {
 155   1         	uchar i,j;
 156   1         	wcadd1=0x5c;			//CGRAMADR 代码
 157   1         	wdadd1=0x00;  			//设置SAG=0x3000
 158   1         	wdadd1=0x30;
 159   1         	wcadd1=0x46;  			//CSRW 代码
 160   1         	wdadd1=0x00;  			//设置CSR=0x3400(字符代码=80H)
 161   1         		 			//CSR=SAG+8*80H
 162   1         	wdadd1=0x34;
 163   1         	wcadd1=0x4c;  			//CSRDIR 代码
 164   1         	wcadd1=0x42;  			//MWRITE 代码 
 165   1         	for(j=0;j<4;j++)
 166   1           	{
 167   2         		for(i=0;i<32;i++)
 168   2            		{
 169   3             			wdadd1=CGTAB[j][i];  //写入字模数据
 170   3             		}
 171   2          	}
 172   1          	delay_s(1);
 173   1          	
 174   1          	for(j=0;j<8;j++)		//8*8的空白,字符代码为90H
 175   1          	{
 176   2          		wdadd1=0x00;
 177   2          	}
 178   1          	delay_s(1);
 179   1          	
C51 COMPILER V6.12  TEST140                                                                03/15/2005 11:37:03 PAGE 4   

 180   1          	for(j=0;j<8;j++)		//8*8的阴影,字符代码为91H
 181   1          	{
 182   2          		wdadd1=0xff;
 183   2          	}
 184   1          	delay_s(1);
 185   1      }

⌨️ 快捷键说明

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