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

📄 tzqno.lst

📁 ADC0832进行AD转换,使用通道0.采集后存入RAM
💻 LST
字号:
C51 COMPILER V6.12  TZQNO                                                                  05/16/2008 15:18:18 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE TZQNO
OBJECT MODULE PLACED IN .\tzqno.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE .\tzqno.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include <stdio.h>
   2          #include <reg52.h>
   3          #include <math.h>
   4          #include <absacc.h>
   5          #include <string.h>   //头文件
   6          #define uchar unsigned char
   7          /*lcd函数声明*/
   8          PR1();
   9          PR11();
  10          PR12();
  11          void ST01(void);
  12          void ST2(void);
  13          void ST3(void);
  14          INT_1();  
  15          CLEAR();       
  16          void DRAW(unsigned int);
  17          W_DOT();
  18          void DELAY(uchar);
  19          NOP();
  20          //ad函数声明
  21          void DELAY1(uchar x);
  22          uchar readadc(void);
  23          void adcck(void);
  24          uchar adc(void);
  25          void collect(void);
  26          tongxun();
  27          
  28          void display();
  29          
  30          /* lcd  地址定义   */
  31            sbit  cd=P1^7;     //定义C/D
  32            sbit  wr=P3^6;     //定义wr
  33            sbit  rd=P3^7;     //定义rd
  34            sbit  yjcs=P2^7;   //定义lcd 的cs
  35          
  36          /* ad 地址定义  */
  37            sbit adcd0=P3^2;
  38            sbit adccs=P2^6;
  39            sbit adcclk=P1^6;
  40            sbit ramcs=P2^5;
  41          
  42          /*   常数定义   */
  43          #define  para1 0x10;		 //显示宽度16个
  44           
  45          /*宏定义*/
  46          uchar bei_data=6;  //ad参数缩小倍数
  47          uchar lcd_step=3;  //读ram时的读数间隔
  48          uchar average=123;//采集数据的中间点
  49          /*标志位*/
  50          char flag,flag1;
  51          /*参数声明*/
  52          uchar q=0;
  53          unsigned int m;
  54          bit a;
  55          long int ram_wr=0;
C51 COMPILER V6.12  TZQNO                                                                  05/16/2008 15:18:18 PAGE 2   

  56          unsigned int O_X,O_Y, com,dat1,dat2,adc_sum;//com为液晶屏的指令代码,dat2显示文本垂直位置
  57          uchar code_1,wave_count=0,adc_t,lb_date,adc_date,keyvalue;
  58          uchar xdata RAM[5120]_at_ 0xc400;  //外部存储器,注意必须为0XCxxx,跟P2口有关
  59          unsigned int timecount;
  60          
  61          
  62          
  63          
  64          void DELAY(unsigned char x)
  65          
  66          { 
  67   1      
  68   1       unsigned char i; 
  69   1      
  70   1       for(i=0;i<x;i++); //延时,脉冲一位持续的时间
  71   1      
  72   1      }
  73          
  74          unsigned char adc(void) //把模拟电压值转换成8位二进制数并返回
  75          
  76          {  unsigned char i,ch;
  77   1      
  78   1       ch=0;
  79   1      
  80   1       adccs=0;
  81   1      
  82   1       adcd0=0;//片选,DO为高阻态
  83   1      
  84   1      DELAY(10);
  85   1      
  86   1       adcclk=0; DELAY(2);
  87   1      
  88   1       adcclk=1;  DELAY(2); //第一个脉冲,起始位 
  89   1      
  90   1       adcclk=0;  DELAY(2); 
  91   1      
  92   1       adcclk=1; DELAY(2); //第二个脉冲,DI=1表示双通道单极性输入
  93   1      
  94   1       adcclk=0; DELAY(2);
  95   1       
  96   1       adcclk=1; DELAY(2); //第三个脉冲,DI=1表示选择通道1(CH2)
  97   1      
  98   1       adcd0=1;//DI转为高阻态,DO脱离高阻态为输出数据作准备
  99   1      
 100   1       adcclk=1; DELAY(2);
 101   1      
 102   1       adcclk=0;  DELAY(2);//经实验,这里加一个脉冲AD便能正确读出数据,
 103   1      
 104   1                 //不加的话读出的数据少一位(最低位d0读不出)
 105   1      
 106   1      for (i=0; i<8; i++)
 107   1      
 108   1          { adcclk=1;         DELAY(2); 
 109   2      
 110   2           adcclk=0;  DELAY(2);
 111   2      
 112   2           ch=(ch<<1)|adcd0;//在每个脉冲的下降沿DO输出一位数据,最终ch为8位二进制数
 113   2      
 114   2         }
 115   1         adccs=1;//取消片选,一个转换周期结束
 116   1      
 117   1       return(ch);//把转换结果返回
C51 COMPILER V6.12  TZQNO                                                                  05/16/2008 15:18:18 PAGE 3   

 118   1      
 119   1      }
 120          main()
 121           {     unsigned int n; 
 122   1              ramcs=0;
 123   1             for(n=0;n<5120;n++)
 124   1      	  { RAM[n]=0; }
 125   1      	  for(n=0;n<5120;n++)
 126   1      	  { RAM[n]=adc(); }	
 127   1      		}


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    131    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     32    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      1    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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