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

📄 aaa.lst

📁 液晶MGLS2401128TA的控制程序
💻 LST
字号:
C51 COMPILER V7.08   AAA                                                                   08/09/2005 03:56:00 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE AAA
OBJECT MODULE PLACED IN aaa.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE aaa.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /* 
   2          接法:
   3          data_port.0,data_port.7 ---D0 - D7
   4          P3.2---CD1,command; 0,data
   5          P3.3---WR低电平有效
   6          P3.4---RD低电平有效
   7          */
   8          #include <reg51.h>
   9          #include <absacc.h>
  10          #define uchar unsigned char
  11          #define uint unsigned int
  12          #define data_port P0
  13          sbit lcdCD = P2^3;
  14          sbit lcdWR = P2^0;
  15          sbit lcdRD = P2^1;
  16          sbit lcdCE=P2^2;
  17          sbit light = P3^4;
  18          void dely_100ms(void) interrupt 1 using 1
  19          {
  20   1      TH0 = (65536 - 50000)/256;
  21   1      TL0 = (65536 - 50000)%256;
  22   1      //light=~light;
  23   1      }
  24          uchar lcdRead(void)
  25          {
  26   1      uchar status;
  27   1      EA = 0;
  28   1      //data_port = 0xff;
  29   1      lcdCD = 1;
  30   1      //lcdWR = 1;
  31   1      lcdRD = 0;
  32   1      status = data_port;
  33   1      lcdRD = 1;
  34   1      EA = 1;
  35   1      return status;
  36   1      }
  37          /*更改,
  38          状态检查
  39          写命令
  40          写数据
  41          */
  42          uchar lcdStatus( uchar chan)
  43          {
  44   1      uchar data temp = 0;
  45   1      do
  46   1      {
  47   2      if((lcdRead()&chan)==chan)
  48   2      {
  49   3      break;
  50   3      }
  51   2      temp++;
  52   2      }
  53   1      while(temp<10);
  54   1      return 0;
  55   1      }
C51 COMPILER V7.08   AAA                                                                   08/09/2005 03:56:00 PAGE 2   

  56          void lcd_1_write(bit CD, uchar writeIn)
  57          {
  58   1      lcdStatus(0x03);
  59   1      EA=0;
  60   1          lcdCD = CD;
  61   1       //   lcdRD = 1;
  62   1          lcdWR = 0;
  63   1          data_port = writeIn;
  64   1          lcdWR = 1;
  65   1          EA=1;
  66   1      }
  67          void lcd_2_write(uchar paraA, uchar paraB)
  68          {
  69   1      lcd_1_write(0,paraA);
  70   1      lcd_1_write(1,paraB);
  71   1      }
  72          void lcd_3_write(uchar paraA, uchar paraB, uchar paraC)
  73          {
  74   1      lcd_1_write(0,paraA);
  75   1      lcd_1_write(0,paraB);
  76   1      lcd_1_write(1,paraC);
  77   1      }
  78          void lcdInit(void)
  79          {
  80   1      lcd_3_write(0x00, 0x00, 0x21);// 指针位置设置
  81   1      lcd_3_write(0x00, 0x00, 0x40);// 文本显示区首地址
  82   1      lcd_3_write(0x1e, 0x00, 0x41);// 文本显示区宽度
  83   1      lcd_3_write(0x00, 0x00, 0x42);// 图形显示区首地址
  84   1      lcd_3_write(0x1e, 0x00, 0x43);// 图形显示区宽度
  85   1      lcd_1_write(1,0xa1);// 光标形状光标开头为8 点(列)×1 行
  86   1      lcd_1_write(1,0x80);// 显示方式设置
  87   1      lcd_1_write(1,0x98);// 显示开关设置启用图形方式,禁止文本,禁止光标
  88   1      }
  89          void lcdCLS()
  90          {
  91   1      uint data clsCount;
  92   1      lcd_1_write(1,0xb0);// 设置自动写
  93   1      lcd_3_write(0x00, 0x00, 0x24);// 地址指针设置
  94   1      for(clsCount=0; clsCount<3840; clsCount++)
  95   1      {
  96   2      lcdStatus(0x08);// 先检查,再写
  97   2      lcd_1_write(0,0x00);
  98   2      }
  99   1      lcd_1_write(1,0xb2);// 自动写结束
 100   1      }
 101          void showPic(void)
 102          {
 103   1      /*
 104   1      uint data clsCount;
 105   1      lcd_1_write(1,0xb0);// 设置自动写
 106   1      lcd_3_write(0x00, 0x00, 0x24);// 地址指针设置
 107   1      for(clsCount=0; clsCount<750; clsCount++)
 108   1      {
 109   1      lcdStatus(0x08);// 先检查,再写
 110   1      lcd_1_write(0,hello[clsCount]);
 111   1      }
 112   1      lcd_1_write(1,0xb2);
 113   1      */
 114   1      uchar xdata in[32]=
 115   1      {
 116   1      0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x00,0x00,0x71,0xF0,0x30,0xD8,
 117   1      0x30,0xD8,0x30,0xD8,0x30,0xD8,0x79,0xDC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
C51 COMPILER V7.08   AAA                                                                   08/09/2005 03:56:00 PAGE 3   

 118   1      };
 119   1      uint xdata i;
 120   1      uchar addr_L,addr_H;
 121   1      addr_H = 0x00;
 122   1      addr_L = 0x00;
 123   1      for(i=0; i<16; i++)
 124   1      {
 125   2      lcd_3_write(addr_L, addr_H, 0x24);
 126   2      lcd_2_write(in[i*2],0xC0);// in[i*2]
 127   2      lcd_2_write(in[i*2+1],0xC0);// in[i*2+1]
 128   2      addr_L+=30;
 129   2      if(addr_L<30)
 130   2      {
 131   3      addr_H++;
 132   3      }
 133   2      
 134   2      }
 135   1      }
 136          void main(void)
 137          {
 138   1      uchar data i=0;
 139   1      light = 0;
 140   1      TMOD = 0x61;
 141   1      TH0 = (65536 - 50000)/256;
 142   1      TL0 = (65536 - 50000)%256;
 143   1      IP = 0x08;
 144   1      EA = 1;   
 145   1      ET0 = 1;
 146   1      TR0 = 1;// 在定时器中断里闪灯,有时不知道程序是否在运行
 147   1      for(i=1000; i>0; i--)// 认为够长的延时,用的6M晶振。
 148   1      {
 149   2      ;
 150   2      }
 151   1      i=0;
 152   1      while(i<5)
 153   1      {
 154   2      lcdInit();
 155   2      i++;
 156   2      }
 157   1      
 158   1      lcdCLS();
 159   1      
 160   1      //for(i=0; i<10; i++)
 161   1      showPic();
 162   1      //light=1;
 163   1      showPic();
 164   1      light=1;
 165   1      for(;;)
 166   1      {
 167   2      showPic();
 168   2      //light = !light;
 169   2      
 170   2      }
 171   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    389    ----
   CONSTANT SIZE    =     32    ----
   XDATA SIZE       =   ----      34
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       1
C51 COMPILER V7.08   AAA                                                                   08/09/2005 03:56:00 PAGE 4   

   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 + -