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

📄 test.lst

📁 STC12C5410AD 对 清达光电HG12864 控制程序 Keil环境
💻 LST
字号:
C51 COMPILER V8.02   TEST                                                                  01/04/2009 11:03:28 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE TEST
OBJECT MODULE PLACED IN Test.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Test.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 WriteCmd(uchar);
  14          void WriteData(uchar);
  15          void Lcd_Init(void);
  16          void chk_busy(void);
  17          void Clear_Lcd(void);
  18          void Char_Disp(uchar x, uchar y, char *p);
  19          
  20          
  21          main()
  22          {  
  23   1              uchar i;
  24   1              char date[8] = {' ','a','b','c','d','e','f','g'};
  25   1              char *p = date;
  26   1      
  27   1      
  28   1              InitialCPU();
  29   1              Lcd_Init();
  30   1              
  31   1              Clear_Lcd();
  32   1              chk_busy();
  33   1                      
  34   1              Char_Disp(0,0,"Monday");
  35   1              Char_Disp(4,0,"星期一");
  36   1      
  37   1              //Char_Disp(0,1,"Wednesday");
  38   1              Char_Disp(1,1,"去电:");
  39   1              Char_Disp(4,2,"星期四");
  40   1              Char_Disp(1,3,"来电:");
  41   1              Delay60ns(120);
  42   1      
  43   1              while(1)
  44   1              {               
  45   2                      for(i=0;i<200;i++)
  46   2                              Delay60ns(2000);
  47   2                      WDT  = !WDT;
  48   2              }
  49   1      }
  50          
  51          
  52          /************************************/
  53          /*     CPU  初始化子程序            */
  54          /************************************/
  55          void InitialCPU(void)
C51 COMPILER V8.02   TEST                                                                  01/04/2009 11:03:28 PAGE 2   

  56          {  //IDLE_CLK |=0x01;
  57   1         //端口设置
  58   1         P1M0 = 0x00;                                                 //设置P1 口为IO状态
  59   1         P1M1 = 0x00;                                                 
  60   1         
  61   1         P3M0 = 0x00;                                                 //设置P3 口为IO状态
  62   1         P3M1 = 0x00;
  63   1         WDT  = 0;
  64   1      }
  65          
  66          
  67          
  68          //**************
  69          //延时
  70          //**************
  71          void Delay60ns(int ns)
  72          {
  73   1              int i,j;
  74   1              for (i=0;i<ns;i++);
  75   1              {
  76   2                      for (j=0;j<4;j++);
  77   2                      
  78   2              }
  79   1      }
  80          
  81          
  82          
  83          //**************
  84          //写命令
  85          //**************
  86          void WriteCmd(uchar cmd)
  87          {  uchar temp;
  88   1      
  89   1         RS = 0;
  90   1         RW = 1;
  91   1         do
  92   1         {
  93   2           P1   = 0xFF;
  94   2           E    = 1;
  95   2           temp = P1;
  96   2           E    = 0;
  97   2         }while(temp&0x80);                     //等待空闲
  98   1         RS = 0;                                                //开始写命令
  99   1         RW = 0;
 100   1         P1 = cmd;
 101   1         E  = 1;
 102   1         E  = 0;
 103   1      }
 104          
 105          
 106          //**************
 107          //写数据
 108          //**************
 109           void WriteData(uchar Dat)
 110          { uchar temp;
 111   1        
 112   1        RS = 0;
 113   1        RW = 1;
 114   1        do
 115   1        {
 116   2           P1 = 0xFF;
 117   2           E  = 1;
C51 COMPILER V8.02   TEST                                                                  01/04/2009 11:03:28 PAGE 3   

 118   2           temp = P1;
 119   2           E  = 0;
 120   2        }while(temp&0x80);                      //等待空闲
 121   1        RS = 1;                                                         //开始写数据
 122   1        RW = 0;
 123   1        P1 = Dat;
 124   1        E  = 1;
 125   1        E  = 0;
 126   1      }
 127          
 128          
 129          
 130          //**********
 131          //LCD初始化
 132          //**********
 133          void Lcd_Init(void)
 134          {       
 135   1              WriteCmd(0x30);         //8bits,基本指令
 136   1          
 137   1              WriteCmd(0x0c);         //开显示,显游标,不反显
 138   1      
 139   1              WriteCmd(0x01);         //清屏
 140   1              Delay60ns(200);
 141   1              WriteCmd(0x06);
 142   1      }
 143          
 144          
 145          //**************
 146          //忙检查
 147          //**************
 148          void chk_busy(void)
 149          {       uchar temp;
 150   1      
 151   1          RS = 0;
 152   1          RW = 1; 
 153   1          do
 154   1          {
 155   2             P1   = 0xFF;
 156   2             E    = 1;
 157   2             temp = P1;
 158   2             E    = 0;
 159   2          }while(temp&0x80);
 160   1         
 161   1          E = 0;
 162   1      }
 163          
 164          
 165          
 166          //**********
 167          //清屏
 168          //**********
 169          void Clear_Lcd(void)
 170          {
 171   1              WriteCmd(0x01);
 172   1      }
 173          
 174          
 175          
 176          //**********
 177          //显示汉字
 178          //**********
 179          void Char_Disp(unsigned char x, unsigned char y, char *p)
C51 COMPILER V8.02   TEST                                                                  01/04/2009 11:03:28 PAGE 4   

 180          {
 181   1         if(y == 0)
 182   1                WriteCmd(0x80+x); 
 183   1      
 184   1         if(y == 1)
 185   1               WriteCmd(0x90+x);
 186   1       
 187   1         if(y == 2)
 188   1               WriteCmd(0x88+x);
 189   1       
 190   1         if(y == 3)
 191   1               WriteCmd(0x98+x);
 192   1       
 193   1         while(*p != 0)
 194   1               WriteData(*p++);
 195   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    371    ----
   CONSTANT SIZE    =     43    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      15
   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 + -