• 大小: 1.98MB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2024-02-01
  • 语言: 其他
  • 标签: TLC1543  液晶显示  

资源简介

吐血大放送,另一个AD芯片TLC1543,软硬件,仿真均通过,正好也有TLC1543,拿过来玩了一下,大家那个驱动程序仔细研究一下,和其他的AD时序不一样,我也是参考别人的。申明:我的所有资源不都是原创,但是绝对是经过实际验证的,大家放心下载,

资源截图

代码片段和文件信息

#include “adc0832.h“
#include “lcd1602.h“
#include “myfun.h“
unsigned char lcd1602_1[8]=“M:  .  V“;
unsigned char lcd1602_2[16]=“ChanneL 1:     V“;
unsigned char code dianya[10]=“0123456789“;
unsigned int idata receive[9];
 

unsigned int read_1543(unsigned char Channel)
{
 unsigned int ConvertValue;
 unsigned char i Chan;
 unsigned char ConvertValueL ConvertValueH;
 unsigned char delay;
 
 ConvertValueL = ConvertValueH = 0; //初始化转换结果
 delay = 0;
 if (EOC)     // 转换结束信号 
 {
  Clock = 0;
  ChipSelect = 1;
  Wait2us;
  ChipSelect = 0;
  Wait2us;
  Channel = Channel << 4;
  for (i = 0; i < 4; i ++)           //输入需要转换的通道的编码
  {
   Chan = Channel;
   Chan = Chan >> 7;
   DataIn = (bit)Chan;
   Wait2us;
   Clock = 1;
   Clock = 0;
   Channel = Channel << 1;
  }
  for (i = 0; i < 6;i ++)            //输入转换时钟
  {
   Clock = 1;
   Clock = 0;
  }
  ChipSelect = 1;
  //开始检测转换结束标志,或者转换超时出错
  while ((!EOC) && (delay < 10))
  {
   Wait10us;
   delay ++;
  }
  if (delay == 10)
  {
   return (0xFFFF); //转换超时,返回错误代码
  }
  else
  {
   Wait10us;
   Clock = 0;
   ChipSelect = 1;
   Wait1us;
   ChipSelect = 0;
   Wait1us;
   for (i = 0; i < 2; i ++) //读取高二位bit值
   {
    Clock = 1;
    DataOut = 1;
    ConvertValueH <<= 1;
    if (DataOut)
      ConvertValueH |= 0x01;
    Clock = 0;
    Wait1us;
   } 
   for (i = 0; i < 8; i ++) //读取低八位bit值
   {
    Clock = 1;
    DataOut = 1;   // 三态输出口??
    ConvertValueL <<= 1;
    if (DataOut)
      ConvertValueL |= 0x01;
    Clock = 0;
    Wait1us;
   } 
   ChipSelect=1;
   ConvertValue = ConvertValueH;
   ConvertValue <<= 8;
   ConvertValue |= ConvertValueL;
   return (ConvertValue); //返回转换结果
  }
 }
}


unsigned int filter(unsigned int ddata[])     // 滤波子程序 中位值平均滤波法
{
  unsigned long int al = 0;
  unsigned int itemp;
  unsigned char xy;
   for(y=0;y<8;y++)  // 将得到的数据从大到小排序
    {
 for(x=1;x<9-y;x++)
  {
   if((*(ddata+x))>(*(ddata+x-1)))
    {
  temp=(*(ddata+x-1));
  (*(ddata+x-1))=(*(ddata+x)); 
  (*(ddata+x))=temp;
}
  }
}
  for(i=2;i<7;i++)  // 滤除高2位和低2位数据
   {
     al+=ddata[i];
   }
   al/=5;al=(unsigned int)al;
   return (al);
}

float Data_Process(unsigned char channel)  // 数据处理
{
  unsigned char i;
  unsigned int get;  // get必须为int型,否则出错 
  float voltage;
  for(i = 0;i < 9;i++)
   {
    receive[i] = read_1543(channel);
Delay50us();
   }
  get = filter(receive);
  
  voltage = ((float)(get)*4.3/1024);
   return voltage ;
}  

void Refresh_Dis_Buffer( unsigned char channel)    // 刷新相应通道号显示数据
{
 float ab;
 unsigned int Vc;
 a = Data_Process(channel);
 /*if(a>=2.5) // 当输出为+-10V时,可用此语句,实际测量值Uo和输入信号Ui关系为Uo=0.25*Ui+2.5
 {b = 4*a-10;lcd1602_1[2] = ‘ ‘;} 
 if(a<2.5)
 {b = 10-4*a;lcd1602_1[2] = ‘-‘;} ;  */
 b = 2*a;
 V = (unsigned int)(b*100);
 lcd1602_1[3]=dianya[V/100];
 lcd1602_1[5]=dianya[V/10%10];
 lcd1602_1[6]=dianya[V%1

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-07-15 16:26  TLC1543文件包\
     文件      100628  2011-07-14 12:03  TLC1543文件包\1602_ADC0832.DSN
     文件      100393  2011-07-15 11:02  TLC1543文件包\1602_TLC1543.DSN
     文件         768  2011-07-15 12:32  TLC1543文件包\1602_TLC1543.PWI
     文件      100393  2011-07-15 09:30  TLC1543文件包\Last Loaded 1602_TLC1543.DBK
     文件      434544  2009-06-10 11:22  TLC1543文件包\TLC1543.pdf
     文件     1601514  2011-07-13 21:50  TLC1543文件包\TLC1543中文资料.PDF
     目录           0  2011-07-15 12:31  TLC1543文件包\程序\
     目录           0  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\
     文件        7348  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\adc0832.lst
     文件       10771  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\adc0832.obj
     文件        6684  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\lcd1602.lst
     文件        8642  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\lcd1602.obj
     文件        2602  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\main.lst
     文件        4392  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\main.obj
     文件        1482  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\myfun.lst
     文件        2177  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\myfun.obj
     文件       14138  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\STARTUP.lst
     文件         815  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\STARTUP.obj
     文件       24367  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\TLC1543
     文件        6845  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\TLC1543.hex
     文件         189  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\TLC1543.lnp
     文件       27244  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\TLC1543.m51
     文件         202  2011-07-15 12:31  TLC1543文件包\程序\OUTPUT\TLC1543.plg
     目录           0  2011-07-14 17:06  TLC1543文件包\程序\SRC\
     文件        3443  2011-07-15 09:20  TLC1543文件包\程序\SRC\adc0832.c
     文件         569  2011-07-14 16:55  TLC1543文件包\程序\SRC\adc0832.h
     文件        3041  2010-11-25 19:39  TLC1543文件包\程序\SRC\lcd1602.c
     文件         460  2011-07-10 16:16  TLC1543文件包\程序\SRC\lcd1602.h
     文件         727  2011-07-15 12:31  TLC1543文件包\程序\SRC\main.c
     文件         362  2011-07-14 16:56  TLC1543文件包\程序\SRC\myfun.c
............此处省略7个文件信息

评论

共有 条评论