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

📄 text1.lst

📁 这是我以前做过的51单片机实验代码
💻 LST
字号:
C51 COMPILER V8.08   TEXT1                                                                 04/26/2008 13:53:13 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <at89x51.H>
   2          #include<intrins.h>
   3          sbit  E=P1^2;
   4          sbit  RS=P1^0;
   5          sbit  RW=P1^4;
   6          unsigned char j=0;
   7          unsigned char yb=0x80;
   8          unsigned char code name00[]={"飞射白鹿雪连天,"};
   9          unsigned char code name01[]={"笑书神侠倚碧鸳。"};
  10          unsigned char code name02[]={"自古英雄多奇逸,"};
  11          unsigned char code name03[]={"金老挥毫尽使然。"};
  12          unsigned char code name10[]={"李白乘舟将欲行,"};
  13          unsigned char code name11[]={"忽闻岸上踏歌声。"};
  14          unsigned char code name12[]={"桃花潭水深千尺,"};
  15          unsigned char code name13[]={"不及汪伦送我情。"};
  16          unsigned char code name20[]={"this is a 12864 "};
  17          unsigned char code name21[]={"display program,"};
  18          unsigned char code name22[]={"welcome to commu"};
  19          unsigned char code name23[]={"nicate with me! "};
  20          
  21          void delay(unsigned char tt)//延时1ms
  22          {
  23   1         unsigned char j;
  24   1         while(tt--)
  25   1          {
  26   2         for(j=0;j<125;j++)
  27   2          {;}
  28   2       }
  29   1      }
  30          void wr_com(unsigned char value)//写指令,写指令时必须为RS=0;RW=0;
  31          {
  32   1       E=0;
  33   1       RS=0;
  34   1       RW=0;
  35   1       delay(1);
  36   1       P0=value;
  37   1       E=1;
  38   1       delay(2); //如果没有延时就必须要加查忙指令
  39   1       E=0;
  40   1      }
  41          void wr_data(unsigned char sj)//写数据,写数据时必须为 RS=1;RW=0;
  42          {
  43   1       E=0;
  44   1       RS=1;
  45   1       RW=0;
  46   1       P0=sj;
  47   1       E=1;
  48   1       delay(1);//如果没有延时就必须要加查忙指令
  49   1       E=0;
  50   1      }
  51          void reset (void)
  52          {
  53   1       wr_com(0x01);//清屏
  54   1       wr_com(0x08);//关显示
  55   1       wr_com(0x03);//归位
C51 COMPILER V8.08   TEXT1                                                                 04/26/2008 13:53:13 PAGE 2   

  56   1       wr_com(0x30);//功能设置
  57   1       wr_com(0x0f);//开显示
  58   1       wr_com(0x01);//清屏
  59   1      }
  60          //****************
  61          //outChinese 为函数名
  62          //place 为显示地址的首地址
  63          //unit  字符长度
  64          //charcode[]  要显示数据的内容
  65          void outChinese(unsigned char place,unsigned char unit,unsigned char charcode[] )
  66          {
  67   1       unsigned char i;
  68   1       wr_com(place);
  69   1       for(i=0;i<unit*2;i++)//一个汉字为两个字符
  70   1       {wr_data(charcode[i]);}
  71   1      }
  72          void outchar(unsigned char place,unsigned char unit,unsigned char charcode[] )
  73          {
  74   1       unsigned char i;
  75   1       wr_com(place);
  76   1       for(i=0;i<unit;i++)
  77   1       {wr_data(charcode[i]);}
  78   1      }
  79          void ydgb(void)
  80          {
  81   1        wr_com(yb);//显示光标位置
  82   1        if(P1_0==0)
  83   1        {
  84   2         delay(10);
  85   2         if(P1_0==0)
  86   2         {
  87   3          yb=yb+0x01;
  88   3       if(yb==0x88){yb=0x90;}
  89   3       if(yb==0x97){yb=0x88;}
  90   3       if(yb==0x8f){yb=0x98;}
  91   3       if(yb==0xa0){yb=0x80;}
  92   3         }
  93   2         while(P1_0==0);
  94   2        }
  95   1      }
  96          void display1(void)
  97          {
  98   1       ydgb();
  99   1       outChinese(0x80,8,name00);//第一行:80-87H
 100   1       outChinese(0x90,8,name01);//第二行:90-97H
 101   1       outChinese(0x88,8,name02);//第三行:88-8FH
 102   1       outChinese(0x98,8,name03);//第四行:98-9FH
 103   1       //outchar(0x9f,2,name4);
 104   1      }
 105          void display2(void)
 106          {
 107   1       ydgb();
 108   1       outChinese(0x80,8,name10);
 109   1       outChinese(0x90,8,name11);
 110   1       outChinese(0x88,8,name12);
 111   1       outChinese(0x98,8,name13);
 112   1      }
 113          void display3(void)
 114          {
 115   1       ydgb();
 116   1       outchar(0x80,16,name20);
 117   1       outchar(0x90,16,name21);
C51 COMPILER V8.08   TEXT1                                                                 04/26/2008 13:53:13 PAGE 3   

 118   1       outchar(0x88,16,name22);
 119   1       outchar(0x98,16,name23);
 120   1      }
 121          void main(void)
 122          {
 123   1      P1=0X00;
 124   1      P2=0X00;
 125   1       reset();
 126   1       while(1)
 127   1       {
 128   2        ydgb();
 129   2        if(P1_1==0)
 130   2        {
 131   3         delay(10);
 132   3         if(P1_1==0)
 133   3         {
 134   4          j++;
 135   4       ydgb();
 136   4       wr_com(0x01);//清屏
 137   4       if(j==3){j=0;}
 138   4         }
 139   3         while(P1_1==0);
 140   3        }
 141   2        switch(j)
 142   2        {
 143   3         case 0:display1();break;
 144   3         case 1:display2();break;
 145   3         case 2:display3();break;
 146   3        }
 147   2       }
 148   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    463    ----
   CONSTANT SIZE    =    204    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2       9
   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 + -