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

📄 main.lst

📁 DIY小型LED点阵显示系统.rar
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  10/14/2008 22:07:04 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*********************************************************
   2          程序名称:LED3216点阵拉幕显示汉字
   3          简要说明:P0口接上行线,P2口接下行线,P3口接扫描线
   4                            P3.0接左屏译码器使能端(CS1)
   5                            P3.1接右屏译码器使能端(CS2)
   6          编    写:JiangX.net
   7          *********************************************************/
   8          #include<AT89X52.h>
   9          #include<ziku.h>                                
  10          #define uchar unsigned char                     //宏定义                        
  11          #define hang1   P0                                      //上半屏行线
  12          #define hang2   P2                                      //下半屏行线
  13          #define lie     P1                                      //扫描列线
  14          #define CS1         P3_0                                //接左屏154译码器使能端,低电平有效
  15          #define CS2     P3_1                        //接右屏154译码器使能端,低电平有效
  16          #define num             sizeof(hanzi)/32        //自动计算字数
  17          uchar m=0,n=0;                                          //m为扫描过程中的中间变量,n为显示指针
  18          uchar a,b;                                                      //a、b分别为左半屏、右半屏的扫描变量
  19          
  20          /*****参数调整项*****/
  21          #define light   150                                     //显示亮度调节,数值不可过大,以不感到屏幕闪烁为准
  22          #define speed   30                                      //卷动速度调节
  23          
  24          /*****延时子程序*****/
  25          void delay(void)                                        //专门设置的延时程序用来改变扫描速度以方便调节亮度
  26          {
  27   1              uchar i;
  28   1              for(i=0;i<light;i++);
  29   1      }
  30          
  31          /*****初始化子程序*****/
  32          void init(void)                         //定时器初始化,设置定时器0工作方式1,定时时间1ms
  33          {                        
  34   1              TMOD=0x1;
  35   1              TH0=0xfc;
  36   1              TL0=0x18;
  37   1      }
  38          
  39          /*****计数器中断程序*****/
  40          void timer0(void) interrupt 1           //中断处理
  41          {
  42   1              uchar k;                                                //定义变量k
  43   1              TH0=0xfc;
  44   1              TL0=0x18;
  45   1              k++;                                                    //定时时间到,初始变量加1
  46   1              if(k>speed) {m++;k=0;}
  47   1      
  48   1              if(m<=16) {a=m;b=0;}                    //扫描左半屏,不扫描右半屏              
  49   1              else {a=16;b=m-16;}                             //全屏扫描左半屏,扫描右半屏
  50   1      
  51   1              if(m>32) b=16;                                  //全屏扫描右半屏
  52   1                                                                              //中间这段时间是为了看清楚整屏画面内容,稍作停顿
  53   1              if(m==40) {m=0;n++;}                    //一幅画面卷动显示过程结束,载入下一幅画面
  54   1      
  55   1              if(n>num/2-1) n=0;                              //所有汉字显示完毕,回到第一个汉字                                      
C51 COMPILER V8.02   MAIN                                                                  10/14/2008 22:07:04 PAGE 2   

  56   1      }
  57          
  58          /*****显示子程序*****/
  59          void display(void)
  60          {
  61   1              uchar i,j;
  62   1              CS2=1;                                                  //关右屏
  63   1              CS1=0;                                                  //开左屏                                                        
  64   1              for(i=0;i<a;i++)                                //变量a决定了一次扫描左半屏列数
  65   1              {
  66   2                      lie=i;                                          //左屏列扫描信号输出
  67   2                      hang1=hanzi[i+64*n];            
  68   2                      hang2=hanzi[i+64*n+16];         //行信号输出
  69   2                      delay();                                
  70   2                      hang1=0;                                        
  71   2                      hang2=0;                                        
  72   2              }       
  73   1              CS1=1;                                                  //关左屏
  74   1              CS2=0;                                                  //开右屏
  75   1              for(j=0;j<b;j++)                                //变量b决定了一次扫描右半屏列数
  76   1              {               
  77   2                      lie=j<<4;                                       //右屏列扫描信号输出
  78   2                      hang1=hanzi[j+64*n+32];         
  79   2                      hang2=hanzi[j+64*n+48];         //行信号输出
  80   2                      delay();                                
  81   2                      hang1=0;
  82   2                      hang2=0;                                        
  83   2              }                                                               
  84   1      }
  85          
  86          /*****主程序*****/
  87          void main(void)
  88          {
  89   1              init();
  90   1              TR0=1;
  91   1              ET0=1;
  92   1              EA=1;                                                   //开中断
  93   1              while(1)
  94   1              {
  95   2                      display();
  96   2              }
  97   1      }
  98          
  99          /*****END*****/
 100          /*****欢迎到作者博客交流:http://www.jiangx.net*****/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    283    ----
   CONSTANT SIZE    =    384    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4       1
   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 + -