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

📄 mini51b_driver.lst

📁 基于Mini51板的数字示波器设计
💻 LST
字号:
C51 COMPILER V8.02   MINI51B_DRIVER                                                        01/15/2009 20:17:46 PAGE 1   


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

line level    source

   1          #include "Mini51B.H"    //所有与硬件相关的接口函数定义
   2          
   3          /*ADC1549数据读取,首次无效*/
   4          //读取ADC结果函数
   5          unsigned int read_adc(void)
   6          {
   7   1        unsigned char i;  
   8   1        unsigned int temp=0; 
   9   1        ADC_CS = 0;                   //开启控制电路,使能DA和CK IO引脚
  10   1        for(i=0;i<10;i++) {   //采集10次 ,即10bit
  11   2          ADC_CK = 0;        
  12   2          temp <<= 1;
  13   2          if(ADC_DA) temp++;  
  14   2          ADC_CK = 1;
  15   2        }
  16   1        ADC_CS = 1;
  17   1        return(temp);
  18   1      }
  19          
  20          /*DAC5615数据写入函数/
  21          void write_dac(uint da)
  22          {
  23            uchar i;
  24            da <<= 6;//10有效数据左对齐
  25            DAC_CS = 0;
  26            DAC_CK = 0;
  27            for (i=0;i<12;i++)
  28            {
  29              DAC_DA = (bit)(da & 0x8000);
  30              DAC_CK = 1;
  31              da <<= 1;
  32              DAC_CK = 0;
  33            }
  34            DAC_CS = 1;
  35            DAC_CK = 0;
  36          }//*/
  37          
  38          //通用数码管显示函数,传入数据0~9999
  39          void seg7_disp(uint number)
  40          {
  41   1              unsigned char code tab1[20]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};
  42   1              unsigned char temp,flag=0;
  43   1      
  44   1              if(number < 10000)
  45   1              {               
  46   2                      //千位数码管
  47   2                      temp = number/1000%10;
  48   2                      if (temp) {
  49   3                              SEG_Q = tab1[temp];
  50   3                              flag = 1;       
  51   3                      }
  52   2                      else {
  53   3                              SEG_Q = 0xff;//数码管熄灭
  54   3                              flag = 0;       
  55   3                      }
C51 COMPILER V8.02   MINI51B_DRIVER                                                        01/15/2009 20:17:46 PAGE 2   

  56   2      
  57   2                      //百位数码管
  58   2                      temp = number/100%10;   
  59   2                      if(flag | temp) {
  60   3                              SEG_B = tab1[temp];
  61   3                              flag = 1;       
  62   3                      }
  63   2                      else {
  64   3                              SEG_B = 0xff;//数码管熄灭
  65   3                              flag = 0;       
  66   3                      }                                       
  67   2                      
  68   2                      //十位数码管
  69   2                      temp = number/10%10;
  70   2                      if(flag | temp) SEG_S = tab1[temp];             
  71   2                      else SEG_S = 0xff;//数码管熄灭          
  72   2                      
  73   2                      //个位数码管
  74   2                      temp = number%10;       
  75   2                      SEG_G = tab1[temp];
  76   2              }
  77   1              else {
  78   2                      SEG_Q = 0xbf;//"-"
  79   2                      SEG_B = 0xbf;
  80   2                      SEG_S = 0xbf;
  81   2                      SEG_G = 0xbf;   
  82   2              } 
  83   1      }//*/
  84          
  85          //延时nms子程序,
  86          void delay_ms(unsigned int n)
  87          {
  88   1           unsigned char j;
  89   1           while(n--)
  90   1           for(j=0;j<230;j++);//230是实验测试所得!
  91   1      /*
  92   1      参数n>0;
  93   1      延时  1ms:delay_ms(1);
  94   1      延时 11ms:delay_ms(11);
  95   1      ……
  96   1      */
  97   1      }


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