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

📄 3510.lst

📁 (41)3510手机彩屏,提供详细的驱动的
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  3510                                                                   05/14/2006 11:24:26 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE 3510
OBJECT MODULE PLACED IN .\3510.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\3510.c DEBUG OBJECTEXTEND

stmt level    source

   1          /*================================================
   2          
   3          			3510i符液晶屏驱动演示程序
   4          ==================================================
   5          	RST		    BIT	P1.0  ;复位
   6          	CS		    BIT	P1.1  ;片选
   7          	SDATA		BIT P1.2  ;串行数据
   8          	SCLK      	BIT	P1.3  ;串行时钟
   9          
  10          [注]:AT89C51的晶振频率为12MHz
  11          ============================================================================*/
  12          						// 产生汇编文件
  13          #include <reg51.h>
  14          #include <math.h>
  15          
  16          
  17          
  18          //========= 变量类型标识的宏定义,大家都喜欢这么做 ==============
  19          #define	Uchar unsigned char
  20          #define Uint unsigned int
  21          #define CMD    0 
  22          #define DATA   1 
  23          
  24          
  25          sbit RST  =P2^3;
  26          sbit CS   =P2^2;
  27          sbit SDATA=P2^1;
  28          sbit SCLK =P2^0;
  29            
  30          
  31          sbit    ACC0=ACC^0;
  32          sbit    ACC1=ACC^1;
  33          sbit    ACC2=ACC^2;
  34          sbit    ACC3=ACC^3;
  35          sbit    ACC4=ACC^4;
  36          sbit    ACC5=ACC^5;
  37          sbit    ACC6=ACC^6;
  38          sbit    ACC7=ACC^7;
  39          
  40          
  41          Uchar code asci[];
  42          Uchar code bmp[];
  43          
  44          void LCD_Clear(bit color);
  45          void test(void);
  46          void test2(void);
  47          void Delay400Ms(void);
  48          void COLORSET(bit color);
  49          void SENDLCM(Uchar Sdata, Uchar cd);
  50          void Delay5Ms(void);
  51          void DATAOVER(void);
  52          void LCD_Initialize(void);
  53          void test3(unsigned long kk);
  54          void LCD_Drawbmp(bit color);
  55          void LCD_Drawasc(Uchar x, Uchar y,Uchar n,Uchar color,Uchar pen);
