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

📄 51

📁 51单片机大量源码
💻
字号:
C51 COMPILER V8.18   EX66                                                                  01/04/2010 13:05:34 PAGE 1   


C51 COMPILER V8.18, COMPILATION OF MODULE EX66
OBJECT MODULE PLACED IN ex66.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ex66.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //数码时钟设计
   2          #include<reg52.h>    //  包含51单片机寄存器定义的头文件
   3          unsigned char Tab[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};  //control  shape
   4          unsigned char port[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
   5          unsigned char int_time ; //中断次数计数变量
   6          unsigned char second;    //秒计数变量
   7          unsigned char minute;    //分钟计数变量
   8          unsigned char hour;     //小时计数变量
   9          
  10          /////////////////////////////////////////////////////
  11          
  12           void delay(void)      //延时函数,延时约0.6ms
  13           {
  14   1         unsigned char j;
  15   1              for(j=0;j<180;j++)
  16   1               ;
  17   1        }
  18          
  19          /******************************************************************
  20          函数功能:显示秒的子程序
  21          入口参数:s
  22          ********************************************************************/
  23           void DisplaySecond(unsigned char s)
  24          {
  25   1         P2=0xbf;        //P2.6引脚输出低电平, DS6点亮 
  26   1         P0=Tab[s/10];          //显示十位
  27   1         delay();
  28   1        delay();
  29   1         delay();
  30   1        
  31   1         P2=0x7f;       //P2.7引脚输出低电平, DS7点亮 
  32   1         P0=Tab[s%10];         //显示个位
  33   1       delay();
  34   1        delay();
  35   1         delay();
  36   1        
  37   1              P2=0xff;     //关闭所有数码管
  38   1              P0=0xff;
  39   1               delay();
  40   1        delay();
  41   1         delay();
  42   1       
  43   1       }
  44           
  45          /******************************************************************
  46          函数功能:显示分钟的子程序
  47          入口参数:m
  48          ********************************************************************/
  49          void DisplayMinute(unsigned char m)
  50          {
  51   1           P2=0xf7;   // P2.3引脚输出低电平, DS3点亮 
  52   1           P0=Tab[m/10];//显示个位
  53   1                 delay();
  54   1        delay();
  55   1         delay();
C51 COMPILER V8.18   EX66                                                                  01/04/2010 13:05:34 PAGE 2   

  56   1        delay();
  57   1                P2=0xef;   // P2.4引脚输出低电平, DS4点亮 
  58   1                P0=Tab[m%10];
  59   1                delay();
  60   1        delay();
  61   1         delay();
  62   1        
  63   1                P2=0xdf;   //P2.5引脚输出低电平, DS5点亮 
  64   1                P0=0xbf;   //分隔符“-”的段码
  65   1                delay();
  66   1        delay();
  67   1         delay();
  68   1        
  69   1                P2=0xff;   //关闭所有数码管
  70   1                P0=0xff;
  71   1                 delay();
  72   1        delay();
  73   1         delay();
  74   1        
  75   1      
  76   1       }
  77          /******************************************************************
  78          函数功能:显示小时的子程序
  79          入口参数:h
  80          ********************************************************************/
  81          void DisplayHour(unsigned char h)
  82          {
  83   1         
  84   1         P2=0xfe;        //P2.0引脚输出低电平, DS0点亮 
  85   1         P0=Tab[h/10];          //显示十位 
  86   1         delay();
  87   1        delay();
  88   1         delay();
  89   1       
  90   1         P2=0xfd;       //P2.1引脚输出低电平, DS1点亮 
  91   1         P0=Tab[h%10];    //显示个位
  92   1       delay();
  93   1        delay(); 
  94   1         delay();
  95   1         
  96   1              P2=0xfb;     //P2.2引脚输出低电平, DS2点亮 
  97   1              P0=0xbf;     //分隔符“-”的段码
  98   1       delay();
  99   1        delay();
 100   1         delay();
 101   1        
 102   1         P2=0xff;     //关闭所有数码管
 103   1         P0=0xff;
 104   1          delay();
 105   1        delay();
 106   1         delay();
 107   1         
 108   1       }
 109           /******************************************************************
 110          函数功能:主函数
 111          ********************************************************************/
 112          
 113           void main(void)
 114             {
 115   1                      
 116   1                              TMOD=0x01;             //使用定时器T0           
 117   1                              EA=1;                  //开中断总允许
C51 COMPILER V8.18   EX66                                                                  01/04/2010 13:05:34 PAGE 3   

 118   1                              ET0=1;                 //允许T0中断
 119   1                              TH0=(65536-46083)/256;  //定时器高八位赋初值
 120   1                              TL0=(65536-46083)%256;  //定时器低八位赋初值
 121   1                              TR0=1;
 122   1                              int_time=0;    //中断计数变量初始化
 123   1                              second=0;      //秒计数变量初始化
 124   1                              minute=0;     //分钟计数变量初始化
 125   1                              hour=0;       //小时计数变量初始化
 126   1              
 127   1               while(1)
 128   1                              {             
 129   2                                               DisplaySecond(second);    //调用秒显示子程序
 130   2                                               delay();
 131   2                                               DisplayMinute(minute);   //调用分钟显示子程序
 132   2                                               delay();
 133   2                                               DisplayHour(hour);     
 134   2                                               delay();                                                                 
 135   2                         }
 136   1        }
 137          
 138          /******************************************************************
 139          函数功能:定时器T0的中断服务子程序
 140          ********************************************************************/
 141            void interserve(void ) interrupt 1 using 1  //using Time0
 142            {
 143   1             int_time++;
 144   1                       if(int_time==20)
 145   1                         {
 146   2                    int_time=0;    //中断计数变量清0
 147   2                              second++;      //秒计数变量加1
 148   2                              }
 149   1                                if(second==60)
 150   1                                       {
 151   2                                                second=0;    //如果秒计满60,将秒计数变量清0
 152   2                                                minute++;    //分钟计数变量加1
 153   2                                       }
 154   1                                               if(minute==60)
 155   1                                                 {
 156   2                                                         minute=0;    //如果分钟计满60,将分钟计数变量清0
 157   2                                                         hour++;      //小时计数变量加1
 158   2                                                      }
 159   1                                                        if(hour==24)
 160   1                                                          {
 161   2                                                                 hour=0;    //如果小时计满24,将小时计数变量清0
 162   2                                                               }
 163   1      
 164   1                         TH0=(65536-46083)/256;   //定时器重新赋初值
 165   1                              TL0=(65536-46083)%256;
 166   1                                                         
 167   1                      
 168   1        }  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    260    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     22    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.

C51 COMPILER V8.18   EX66                                                                  01/04/2010 13:05:34 PAGE 4   


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

⌨️ 快捷键说明

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