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

📄 max.lst

📁 这是我写的一个AD转换的程序
💻 LST
字号:
C51 COMPILER V7.50   MAX                                                                   02/05/2006 22:13:51 PAGE 1   


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

line level    source

   1          
   2          
   3          #include <reg52.h>
   4          #include <intrins.h>
   5          #include<absacc.h>
   6          
   7          #include "key.h"
*** WARNING C318 IN LINE 7 OF max.c: can't open file 'key.h'
   8          #include "led.h"
*** WARNING C318 IN LINE 8 OF max.c: can't open file 'led.h'
   9          
  10          extern uchar key;//存键值
*** ERROR C129 IN LINE 10 OF MAX.C: missing ';' before 'key'
  11          extern bit key_flag;//键按下标志
  12          extern uchar led_buf[];//显示缓冲区
  13          
  14          #define nop8() {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}
  15          
  16          #define IN_0_5_BASE    1.220703  //  5/4096,量程为0-5v每单位电压大小
  17          #define IN_0_10_BASE   2.441406  //  10/4096 0-10v
  18          #define IN_N5_5_BASE   2.441406  //  10/4096 -5v-5v
  19          #define IN_N10_10_BASE 4.882813   // 20/4096 -10v-10v
  20                                   //_cs HBEN  
  21          #define ADCCOM  XBYTE[0x7fff]  //0   1  控制命令字地址
  22          #define ADLO  XBYTE[0x3fff]  //0   0   低8位地址,
  23          #define ADHI  XBYTE[0x7Fff]  //0   1     高四位地址
  24                                   //内部时钟 内部采样 0 to 5  通道0 
  25          uchar channel=0;        //PD1 PD0 ACQMOD RNG BIP A2 A1 A0
  26          uchar volatile bdata command_byte=0x40;  //0   1     0    0   0   0  0  0
  27          sbit PD1=command_byte^7; 
  28          sbit PD0=command_byte^6;
  29          sbit ACQMOD=command_byte^5;
  30          sbit RNG=command_byte^4;
  31          sbit BIP=command_byte^3;
  32          //###################################################
  33          //sbit _WR=P3^6;
  34          //sbit _RD=P3^7;
  35          //sbit CS=P2^7;     //引脚连接
  36          //sbit HBEN=P2^6;
  37          //###################################################
  38                           
  39          void main(void)
  40          {
  41           uchar msb,lsb;
  42           uint volatile data volt;
  43           uchar input_mode;
  44           CS=HBEN=1;
  45          
  46           key_init();
  47          
  48           led_buf[7]=channel;
  49           led_buf[6]=12+((uchar)BIP<<1)+(uchar)RNG; 
  50           //BIP RNG INPUT RANGE (V) 显示
  51           // 0   0    0 to 5    a
  52           // 0   1    0 to 10   b
C51 COMPILER V7.50   MAX                                                                   02/05/2006 22:13:51 PAGE 2   

  53           // 1   0     ±5    c
  54           // 1   1     ±10    d                               
  55           led_update();
  56          
  57           while(1)
  58           {
  59             
  60            if(_testbit_(key_flag))
  61            {
  62             if(read_key())//读按键
  63             {
  64              if(key==KEY_B)
  65              {
  66               ADCCOM=command_byte+channel;
  67               nop8();//等待8us让其完成转换
  68               ADCCOM=command_byte+channel; //让其测三次之后就可以得到稳定的电压了。
  69               nop8();//等待8us让其完成转换
  70               ADCCOM=command_byte+channel;
  71               nop8();//等待8us让其完成转换
  72               msb=ADHI&0x0f;
  73               lsb=ADLO;
  74               volt=msb*256+lsb; 
  75               lclear(0,5);
  76               input_mode=((uchar)BIP<<1)+(uchar)RNG;//由量程来确定如何处理数据
  77               switch(input_mode)
  78               {
  79                case 0:
  80                 volt*=IN_0_5_BASE;
  81                 break;
  82                case 1:
  83                 volt*=IN_0_10_BASE;
  84                 break;
  85                case 2:
  86                 volt*=IN_N5_5_BASE;
  87                 if(volt>5000)//如是为负电压
  88                 {
  89                  led_buf[0]=LED_NEG;
  90                  volt=10000-volt; 
  91                 }
  92                 else
  93                  led_buf[0]=LED_BLANK;//显示负号
  94                 break;
  95                case 3:
  96                 volt*=IN_N10_10_BASE;
  97                 if(volt>10000)//如是为负电压
  98                 {
  99                  led_buf[0]=LED_NEG;
 100                  volt=20000-volt; 
 101                 }
 102                 else
 103                  led_buf[0]=LED_BLANK;//显示负号
 104                 break;
 105                
 106               }
 107               if(volt>9999)
 108                lprinti(volt,0x35,1);//格式输出
 109               else
 110               {
 111                lprinti(volt,0x34,2);//格式输出
 112               }
 113               led_update(); 
 114              }
C51 COMPILER V7.50   MAX                                                                   02/05/2006 22:13:51 PAGE 3   

 115              else if(key==KEY_C)//按键选择量程为0-5v
 116              {
 117               BIP=0;
 118               RNG=0;
 119              }
 120              else if(key==KEY_D)//按键选择量程为0-10v
 121              {
 122               BIP=0;
 123               RNG=1;
 124              }
 125              else if(key==KEY_E)//按键选择量程为-5-5v
 126              {
 127               BIP=1;
 128               RNG=0;
 129              }
 130              else if(key==KEY_F)//按键选择量程为-10-10v
 131              {
 132               BIP=1;
 133               RNG=1;
 134              }
 135              else if(key<KEY_8)//选择通道0~7
 136              {
 137               channel=key;
 138               led_buf[7]=channel;//通道送显
 139              }
 140              led_buf[6]=12+((uchar)BIP<<1)+(uchar)RNG;//量程送显
 141              led_update();
 142             }
 143            }
 144           }
 145          }
 146          

C51 COMPILATION COMPLETE.  2 WARNING(S),  1 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -