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

📄 stc12c5412ad_driver.lst

📁 此程序可以显示输入波形
💻 LST
字号:
C51 COMPILER V7.50   STC12C5412AD_DRIVER                                                   08/24/2007 11:26:19 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE STC12C5412AD_DRIVER
OBJECT MODULE PLACED IN STC12C5412AD_Driver.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE STC12C5412AD_Driver.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //模块:STC12C5412AD_Driver.C
   2          
   3          //功能:单片机增强功能驱动模块
   4          
   5          //晶振:24.000MHz
   6          
   7          //芯片: STC12C5412AD
   8          
   9          //版本:V1.0.0
  10          
  11          //设计:魏广寅
  12          
  13          //日期:2007.4.10
  14          
  15          #include "STC12C5412AD.h"
  16          
  17          #define uchar unsigned char
  18          
  19          #define uint unsigned int
  20          
  21          //--------------------------------------------------------------------
  22          
  23          /*void set_timer0_1T()//设置T0为1T模式
  24          
  25          {
  26          
  27                AUXR=AUXR|0x80;
  28          
  29          }
  30          
  31          //--------------------------------------------------------------------
  32          
  33          void set_timer1_1T()//设置T1为1T模式
  34          
  35          {
  36          
  37                AUXR=AUXR|0x40;
  38          
  39          }
  40          
  41          //--------------------------------------------------------------------
  42          
  43          void set_timer0_12T()//设置T0为12T模式
  44          
  45          {
  46          
  47                AUXR=AUXR&0x7f;
  48          
  49          }
  50          
  51          //--------------------------------------------------------------------
  52          
  53          void set_timer1_12T()//设置T1为12T模式
  54          
  55          {
C51 COMPILER V7.50   STC12C5412AD_DRIVER                                                   08/24/2007 11:26:19 PAGE 2   

  56          
  57                AUXR=AUXR&0xbf;
  58          
  59          }
  60          
  61          //--------------------------------------------------------------------
  62          
  63          uchar EEPROM_read(uint addr)//EEPROM字节读
  64          
  65          {
  66          
  67                ISP_ADDRH=(addr&0xff00)>>8;
  68          
  69                ISP_ADDRL=addr&0x00ff;
  70          
  71                ISP_CONTR=0x81;
  72          
  73                ISP_CMD=1;
  74          
  75                ISP_TRIG=0x46;
  76          
  77                ISP_TRIG=0xb9;
  78          
  79                return ISP_DATA;
  80          
  81          }
  82          
  83          //--------------------------------------------------------------------
  84          
  85          void EEPROM_write(uint addr,uchar dat)//EEPROM字节写
  86          
  87          {
  88          
  89                ISP_DATA=dat;
  90          
  91                ISP_ADDRH=(addr&0xff00)>>8;
  92          
  93                ISP_ADDRL=addr&0x00ff;
  94          
  95                ISP_CONTR=0x81;
  96          
  97                ISP_CMD=2;
  98          
  99                ISP_TRIG=0x46;
 100          
 101                ISP_TRIG=0xb9;
 102          
 103          }
 104          
 105          //--------------------------------------------------------------------
 106          
 107          void EEPROM_ERASE(uint addr)//EEPROM扇区擦除
 108          
 109          {
 110          
 111                ISP_ADDRH=(addr&0xff00)>>8;
 112          
 113                ISP_ADDRL=addr&0x00ff;
 114          
 115                ISP_CONTR=0x81;
 116          
 117                ISP_CMD=3;
C51 COMPILER V7.50   STC12C5412AD_DRIVER                                                   08/24/2007 11:26:19 PAGE 3   

 118          
 119                ISP_TRIG=0x46;
 120          
 121                ISP_TRIG=0xb9;
 122          
 123          } */
 124          
 125          //--------------------------------------------------------------------
 126          
 127          /*    void set_p3_tw()
 128          
 129          {
 130          
 131                P3M0|=0x00;
 132          
 133                P3M1|=0x00;
 134          
 135          }*/
 136          
 137          //--------------------------------------------------------------------
 138          
 139          void AD_init(uchar AD_port_sel ) //ADC初始化
 140          
 141          {
 142   1      
 143   1            ADC_CONTR|=0x80;  //开ADC电源
 144   1      
 145   1      switch(AD_port_sel)    //选择作为ADC的端口
 146   1      
 147   1            {
 148   2      
 149   2                    case 0:
 150   2      
 151   2                    P1M0=0x01;
 152   2      
 153   2                    P1M1=0x00;
 154   2      
 155   2                    ADC_CONTR&=0xf8;
 156   2      
 157   2      
 158   2      
 159   2                    break;
 160   2      
 161   2                    
 162   2      
 163   2                    case 1:
 164   2      
 165   2                    P1M0=0x02;
 166   2      
 167   2                    P1M1=0x00;
 168   2      
 169   2                    ADC_CONTR&=0xf8;
 170   2      
 171   2                    ADC_CONTR|=0x01;
 172   2      
 173   2                    break;
 174   2      
 175   2      
 176   2      
 177   2                    case 2:
 178   2      
 179   2                    P1M0=0x04;
C51 COMPILER V7.50   STC12C5412AD_DRIVER                                                   08/24/2007 11:26:19 PAGE 4   

 180   2      
 181   2                    P1M1=0x00;
 182   2      
 183   2                    ADC_CONTR&=0xf8;
 184   2      
 185   2                    ADC_CONTR|=0x02;
 186   2      
 187   2                    break;
 188   2      
 189   2      
 190   2      
 191   2                    case 3:
 192   2      
 193   2                    P1M0=0x08;
 194   2      
 195   2                    P1M1=0x10;
 196   2      
 197   2                    ADC_CONTR&=0xf8;
 198   2      
 199   2                    ADC_CONTR|=0x03;
 200   2      
 201   2                    break;
 202   2      
 203   2      
 204   2      
 205   2                    case 4:
 206   2      
 207   2                    P1M0=0x10;
 208   2      
 209   2                    P1M1=0x00;
 210   2      
 211   2                    ADC_CONTR&=0xf8;
 212   2      
 213   2                    ADC_CONTR|=0x03;
 214   2      
 215   2                    break;
 216   2      
 217   2      
 218   2      
 219   2                    case 5:
 220   2      
 221   2                    P1M0=0x20;
 222   2      
 223   2                    P1M1=0x00;
 224   2      
 225   2                    ADC_CONTR&=0xf8;
 226   2      
 227   2                    ADC_CONTR|=0x05;
 228   2      
 229   2                    break;
 230   2      
 231   2      
 232   2      
 233   2                    case 6:
 234   2      
 235   2                    P1M0=0x40;
 236   2      
 237   2                    P1M1=0x00;
 238   2      
 239   2                    ADC_CONTR&=0xf8;
 240   2      
 241   2                    ADC_CONTR|=0x06;
C51 COMPILER V7.50   STC12C5412AD_DRIVER                                                   08/24/2007 11:26:19 PAGE 5   

 242   2      
 243   2                    break;
 244   2      
 245   2      
 246   2      
 247   2                    case 7:
 248   2      
 249   2                    P1M0=0x80;
 250   2      
 251   2                    P1M1=0x80;
 252   2      
 253   2                    ADC_CONTR&=0xf8;
 254   2      
 255   2                    ADC_CONTR|=0x07;
 256   2      
 257   2                    break;
 258   2      
 259   2            }
 260   1      
 261   1            ADC_CONTR=0xe7;
 262   1      
 263   1      }
 264          
 265          //--------------------------------------------------------------------
 266          
 267          uint GET_AD_Result()//启动AD转换并返回转换值
 268          
 269          {
 270   1      
 271   1            uchar temp;
 272   1      
 273   1            uint data_temp;
 274   1      
 275   1            data_temp=0;
 276   1      
 277   1            ADC_DATA=0;
 278   1      
 279   1            ADC_LOW2=0;
 280   1      
 281   1            ADC_CONTR|=0x08;
 282   1      
 283   1      re:    temp=0x10;
 284   1      
 285   1            temp&=ADC_CONTR;
 286   1      
 287   1            if(temp==0)
 288   1      
 289   1                    goto re;
 290   1      
 291   1            ADC_CONTR&=0xe7;
 292   1      
 293   1            data_temp=ADC_DATA;
 294   1      
 295   1            data_temp<<=2;
 296   1      
 297   1            data_temp+=ADC_LOW2;
 298   1      
 299   1            return data_temp;
 300   1      
 301   1      }


C51 COMPILER V7.50   STC12C5412AD_DRIVER                                                   08/24/2007 11:26:19 PAGE 6   

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