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

📄 clock.lst

📁 ds18b20程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V8.02   CLOCK                                                                 10/30/2007 22:33:12 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE CLOCK
OBJECT MODULE PLACED IN clock.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil C51(V8)\C51\BIN\C51.EXE clock.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include"at89x52.h"
   2          #include<intrins.h>
   3          #include<absacc.h>
   4          #define  uchar unsigned char    
   5          #define  nop  _nop_()       /* 定义空操作指令 */
   6          
   7          #define port_led XBYTE[0x7FFF]
   8          #define display_disappear 0x00;
   9          #define DSA XBYTE[0x800A]
  10          #define DSB XBYTE[0x800B]
  11          #define DSC XBYTE[0x800C]
  12          #define DSD XBYTE[0x800D]
  13          
  14          #define sec XBYTE[0x8000]
  15          #define min XBYTE[0x8002]
  16          #define hour XBYTE[0x8004]
  17          #define sec_alarm XBYTE[0x8001]
  18          #define min_alarm XBYTE[0x8003]
  19          #define hour_alarm XBYTE[0x8005]
  20          
  21          uchar code tab[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};  /*共阴极LED数码显示器的段码*/
  22          uchar code tab_dp[10]={0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF};
  23          
  24          sbit com0=P1^0;
  25          sbit com1=P1^1;
  26          sbit com2=P1^2;
  27          sbit com3=P1^3;
  28          sbit light0=P1^4;
  29          sbit light1=P1^6;
  30          sbit light_combo=P1^5;
  31          sbit alarm=P3^0;
  32          sbit bee=P1^7;
  33          sbit key0=P3^2;
  34          sbit key1=P3^3;
  35          
  36          char sec_buffer=0,min_buffer=0,hour_buffer=0;
  37          char min_buffer_alarm,hour_buffer_alarm;
  38          char sec_temp,min_temp,hour_temp;
  39          char light_count=0,count_timer0=0,flag_set,flag_display;
  40          char count_bee=0,count_rect=0;
  41          bit  bee_flag=0;
  42          uchar ptr_key=0,flag_key=0;
  43          
  44          void delay (unsigned int value)         /*延时副程式*/
  45           {
  46   1            while (value!=0) value--;         /*10US延时*/
  47   1       }
  48          
  49          void initialize_DS(void)
  50          {
  51   1        DSA=0x0F;
  52   1        DSB=0x82;
  53   1        ACC=DSC;
  54   1        ACC=DSD;
  55   1        DSA=0x2F;
C51 COMPILER V8.02   CLOCK                                                                 10/30/2007 22:33:12 PAGE 2   

  56   1        DSB=0x22;
  57   1      }
  58          
  59          void start_DS(void)
  60          {
  61   1        DSA=0x0F;
  62   1        DSB=0x82;
  63   1        sec=sec_buffer;
  64   1        min=min_buffer;
  65   1        hour=hour_buffer;
  66   1        sec_alarm=0x00;
  67   1        min_alarm=0x00;
  68   1        hour_alarm=0x00;
  69   1        DSA=0x2F;
  70   1        DSB=0x22;
  71   1      }
  72          
  73          char disassemble_BCD(char BCD_DS,bit flag_DS)
  74          {
  75   1         if(flag_DS==0) return BCD_DS&0x0f;
  76   1         else return BCD_DS>>4;
  77   1      }
  78          
  79          void scan(void)
  80          {
  81   1        if(flag_display==0)
  82   1        {
  83   2        com3=0;
  84   2        port_led=tab[disassemble_BCD(min_temp,0)];
  85   2        delay(300);
  86   2        com3=1;
  87   2      
  88   2        com2=0;
  89   2        port_led=tab[disassemble_BCD(min_temp,1)];
  90   2        delay(300);
  91   2        com2=1;
  92   2      
  93   2        com1=0;
  94   2        port_led=tab_dp[disassemble_BCD(hour_temp,0)];
  95   2        delay(300);
  96   2        com1=1;
  97   2      
  98   2        com0=0;
  99   2        port_led=tab[disassemble_BCD(hour_temp,1)];
 100   2        delay(300);
 101   2        com0=1;
 102   2        }
 103   1        if(flag_display==1)
 104   1        {
 105   2        com3=0;
 106   2        port_led=display_disappear;
 107   2        delay(300);
 108   2        com3=1;
 109   2      
 110   2        com2=0;
 111   2        port_led=display_disappear;
 112   2        delay(300);
 113   2        com2=1;
 114   2      
 115   2        com1=0;
 116   2        port_led=tab_dp[disassemble_BCD(hour_temp,0)];
 117   2        delay(300);
C51 COMPILER V8.02   CLOCK                                                                 10/30/2007 22:33:12 PAGE 3   

 118   2        com1=1;
 119   2      
 120   2        com0=0;
 121   2        port_led=tab[disassemble_BCD(hour_temp,1)];
 122   2        delay(300);
 123   2        com0=1;
 124   2        }
 125   1        if(flag_display==2)
 126   1        {
 127   2        com3=0;
 128   2        port_led=tab[disassemble_BCD(min_temp,0)];
 129   2        delay(300);
 130   2        com3=1;
 131   2      
 132   2        com2=0;
 133   2        port_led=tab[disassemble_BCD(min_temp,1)];
 134   2        delay(300);
 135   2        com2=1;
 136   2      
 137   2        com1=0;
 138   2        port_led=display_disappear;
 139   2        delay(300);
 140   2        com1=1;
 141   2      
 142   2        com0=0;
 143   2        port_led=display_disappear;
 144   2        delay(300);
 145   2        com0=1;
 146   2        }
 147   1      
 148   1        if(flag_display==3)
 149   1        {
 150   2        com3=0;
 151   2        port_led=tab[disassemble_BCD(min_alarm,0)];
 152   2        delay(300);
 153   2        com3=1;
 154   2      
 155   2        com2=0;
 156   2        port_led=tab[disassemble_BCD(min_alarm,1)];
 157   2        delay(300);
 158   2        com2=1;
 159   2      
 160   2        com1=0;
 161   2        port_led=tab_dp[disassemble_BCD(hour_alarm,0)];
 162   2        delay(300);
 163   2        com1=1;
 164   2      
 165   2        com0=0;
 166   2        port_led=tab[disassemble_BCD(hour_alarm,1)];
 167   2        delay(300);
 168   2        com0=1;
 169   2        }
 170   1        if(flag_display==4)
 171   1        {
 172   2        com3=0;
 173   2        port_led=display_disappear;
 174   2        delay(300);
 175   2        com3=1;
 176   2      
 177   2        com2=0;
 178   2        port_led=display_disappear;
 179   2        delay(300);
C51 COMPILER V8.02   CLOCK                                                                 10/30/2007 22:33:12 PAGE 4   

 180   2        com2=1;
 181   2      
 182   2        com1=0;
 183   2        port_led=tab_dp[disassemble_BCD(hour_alarm,0)];
 184   2        delay(300);
 185   2        com1=1;
 186   2      
 187   2        com0=0;
 188   2        port_led=tab[disassemble_BCD(hour_alarm,1)];
 189   2        delay(300);
 190   2        com0=1;
 191   2        }
 192   1        if(flag_display==5)
 193   1        {
 194   2        com3=0;
 195   2        port_led=tab[disassemble_BCD(min_alarm,0)];
 196   2        delay(300);
 197   2        com3=1;
 198   2      
 199   2        com2=0;
 200   2        port_led=tab[disassemble_BCD(min_alarm,1)];
 201   2        delay(300);
 202   2        com2=1;
 203   2      
 204   2        com1=0;
 205   2        port_led=display_disappear;
 206   2        delay(300);
 207   2        com1=1;
 208   2      
 209   2        com0=0;
 210   2        port_led=display_disappear;
 211   2        delay(300);
 212   2        com0=1;
 213   2        }
 214   1      
 215   1        if(sec_temp!=sec)
 216   1           {
 217   2               switch(light_count)
 218   2                  {case 0:light1=0;light0=1;break;
 219   3                   case 1:light0=0;light1=1;break;
 220   3                   default:break;
 221   3                   }
 222   2               light_count++;
 223   2               light_count=light_count%2;
 224   2                       sec_temp=sec;
 225   2               min_temp=min;
 226   2               hour_temp=hour;
 227   2                       if((hour_temp==hour_alarm)&&(min_temp==min_alarm)&&(sec_temp==sec_alarm))
 228   2                       {TR1=1;}

⌨️ 快捷键说明

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