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

📄 lcd.lst

📁 STC12C5410AD 对 清达光电HG12864 控制程序 Keil环境
💻 LST
字号:
C51 COMPILER V8.05a   LCD                                                                  05/09/2008 17:28:58 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN LCD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCD.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <STC12C5410AD.h>
   2          
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          
   6          sbit RS = P3^2;
   7          sbit RW = P3^3;
   8          sbit E  = P3^4;
   9          sbit WDT= P3^5;
  10          
  11          void InitialCPU(void);
  12          void Delay60ns(int);
  13          void wr_InD(uchar,uchar);
  14          void Lcd_Init(void);
  15          void chk_busy(void);
  16          void Clear_Lcd(void);
  17          void Char_Disp(uchar x, uchar y, char *p);
  18          
  19          
  20          main()
  21          {  char date[8] = {' ','a','b','c','d','e','f','g'};
  22   1         char *p = date;
  23   1      
  24   1         InitialCPU();
  25   1         Lcd_Init();
  26   1         while(1)
  27   1         {
  28   2                      
  29   2                      //Clear_Lcd();
  30   2                      chk_busy();
  31   2                      WDT  = !WDT;
  32   2                      Char_Disp(0,0,"星期一");
  33   2                      Char_Disp(0,1,"星期二");
  34   2                      Char_Disp(0,2,"星期三");
  35   2                      Char_Disp(0,3,"星期四");
  36   2                      Delay60ns(120);
  37   2         }
  38   1      }
  39          
  40          
  41          /************************************/
  42          /*     CPU  初始化子程序            */
  43          /************************************/
  44          void InitialCPU(void)
  45          {  //IDLE_CLK |=0x01;
  46   1         //端口设置
  47   1         P1M0 = 0x00;                                                 //设置P1 口为IO状态
  48   1         P1M1 = 0x00;                                                 
  49   1         
  50   1         P3M0 = 0x00;                                                 //设置P3 口为IO状态
  51   1         P3M1 = 0x00;
  52   1         WDT  = 0;
  53   1      }
  54          
  55          
C51 COMPILER V8.05a   LCD                                                                  05/09/2008 17:28:58 PAGE 2   

  56          
  57          //**************
  58          //延时
  59          //**************
  60          void Delay60ns(int ns)
  61          {
  62   1              int i,j;
  63   1              for (i=0;i<ns;i++);
  64   1              {
  65   2                      for (j=0;j<4;j++);
  66   2                      
  67   2              }
  68   1      }
  69          
  70          //**************
  71          //输入命令或数据
  72          //**************
  73          
  74          void wr_InD(unsigned char com_d,unsigned char content)
  75          {
  76   1         //chk_busy ();
  77   1         //SoftDelay(8);
  78   1         E = 1; 
  79   1         if (com_d)
  80   1         {
  81   2              RS = 0;
  82   2                      RW = 0;                        //写命令 RS=0, RW=0       
  83   2         }
  84   1         else 
  85   1         {
  86   2              RS = 1;
  87   2                      RW = 0;                        //写数据 RS=1, RW=0
  88   2         }
  89   1         P1 = content;                       //命令或数据内容
  90   1         ///E = 1;                              //使能        开始写数据或命令
  91   1         Delay60ns(3);
  92   1         E = 0;                              //不使能 写数据或命令完毕
  93   1      
  94   1      }
  95          
  96          
  97          
  98          //**********
  99          //LCD初始化
 100          //**********
 101          void Lcd_Init(void)
 102          {       
 103   1              wr_InD(1,0x30);         //8bits,基本指令
 104   1          
 105   1              wr_InD(1,0x0c);         //开显示,显游标,不反显
 106   1      
 107   1              wr_InD(1,0x01);         //清屏
 108   1              Delay60ns(200);
 109   1              wr_InD(1,0x06);
 110   1      }
 111          
 112          
 113          //**************
 114          //忙检查
 115          //**************
 116          void chk_busy(void)
 117          {
C51 COMPILER V8.05a   LCD                                                                  05/09/2008 17:28:58 PAGE 3   

 118   1          RS = 0;
 119   1          RW = 1;
 120   1       
 121   1          while (1)
 122   1          {
 123   2              //Delay70ns(2);
 124   2              E = 1;;
 125   2              
 126   2              if ((P1 & 0x80) == 0)          //判断DB7为1,则忙
 127   2                      break;                                     //空闲时退出
 128   2              
 129   2              //Delay70ns(2);
 130   2              E = 0;          
 131   2          }
 132   1         
 133   1          E = 0;
 134   1      }
 135          
 136          
 137          
 138          //**********
 139          //清屏
 140          //**********
 141          void Clear_Lcd(void)
 142          {
 143   1              wr_InD(1,0x01);
 144   1      }
 145          
 146          
 147          
 148          //**********
 149          //显示汉字
 150          //**********
 151          void Char_Disp(unsigned char x, unsigned char y, char *p)
 152          {
 153   1         if(y == 0)
 154   1                wr_InD(1,(0x80+x)); 
 155   1      
 156   1         if(y == 1)
 157   1               wr_InD(1,(0x90+x));
 158   1       
 159   1         if(y == 2)
 160   1               wr_InD(1,(0x88+x));
 161   1       
 162   1         if(y == 3)
 163   1               wr_InD(1,(0x98+x));
 164   1       
 165   1         while(*p != 0)
 166   1               wr_InD(0,*p++);
 167   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    330    ----
   CONSTANT SIZE    =     35    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      16
   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 + -