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

📄 ad0809.lst

📁 通过AD0809将输入的模拟量转化为数字量
💻 LST
字号:
C51 COMPILER V8.02   AD0809                                                                11/28/2008 15:15:44 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE AD0809
OBJECT MODULE PLACED IN ad0809.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ad0809.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /* 作者:史叔伍
   2          完成日期:2008-11-5
   3          程序实现功能:通过AD0809将输入的模拟量转化为数字量,
   4          通过调节电位器来改变模拟电压输入,通过数码管显示电压的变化
   5          */
   6          #include <reg52.h>
   7          #include<intrins.h>
   8          #define uchar unsigned char
   9          #define uint  unsigned int
  10          uchar code table[]=
  11          {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
  12          0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef
  13          };//0,1,2,3,4,5,6,7,8,9,0.,1.,2.,3.,4.,5.,6.,7.,8.,9. */
  14          uint temp;
  15          uchar dis[3];
  16          
  17          sbit START=P3^0;  //A/D转换启动信号,高电平有效
  18          sbit OE=P3^1;    //输出数据允许信号,高电平时,可以从ADC0809读取数据
  19          sbit EOC=P3^2;   //A/D转换结束信号,高电平时,转换结束
  20          sbit PinA=P3^4;
  21          sbit PinB=P3^5;
  22          sbit PinC=P3^6;
  23          
  24          /*延时zms程序*/
  25          void delay(uint z)
  26          {
  27   1              uint x,y;
  28   1              for(x=z;x>0;x--)
  29   1                      for(y=110;y>0;y--);
  30   1      }
  31          
  32          /*开始AD转换函数*/
  33          void startadc(uchar address)
  34          {
  35   1          PinC=(bit)(address&0x04); //选择输入通道
  36   1              PinB=(bit)(address&0x02);
  37   1              PinA=(bit)(address&0x01);
  38   1      }
  39          
  40          /*读取A/D转换后的数据函数*/
  41          uint readdata(void)
  42          {
  43   1              START=0;
  44   1              START=1;
  45   1              START=0;
  46   1              while(!EOC); //等待A/D转化结束
  47   1          OE=0;
  48   1              _nop_();
  49   1              _nop_();
  50   1              temp=P0&0xff;
  51   1              return(temp);
  52   1      }
  53          
  54          /*初始化端口*/
  55          void initio()
C51 COMPILER V8.02   AD0809                                                                11/28/2008 15:15:44 PAGE 2   

  56          {
  57   1          P0=0xff;
  58   1              PinA=0;
  59   1              PinB=0;
  60   1              PinC=0;
  61   1              START=0;
  62   1              OE=0;
  63   1              EOC=1;
  64   1      }
  65          
  66          /*将AD读出数据转化为电压值*/
  67          void convert()
  68          {
  69   1          uint volt;
  70   1          float voltage;
  71   1          voltage=temp*0.02;
  72   1              volt=voltage*100;
  73   1              dis[0]=volt/100;
  74   1              dis[1]=volt%100/10;
  75   1          dis[2]=volt%10;
  76   1      }
  77          
  78          /*在数码管上显示三位数字*/
  79          void show()     
  80          {
  81   1          P1=0xfb;
  82   1              P2=table[dis[0]+10];
  83   1              delay(5);
  84   1              P1=0xfd;
  85   1          P2=table[dis[1]];
  86   1              delay(5);
  87   1              P1=0xfe;
  88   1          P2=table[dis[2]];
  89   1              delay(5);   
  90   1      }
  91          
  92          /*主程序*/
  93          void main()
  94          {
  95   1              initio();
  96   1              while(1)
  97   1              {
  98   2              startadc(4);//4通道
  99   2                      temp=readdata();
 100   2                      convert();
 101   2                      show();
 102   2              }
 103   1      }
 104          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    251    ----
   CONSTANT SIZE    =     20    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5       4
   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 + -