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

📄 timer0.lst

📁 小区可视对讲键盘检测程序.利用pt6964芯片.
💻 LST
字号:
C51 COMPILER V8.08   TIMER0                                                                05/25/2008 20:21:41 PAGE 1   


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

line level    source

   1          #include<STC12C5410AD.h>
   2          #include<buzzer.h>
   3          #include<uart.h>
   4          #define RELOAD_H            ( 65536-3000)/256;
   5          #define RELOAD_L            ( 65536-3000 )%256;
   6          /*----------------------------------------------------------------------------------
   7          extern variables
   8          -----------------------------------------------------------------------------------*/
   9          extern unsigned char refresh_flag;
  10          extern unsigned char keyscan_flag;
  11          extern unsigned char keyscan_tubefresh_counter;
  12          extern unsigned char ad_counter;
  13          extern unsigned char adc_flag;
  14          extern unsigned char uart_counter,send_flag;
  15          extern unsigned char buzzer_timer;
  16          extern unsigned char buzzer_timer_trigger;
  17          /*-----------------------------------------------------------------------------------
  18          功能:定时器0初始化(晶振18.4M,计数周期为0.66us)   
  19          名称:Timer0_Init()  
  20          输入:无
  21          输出:无
  22          返回:无
  23          -------------------------------------------------------------------------------------*/
  24          void Timer0_Init(void)
  25          {
  26   1      //工作方式控制寄存器TMOD
  27   1      //--------------------------------------------------------------------------------------
  28   1      //TMOD寄存器用于定义定时/计数器的操作方式及工作模式,其格式如下:
  29   1      //      7               6               5               4               3               2               1               0
  30   1      //      GATE    C/T             M1              M0              GATE    C/T             M1              M0
  31   1      //--------------------------------------------------------------------------------------
  32   1      //其中低4位(0~3)位定义定时/计数器0,高4位(4~7)定义定时/计数器1
  33   1      //--------------------------------------------------------------------------------------
  34   1      // M1  M0 为操作方式选择位
  35   1      // 0   0   方式0     13位计数器
  36   1      // 0   1   方式1     16位计数器
  37   1      // 1   0   方式2     自动再装入的8位计数器
  38   1      // 1   1   方式3         将定时/计数器0分成两个8位计数器.
  39   1      //--------------------------------------------------------------------------------------
  40   1      //C/T:选择定时器或计数模式. C/T=1时为计数模式  当C/T=0时为定时模式 
  41   1      //--------------------------------------------------------------------------------------
  42   1      //      GATE:选通控制.当GATE=1时,只有当 INTx端口为高电平且TRx置位为1时才选通定时器/计数器x;
  43   1      //              当GATE=0时,只需TRx置位为1即选通定时/计数器x.
  44   1      
  45   1        TMOD |= 0x01;         //定时器0,方式1
  46   1        TL0 = 22;                     //TL0定时器0低8位计数器
  47   1        TH0 = 22;                     //TH0定时器0高8位计数器
  48   1        TR0 = 1;              //定时器/计数器0启动位.TR0=1:开始计时或计数 TR0=1禁止计时或计数 
  49   1        ET0 = 1;              //定时器/计数器0中断使能
  50   1        EA = 1;                       //全局中断使能
  51   1      }
  52          
  53          /*-----------------------------------------------------------------------------------
  54          功能:定时器0中断服务程序     
  55          名称:Timer0_ISR(void) interrupt 1   
C51 COMPILER V8.08   TIMER0                                                                05/25/2008 20:21:41 PAGE 2   

  56          输入:无
  57          输出:无
  58          返回:无
  59          备注:10ms中断一次
  60          -------------------------------------------------------------------------------------*/
  61          void Timer0_ISR(void) interrupt 1
  62          {
  63   1      
  64   1      //---digit tube about--------------------------------------------------------------
  65   1              refresh_flag = 1;
  66   1      
  67   1      //----keyboard about----------------------------------------------------------------
  68   1              keyscan_tubefresh_counter++;
  69   1              if( keyscan_tubefresh_counter >= 5 ) 
  70   1              {
  71   2              refresh_flag = 0;
  72   2              keyscan_tubefresh_counter = 0;
  73   2              keyscan_flag = 1;
  74   2              }
  75   1      //----ad about----------------------------------------------------------------------
  76   1              ad_counter++;
  77   1              if(ad_counter >= 250)
  78   1              {
  79   2              ad_counter = 0;
  80   2              adc_flag = 1 ;
  81   2              }
  82   1      //--------uart about----------------------------------------------------------------
  83   1              uart_counter++;
  84   1              if(uart_counter >= 250)
  85   1              {
  86   2              uart_counter = 0;
  87   2              send_flag =1;
  88   2              }
  89   1      //------------buzzer about-----------------------------------------------------------
  90   1              if(buzzer_timer_trigger)
  91   1              {
  92   2                      buzzer_timer++;
  93   2                      if(buzzer_timer >= 254)
  94   2                      {
  95   3                      buzzer_timer = 0;
  96   3                      buzzer_timer_trigger = 0;
  97   3                      close_buzzer();
  98   3                      }
  99   2              }
 100   1      
 101   1      //定时器0初值重装            
 102   1              TL0 = RELOAD_L;
 103   1              TH0 = RELOAD_H; 
 104   1      
 105   1      }


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