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

📄 51

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


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

line level    source

   1          
   2          #include<reg52.h>  //  包含51单片机寄存器定义的头文件
   3          unsigned char code Tab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; 
   4           //数码管显示0~9的段码表
   5          unsigned char int_time;        //记录中断次数
   6          unsigned char second;        //储存秒
   7          /***********************************************************************
   8          函数功能:快速动态扫描延时,延时约0.6毫秒
   9          ************************************************************************/
  10          void delay(void)
  11          {
  12   1        unsigned char i;
  13   1        for(i=0;i<200;i++)
  14   1              ;
  15   1      }
  16          /***********************************************************************
  17          函数功能:显示秒
  18          入口参数:k
  19          出口参数:无
  20          ************************************************************************/
  21           void DisplaySecond(unsigned char k)
  22          {
  23   1         
  24   1         P2=0xbf;        //P2.6引脚输出低电平, DS6点亮 
  25   1         P0=Tab[k/10];          //显示十位
  26   1         delay();
  27   1                 delay();
  28   1                    delay();
  29   1                         delay();
  30   1                          delay();
  31   1                 delay();
  32   1                    delay();
  33   1                         delay();
  34   1         P2=0x7f;       //P2.7引脚输出低电平, DS7点亮 
  35   1         P0=Tab[k%10];         //显示个位
  36   1              delay();
  37   1                  delay();
  38   1                         delay();
  39   1                          delay();
  40   1                               delay();
  41   1                 delay();
  42   1                    delay();
  43   1                         delay();
  44   1              P2=0xff;     //关闭所有数码管
  45   1      
  46   1              P0=0xff;        //显示个位
  47   1                      delay();
  48   1                         delay();
  49   1                          delay();
  50   1                               delay();
  51   1                                delay();
  52   1                 delay();
  53   1                    delay();
  54   1                         delay();
  55   1      }                         
C51 COMPILER V8.18   EX65                                                                  01/04/2010 13:07:12 PAGE 2   

  56            void main(void)      //主函数
  57             {
  58   1                TMOD=0x01;                 //使用定时器T0
  59   1                TH0=(65536-46083)/256;    //将定时器计时时间设定为46083×1.085微秒
  60   1      //=50000微秒=50毫秒
  61   1                 TL0=(65536-46083)%256;
  62   1                      EA=1;                    //开启总中断
  63   1                      ET0=1;                   //定时器T0中断允许
  64   1                      TR0=1;                   //启动定时器T0开始运行
  65   1                      int_time=0;     //中断次数初始化
  66   1                      second=0;          //秒初始化           
  67   1              while(1)
  68   1                      {
  69   2                     DisplaySecond(second);   //调用秒的显示子程序
  70   2                       }
  71   1          }  
  72          //********************************************************
  73          //函数功能:定时器T0的中断服务程序
  74          //*******************************************************
  75            void interserve(void ) interrupt 1 using 1  
  76            {
  77   1          TR0=0;    //关闭定时器T0
  78   1          int_time ++;        //每来一次中断,中断次数int_time自加1    
  79   1               if(int_time==20)   //够20次中断,即1秒钟进行一次检测结果采样
  80   1                {
  81   2              int_time=0;    //中断次数清0
  82   2                  second++;    //秒加1
  83   2                  if(second==60)
  84   2                    second =0; //秒等于60就返回0
  85   2                }                   
  86   1              TH0=(65536-46083)/256;   //重新给计数器T0赋初值
  87   1              TL0=(65536-46083)%256;
  88   1              TR0=1;     //启动定时器T0
  89   1       }  
  90          
  91          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    144    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      2    ----
   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 + -