tlc549_2.lst

来自「自己的平时一些制作 现在整理一下 与大家一起分享」· LST 代码 · 共 126 行

LST
126
字号
C51 COMPILER V7.20   TLC549_2                                                              06/12/2007 14:00:15 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE TLC549_2
OBJECT MODULE PLACED IN tlc549_2.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE tlc549_2.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg51.h>
   2          //定义显示数组d[4]以及一个变量n用于动态显示
   3          unsigned char d[4],n;
   4          //定义显示用的查找表
   5          unsigned char code table[11]={0x3f,6,0x5b,0x4f,
   6                             0x66,0x6d,0x7d,7,0x7f,0x6f,0}; //0--9 最后再有一个空
   7          unsigned char code digit[4]={0xf8,0xf4,0xf2,0xf1};
   8          
   9          //定义TLC549转换接口
  10          sbit tlc549_cs=P1^6;
  11          sbit tlc549_clk=P1^5;
  12          sbit tlc549_data=P1^4;
  13          
  14          //定义可位寻址的变量adc用于存放ad转换值,
  15          //以及一个bit变量用于移位,它指示了ad的最最低一位
  16          unsigned char bdata adc;
  17          sbit  adclow=adc^0;
  18          
  19          //ad转换函数
  20          unsigned char adconvert()
  21          {   unsigned char i;
  22   1          tlc549_cs=1;
  23   1          tlc549_cs=0;
  24   1          tlc549_clk=0;
  25   1          for(i=0;i<8;i++)
  26   1          {   tlc549_clk=1;
  27   2              adclow=tlc549_data;
  28   2              tlc549_clk=0;
  29   2              if(i<7) adc=adc<<1;
  30   2          }
  31   1          tlc549_clk=0;
  32   1          tlc549_cs=1;
  33   1          return(adc);
  34   1      }
  35          
  36          /******将ad转换BCD码值显示出来**********/
  37          vtobcd(unsigned int hexs)
  38          {       
  39   1              d[0]=hexs/1000;
  40   1              hexs=hexs % 1000;
  41   1              d[1]=hexs/100;
  42   1              hexs=hexs % 100;
  43   1              d[2]=hexs/10;
  44   1              hexs=hexs % 10;
  45   1              d[3]=hexs;
  46   1      }
  47          
  48          /*******延时函数***********/
  49          void delay(unsigned char dy)
  50          {
  51   1         while(--dy);
  52   1      }
  53          
  54          /*****定时器初始化函数********/
  55          void Init_Timer (void)
C51 COMPILER V7.20   TLC549_2                                                              06/12/2007 14:00:15 PAGE 2   

  56          {
  57   1          TMOD=0X21;
  58   1          TR0=1;
  59   1          ET0=1;
  60   1          EA=1;
  61   1      }
  62          
  63          /**********定时器0中断服务函数*****************/
  64          void timer0() interrupt 1 using 1
  65          {
  66   1          TH0=(65536-1000)/256;
  67   1          TL0=(65536-1000)%256;
  68   1          n=n++;
  69   1          if(n>3) n=0;
  70   1          P0=0;
  71   1          P2=digit[n];
  72   1          P0=table[d[n]]; 
  73   1      }
  74          
  75          /******主函数main*************/
  76          //效果就是多次测量求平均值然后显示测量的电压值;
  77          //电压值用mv为单位,范围 0--5000mv
  78          //由于测量值的范围为0--255,所以中间要乘一个系数19.6
  79          
  80          /*****************************/
  81          void main()
  82          {   
  83   1              unsigned char ad,j;
  84   1              unsigned int sum_ad=0;
  85   1              Init_Timer();
  86   1          //变量初始化
  87   1          n=0;
  88   1        while(1)
  89   1           {  
  90   2      
  91   2              for(j=0;j<10;j++)
  92   2                      {       ad=adconvert();  //ad转换
  93   3                              sum_ad=sum_ad+ad;
  94   3                              delay(250);
  95   3                      }
  96   2                      sum_ad=sum_ad/10;
  97   2                      vtobcd(sum_ad*19.6);    //将ad转换BCD码
  98   2                      for(j=0;j<200;j++)  delay(250);
  99   2           }
 100   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    288    ----
   CONSTANT SIZE    =     15    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      6       2
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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