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

📄 init.lst

📁 个人学习参考!禁止使用到产品上! 任何人不得公开发布!
💻 LST
字号:
C51 COMPILER V7.10   INIT                                                                  02/03/2005 10:45:40 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE INIT
OBJECT MODULE PLACED IN init.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE init.c OPTIMIZE(7,SIZE) BROWSE INCDIR(E:\WorkHome\932-DDSF\DDSF-932-002\;F:
                    -\WorkHome\932-DDSF\DDSF-932-003\) DEBUG OBJECTEXTEND

line level    source

   1          /*========================================*/
   2          /*系统名称:DDSF-CECG-JiangSu             */
   3          /*函数名称:初始化                            */
   4          /*程序编写:步爱军                                    */
   5          /*开始日期:2005-01-01                            */
   6          /*完成日期:                                          */
   7          /*修改记录:                                          */
   8          /*软件版本:DDSF-CECG-002                 */
   9          /*版本说明:用户数据保存在外部            */
  10          /*外部器件:LM75、AT24C02、HT1621、LPC932 */
  11          /*          R8025、ADE7755                */
  12          /*========================================*/
  13          
  14          #include <REG932.H>
  15          #include <define.h>
  16          #include <Stdio.h>
  17          #include <Intrins.h>
  18          
  19          //-----***-CPU寄存器以及外围接口初始化-***-----//
  20          void InitSeries(void)
  21          {
  22   1           PCON=PCON | 0x30;             //SMOD1=0;SMOD0=0;通讯速率不加倍,SCON.7作为UART的SM0位
  23   1           SCON=SCON | 0xd0;             //串口工作在模式3,禁止串口接收
  24   1           SSTAT=0x60;                   //串口工作在普通模式
  25   1           BRGCON=BRGCON | 0x02;         //选择波特率发生器用于产生UART的波特率,禁止使能
  26   1           //晶振12M通讯速率1200
  27   1           BRGR1=0x27;                   //装载高字节
  28   1           BRGR0=0x00;                   //装载低字节
  29   1           //晶振11.0592通讯速率1200
  30   1               //BRGR1=0x23;                 //装载高字节
  31   1           //BRGR0=0xF0;                 //装载低字节
  32   1           BRGCON=BRGCON | 0x01;         //使能拨特率发生器
  33   1           DIR=1;
  34   1           ESR=1;                                            //使能串口中断
  35   1      }
  36          void InitCpuIo(void)
  37          {
  38   1           P0M1=0x00;
  39   1           P0M2=0x38;                     //设置P0.3、P0.4、P0.5为仅为输入
  40   1           P1M1=0x2c;
  41   1           P1M2=0x0c;
  42   1           P2M1=0x40;                     //设置P26为开漏
  43   1           P2M2=0x40;
  44   1      }
  45          void InitTime0(void)
  46          {
  47   1           TMOD=TMOD | 0X01;             //
  48   1           TAMOD=TAMOD | 0X00;           //定时器工作于模式1
  49   1           TH0=0X02;
  50   1           TL0=0X40;
  51   1           AUXR1=AUXR1 | 0X10;           //定时器0中断反转IO口
  52   1           TR0=0;
  53   1           ET0=0;                        //使能中断
  54   1      }
