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

📄 dianzhenxianshi.lst

📁 单片机.你想学好吗?里面附有15个实例---加keil源代码和proteus仿真电路图...想不学会都难
💻 LST
字号:
C51 COMPILER V6.12  DIANZHENXIANSHI                                                        05/25/2007 19:03:48 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE DIANZHENXIANSHI
OBJECT MODULE PLACED IN .\DIANZHENXIANSHI.OBJ
COMPILER INVOKED BY: G:\programfiles2\keil6.02\C51\BIN\C51.EXE .\DIANZHENXIANSHI.C DEBUG OBJECTEXTEND

stmt level    source

   1          //使用AT89C52单片机,12MHZ晶振,P0口输出一行数据,P2口作列扫描,共阳LED管
   2          //P1口接6个按键,用于逐字闪烁、向上、下、左、右、显示和暂停备用
   3          #include "reg51.h"
   4          #define char unsigned char
   5          #define int unsigned int
   6          char key,keytmp;
   7          char code distaba[]=
   8          {0x00,0x00,0x27,0x45,0x45,0x45,0x39,0x00,//2(各数字的阳码)
   9           0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,//0
  10           0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,//0
  11           0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00,//7
  12           0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//黑屏,表示一次显示完毕
  13          };
  14          char code distabb[]=
  15          {0x00,0x39,0x45,0x45,0x45,0x27,0x00,0x00,//2
  16           0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,//0
  17           0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00,//0
  18           0x00,0x70,0x4f,0x40,0x40,0x40,0x00,0x00,//7
  19           0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//黑屏,表示一次显示完毕
  20          };
  21          char code distabc[]=
  22          {0xff,0xc7,0xbb,0xbf,0xbf,0xc3,0xfb,0x83,//2(各数字的阳反码)
  23           0xff,0xc7,0xbb,0xbb,0xbb,0xbb,0xbb,0xc7,//0
  24           0xff,0xc7,0xbb,0xbb,0xbb,0xbb,0xbb,0xc7,//0
  25           0xff,0x83,0xbf,0xdf,0xdf,0xdf,0xdf,0xdf,//7
  26           0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//黑屏,表示一次显示完毕
  27          };
  28          char code distabd[]=
  29          {0x83,0xfb,0xc3,0xbf,0xbf,0xbb,0xc7,0xff,//2(各数字的阳反码)
  30           0xc7,0xbb,0xbb,0xbb,0xbb,0xbb,0xc7,0xff,//0
  31           0xc7,0xbb,0xbb,0xbb,0xbb,0xbb,0xc7,0xff,//0
  32           0xdf,0xdf,0xdf,0xdf,0xdf,0xbf,0x83,0xff,//7
  33           0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,//黑屏,表示一次显示完毕
  34          };
  35          //
  36          char code scan_cona[8]=
  37          {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//列扫描控制字
  38          char code scan_conb[8]=
  39          {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//列扫描控制字
  40          //******按键扫描函数********//
  41          void keyscan()
  42          {
  43   1       key=(~P1)&0x0ff;//读入键值
  44   1       if(key!=0)
  45   1       {
  46   2        keytmp=key;//键值存放
  47   2      
  48   2       }
  49   1      }
  50          //***1ms延时子程序****
  51          delay1ms(int t)
  52          {
  53   1       int i,j;
  54   1       for(i=0;i<t;i++)
  55   1           for(j=0;j<120;j++)
C51 COMPILER V6.12  DIANZHENXIANSHI                                                        05/25/2007 19:03:48 PAGE 2   

  56   1           keyscan();
  57   1      }
  58          //******功能程序*******
  59          //******逐字闪烁显示*******
  60          fun0()
  61          {
  62   1       int m,n,h;
  63   1       for(h=0;h<40;h=h+8)
  64   1          {for(n=0;n<16;n++)
  65   2              {   if(0<n<=8)
  66   3      			 {for(m=0;m<8;m++)
  67   4      			  {P2=scan_cona[m];P0=distaba[m+h];delay1ms(3);continue;}}
  68   3      			if(8<n<=16)
  69   3      			 {for(m=0;m<8;m++)
  70   4      			  {P2=0xff;P0=distaba[m+h];delay1ms(3);}continue;}	
  71   3              }
  72   2          }
  73   1      }
  74          //******向左滚动显示******
  75          fun1()
  76          {
  77   1       int m,n,h;
  78   1       for(h=0;h<32;h++)//控制显示字数(32/8=4个)
  79   1          {for(n=0;n<25;n++)//控制帧移动速度
  80   2              {for(m=0;m<8;m++)//显示1帧扫描(分8行,每行亮1ms)
  81   3                  {P2=scan_cona[m];P0=distaba[m+h];delay1ms(1);}
  82   3              }
  83   2          }
  84   1      }
  85          //****向右滚动显示****
  86          fun2()
  87          {
  88   1       int m,n,h;
  89   1       for(h=0;h<32;h++)//控制显示字数(32/8=4个)
  90   1          {for(n=0;n<25;n++)//控制帧移动速度
  91   2              {for(m=0;m<8;m++)//显示1帧扫描(分8行,每行亮1ms)
  92   3                  {P2=scan_cona[7-m];P0=distabb[m+h];delay1ms(1);}
  93   3              }
  94   2          }
  95   1      }
  96          //********向上滚动显示**********
  97          fun3()
  98          {
  99   1       int m,n,h;
 100   1       for(h=0;h<32;h++)//控制显示字数(32/8=4个)
 101   1          {for(n=0;n<25;n++)//控制帧移动速度
 102   2              {for(m=0;m<8;m++)//显示1帧扫描(分8行,每行亮1ms)
 103   3                  {P0=scan_conb[7-m];P2=distabc[m+h];delay1ms(1);}
 104   3              }
 105   2          }
 106   1      }
 107          //*********向下滚动显示*********
 108          fun4()
 109          {
 110   1       int m,n,h;
 111   1       for(h=0;h<32;h++)//控制显示字数(32/8=4个)
 112   1          {for(n=0;n<25;n++)//控制帧移动速度
 113   2              {for(m=0;m<8;m++)//显示1帧扫描(分8行,每行亮1ms)
 114   3                  {P0=scan_conb[m];P2=distabd[m+h];delay1ms(1);}
 115   3              }
 116   2          }
 117   1      }
C51 COMPILER V6.12  DIANZHENXIANSHI                                                        05/25/2007 19:03:48 PAGE 3   

 118          //******主程序********
 119          main()
 120          {
 121   1       keytmp=1;//上电自动演示功能(逐字显示)
 122   1       while(1)
 123   1        {
 124   2         keyscan();
 125   2         switch(keytmp)
 126   2          {
 127   3           case(1):{fun0();break;}
 128   3           case(2):{fun1();break;}
 129   3           case(4):{fun2();break;}
 130   3           case(8):{fun3();break;}
 131   3           case(16):{fun4();break;}
 132   3      	 case(32):{keyscan();P2=0xff;break;}//备用(暂停黑屏)
 133   3      	 default:{break;}
 134   3          }
 135   2        }
 136   1      }
 137          //*******************结束************************* //  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    687    ----
   CONSTANT SIZE    =    176    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2      30
   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 + -