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

📄 lcd.lst

📁 LCD240X128 8051驱动 带keil完整工程
💻 LST
📖 第 1 页 / 共 4 页
字号:
  99          #define  LCD_AUT_WR			0xB0	/* 自动写设置 */
 100          #define  LCD_AUT_RD			0xB1	/* 自动读设置 */
 101          #define  LCD_AUT_OVR		0xB2	/* 自动读/写结束 */
 102          
 103          #define  LCD_INC_WR			0xC0	/* 数据一次写,地址加1 */
 104          #define  LCD_INC_RD			0xC1	/* 数据一次读,地址加1 */
 105          #define  LCD_DEC_WR			0xC2	/* 数据一次写,地址减1 */
 106          #define  LCD_DEC_RD			0xC3	/* 数据一次读,地址减1 */
 107          #define  LCD_NOC_WR			0xC4	/* 数据一次写,地址不变 */
 108          #define  LCD_NOC_RD			0xC5	/* 数据一次读,地址不变 */
 109          
 110          #define  LCD_SCN_RD			0xE0	/* 屏读 */
 111          
 112          #define  LCD_SCN_CP			0xE8	/* 屏拷贝 */
 113          
 114          #define  LCD_BIT_OP			0xF0	/* 位操作:D0-D2--定义D0-D7位,D3--1为置位,0为清除 */
 115          
 116          
 117          uint8 xdata 		LCD_Command _at_ 0xfdff;
 118          uint8 xdata			LCD_Data	_at_ 0xfcff;
 119          #define  LCD_Data    	XBYTE[0x8000]/*数据入口*/
 120          
 121          void  LCD_Write_Command(uint8 dat)
 122          {
 123   1      	while(!(0xfe|LCD_Command));
 124   1      	LCD_Command=dat;
 125   1      }
 126          void LCD_Write_Data(uint8 dat)
 127          {
 128   1      	while(!(0xfd|LCD_Command));
 129   1      	LCD_Data=dat;
C51 COMPILER V6.12  LCD                                                                    07/05/2008 16:56:51 PAGE 8   

 130   1      }
 131          #define LCD_Read_Command()  									LCD_Command
 132          #define LCD_Read_Data()    										LCD_Data
 133          
 134          void LCD_Write_Command3(uint8 command,uint8 dat1,uint8 dat2)
 135          {
 136   1      	LCD_Write_Data(dat1);
 137   1      	LCD_Write_Data(dat2);
 138   1      	LCD_Write_Command(command);
 139   1      }
 140          
 141          void LCD_Write_Command1(uint8 command,uint8 dat1)
 142          {
 143   1      	LCD_Write_Data(dat1);
 144   1      	LCD_Write_Command(command);
 145   1      }
 146          
 147          
 148          
 149          void LCD_Initialize()
 150          {
 151   1      	LCD_Write_Command3(LCD_TXT_STP,0x00,0x00);
 152   1      	LCD_Write_Command3(LCD_TXT_WID,32,0x00);
 153   1      	LCD_Write_Command3(LCD_GRH_STP,0x00,0x00);
 154   1      	LCD_Write_Command3(LCD_GRH_WID,32,0x00);
 155   1      	LCD_Write_Command(LCD_MOD_OR);
 156   1      	LCD_Write_Command(LCD_DIS_SW|0x08);
 157   1      }
 158          
 159          void  LCD_FillAll(uint8 dat)
 160          {  uint32  i;
 161   1      
 162   1         LCD_Write_Command3(LCD_ADR_POS, 0x00, 0x00);			// 置地址指针
 163   1         LCD_Write_Command(LCD_AUT_WR);						// 自动写
 164   1         for(i=0;i<240*128;i++)
 165   1         {  
 166   2         LCD_Write_Data(dat);
 167   2         }
 168   1         LCD_Write_Command(LCD_AUT_OVR);						// 自动写结束
 169   1         LCD_Write_Command3(LCD_ADR_POS,0x00,0x00);			// 重置地址指针
 170   1      }
 171          
 172          void  LCD_UpdatePoint(uint32 x, uint32 y,uint8 dat)
 173          {  uint32  addr; 
 174   1       
 175   1         /* 找出目标地址 */
 176   1         addr = y*(256>>3) + (x>>3);
 177   1         LCD_Write_Command3(LCD_ADR_POS, addr&0xFF, addr>>8);	// 置地址指针
 178   1         
 179   1         /* 输出数据 */
 180   1         LCD_Write_Command1(LCD_INC_WR, dat);
 181   1      }
 182          
 183          void Disp_LCD(uint8 *dat)
 184          {
 185   1      	uint8 i,j;
 186   1      	for(j=0;j<127;j++)
 187   1      	{
 188   2      		for(i=0;i<239;)
 189   2      		{
 190   3      			LCD_UpdatePoint(i,j,*dat);
 191   3      			dat++;
C51 COMPILER V6.12  LCD                                                                    07/05/2008 16:56:51 PAGE 9   

 192   3      			i+=8;
 193   3      		}
 194   2      	}
 195   1      }
 196          void main()
 197          {				 
 198   1      	uint32 i,j;
 199   1      	uint8 *dat;
 200   1      	dat=BMP;
 201   1      	CS1=0;
 202   1      	CS2=0;
 203   1      	LCD_Initialize();
 204   1      //	LCD_FillAll(0x81);
 205   1      //	LCD_Write_Command3(LCD_ADR_POS,0,0);
 206   1      	CS1=1;CS2=0;
 207   1      	Disp_LCD(BMP1);
 208   1      	CS1=0;CS2=1;
 209   1      	Disp_LCD(BMP);
 210   1      
 211   1      	while(1);
 212   1      }
*** WARNING C280 IN LINE 198 OF LCD.C: 'i': unreferenced local variable
*** WARNING C280 IN LINE 198 OF LCD.C: 'j': unreferenced local variable
 213          
 214          
 215          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    407    ----
   CONSTANT SIZE    =   7620    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      34
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  2 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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