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

📄 cdisplay.lst

📁 实现了led数码管的显示
💻 LST
字号:
C51 COMPILER V7.06   CDISPLAY                                                              06/04/2008 10:36:57 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE CDISPLAY
OBJECT MODULE PLACED IN cdisplay.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE cdisplay.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include"c8051F320.h"
   2          #define uchar unsigned char
   3          #define sysclk 24000000
   4          #define T2_VAL -(sysclk/12/1000)*1
   5          #define T3_VAL -(sysclk/12/1000)*20
   6          
   7          sbit LED_SEL = P1^7;
   8          sbit RING = P3^0;
   9          
  10          uchar code seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
  11          uchar code dig[]={0x02,0x04,0x08,0x10,0x20,0x01};
  12          
  13          uchar data dd,tmr3_done;
  14          uchar data second_count = 50,ring_tmr,second,minute,hour;
  15          uchar data disbuf[6];
  16          uchar bdata disled = 0x80;
  17          sbit LED_RED = disled^6;
  18          sbit LED_green = disled^7;
  19          bit tmr2_done;
  20          
  21          
  22          void PORT2_Init(void);
  23          void Timer2_Init(void);
  24          void Timer3_Init(void);
  25          void disp_scan(void);
  26          void check_time (void);
  27          
  28          uchar da_adjust(uchar da);
  29          
  30          void PORT2_Init(void)
  31          {
  32   1              XBR1 = 0xc0;
  33   1              P3MDOUT |= 0x01;
  34   1              P1MDOUT |= 0x80;
  35   1              P2MDOUT |= 0xff;
  36   1              RING = 0;
  37   1      }
  38          
  39          void Timer2_Init()
  40          {
  41   1              TMR2L = T2_VAL;
  42   1              TMR2H = T2_VAL>>8;//定时器2高字节
  43   1              TMR2RLL = T2_VAL;//定时器2重载寄存器低字节
  44   1              TMR2RLH = T2_VAL>>8;
  45   1              TR2=1;
*** ERROR C202 IN LINE 45 OF CDISPLAY.C: 'TR2': undefined identifier
  46   1      }
  47          
  48          void Timer3_Init()
  49          {
  50   1              TMR3L=T3_VAL;
  51   1              TMR3H=T3_VAL>>8;
  52   1              TMR3RLL=T3_VAL;
  53   1              TMR3RLH=T3_VAL>>8;
  54   1              TMR3CN=0x04;//TR3=1
C51 COMPILER V7.06   CDISPLAY                                                              06/04/2008 10:36:57 PAGE 2   

  55   1      }
  56          
  57          void disp_scan (void)
  58          {
  59   1              TF2H = 0;
  60   1      
  61   1              P2 = 0;
  62   1              LED_SEL = ~LED_SEL;
  63   1              P2 = 0xc0;
  64   1              LED_SEL = ~LED_SEL;
  65   1              
  66   1              P2=seg[disbuf[dd]];
  67   1              LED_SEL = ~LED_SEL;
  68   1              
  69   1              P2 = disled; 
  70   1              P2 |= dig[dd];
  71   1              LED_SEL = ~LED_SEL;
  72   1              
  73   1              if(dd==5) dd=0;
  74   1              else dd++;  
  75   1              tmr2_done =1;  
  76   1      }
  77          
  78          void check_time(void)
  79          {
  80   1              TMR3CN &= 0x7f;
  81   1              if(second_count != 0) second_count--;
  82   1              else
  83   1              {
  84   2                      second_count = 50;
  85   2                      RING = 1;
  86   2                      LED_RED = ~LED_RED;
  87   2                      LED_green = ~LED_green;
  88   2                      if(second<0x59)
  89   2                      {
  90   3                              second++;
  91   3                              second = da_adjust(second);
  92   3                              ring_tmr = 5;
  93   3                      }
  94   2                      else
  95   2                      {
  96   3                              second=0;
  97   3                              if(minute<0x59)
  98   3                              {
  99   4                                      minute++;
 100   4                                      minute=da_adjust(minute);
 101   4                                      ring_tmr = 25;
 102   4                              }
 103   3                              else
 104   3                              {
 105   4                                      minute=0;
 106   4                                      ring_tmr=50;
 107   4                                      if(hour<0x24)
 108   4                                      {
 109   5                                              hour++;
 110   5                                              hour=da_adjust(hour);
 111   5                                      }
 112   4                                      else hour=0;
 113   4                              }
 114   3                      }
 115   2                      disbuf[5] = (hour&0xf0)>>4;
 116   2                      disbuf[4] = hour&0x0f;
C51 COMPILER V7.06   CDISPLAY                                                              06/04/2008 10:36:57 PAGE 3   

 117   2                      disbuf[3] = (minute&0xf0)>>4;
 118   2                      disbuf[2] = minute&0x0f;
 119   2                      disbuf[1] = (second&0xf0)>>4;
 120   2                      disbuf[0] = second&0x0f;
 121   2              }
 122   1              if(ring_tmr != 0)
 123   1              {
 124   2                      ring_tmr--;
 125   2                      if(ring_tmr == 0) RING = 0;
 126   2              }
 127   1              tmr3_done=0;
 128   1      } 
 129          
 130          uchar da_adjust(uchar da)
 131          {
 132   1              if((da&0x0f)>9) da += 0x06;
 133   1              return (da);
 134   1      }

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

⌨️ 快捷键说明

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