微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于51单片机与tlc2543的模数转换精度问题

关于51单片机与tlc2543的模数转换精度问题

时间:10-02 整理:3721RD 点击:
本人初学单片机 准备做一个显示角度传感器转过的角度的题目 手上拿到的角度传感器是0到180度 0到5伏的电压输出
程序如下
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit DSO=P1^0;
sbit DSI=P1^1;
sbit CS=P1^2;
sbit CLK=P1^3;
uchar code
tab[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
uchar code wei[]={0xf1,0xf2,0xf4,0xf8};
uint huancun[]={0x00,0x00,0x00,0x00};
void delay(uint m)
{
        while(m--);
}
void display()
{
        uchar i;
        for(i=0;i<4;i++)
        {
          P2=wei;
                P0=tab[huancun];
                delay(5);
                }
}
uint Read_TLC2543(uchar CHN)
{
        uchar i,temp;
        uint ad=0;
        CHN=CHN<<4;
        CLK=0;
        CS=1;
        CS=0;
        temp=CHN;
        for(i=0;i<12;i++)
        {
                ad=ad<<1;
                if((temp&0x80)!=0){DSI=1;}
                else{DSI=0;}
                if(DSO){ad=ad+1;}
                CLK=1;
                CLK=0;
                temp=temp<<1;
        }
        CS=1;
        ad=ad&0x0fff;
        return(ad);
}
void main()
{
  float sum;
        uint date;
  while(1)
        {
                sum=Read_TLC2543(0x00)*18.0;
                date=sum/4095;
                huancun[0]=date/1000;
                huancun[1]=date%1000/100;
                huancun[2]=date%1000%100/10;
                huancun[3]=date%10;
          display();
               
               
        }
}
仿真得到的结果精度不够 何解


sum=Read_TLC2543(0x00)*18.0;?

抱歉 是*1800然后 电阻每上升1%就18+18的变化

+vref取了4.096负的取了0

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top