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

📄 timerr_c.lst

📁 电子开发网培训用的51单片机内部培训代码
💻 LST
字号:
C51 COMPILER V7.06   TIMERR_C                                                              05/14/2006 16:48:00 PAGE 1   


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

stmt level    source

   1          //*****************************************************
   2          //实现功能:单片机的晶振为12MHz,使用定时/计数器0实现每
   3          //                      0.5秒改变一次接在P1.0上的发光二极管的状态.
   4          //目标板:
   5          //*****************************************************
   6          #include <reg51.h>
   7          //*****************宏定义*****************************
   8          sbit p_light=P1^0;//宏定义P1.0为p_light
   9          //****************************************************
  10          //******************定义子函数************************
  11          void timer_init(unsigned char time_num,unsigned char time_GATE,unsigned char time_CT,unsigned char time_mo
             -de);
  12          //****************************************************
  13          
  14          
  15          
  16          //*********************主函数************************
  17          //描    述:使用定时/计数器0实现每0.5秒改变一次接在
  18          //         P1.0上的发光二极管的状态
  19          //入口参数:无
  20          //返回参数:无
  21          //设    计:ycj
  22          //最后修改:时间(2006.5.2)  修改人(ycj)
  23          //****************************************************
  24          int main(void)
  25          {unsigned char i;
  26   1       timer_init(0,0,0,1);//定时器0,GATE=0仅由TR0控制定时器0的启动,
  27   1                                               //设定为定时器功能,方式1(计数器长度为16位)
  28   1       //对定时器赋初值TC=15535,也就是计数50000次后溢出
  29   1       TH0=0x3c;
  30   1       TL0=0xaf;
  31   1       TR0=1;//启动定时器0
  32   1       while(1)
  33   1       {p_light=!p_light;//取反i/o电平
  34   2        for(i=0;i<10;i++)//循环10次,每次50ms,
  35   2              {
  36   3               while(!TF0);//等待计数器溢出
  37   3               //计数器溢出,重新对定时器赋值
  38   3               TH0=0x3c;
  39   3               TL0=0xaf;
  40   3      
  41   3               TF0=0;//清除定时器溢出标志
  42   3              }
  43   2       }
  44   1      }
  45          //************************定时器初始化函数***************************
  46          //描    述:对定时/计数器初始化
  47          //入口参数:unsigned char time_num  定时/计数器的编号(0或者1)
  48          //         unsigned char time_GATE 定时/计数器的门控制位(0或者1)
  49          //                 unsigned char time_CT   定时/计数器的功能选择位(0或者1)
  50          //         unsigned char time_mode 定时/计数器的方式选择(0~3)
  51          //返回参数:无
  52          //设    计:ycj
  53          //最后修改:时间(2006.5.2)  修改人(ycj)
  54          //****************************************************
C51 COMPILER V7.06   TIMERR_C                                                              05/14/2006 16:48:00 PAGE 2   

  55          void timer_init(unsigned char time_num,unsigned char time_GATE,unsigned char time_CT,unsigned char time_mo
             -de)
  56          {
  57   1       if (time_num==0)
  58   1              {
  59   2               TMOD&=0xf0;
  60   2               TMOD|=(time_GATE<<4)+(time_CT<<3)+(time_mode);
  61   2              }
  62   1       else if (time_num==1)
  63   1              {
  64   2               TMOD&=0x0f;
  65   2               TMOD|=(time_GATE<<8)+(time_CT<<7)+(time_mode<<4);
  66   2              }
  67   1      }


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