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

📄 stc12c5412ad_driver.lst

📁 基于高速51单片机的,带示波器功能的频率计原码,还能分析PWM红外编码.液晶显示.
💻 LST
字号:
C51 COMPILER V8.05a   STC12C5412AD_DRIVER                                                  08/21/2007 12:57:59 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE STC12C5412AD_DRIVER
OBJECT MODULE PLACED IN STC12C5412AD_DRIVER.OBJ
COMPILER INVOKED BY: C:\Keil\MCU\C51\BIN\C51.EXE STC12C5412AD_DRIVER.C BROWSE DEBUG OBJECTEXTEND

line level    source

   1          //模块:STC12C5412AD_Driver.C
   2          //功能:单片机增强功能驱动模块
   3          //晶振:24.000MHz
   4          //芯片: STC12C5412AD
   5          //版本:V1.0.0
   6          //设计:魏广寅
   7          //日期:2007.4.10
   8          #include "STC12C5412AD.h"
   9          #define uchar unsigned char
  10          #define uint unsigned int
  11          //--------------------------------------------------------------------
  12          /*void set_timer0_1T()//设置T0为1T模式
  13          {
  14                  AUXR=AUXR|0x80;
  15          }
  16          //--------------------------------------------------------------------
  17          void set_timer1_1T()//设置T1为1T模式
  18          {
  19                  AUXR=AUXR|0x40;
  20          }
  21          //--------------------------------------------------------------------
  22          void set_timer0_12T()//设置T0为12T模式
  23          {
  24                  AUXR=AUXR&0x7f;
  25          }
  26          //--------------------------------------------------------------------
  27          void set_timer1_12T()//设置T1为12T模式
  28          {
  29                  AUXR=AUXR&0xbf;
  30          }
  31          //--------------------------------------------------------------------
  32          uchar EEPROM_read(uint addr)//EEPROM字节读
  33          {
  34                  ISP_ADDRH=(addr&0xff00)>>8;
  35                  ISP_ADDRL=addr&0x00ff;
  36                  ISP_CONTR=0x81;
  37                  ISP_CMD=1;
  38                  ISP_TRIG=0x46;
  39                  ISP_TRIG=0xb9;
  40                  return ISP_DATA;
  41          }
  42          //--------------------------------------------------------------------
  43          void EEPROM_write(uint addr,uchar dat)//EEPROM字节写
  44          {
  45                  ISP_DATA=dat;
  46                  ISP_ADDRH=(addr&0xff00)>>8;
  47                  ISP_ADDRL=addr&0x00ff;
  48                  ISP_CONTR=0x81;
  49                  ISP_CMD=2;
  50                  ISP_TRIG=0x46;
  51                  ISP_TRIG=0xb9;
  52          }
  53          //--------------------------------------------------------------------
  54          void EEPROM_ERASE(uint addr)//EEPROM扇区擦除
  55          {
C51 COMPILER V8.05a   STC12C5412AD_DRIVER                                                  08/21/2007 12:57:59 PAGE 2   

  56                  ISP_ADDRH=(addr&0xff00)>>8;
  57                  ISP_ADDRL=addr&0x00ff;
  58                  ISP_CONTR=0x81;
  59                  ISP_CMD=3;
  60                  ISP_TRIG=0x46;
  61                  ISP_TRIG=0xb9;
  62          } */
  63          //--------------------------------------------------------------------
  64          /*    void set_p3_tw()
  65           {
  66                  P3M0|=0x00;
  67                  P3M1|=0x00;
  68           }*/
  69           //--------------------------------------------------------------------
  70          void AD_init(uchar AD_port_sel ) //ADC初始化
  71          {
  72   1              ADC_CONTR|=0x80;  //开ADC电源
  73   1      
  74   1              switch(AD_port_sel)     //选择作为ADC的端口
  75   1              {
  76   2                      case 0:
  77   2                      P1M0=0x01;
  78   2                      P1M1=0x00;
  79   2                      ADC_CONTR&=0xf8;
  80   2      
  81   2                      break;
  82   2                      
  83   2                      case 1:
  84   2                      P1M0=0x02;
  85   2                      P1M1=0x00;
  86   2                      ADC_CONTR&=0xf8;
  87   2                      ADC_CONTR|=0x01;
  88   2                      break;
  89   2      
  90   2                      case 2:
  91   2                      P1M0=0x04;
  92   2                      P1M1=0x00;
  93   2                      ADC_CONTR&=0xf8;
  94   2                      ADC_CONTR|=0x02;
  95   2                      break;
  96   2      
  97   2                      case 3:
  98   2                      P1M0=0x08;
  99   2                      P1M1=0x10;
 100   2                      ADC_CONTR&=0xf8;
 101   2                      ADC_CONTR|=0x03;
 102   2                      break;
 103   2      
 104   2                      case 4:
 105   2                      P1M0=0x10;
 106   2                      P1M1=0x00;
 107   2                      ADC_CONTR&=0xf8;
 108   2                      ADC_CONTR|=0x03;
 109   2                      break;
 110   2      
 111   2                      case 5:
 112   2                      P1M0=0x20;
 113   2                      P1M1=0x00;
 114   2                      ADC_CONTR&=0xf8;
 115   2                      ADC_CONTR|=0x05;
 116   2                      break;
 117   2      
C51 COMPILER V8.05a   STC12C5412AD_DRIVER                                                  08/21/2007 12:57:59 PAGE 3   

 118   2                      case 6:
 119   2                      P1M0=0x40;
 120   2                      P1M1=0x00;
 121   2                      ADC_CONTR&=0xf8;
 122   2                      ADC_CONTR|=0x06;
 123   2                      break;
 124   2      
 125   2                      case 7:
 126   2                      P1M0=0x80;
 127   2                      P1M1=0x80;
 128   2                      ADC_CONTR&=0xf8;
 129   2                      ADC_CONTR|=0x07;
 130   2                      break;
 131   2              }
 132   1              ADC_CONTR=0xe7;
 133   1      }
 134          //--------------------------------------------------------------------
 135          uint GET_AD_Result()//启动AD转换并返回转换值
 136          {
 137   1              uchar temp;
 138   1              uint data_temp;
 139   1              data_temp=0;
 140   1              ADC_DATA=0;
 141   1              ADC_LOW2=0;
 142   1              ADC_CONTR|=0x08;
 143   1      re:     temp=0x10;
 144   1              temp&=ADC_CONTR;
 145   1              if(temp==0)
 146   1                      goto re;
 147   1              ADC_CONTR&=0xe7;
 148   1              data_temp=ADC_DATA;
 149   1              data_temp<<=2;
 150   1              data_temp+=ADC_LOW2;
 151   1              return data_temp;
 152   1      }
 153          //--------------------------------------------------------------------


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 + -