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

📄 led.lst

📁 89C52的键盘扫描LED显示及串口程序。 用Keil C51开发。用通用实验板调试通过。
💻 LST
字号:
C51 COMPILER V8.05a   LED                                                                  07/25/2008 14:45:04 PAGE 1   


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

line level    source

   1          #include"at89x52.h"
   2          #include<intrins.h>
   3          #include"def.h"
   4          extern void delay (unsigned int value);
   5          
   6          sbit clk=P2^0;                          /*DTLED-6显示芯片/时钟芯片DS1302时钟输入端*/
   7          sbit dout=P2^1;                         /*DTLED-6显示芯片数据读入端*/
   8          sbit en =P2^2;                          /*DTLED-6显示芯片使能端*/       
   9          
  10          
  11          //*********************************************************************/
  12          //串行发送DTLED-6显示
  13          //dispbuf0-dispbuf1-dispbuf2-dispbuf3-dispbuf4-dispbuf5-dispbuf6-dispbuf7-dispbuf8
  14          // 小数点 - 数码管1- 数码管2- 数码管3- 数码管4- 数码管5- 数码管6-ID识别码-BZ识别码
  15          //00000xxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx
  16          //小数点=1~6,其它为不显示                                                                                                       
  17          //数码管1-6=0~15,
  18          //ID识别码=0~15   
  19          //BZ识别码=BZ.3为蜂鸣输出控制位,0=关闭,1=打开
  20          //     BZ0~2为蜂鸣频率输出设定为,000=不分频,  最高频率输出=4800Hz;
  21          //                                                                001=一次分频,频率输出=4800/ 2 =2400Hz;
  22          //                                                                010=二次分频,频率输出=4800/ 4 =1200Hz;
  23          //                                                                011=三次分频,频率输出=4800/ 8 =600Hz;
  24          //                                                                100=四次分频,频率输出=4800/ 16=300Hz;
  25          //                                                                101=五次分频,频率输出=4800/ 32=150Hz;
  26          //                                                                110=六次分频,频率输出=4800/ 64=75Hz;                                
  27          //                                                                111=七次分频,频率输出=4800/128=38Hz;      
  28          //======================================================================
  29          void tsled(void)                        /*串行发送DTLED-6显示副程式*/   
  30          {   char ts0,i,j;
  31   1              clk=0;
  32   1              en=0;
  33   1              delay(10);
  34   1              for(j=0;j<9;j++)
  35   1              {       ts0=dispbuf[j];
  36   2                      for(i=0;i<4;i++)                /*发小数点码8,4,2,1*/
  37   2                      {
  38   3                      clk=1;
  39   3                      ts0=ts0<<1;     
  40   3                      if(AC==1) 
  41   3                      dout=1;
  42   3                      else      dout=0;
  43   3                      clk=0;
  44   3                      nop;
  45   3                      delay(3);
  46   3                      }
  47   2         }    
  48   1              en=1;
  49   1      }               /*返回主程式*/
  50          
  51          /******************************************************/                                //光标左移右移
  52          void S_RL(void)
  53          {
  54   1              if (++disp_temp[0]>6)
  55   1              {
C51 COMPILER V8.05a   LED                                                                  07/25/2008 14:45:04 PAGE 2   

  56   2                      disp_temp[0]=0;
  57   2                      dispbuf[6]=disp_temp[1];
  58   2              }
  59   1              else 
  60   1              {
  61   2                      if (disp_temp[0]!=1)dispbuf[disp_temp[0]-1]=disp_temp[1];
  62   2                      disp_temp[1]=dispbuf[disp_temp[0]];
  63   2                      dispbuf[disp_temp[0]]=0x0d;
  64   2              }
  65   1      }
  66          void S_RR(void)
  67          {
  68   1                      if (disp_temp[0]--==0)
  69   1              {
  70   2                      disp_temp[0]=6;
  71   2                      disp_temp[1]=dispbuf[6];
  72   2              }
  73   1              else 
  74   1              {
  75   2                      dispbuf[disp_temp[0]+1]=disp_temp[1];
  76   2                      disp_temp[1]=dispbuf[disp_temp[0]];
  77   2              }
  78   1                      
  79   1                      if(disp_temp[0]!=0)dispbuf[disp_temp[0]]=0x0d;
  80   1      }
  81          /******************************************************/
  82          void clear(void)                                                                /*清除显示器dispbuf[]为00副程式*/
  83          {char c;                                                                                /*宣告变数*/
  84   1           for(c=1;c<7;c++)                                                   /*将00存入显示阵列dispbuf[]*/
  85   1           {dispbuf[c]=0x00;
  86   2           }                                  
  87   1      }                                                                                               /*返回上一层程式*/
  88          /******************************************************/
  89          
  90          /****************************************************/
  91          void xch(void)                                                                  /*显示向右移动副程式*/
  92          {char c;                                                                                /*宣告变数*/
  93   1               for(c=6;c>0;c--)
  94   1           {dispbuf[c]=dispbuf[c-1];                                  /*将显示器dispbuf[]移位交换,dispbuf[3]->dispbuf[4]->dispbuf[5]...*/
  95   2           }
  96   1           dispbuf[0]=0;                                                              /*有安键时,小数点不亮*/
  97   1           dispbuf[1]=tab[ptr];                                               /*新的按键值存入dispbuf[1],最低位*/
  98   1      }                                                                                               /*返回上一层程式*/
  99          /****************************************************/
 100          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    200    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     36       3
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -