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

📄 main.lst

📁 tea5767_102模块,i2c总线控制方式
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.07   MAIN                                                                  08/22/2008 23:25:41 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          // Keil C
   2          // AT89S52     
   3          // clock: external 11.0592Mhz
   4          
   5          #include <reg52.h>
   6          #include <string.h>
   7          #include "tea5767.h"
   8          #include "key.h"
   9          #include "led.h"
  10          #include "global.h"
  11          #include "main.h"
  12          #include "i2c.h"
  13          
  14          
  15          
  16          
  17          //////////////////////////////////////////////////////////
  18          //-----------------------------------------------------
  19          void Init_special_interrupts(void)
  20          {
  21   1              EA = 1;
  22   1          ES = 0;
  23   1          ET1 = 0;
  24   1          ET0 = 1;
  25   1          EX1 = 0;
  26   1          EX0 = 0;
  27   1      }
  28          
  29          //-------------------------------------------------
  30          void Init_timer()
  31          {
  32   1              TMOD = 0x31;         //T1为禁止,T0为8位自动重装计数器
  33   1          TH0 = 0xFA;                 //T0定时扫描键盘,4ms×5
  34   1          TL0 = 0x5F;
  35   1      
  36   1              TR0 = 1;
  37   1      
  38   1      
  39   1      }
  40          
  41          //----------------------------------------------------
  42          void Timer_0(void) interrupt 1 //中断方式0 
  43          {
  44   1         unsigned char                new_key;                // 新键值
  45   1      
  46   1                      
  47   1      //      TL0  = 256 - (T0INTERVAL*FOSC)/1024000L;
  48   1              //--------------------------------------------
  49   1              // 用户在下面添加周期性处理程序,如定时等
  50   1              if (Dis_Flag)
  51   1              {
  52   2                  Display_LED(DisBuffer);
  53   2              }
  54   1              //--------------------------------------------
  55   1      
C51 COMPILER V7.07   MAIN                                                                  08/22/2008 23:25:41 PAGE 2   

  56   1      
  57   1              // 读键盘示范---------------------------------
  58   1              new_key = Read_Key();
  59   1              if ((new_key & 0xF0) == 0x00)
  60   1              {
  61   2                      if (new_key != old_key)                 // 有新的按键被按下
  62   2                      {
  63   3                              key_counter = 0;                // 计时开始
  64   3                              Key_Process = FALSE;
  65   3                      }
  66   2                      else
  67   2                      {
  68   3                              if ((key_counter >= 30) && !Key_Process)                // 按下键超过50ms且未处理 
  69   3                              {
  70   4                                      Key_Push_Flag = TRUE;
  71   4                                      Key_Code = new_key;
  72   4                              }
  73   3                              else key_counter++;             // 连续计数
  74   3                      }
  75   2              }
  76   1              old_key = new_key;                              // 保存键值
  77   1      
  78   1          TH0 = 0xFA;                 //T0定时扫描键盘,4ms×5
  79   1          TL0 = 0x5F;
  80   1      
  81   1      }
  82          
  83          //-------------------------------
  84          
  85          void init(void)
  86          {
  87   1      
  88   1      
  89   1              P0 = 0xFF;
  90   1              P1 = 0xFF;
  91   1              P2 = 0xFF;
  92   1              P3 = 0xFF;
  93   1      
  94   1        
  95   1         delay_ms(100);
  96   1      
  97   1         Init_special_interrupts();
  98   1         Init_timer();
  99   1      
 100   1      }
 101          
 102          //////////////////////////////////////////////////////////////////
 103          void main(void)
 104          {
 105   1              init();
 106   1      /////////////////////////////////
 107   1          temp = EEPROM_read( 2 );
 108   1                 
 109   1          if ((temp == Seltct_TURNING)||(temp == Seltct_FREQ))
 110   1          {
 111   2                Work_STAT = temp;
 112   2          }
 113   1          else Work_STAT = Seltct_TURNING;
 114   1              Freq = Load_Freq();
 115   1                          
 116   1              Key_Push_Flag = FALSE;
 117   1              Key_Process = FALSE;
C51 COMPILER V7.07   MAIN                                                                  08/22/2008 23:25:41 PAGE 3   

 118   1              Search_Flag = FALSE;
 119   1              Dis_Flag = TRUE;
 120   1              
 121   1      
 122   1              DisBuffer[4] = 0x0; //LED点亮,Seltct_TURNING
 123   1          if ((Freq<87500)||(Freq>108000))
 124   1              {
 125   2                Freq = 87500;
 126   2                Work_STAT = Seltct_TURNING;
 127   2              }
 128   1              else if (Work_STAT == Seltct_FREQ)
 129   1              {
 130   2                  DisBuffer[4] = 0x0F;   //LED关闭,Seltct_FREQ
 131   2              }
 132   1      
 133   1              Freq_2_Buffer(Freq,DisBuffer);  //初始化显示频率值      
 134   1      
 135   1              Display_LED( DisBuffer );       
 136   1              
 137   1              Init_Tea5767( Freq );
 138   1      
 139   1              Save_Freq( Freq );
 140   1      
 141   1              
 142   1              delay_ms(10);
 143   1      
 144   1              
 145   1              while(1)
 146   1              {
 147   2                      if ( Key_Push_Flag )

⌨️ 快捷键说明

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