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

📄 cpu_init.lst

📁 书中详细说明了多路数据采集的方法,以及怎么样用AD来采集数据哟,大家不妨看看嘛,说不定有所帮助哟?
💻 LST
字号:
C51 COMPILER V7.50   CPU_INIT                                                              03/17/2007 13:51:24 PAGE 1   


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

line level    source

   1          //函数声明
   2          #include <c8051f020.h> // SFR 声明
   3          void Port_IO_Init()    //IO口以及存储器初始化
   4          {
   5   1          EMI0CF    = 0x2C;  //选择高端口模式,只用外部存储器,EMIF工作在
   6   1                                 //地址/数据复用方式,/WR和/RD占用12个SYSCLK周期 
   7   1          EMI0TC    = 0x3C;  //地址建立/保持时间为0,ALE高/低脉宽占1个SYSCLK周期    
   8   1          P3MDOUT   = 0x2D;  //P3.5--> LCD_RES,P3.3--> LCD_REQ,P3.2--> OE574,
   9   1                                 //P3.0--> OE574 四位设置为推拉输出方式;
  10   1                                 //P3.4--> LCD_BUSY,P3.1-->PS2_DATA两位设置为开漏输出方式。
  11   1          P74OUT    = 0xFF;  //将P4,P6,P5,P7口配置为推拉输出方式
  12   1              P0MDOUT   = 0x01;  //将TX0,TX1设置为推拉输出方式
  13   1          P1MDOUT   = 0x01;
  14   1          XBR0      = 0xDF;  //按照配置表进行各个外设的配置
  15   1          XBR1      = 0x1C;
  16   1          XBR2      = 0x44;
  17   1         /*额外的配置请在本行文字以下进行配置并请加详细注释*/
  18   1          
  19   1         /*------------------------------------------------*/
  20   1      }
  21          void Oscillator_Init()   //晶振初始化
  22          {
  23   1          int i = 0;
  24   1          OSCXCN    = 0x67;
  25   1          for (i = 0; i < 3000; i++);  // Wait 1ms for initialization
  26   1          while ((OSCXCN & 0x80) == 0);
  27   1          OSCICN    = 0x88;//使用外部22.1184M晶振,使能时钟丢失检测
  28   1      }
  29          
  30          /**************************************************************************************************/
  31          
  32          void Interrupts_Init()  //中断初始化
  33          {
  34   1          IE = 0x10;//使能UART0中断
  35   1          IP = 0x10;//设置UART0中断为高优先级
  36   1          EIE2 |= 0x02;//使能ADC0中断
  37   1      }
  38          void Timer_Init()
  39          {
  40   1          CKCON  = 0x10;//定时器1选择系统时钟为时钟源
  41   1          TMOD   = 0x20;//定时器1工作在8位自动重载方式
  42   1          TH1    = 0xB8;//UART0波特率设为9600bps
  43   1          TCON   = 0x41;//使能定时器1并使外部中断0配置为边沿触发方式
  44   1          TMR3   = 0x0FFF; //1.5ms启动一次转换   
  45   1          TMR3RLL= 0x0FFF;
  46   1              TMR3CN = 0x02;//定时器3使用系统时钟
  47   1      }
  48          
  49          void UART0_Init(void)
  50          {    
  51   1          SCON0=0xF0; //通信方式3允许多机通信方式,允许接收
  52   1              SADDR0=0x01;//主机地址为0x01
  53   1          SADEN0=0xFF;//全字节地址匹配
  54   1      }
  55          
C51 COMPILER V7.50   CPU_INIT                                                              03/17/2007 13:51:24 PAGE 2   

  56          void ADC0_Init(void)
  57          {
  58   1          AMX0CF=0x00;//配置各通道为单端输入方式
  59   1          AMX0SL=0x01;//起始通道为0
  60   1          ADC0CF = 0x40;//AD时钟为2.5M,PGA增益为1
  61   1          ADC0CN = 0x44;//关闭AD,使用转换前3SAR跟踪保持方式,使用定时器3溢出启动采集
  62   1          REF0CN = 0x03;//使能带隙基准和缓冲放大器
  63   1      }
  64          
  65          void Init_Device(void)
  66          {
  67   1          Oscillator_Init();
  68   1              Port_IO_Init();
  69   1              Interrupts_Init();
  70   1          Timer_Init();
  71   1          UART0_Init();
  72   1          ADC0_Init();
  73   1      }
  74          
  75          
  76          
  77          
  78          


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