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

📄 sed1335.lst

📁 采用单片机控制液晶
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.06   SED1335                                                               03/28/2007 10:18:02 PAGE 1   


C51 COMPILER V8.06, COMPILATION OF MODULE SED1335
OBJECT MODULE PLACED IN SED1335.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE SED1335.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "include.h"
   2          /****************************************************************************************
   3          * 文件名:1335DRV.C
   4          * 功能:图形液晶320*240驱动(型号为SMG240128A)。32K显示存,0000H-7FFFH地址。显示是横向字节,高位
   5          *     在前。
   6          * 说明:图形液晶采用SED1335为LCD控制芯片,内带负压产生器,单5伏供电,并行接口(使用f020驱动)。
   7          * 硬件连接: D0--D7 <===> D0--D7
   8          *       /WR   <===> /WR
   9          *       /RD   <===> /RD
  10          *       /CE   <===> A14
  11          *       C/D   <===> A0
  12          *
  13          *       /RST   <===> VCC
  14          ****************************************************************************************/
  15          
  16          
  17          /***********************************************************************
  18          * 以下为LCM的驱动层,主要负责发送SED1335的各种命令,提供设置显示地址等功能,
  19          * 在发送命令前会检测其状态字。
  20          * 带参数命令模式:先参数,后命令;操作模式:先命令,后数据 
  21          ***********************************************************************/
  22          
  23          unsigned char code DCB_HEX_TAB[8] = {0x80, 0x40, 0x20, 0x10, 0x08,0x04, 0x02, 0x01};
  24          unsigned char code SYS_INIT_DAT[8] = {0x30, 0x87, 0x07, 0x27, 0x42,0xef, 0x28, 0x00};//{0x30, 0x87, 0x07, 
             -0x27, 0x2F,0xef, 0x28, 0x00};
  25          unsigned char code SCROLL_DAT[10] = {0x00, 0x00, 0xf0, 0x80, 0x25, 0xF0, 0x80, 0x50,0x00,0x60};//{0x00, 0x
             -00, 0xF0, 0xb0, 0x04, 0xf0, 0x80, 0x50,0x00,0x60};
  26          int Disp_Base_Addr=0;
  27          
  28          
  29          /***********************************************************************
  30          * 名称:SED1335_Init()
  31          * 功能:LCM初始化,将LCM初始化为纯图形模式,显示起始地址为0x0000,。
  32          * 入口参数:无
  33          * 出口参数:无
  34          * 说明:函数会设置LCM数据总线为输出方式
  35          ***********************************************************************/
  36          void SED1335_Init(void)
  37          { 
  38   1        unsigned char i;
  39   1        LCD_WriteCommand(LCD_SYS_SET);     // 
  40   1        for(i=0 ; i < 8 ; i++)
  41   1          {LCD_WriteData(SYS_INIT_DAT[i]);}
  42   1      
  43   1        LCD_WriteCommand(LCD_SCR_OLL);     // 
  44   1        for(i=0 ; i < 10 ; i++)
  45   1          {LCD_WriteData(SCROLL_DAT[i]);}
  46   1                 
  47   1        LCD_WriteCommand(LCD_DOT_DIR);     // 
  48   1        LCD_WriteData(0x00);   
  49   1        LCD_WriteCommand(LCD_DIS_OVR);     // 
  50   1        LCD_WriteData(0x0C);
  51   1        LCD_WriteCommand(LCD_DIS_ON);     // 
  52   1        LCD_WriteData(0x04);
  53   1        LCD_WriteCommand(LCD_CSR_WR);     // 
C51 COMPILER V8.06   SED1335                                                               03/28/2007 10:18:02 PAGE 2   

  54   1        LCD_WriteData(0x00); 
  55   1        LCD_WriteData(0x00);
  56   1        LCD_WriteCommand(LCD_CSR_DIR);     // 
  57   1      }
  58          
  59          /***********************************************************************
  60          * 名称:LCD_FillAll()
  61          * 功能:LCD填充。以图形方式进行填充,起始地址为0x0000。
  62          * 入口参数:dat         要填充的数据
  63          * 出口参数:无
  64          ***********************************************************************/
  65          void LCD_FillAll(unsigned char dat)
  66          { 
  67   1        unsigned char i,j;
  68   1        for(j = 0 ; j < 40 ; j++){         //列数: 320/8 = 40
  69   2              SED1335_CsRw(j);
  70   2          LCD_WriteCommand(LCD_CSR_DIR+3);   //光标自动向下
  71   2          LCD_WriteCommand(LCD_MEM_WR);     //写入显示缓冲区
  72   2          for(i = 0 ; i < 240 ; i++){
  73   3              LCD_WriteData(dat);
  74   3          }
  75   2        }
  76   1        
  77   1      }
  78          /*****************************************************************************************
  79          * 名称:LCD_PutHZ(unsigned int X,unsigned int Y,unsigned int p_code)
  80          * 功能:在指定的位置上显示汉字
  81          * 入口参数:
  82          * 出口参数:
  83          ******************************************************************************************/
  84          void SED1335_SYS_Set()
  85          {
  86   1      
  87   1      
  88   1      
  89   1      
  90   1      
  91   1      
  92   1      }
  93          
  94          /*************************************************************************
  95          *名称:SED1335_Sleep()
  96          *功能:使LCD工作在休眠模式或从休眠模式唤醒
  97          *入口参数:bit flg_sleep:判断是要进入休眠模式(0)还是从休眠模式唤醒(1)
  98          *                  unsigned char dat:LCD唤醒时要工作在什么模式
  99          *出口参数:无
 100          ***************************************************************************/
 101          void SED1335_Sleep(char flg_sleep,unsigned char P1)
 102          {
 103   1         switch(flg_sleep&0x01)
 104   1         {
 105   2                      case 0: 
 106   2                      {       
 107   3                              LCD_WriteCommand(LCD_SLEEP_IN);break;
 108   3      
 109   3                      }
 110   2                      case 1: 
 111   2                      {       
 112   3                              LCD_WriteCommand(LCD_SYS_SET);LCD_WriteData(P1);   //只要求P1参数
 113   3                              break;
 114   3                      }
 115   2              }
C51 COMPILER V8.06   SED1335                                                               03/28/2007 10:18:02 PAGE 3   

 116   1      }
 117          /******************************************************************************
 118          * 名称:SED1335_OnOff()
 119          * 功能:设置光标和显示区的亮暗(光标还有闪烁的功能,默认只有一显示区亮)
 120          * 入口参数:bit OnOff :总控制(0--液晶不显示 1--CurOnOff才有效)
 121          *                       unsigned char CurOnOff:0--光标不显示,1--光标显示但不闪烁,2 3--光标闪烁
 122          * 出口参数:无
 123          *******************************************************************************/
 124          void SED1335_OnOff(char OnOff,unsigned char CurOnOff)
 125          {
 126   1        switch (OnOff&0x01) 
 127   1        {
 128   2                case 0:
 129   2                {
 130   3                              LCD_WriteCommand(LCD_DIS_OFF);
 131   3                              LCD_WriteData(0x00);
 132   3                              break;
 133   3                
 134   3                }
 135   2                case 1:
 136   2                {
 137   3                              LCD_WriteCommand(LCD_DIS_ON);
 138   3                              LCD_WriteData(0x04&(CurOnOff&0x03));
 139   3                              break;
 140   3                
 141   3                }
 142   2                }
 143   1      
 144   1      }
 145          /*************************************************************************************
 146          * 名称:SED1335_Scroll()
 147          * 功能:设置显存与LCD的对应关系
 148          * 入口参数:
 149          * 出口参数:
 150          **************************************************************************************/
 151          void SED1335_Scroll(unsigned int SAD1,unsigned int SAD2,unsigned int SAD3,unsigned int SAD4,unsigned char 
             -SL1,unsigned char SL2)
 152          {
 153   1              LCD_WriteCommand(LCD_SCR_OLL);
 154   1              LCD_WriteData(GET_LOW_BYTE(SAD1)); 
 155   1              LCD_WriteData(GET_HIG_BYTE(SAD1)); //P2
 156   1              LCD_WriteData(SL1);
 157   1      
 158   1              LCD_WriteData(GET_LOW_BYTE(SAD2)); 
 159   1              LCD_WriteData(GET_HIG_BYTE(SAD2)); //P5
 160   1              LCD_WriteData(SL2);
 161   1      
 162   1              LCD_WriteData(GET_LOW_BYTE(SAD3)); 
 163   1              LCD_WriteData(GET_HIG_BYTE(SAD3)); //P8
 164   1      
 165   1              LCD_WriteData(GET_LOW_BYTE(SAD4)); 
 166   1              LCD_WriteData(GET_HIG_BYTE(SAD4)); //P10
 167   1      
 168   1      }
 169          /***************************************************************************************
 170          * 名称:SED1335_CsrForm()
 171          * 功能:设置光标显示方式和形状
 172          * 入口参数:
 173          * 出口参数:
 174          ****************************************************************************************/
 175          void SED1335_CsrForm(unsigned char CRX,unsigned char CRY,unsigned char Disp_Form)
 176          {
C51 COMPILER V8.06   SED1335                                                               03/28/2007 10:18:02 PAGE 4   

 177   1         LCD_WriteCommand(LCD_CSR_FOM);
 178   1         LCD_WriteData(CRX&0x07);
 179   1         LCD_WriteData((CRY&0x0f)|((Disp_Form&0x01)<<7));
 180   1      
 181   1      }
 182          /*****************************************************************************************
 183          * 名称:SED1335_CspDir()
 184          * 功能:设置光标自增方向
 185          * 入口参数:
 186          * 出口参数:
 187          *****************************************************************************************/
 188          void SED1335_CspDir(Cur_Direct dic)
 189          {
 190   1        LCD_WriteCommand(LCD_CSR_DIR + dic);
 191   1      
 192   1      }
 193          /****************************************************************************************
 194          * 名称:SED1335_Oylay()
 195          * 功能:甚至显示方式和显示合成开关
 196          * 入口参数:
 197          * 出口参数:
 198          *****************************************************************************************/
 199          void SED1335_Oylay(Txt_Graph SAD1,Txt_Graph SAD3,OVlay_Form form)
 200          {
 201   1              LCD_WriteCommand(LCD_DIS_OVR);
 202   1              LCD_WriteData((SAD3<<3)|(SAD1<<2)|form);
 203   1      
 204   1      
 205   1      }
 206          /****************************************************************************************
 207          * 名称:SED1335_CsRw()
 208          * 功能:设置光标位置
 209          * 入口参数:
 210          * 出口参数:
 211          *****************************************************************************************/
 212          void SED1335_CsRw(unsigned int cur_addr)
 213          {
 214   1      
 215   1              LCD_WriteCommand(LCD_CSR_WR);
 216   1              LCD_WriteData(GET_LOW_BYTE(cur_addr)); 
 217   1              LCD_WriteData(GET_HIG_BYTE(cur_addr));
 218   1      
 219   1      
 220   1      }
 221          /*****************************************************************************************
 222          * 名称:SED1335_CsRr()
 223          * 功能:读取光标位置
 224          * 入口参数:
 225          * 出口参数:
 226          ******************************************************************************************/
 227          unsigned int SED1335_CsRr(void)
 228          {
 229   1              unsigned char APL,APH;
 230   1              LCD_WriteCommand(LCD_CSR_RD);
 231   1              LCD_ReadData(APL);
 232   1              LCD_ReadData(APH);
 233   1              return (unsigned int)((unsigned int)APL|(unsigned int)(APH<<8));
 234   1      
 235   1      }
 236          /*****************************************************************************************
 237          * 名称:SED1335_WMrite()
 238          * 功能:向显存写入数据
C51 COMPILER V8.06   SED1335                                                               03/28/2007 10:18:02 PAGE 5   

 239          * 入口参数:
 240          * 出口参数:
 241          ******************************************************************************************/
 242          void SED1335_WMrite(unsigned char *p,unsigned int LEN)
 243          {
 244   1        unsigned int i;
 245   1        LCD_WriteCommand(LCD_MEM_WR);
 246   1        for(i=0;i<LEN;i++)
 247   1        LCD_WriteData(p[i]);
 248   1      
 249   1      
 250   1      }
 251          /******************************************************************************************
 252          * 名称:SED1335_MRead(void)
 253          * 功能:读取显存内容
 254          * 入口参数:
 255          * 出口参数:
 256          ********************************************************************************************/
 257          unsigned char *SED1335_MRead(unsigned int LEN)
 258          {
 259   1         unsigned int i;
 260   1         unsigned char status;

⌨️ 快捷键说明

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