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

📄 8vod.lst

📁 使用AT89C52单片机
💻 LST
字号:
C51 COMPILER V7.09   8VOD                                                                  10/10/2004 18:04:13 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE 8VOD
OBJECT MODULE PLACED IN 8vod.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE 8vod.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*********************************************************************/
   2          //            
   3          //                    八路电压表程序
   4          //                    LRM 2004.10.11      
   5          /*********************************************************************/
   6          //使用AT89C52单片机,12MHZ晶振,P0口读入AD值,P2口作AD控制,用共阳LED数码管
   7          //P1口输出段码,P3口扫描,最高位指示通道(0-7)。
   8          #include "reg51.h"
   9          #include "intrins.h"     //_nop_();延时函数用
  10          #define  ad_con   P2
  11          #define  addata   P0
  12          #define  Disdata    P1
  13          #define char unsigned char
  14          #define int unsigned int
  15          sbit  ALE=P2^3;        //锁存地址控制
  16          sbit  START=P2^4;      //启动一次转换
  17          sbit  OE=P2^5;         //0809输出数据控制
  18          sbit  EOC=P3^7;        //转换结束标志
  19          //
  20          //
  21          char code dis_7[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};
  22          /* 共阳LED段码表     "0"  "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9" "不亮" */                
  23          char code  scan_con[4]={0xfe,0xfd,0xfb,0xf7};   // 列扫描控制字
  24          char data  ad_data[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//
  25          char data  dis[5]={0x00,0x00,0x00,0x00,0x00};//显示单元数据,共4个数据
  26          //
  27          //
  28          /****************/
  29          //1毫秒延时程序//
  30          /***************/
  31          delay1ms(int t)
  32          {
  33   1      int i,j;
  34   1      for(i=0;i<t;i++)
  35   1         for(j=0;j<120;j++)
  36   1         ;
  37   1      }
  38          //
  39          //
  40          /***********显示扫描函数**********/
  41          scan()
  42          {
  43   1      char k,n;
  44   1      int h;
  45   1      dis[3]=0x00;                 //通道初值为0
  46   1      for(n=0;n<8;n++)             //每次显示8个数据
  47   1       {
  48   2        dis[2]=ad_data[n]/100;     //测得值转换为三位BCD码
  49   2        dis[4]=ad_data[n]%100;     // 余数暂存
  50   2        dis[1]=dis[4]/10;
  51   2        dis[0]=dis[4]%10;
  52   2        for(h=0;h<500;h++)         //每个通道值显示时间控制(约1秒)
  53   2        {
  54   3          for(k=0;k<4;k++)         //四位LED扫描控制
  55   3           {
C51 COMPILER V7.09   8VOD                                                                  10/10/2004 18:04:13 PAGE 2   

  56   4            Disdata=dis_7[dis[k]];P3=scan_con[k];delay1ms(1);P3=0xff;
  57   4           }
  58   3         }
  59   2        dis[3]++;                 //通道值加1
  60   2       }
  61   1      }
  62          //
  63          //
  64          /*******0809AD转换函数***********/
  65          test()
  66          {
  67   1      char m;
  68   1      char s=0x00;
  69   1      ad_con=s;
  70   1      for(m=0;m<8;m++)
  71   1       {
  72   2        ALE=1;_nop_();_nop_();ALE=0;     //转换通道地址锁存
  73   2        START=1;_nop_();_nop_();START=0; //开始转换命令
  74   2        _nop_();_nop_();_nop_();_nop_(); //延时4微秒
  75   2        while(EOC==0);                   //等待转换结束
  76   2        OE=1;ad_data[m]=addata;OE=0;s++;ad_con=s;//取AD值,地址加1
  77   2       }
  78   1      ad_con=0x00;                       //控制复位 
  79   1      }
  80          //
  81          //
  82          /**************主函数****************/
  83          main()
  84          {
  85   1      P0=0xff;          //初始化端口 
  86   1      P2=0x00;
  87   1      P1=0xff;
  88   1      P3=0xff;
  89   1      while(1)
  90   1       {
  91   2         scan();       //依次显示8个通道值一次
  92   2         test();       //测量转换一次
  93   2        }
  94   1      }
  95          //
  96          //*********************结束**************************//


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    208    ----
   CONSTANT SIZE    =     15    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     13       3
   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 + -