C51 COMPILER V6.12  3510                                                                   05/14/2006 11:24:26 PAGE 2   

  56          void LCD_Drawhz(Uchar x, Uchar y,Uchar n,Uchar color,Uchar pen);
  57          void LCD_DrawLine(Uchar x1, Uchar y1, Uchar x2, Uchar y2,Uchar color);
  58          void LCD_DrawRectangle(Uchar x1, Uchar y1, Uchar x2, Uchar y2,Uchar color);
  59          void LCD_Drawtime(Uchar x, Uchar y,Uchar n,Uchar color,Uchar pen);
  60          void LCD_Drawdd(Uchar x, Uchar y,Uchar n,Uchar pen);
  61          void LCD_DrawPoint(Uchar x, Uchar y,Uchar color);
  62          
  63          
  64          
  65          /*
  66          void LCD_Drawbmp(bit color)
  67          {
  68          Uchar x,y,*pic;
  69          pic =bmp;
  70          
  71              SENDLCM(0x2C,CMD );//memory write
  72          	if (color==1)	
  73          	{
  74          	}
  75          	else
  76          	{
  77          	for(y = 0; y < 67; y ++)
  78          		for(x = 0; x < 98; x ++)
  79          		{
  80          			SENDLCM(*pic,DATA );
  81          			pic++;
  82          			}
  83          	}
  84          	DATAOVER(); 
  85          }
  86          	 */
  87          
  88           /*
  89          
  90          //画点
  91          void LCD_DrawPoint(Uchar x, Uchar y,Uchar color)
  92          {
  93              SENDLCM(0x2a,CMD );//column address set
  94              SENDLCM(x,DATA );
  95          	SENDLCM(x,DATA );
  96           	DATAOVER(); 
  97          
  98              SENDLCM(0x2B,CMD );//page address set
  99              SENDLCM(y,DATA );
 100          	SENDLCM(y,DATA );
 101           	DATAOVER(); 	
 102          	
 103          	SENDLCM(0x2C,CMD );		//memory write
 104          	SENDLCM(color,DATA );
 105          	DATAOVER(); 	
 106          }
 107          
 108          
 109          //画线
 110          void LCD_DrawLine(Uchar x1, Uchar y1, Uchar x2, Uchar y2,Uchar color)
 111          {
 112          	Uint x, y, t;
 113          	if((x1 == x2) && (y1 == y2))
 114          		LCD_DrawPoint(x1, y1,color);
 115          	else if(abs(y2 - y1) > abs(x2 - x1))
 116          	{
 117          		if(y1 > y2)
C51 COMPILER V6.12  3510                                                                   05/14/2006 11:24:26 PAGE 3   

 118          		{
 119          			t = y1;
 120          			y1 = y2;
 121          			y2 = t;
 122          			t = x1;
 123          			x1 = x2;
 124          			x2 = t;
 125          		}
 126          		for(y = y1; y <= y2; y ++)
 127          		{
 128          			x = (y - y1) * (x2 - x1) / (y2 - y1) + x1;
 129          			LCD_DrawPoint(x, y,color);
 130          		}
 131          	}
 132          	else
 133          	{
 134          		if(x1 > x2)
 135          		{
 136          			t = y1;
 137          			y1 = y2;
 138          			y2 = t;
 139          			t = x1;
 140          			x1 = x2;
 141          			x2 = t;
 142          		}
 143          		for(x = x1; x <= x2; x ++)
 144          		{
 145          			y =(x - x1) * (y2 - y1) / (x2 - x1) + y1;
 146          			LCD_DrawPoint(x, y,color);
 147          		}
 148          	}
 149          }
 150          
 151          //画距形
 152          void LCD_DrawRectangle(Uchar x1, Uchar y1, Uchar x2, Uchar y2,Uchar color)
 153          {
 154          	LCD_DrawLine(x1, y1, x2, y1,color);
 155          	LCD_DrawLine(x2, y1, x2, y2,color);
 156          	LCD_DrawLine(x2, y2, x1, y2,color);
 157          	LCD_DrawLine(x1, y2, x1, y1,color);
 158          }
 159          */
 160          
 161          //************************
 162          //清屏:color=1为4096色模式清屏
 163          //    :color=0为256色模式清屏
 164          //************************
 165          void LCD_Clear(bit color)
 166          {
 167   1      	Uchar x, y;
 168   1      
 169   1          SENDLCM(0x2a,CMD );//column address set
 170   1          SENDLCM(0,DATA );
 171   1      	SENDLCM(97,DATA );
 172   1       	DATAOVER(); 
 173   1      
 174   1      
 175   1          SENDLCM(0x2B,CMD );//page address set
 176   1          SENDLCM(0,DATA );
 177   1      	SENDLCM(66,DATA );
 178   1       	DATAOVER(); 
 179   1      	
C51 COMPILER V6.12  3510                                                                   05/14/2006 11:24:26 PAGE 4   

 180   1      
 181   1          SENDLCM(0x2C,CMD );//memory write
 182   1      	if (color==1)	
 183   1      	{
 184   2      	for(y = 0; y < 67; y ++)
 185   2      		for(x = 0; x < 147; x ++)
 186   2      			SENDLCM(0,DATA );
 187   2      	}
 188   1      	else
 189   1      	{
 190   2      	for(y = 0; y < 67; y ++)
 191   2      		for(x = 0; x < 98; x ++)
 192   2      			SENDLCM(0,DATA );
 193   2      	}
 194   1      	DATAOVER(); 	
 195   1      
 196   1      }
 197          
 198          //************************
 199          //颜色模式设置:color=1为4096色模式
 200          //            :color=0为256色模式
 201          //************************
 202          void COLORSET(bit color)
 203          {
 204   1      
 205   1      if (color==1) {
 206   2      	SENDLCM(0x3a, CMD);		//interface pixel format
 207   2      	SENDLCM(0x03, DATA);    //0x03 为4096色,0x02为256色
 208   2      	DATAOVER(); 
 209   2      	}
 210   1      	else
 211   1      	{
 212   2      	SENDLCM(0x3a, CMD);		//interface pixel format
 213   2      	SENDLCM(0x02, DATA);    //0x03 为4096色,0x02为256色
 214   2      	DATAOVER(); 
 215   2      
 216   2      
 217   2      	SENDLCM(0x2d, CMD);		//colour set
 218   2      //red
 219   2      SENDLCM(0x00, DATA);

⌨️ 快捷键说明

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