C51 COMPILER V7.10   INIT                                                                  02/03/2005 10:45:40 PAGE 2   

  55          void InitTime1(void)
  56          {
  57   1           TMOD=TMOD | 0X10;             //
  58   1           TAMOD=TAMOD | 0X00;           //定时器工作于模式1
  59   1           TH1=0X00;
  60   1           TL1=0X00;
  61   1           TR1=1;
  62   1           ET1=1;                        //使能中断
  63   1      }
  64          void InitWDT(void)
  65          {
  66   1           ACC=WDCON;                  //看门狗启动,并选择看门狗定时器作为定时
  67   1           ACC=ACC|0x84;
  68   1           WDL=0x4E;
  69   1           WDCON=ACC;
  70   1           WFEED1=0xA5;                  //喂狗
  71   1           WFEED2=0x5A;
  72   1      }
  73          void InitINT0(void)
  74          {
  75   1           TCON=TCON | 0X00;            //外部中断0采用低电平触发中断
  76   1           EX0=1;                       //开启中断
  77   1      }
  78          void InitINT1(void)
  79          {
  80   1              TCON=TCON | 0X00;            //外部中断1采用低电平触发中断
  81   1          EX1=1;                               //使能外部中断
  82   1      }
  83          void Initkey(void)               //初始化键盘中断
  84          {
  85   1          //KBPATN=0xff;               //
  86   1          KBCON=0x00; 
  87   1          KBMASK=0x38;                             //设置P0.1->P0.0为中断源
  88   1              EKBI=0;
  89   1      }
  90          void InitCclk(void)
  91          {
  92   1           DIVM=0x00;                   //CCLK=11059200/2;
  93   1      }
  94          void InitEEPROM(void)
  95          {
  96   1          DEECON=0x30;
  97   1          EIEE=0;
  98   1      }
  99          void InitPWM()      //使用外部12M振荡器时:CCU频率=((12000000/2)/6)*16=16000000MHz
 100          {
 101   1          TOR2H=0x03;     //定时器重装值=CCU频率/红外线载频=16000000/38000=421=0x1a5
 102   1          TOR2L=0x4a;
 103   1          OCRAH=0x01;     //(OCRAH:OCRAL)=(TOR2H:TOR2L)/2,PWM的占空比为50%
 104   1          OCRAL=0xa4;
 105   1          TCR21=0x85;     //PLL预分频为5+1
 106   1          CCCRA=1;        //非反相的PWM比较匹配时置位,在CCU定时器向下溢出时清0
 107   1          PLLEN=1;        //启动PLL
 108   1          PWM=1;
 109   1          while(PLLEN==0);
 110   1          TCR20=0x82;     // 设置输出模式,非反相PWM
 111   1      }
 112          void InitCMP(void)
 113          {
 114   1          PT0AD=0x06;     //禁止CIN2A上的数字输入功能
 115   1          CMP2=0x28;      //0010 1000,CMP1使能,内部Ref,CIN1A
 116   1          Delay(10);      //延迟10us,以等待比较器稳定
C51 COMPILER V7.10   INIT                                                                  02/03/2005 10:45:40 PAGE 3   

 117   1          CMP2&=0xFE;     //清除比较器中断标志位
 118   1          EC=1;           //比较器中断输出使能
 119   1      }
 120          void InitCpu(void)
 121          {
 122   1          InitWDT();
 123   1              InitSeries();
 124   1              InitCpuIo();
 125   1              InitTime0();
 126   1              InitTime1();    
 127   1              InitINT0();
 128   1              InitINT1();
 129   1              InitCclk();
 130   1              Initkey();
 131   1              InitEEPROM();
 132   1              InitPWM();
 133   1              InitCMP();
 134   1      }
 135          //-----***-液晶显示驱动器初始化-***-----//
 136          
 137          void InitLcd(void)
 138          {
 139   1          LcdSendCommand(0x01);
 140   1          LcdSendCommand(0x29);
 141   1          LcdSendCommand(0x18);
 142   1          LcdSendCommand(0x03);
 143   1      }
 144          //-----***-时钟发生器运行初始化-***-----//
 145          void InitRTC(void)
 146          {
 147   1              IicByteWrite(0x64,0xe0,0x23);
 148   1          IicByteWrite(0x64,0xf0,0xa0);
 149   1      }
 150          //-----***-命令以及重要参数检验、初始化-***-----//
 151          void InitCmd(void)
 152          {
 153   1              unsigned char data ii;
 154   1              if((PowerStA==0x55)|(PowerStB==0xAA))
 155   1          {
 156   2              PowerStA=0x55;
 157   2              PowerStB=0xaa;
 158   2          }
 159   1          else
 160   1          {
 161   2              DIR=1;
 162   2              ClerBuf();
 163   2              DataPickup();   
 164   2              SeriesBufDptr=0;
 165   2              SendOverFg=1;
 166   2              LcdDelay=20;    
 167   2              InfraredBufDptr=0;
 168   2              TimeSendFg=0;
 169   2              DataProtectFg=0;
 170   2              InfraredBufDptr=0;
 171   2              SeriesBufDptr=0;
 172   2              LcdRunData=1;
 173   2              LcdTimeFg=1;
 174   2              ReverseFgToLcd=0;
 175   2              ReverseFgToData=0;
 176   2              PulseParseFg=0;
 177   2              PowerStA=0x55;
 178   2              PowerStB=0xaa;
C51 COMPILER V7.10   INIT                                                                  02/03/2005 10:45:40 PAGE 4   

 179   2              ii=IicByteRead(0xa0,0x00);
 180   2              if(ii==0xff)
 181   2              {
 182   3                 ii=IicByteRead(0xa0,0x80);
 183   3                 if(ii==0xbb)
 184   3                 {
 185   4                     ii=IicByteRead(0xa0,0xf0);
 186   4                     if(ii==0xff)
 187   4                     {
 188   5                         IicByteWrite(0xa0,0x00,0xbb);
 189   5                         ii=IicByteRead(0xa0,0x00);
 190   5                         if(ii==0xaa)
 191   5                         {
 192   6                            IicByteWrite(0xa0,0x80,0xaa);
 193   6                            ii=IicByteRead(0xa0,0x80);
 194   6                            if(ii==0xaa)
 195   6                            {
 196   7                                IicByteWrite(0xa0,0xf0,0xaa);
 197   7                                ii=IicByteRead(0xa0,0xf0);
 198   7                                if(ii==0xaa)
 199   7                                {
 200   8                                    ClerData();
 201   8                                }
 202   7                            }
 203   6                         }                   
 204   5                      }
 205   4                  }
 206   3              }       
 207   2          }
 208   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    424    ----
   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 + -