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

📄 main.lst

📁 基于飞利浦915控制FM发射模块和显示驱动原代码.
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.50   MAIN                                                                  11/10/2007 23:09:45 PAGE 1   


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

line level    source

   1          #include "reg915.h"
   2          #include "system.h"
   3          #include "LPC915_I2C.H"
   4          #include "lcd412function.h"
   5          
   6          //global value-----------------------------------------------------------------------------
   7          unsigned int    current_freq=800;               //发射频率缓存
   8          unsigned char   value=0;                                //AD转换值
   9          //bit data state=0;
  10          bit data silence=0;
  11          unsigned char   data NumDcbLib[12][3]=  //LCD表
  12                                                  {{6,5,6},//0-   0
  13                                                   {0,0,6},//1-   1
  14                                                   {4,7,2},//2-   2
  15                                                   {0,7,6},//3-   3
  16                                                   {2,2,6},//4-   4
  17                                                   {2,7,4},//5-   5
  18                                                   {6,7,4},//6-   6
  19                                                   {0,1,6},//7-   7
  20                                                   {6,7,6},//8-   8
  21                                                   {2,7,6},//9-   9
  22                                                   {0,0,0},//10-  NULL
  23                                                   {6,3,0}//12-   F
  24                                                   };
  25          unsigned char   data LCD_AllComsTemp[13]=       //LCD显示缓存,初始值ON
  26                                                  {                               
  27                              0,0,0,
  28                                                  6,5,6,
  29                                                  6,1,6,//6,7,7,
  30                                                  0,0,0,//1,0,1,
  31                                                  0
  32                                                  };
  33          //初始化---------------------------------------------------------------------------------
  34          void system_init1()
  35          {
  36   1              P0M1     =0x34; 
  37   1              P0M2     =0x00;
  38   1          P1M1     =0x2F;
  39   1              P1M2     =0X1C;
  40   1              power_on        =0;
  41   1      }
  42          void FM_INIT()
  43          {
  44   1        ISendByte(0X00,0X20);
  45   1        ISendByte(0X01,0X03);
  46   1        ISendByte(0X02,0X00);
  47   1        ISendByte(0X03,0X00);
  48   1      }
  49          //延时?clks-------------------------------------------------------------------------------
  50          void delay(int clks)
  51          {
  52   1      int i;
  53   1      for(i=0;i<clks;i++);
  54   1      }
  55          //延时?ms---------------------------------------------------------------------------------
C51 COMPILER V7.50   MAIN                                                                  11/10/2007 23:09:45 PAGE 2   

  56          void Delay_ms(int multiple)
  57          {
  58   1      int i=0,j=0;
  59   1      for(j=0;j<multiple;j++)
  60   1              {
  61   2          for(i=0;i<700;i++);
  62   2          }
  63   1      }
  64          //将频率转化为显示缓存---------------------------------------------------------------------
  65          void recalculate_LcdAllComs()
  66          {       
  67   1              char num=0;     
  68   1              value=AD1val();
  69   1              if(current_freq >= 1000)
  70   1                      {
  71   2                      num = current_freq / 1000;
  72   2                      LCD_AllComsTemp[0] = NumDcbLib[num][0];
  73   2                      LCD_AllComsTemp[1] = NumDcbLib[num][1];
  74   2                      LCD_AllComsTemp[2] = NumDcbLib[num][2];
  75   2                      
  76   2                      }
  77   1              else
  78   1                      {
  79   2                      LCD_AllComsTemp[0] = NumDcbLib[10][0];
  80   2                      LCD_AllComsTemp[1] = NumDcbLib[10][1];
  81   2                      LCD_AllComsTemp[2] = NumDcbLib[10][2];
  82   2                      }
  83   1      
  84   1              num = (current_freq % 1000) / 100;
  85   1              LCD_AllComsTemp[3] = NumDcbLib[num][0];
  86   1              LCD_AllComsTemp[4] = NumDcbLib[num][1];
  87   1              LCD_AllComsTemp[5] = NumDcbLib[num][2];
  88   1      
  89   1              num = (current_freq % 100) / 10;
  90   1              LCD_AllComsTemp[6] = NumDcbLib[num][0];
  91   1              LCD_AllComsTemp[7] = NumDcbLib[num][1];
  92   1              LCD_AllComsTemp[8] = NumDcbLib[num][2]| 0x01;
  93   1      
  94   1          num = current_freq % 10;
  95   1              LCD_AllComsTemp[9] = NumDcbLib[num][0];//| 0x01;
  96   1              LCD_AllComsTemp[10] = NumDcbLib[num][1];
  97   1              LCD_AllComsTemp[11] = NumDcbLib[num][2]| 0x01;
  98   1              if(value>VFULL) 
  99   1              {
 100   2                      LCD_AllComsTemp[9] |= 0x01;
 101   2                      LCD_AllComsTemp[12] = 0x07;
 102   2          }
 103   1          else if(value>VMIDDLE)
 104   1              {
 105   2                      LCD_AllComsTemp[9] |= 0x01;
 106   2                      LCD_AllComsTemp[12] = 0x05;
 107   2          }
 108   1              else if(value>VEMPTY)
 109   1              {
 110   2                      LCD_AllComsTemp[9] |= 0x01;
 111   2                      LCD_AllComsTemp[12] = 0x01;
 112   2          }
 113   1          else if(value>VL_ALARM)
 114   1          {
 115   2                      LCD_AllComsTemp[12] = 0x01;
 116   2              }
 117   1      }
C51 COMPILER V7.50   MAIN                                                                  11/10/2007 23:09:45 PAGE 3   

 118          //发送显示缓存至LCD显示---------------------------------------------------------------------
 119          void LCD_Refrush()
 120          {
 121   1              int i;
 122   1              LCD_WriteStart();
 123   1              LCD_Write(LCD_DATAWRITE,9,0x001);               //传送写命令代码101和6位起始地址000000
 124   1              for(i=0; i<LCD_SEGMENT_COUNT; i++ )             //传送显示数据
 125   1              {
 126   2                      LCD_Write(LCD_AllComsTemp[i],LCD_DATA_BITS,0x01);
 127   2              }
 128   1      LCD_WriteEnd();
 129   1      }
 130          //FM发射模块静音开关------------------------------------------------------------------------
 131          void FM_ON_OFF()
 132          {
 133   1              if(silence==1)                          //MUTE Disable
 134   1              {
 135   2                      ISendByte(0X02,0X05);
 136   2                      silence=1;
 137   2              }
 138   1              if(silence==0)                          //MUTE Enable
 139   1              {
 140   2                      ISendByte(0X02,0X0D);
 141   2                      silence=0;
 142   2              }
 143   1      }
 144          //转换频率数据并写入发射模块-----------------------------------------------------------------
 145          void FM_Changer()
 146          {   
 147   1          unsigned char fre;
 148   1              fre=(unsigned char)((current_freq)&(0x00ff));
 149   1          ISendByte(0x00,fre);
 150   1              fre=(unsigned char)((current_freq>>8)&(0x0007));
 151   1          fre=(fre|0x78);
 152   1          ISendByte(0x01,fre);
 153   1      }
 154          //按键判断及按键操作--------------------------------------------------------------------------
 155          void key_process()
 156          {

⌨️ 快捷键说明

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