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

📄 2543.lst

📁 tlc2543的驱动c程序
💻 LST
字号:
C51 COMPILER V8.02   2543                                                                  07/29/2007 22:05:19 PAGE 1   


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

line level    source

   1          /**************************************
   2                       TLC2543驱动程序
   3          *************************************/
   4          #include <AT89X52.H>
   5          unsigned int read,invlevel;
   6          float vlevel;
   7          unsigned char seg7code[16]=
   8          // 0     1     2     3     4     5     6     7     8     9    A     b     C      d     E     F
   9          {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};
  10          
  11          /**************************************
  12                  2543控制引脚宏定义
  13          *************************************/
  14          sbit CLOCK=P2^0;  /*2543时钟*/
  15          sbit D_IN=P2^1 ;  /*2543输入*/
  16          sbit D_OUT=P2^2;  /*2543输出*/
  17          sbit _CS=P2^3  ;  /*2543片选*/
  18          
  19          /**************************************
  20            名称:delay
  21            功能:延时模块
  22            输入参数:n要延时的周期数
  23            输出参数:无
  24          *************************************/
  25          void delay(unsigned char n)
  26          {
  27   1       unsigned char i;
  28   1       for(i=0;i<n;i++)
  29   1        {
  30   2         ;
  31   2        }
  32   1      }
  33          
  34          void Led(unsigned int invlevel)
  35          {
  36   1       P2=P2&0xef;
  37   1       P0=(seg7code[invlevel/1000])|0x80;  //输出个位数和小数点
  38   1       delay(100); 
  39   1       P2=P2|0xf0;
  40   1       P2=P2&0xdf;
  41   1       P0=seg7code[invlevel%1000/100];     //输出小数点后第一位
  42   1       delay(100); 
  43   1       P2=P2|0xf0;
  44   1       P2=P2&0xbf;
  45   1       P0=seg7code[invlevel%100/10];       //输出小数点后第二位
  46   1       delay(100);
  47   1       P2=P2|0xf0;
  48   1       P2=P2&0x7f;
  49   1       P0=seg7code[invlevel%10];           //输出小数点后第三位
  50   1       delay(100);
  51   1       P2=P2|0xf0; 
  52   1      }
  53          
  54          /**************************************
  55            名称:read2543
C51 COMPILER V8.02   2543                                                                  07/29/2007 22:05:19 PAGE 2   

  56            功能:TLC2543驱动模块
  57            输入参数:port通道号
  58            输出参数:ad转换值
  59          *************************************/
  60          unsigned int read2543(unsigned char port)
  61          {
  62   1       unsigned int ad=0,i;
  63   1        CLOCK=0;
  64   1        _CS=0;
  65   1        port<<=4;
  66   1        for(i=0;i<12;i++)
  67   1       {
  68   2         if(D_OUT) ad|=0x01;
  69   2         D_IN=(bit)(port&0x80);
  70   2         CLOCK=1;
  71   2         delay(3);
  72   2         CLOCK=0;
  73   2         delay(3);
  74   2         port<<=1;
  75   2         ad<<=1;
  76   2       }
  77   1       _CS=1;
  78   1       ad>>=1;
  79   1       return(ad);
  80   1      }
  81          
  82          void Datapro(unsigned int adv)  ////////////TLC2543数据处理函数
  83          {
  84   1       unsigned int vhigh,vmid,vlow;
  85   1       vhigh=(adv&0x0f00);
  86   1       vhigh=(vhigh>>8);
  87   1       vmid=(adv&0x00f0);
  88   1       vmid=(vmid>>4);
  89   1       vlow=(adv&0x000f);
  90   1       vlevel=(vhigh*5000.0/4096*256+vmid*5000.0/4096*16+vlow*5000.0/4096);
  91   1      }
  92          
  93          /**************************************
  94            名称:main
  95            功能:主函数
  96            输入参数:无
  97            输出参数:无
  98          *************************************///////////
  99          void main()
 100          {
 101   1       while(1)
 102   1        {
 103   2         read=read2543(0x00);
 104   2         Datapro(read);
 105   2         invlevel=(int)vlevel;
 106   2         Led(invlevel);
 107   2        }
 108   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    445    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     24       6
   IDATA SIZE       =   ----    ----
C51 COMPILER V8.02   2543                                                                  07/29/2007 22:05:19 PAGE 3   

   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 + -