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

📄 lcm12864.lst

📁 DDS 单片机控制AD7008 产生正弦波
💻 LST
字号:
C51 COMPILER V7.50   LCM12864                                                              08/08/2007 21:14:39 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE LCM12864
OBJECT MODULE PLACED IN LCM12864.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCM12864.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "LCM12864.h"
   2          unsigned char BUSY,hang,lie;
   3          /*********************************************延时**************************************/
   4          void Delayus(unsigned long t)
   5          {
   6   1              int i,j;
   7   1              for (i=0;i<t;i++)
   8   1              for (j=0;j<t;j++);
   9   1      }
  10          
  11          //*********************判忙函数************************//
  12          void BUSYLOOP()
  13          {
  14   1              P1=0x0ff;
  15   1              RS=0;
  16   1              RW=1;
  17   1              do
  18   1              {
  19   2                  E=1;
  20   2                  BUSY=P1;
  21   2                  E=0;
  22   2              }
  23   1              while(BUSY>0x7F);
  24   1      }
  25          //*********************写控制字函数****************************//
  26          void Write_command(unsigned char CMD,unsigned char bb)
  27          {
  28   1              if(bb) BUSYLOOP();
  29   1              RS=0;
  30   1              RW=0;
  31   1              E=1;
  32   1              P1=CMD;
  33   1              Delayus(1);
  34   1              E=0;
  35   1      }
  36          
  37          //*********************写数据函数****************************//
  38          void Write_data(unsigned char CMD)
  39          {
  40   1              BUSYLOOP();
  41   1              RS=1;
  42   1              RW=0;
  43   1              E=1;
  44   1              P1=CMD;
  45   1              Delayus(1);
  46   1              E=0;
  47   1      }
  48          
  49          //*************************液晶初始化********************************//
  50          void Init_LCM()
  51          {
  52   1              Delayus(38);
  53   1              Write_command(0x30,0);
  54   1              Delayus(1);
  55   1              Write_command(0x30,0);
C51 COMPILER V7.50   LCM12864                                                              08/08/2007 21:14:39 PAGE 2   

  56   1              Delayus(1);
  57   1              Write_command(0x0c,1);
  58   1              Delayus(1);
  59   1              Write_command(0x01,1);
  60   1              Delayus(20);
  61   1              Write_command(0x06,1);
  62   1      }
  63          
  64          //***************************清屏*************************************//
  65          void CLEAR()
  66          {
  67   1              RS=0;
  68   1              RW=0;
  69   1              E=1;
  70   1              P1=0x01;
  71   1              Delayus(1);
  72   1              E=0;
  73   1      }
  74          
  75          //**********************显示字符串************************************//
  76          void Display(unsigned char *ptr,unsigned char ddram)
  77          {
  78   1              unsigned char l,i1,x;
  79   1              l=0;
  80   1              if(ddram<0x88) hang=0;  //定位行地址:第一行
  81   1              else if(ddram<0x90) hang=2;  //定位行地址:第三行
  82   1              else if(ddram<0x98) hang=1;  //定位行地址:第二行
  83   1              else hang=3;  //定位行地址:第四行
  84   1      
  85   1              lie=0x0f&ddram; //定位列地址
  86   1              if(lie>0x07)
  87   1              {
  88   2                  lie=lie-0x08;
  89   2              }
  90   1              x=lie*2;
  91   1              Write_command(ddram,0); // 定位显示起始地址
  92   1              while ((ptr[l])!='\0') l++;
  93   1              for (i1=0;i1<l;i1++)
  94   1              {
  95   2                   Write_data(ptr[i1]); //输出单个字符
  96   2                   x++;
  97   2                   if (x ==0x10)
  98   2                   {
  99   3                           x=0;
 100   3                           hang++;
 101   3                           switch (hang)
 102   3                           {
 103   4                                 case 0:Write_command(0x80,0);
 104   4                                 break;
 105   4                                 case 1:Write_command(0x90,0);
 106   4                                 break;
 107   4                                 case 2:Write_command(0x88,0);
 108   4                                 break;
 109   4                                 case 3:Write_command(0x98,0);
 110   4                           }
 111   3                           if (hang>3)
 112   3                           {
 113   4                                 Write_command(0x80,0);
 114   4                                 hang=0;
 115   4                           }
 116   3                   }
 117   2             }
C51 COMPILER V7.50   LCM12864                                                              08/08/2007 21:14:39 PAGE 3   

 118   1      }
 119          
 120          /*************************读取按键值**********************************/
 121          bit ZLG7290_ReadReg(unsigned char RegAddr, char *dat)
 122          {
 123   1              bit b;
 124   1              b = I2C_Gets(0x38,RegAddr,1,dat,1);
 125   1              return b;
 126   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    440    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3      15
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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