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

📄 12864.lst

📁 万年日历设计
💻 LST
字号:
C51 COMPILER V7.06   12864                                                                 07/15/2012 20:15:16 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 12864
OBJECT MODULE PLACED IN .\obj\12864.obj
COMPILER INVOKED BY: D:\单片机相关软件\51单片机软件大全\Keil uVision2 软件\安装\C51\BIN\C51.EXE 12864.c BROWSE DEBUG OBJ
                    -ECTEXTEND OBJECT(.\obj\12864.obj)

stmt level    source

   1          #include"init.h"
   2          #include"12864.h"
   3          #include"delay.h"
   4          /**********************************************************
   5                          
   6                                          12864等待空闲 
   7          
   8          **********************************************************/
   9          void wait(void)
  10          {
  11   1              P0=0xff;
  12   1              RS=0;
  13   1              RW=1;
  14   1              EN=0;
  15   1              delay_n10us(1);
  16   1              EN=1;
  17   1              while(SUBF&0x80);
  18   1      }
  19          /**********************************************************
  20                          
  21                                          12864写一条指令 
  22          
  23          **********************************************************/
  24          void write_com(uchar com)
  25          {
  26   1              wait();
  27   1              EN=0;
  28   1              RS=0;
  29   1              RW=0;
  30   1              P0=com;
  31   1              EN=0;
  32   1              EN=1;
  33   1              delay_nms(1);
  34   1              EN=0;
  35   1      }
  36          /**********************************************************
  37                          
  38                                                  12864写一个字符 
  39          
  40          **********************************************************/
  41          void write_dat(uchar dat)
  42          {
  43   1              wait();
  44   1              EN=0;
  45   1              RS=1;
  46   1              RW=0;
  47   1              P0=dat;
  48   1              EN=0;
  49   1              EN=1;
  50   1              delay_nms(1);
  51   1              EN=0;
  52   1      }
  53          /**********************************************************
  54                                                  
C51 COMPILER V7.06   12864                                                                 07/15/2012 20:15:16 PAGE 2   

  55                                                  12864初始化 
  56          
  57          **********************************************************/
  58          void init_12864()
  59          {
  60   1              PSB=1;
  61   1              Rst=1;
  62   1              NC =1;
  63   1      
  64   1              delay_nms(100);
  65   1              write_com(0x30);
  66   1              delay_n10us(50);
  67   1              write_com(0x30);
  68   1              delay_n10us(5);
  69   1              write_com(0x0c);
  70   1              delay_n10us(20);
  71   1              write_com(0x01);
  72   1              delay_n10us(2);
  73   1              write_com(0x06);
  74   1              delay_n10us(10);        
  75   1      }
  76          /**********************************************************
  77                          
  78          12864写字符 row代表行,first代表从第几位开始写  dat写的内容
  79          
  80          **********************************************************/
  81          void char_12864(uchar row,uchar first,uint dat)
  82          {
  83   1              switch(row)
  84   1              {
  85   2                      case 1: write_com(0x80+first);
  86   2                                      write_dat(dat);
  87   2                                      delay_n10us(2);     break;
  88   2                      case 2: write_com(0x90+first);
  89   2                                      write_dat(dat);
  90   2                                      delay_n10us(2);     break;
  91   2                      case 3: write_com(0x88+first);
  92   2                                      write_dat(dat);
  93   2                                      delay_n10us(2);     break;
  94   2                      case 4: write_com(0x98+first);
  95   2                                      write_dat(dat);
  96   2                                      delay_n10us(2);     break;
  97   2              }
  98   1      }
  99          /**********************************************************
 100                          
 101          12864写2个字节 row代表行,first代表从第几位开始写* dat写的内容
 102          
 103          **********************************************************/
 104          void char2_12864(uchar row,uchar first,uchar dat)
 105          {
 106   1              uchar i;
 107   1              switch(row)
 108   1              {
 109   2                      case 1: write_com(0x80+first);    //显示年月日使用
 110   2                                      for(i=0;i<2;i++)
 111   2                                      {
 112   3                                      write_dat(clock[dat+i]+0x30);
 113   3                                      delay_n10us(2);
 114   3                                      } 
 115   2                                                                                 break;
 116   2                      case 2: write_com(0x90+first);    //显示时间使用
C51 COMPILER V7.06   12864                                                                 07/15/2012 20:15:16 PAGE 3   

 117   2                                      for(i=0;i<2;i++)
 118   2                                      {
 119   3                                      write_dat(clock[dat+i]+0x30);
 120   3                                      delay_n10us(2);
 121   3                                      } 
 122   2                                                                                 break;
 123   2                      case 3: write_com(0x88+first);    //显示星期使用
 124   2                                      for(i=0;i<2;i++)
 125   2                                      {
 126   3                                      write_dat(clock[dat+i]);
 127   3                                      delay_n10us(2);
 128   3                                      } 
 129   2                                                                                 break;
 130   2                      case 4: write_com(0x98+first);    //显示温度使用
 131   2                                      for(i=0;i<6;i++)
 132   2                                      {
 133   3                                      write_dat(TempData[dat+i]);
 134   3                                      delay_n10us(1);
 135   3                                      } 
 136   2                                                                                 break;
 137   2              }
 138   1      }
 139          /**********************************************************
 140                          
 141          12864写字符串 row代表行,first代表从第几位开始写  * dat写的内容
 142          
 143          **********************************************************/
 144          void string_12864(uchar row,uchar first,uchar *dat)
 145          {
 146   1              uchar i;
 147   1              switch(row)
 148   1              {
 149   2                      case 1: write_com(0x80+first);
 150   2                                      for(i=0;dat[i]!='\0';i++)
 151   2                                      {
 152   3                                      write_dat(dat[i]);
 153   3                                      delay_n10us(2);
 154   3                                      } 
 155   2                                                                                 break;
 156   2                      case 2: write_com(0x90+first);
 157   2                                      for(i=0;dat[i]!='\0';i++)
 158   2                                      {
 159   3                                      write_dat(dat[i]);
 160   3                                      delay_n10us(2);
 161   3                                      }
 162   2                                                                                 break;
 163   2                      case 3: write_com(0x88+first);
 164   2                                      for(i=0;dat[i]!='\0';i++)
 165   2                                      {
 166   3                                      write_dat(dat[i]);
 167   3                                      delay_n10us(2);
 168   3                                      }
 169   2                                                                                 break;
 170   2                      case 4: write_com(0x98+first);
 171   2                                      for(i=0;dat[i]!='\0';i++)
 172   2                                      {
 173   3                                      write_dat(dat[i]);
 174   3                                      delay_n10us(2);
 175   3                                      }
 176   2                                                                                 break;
 177   2              }
 178   1      }
C51 COMPILER V7.06   12864                                                                 07/15/2012 20:15:16 PAGE 4   



MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    565    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      13
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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