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

📄 main.lst

📁 At89s52单片机与max527的da程序
💻 LST
字号:
C51 COMPILER V8.02   MAIN                                                                  04/17/2007 10:57:56 PAGE 1   


C51 COMPILER V8.02, 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          
   2          #include "main.h"
   3          #include "reg52.h"
   4          #include "absacc.h"
   5          #define uchar unsigned char
   6          #define uint unsigned int
   7          
   8          #define AdL8 XBYTE[0xFEFF]              // 低8位
   9          #define AdH4 XBYTE[0xFDFF]              // 高4位        
  10          sbit LDAC = P1^0;                               // MAX527装载DAC寄存器控制脚LDAC
  11          sbit A0 = P1^1;                                 // DAC通道选择脚A0
  12          sbit A1 = P1^2;                                 // DAC通道选择脚A1
  13                  
  14          unsigned char Channel_Msb;
  15          unsigned char Channel_Lsb;
  16          unsigned char Buffer_Key;
  17          unsigned int DA_Input;
  18          float DA_Output;
  19                                  
  20          
  21          
  22          
  23           
  24          /********功能:定时中断程序定时对外部电压进行数据采集并进行数据处理**********/
  25          
  26          void Timer0(void) interrupt 1 using 1
  27          {
  28   1          TR0 = 0;
  29   1          Collection_Data();
  30   1              Process_Data();
  31   1              TL0 = 0x00;         //定时65535us
  32   1          TH0 = 0x00;
  33   1          TR0 = 1;
  34   1      }
  35           
  36          /****************初始化程序对51单片机初始化******************/
  37          
  38          void Timer0_Initial()
  39          {
  40   1          TMOD = 0x01;    //使用定时器0,工作方式1
  41   1          EA = 1;
  42   1          ET0 = 1;            //边缘触发方式
  43   1          TL0 = 0x00;     //定时65535us
  44   1          TH0 = 0x00;
  45   1          TR0 = 1;
  46   1      }
  47          
  48           
  49           
  50          /*************数据处理完成采集的数据的十六进制转换为十进制的形式*************/
  51          
  52          void Process_Data()
  53          {
  54   1          uint Digit_Data;
  55   1              DA_Input=AdH4<<8+AdL8;
C51 COMPILER V8.02   MAIN                                                                  04/17/2007 10:57:56 PAGE 2   

  56   1              Digit_Data =((Channel_Msb&0x0f)<<8) + Channel_Lsb;
  57   1              DA_Output=(Digit_Data / 4096.0)*2.5;
  58   1      }  
  59          
  60          
  61          
  62           
  63          /*************定时采集对197进行控制,向197的控制字寄存器中写入控制字,对外围电压信号进行采集*************/
  64          
  65          void Collection_Data()
  66          {
  67   1          uchar i;
  68   1         if(136==Buffer_Key)           /* 选择A输入寄存器,即选择A通道 */
  69   1               { 
  70   2                A0 = 0;
  71   2                A1 = 0;
  72   2               }
  73   1         if(132==Buffer_Key)           /* 选择B输入寄存器,即选择B通道 */
  74   1               {
  75   2                A0 = 0;
  76   2                A1 = 1;
  77   2               }
  78   1         if(130==Buffer_Key)           /* 选择C输入寄存器,即选择C通道 */
  79   1                {
  80   2                 A0 = 1;
  81   2                 A1 = 0;
  82   2                }
  83   1         if(129==Buffer_Key)            /* 选择D输入寄存器,即选择D通道 */
  84   1              {
  85   2               A0 = 1;
  86   2               A1 = 1;
  87   2               }
  88   1        
  89   1              LDAC = 1;                       // 将LDAC置高
  90   1              
  91   1              Channel_Lsb=AdL8;               // 低8位数据装入
  92   1      
  93   1              for (i=0;i<250;i++)         // 适当延时
  94   1                      i=i;
  95   1              
  96   1              Channel_Msb=AdH4;               // 高4位数据装入
  97   1              
  98   1              LDAC = 0;       /* 将LDAC置低,输入寄存器数据转入DAC寄存器,模拟输出端VOUTA输出模拟信号*/               
  99   1      
 100   1      }
 101          
 102          
 103          
 104          
 105          
 106          /***************************主程序开始**************************/
 107          
 108          void  main()               
 109            {
 110   1      
 111   1               DISPInitial();
 112   1           Timer0_Initial();
 113   1          while(1)
 114   1          {   Buffer_Key=Key_Scan();
 115   2              DisplayLCD();
 116   2          }    
 117   1        }
C51 COMPILER V8.02   MAIN                                                                  04/17/2007 10:57:56 PAGE 3   

 118          
 119          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    214    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      9    ----
   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 + -