Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18882
  • 博文数量: 4
  • 博客积分: 130
  • 博客等级: 入伍新兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-09 11:47
文章分类
文章存档

2011年(1)

2010年(3)

我的朋友
最近访客

分类:

2010-05-17 00:44:20

#include"reg52.h"
code unsigned char code_tab[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f};    //数值码表

#define uchar unsigned char
#define uint unsigned int
unsigned int dat=0;
float ft;

/***********************/
sbit SCK = P1^0; //LTC1402时钟脚

sbit CONV = P1^1; //LTC1402转换控制脚

sbit DOUT = P1^2; //LTC1402数据输入脚


void delay(uchar temp)     //延时

{
 uchar i,j;
  i=temp;
  for(;i>0;i--)
   for(j=200;j>0;j--);
}

void display_led( float num)    //数码管显示

{
 uint temp;
 uchar a,b,c,d;
 temp=num*100;
 a=temp/1000;
 b=(temp%1000)/100;
 c=(temp%100)/10;
 d=(temp%10);
 {
 P0=code_tab[a];
 P2|=0X0F;
 P2&=~(0X01);
 delay(5);

 P0=code_tab[b];
 P2|=0X0F;
 P2&=~(0X02);
 delay(5);

 P0=code_tab[c];
 P2|=0X0F;
 P2&=~(0X04);
 delay(5);

 P0=code_tab[d];
 P2|=0X0F;
 P2&=~(0X08);;
 delay(5);

 P0=code_tab[16];
 P2|=0X0F;
 P2&=~(0X02);
 delay(5);
 }
}


void nop(void)//等待子程序

{
}

void init_pio(void)//初始化IO口

{
 P0=0XFF;
 P1=0XFF;
 P2=0XFF;
 P3=0XFF;
}



/****************/
unsigned int ad_change(void)    //LTC1402转换子程序转换

{
  unsigned int temp=0;
  uchar i;
  SCK=0;
  CONV=1;
  nop();
  SCK=1;
  CONV=0;
  SCK=0;

  SCK=1;
  SCK=0;
  for(i=0;i<12;i++)
  {
      SCK=1;
    SCK=0;
    temp=(temp<<1)|DOUT;
  }
  SCK=1;
  SCK=0;
  SCK=1;
  SCK=0;
  return temp;
}


/**********************/
void main(void)        //主程序

{
 unsigned int result ;
 float ft;
 uchar i;
 init_pio();
 for(;;)
 {
  result = ad_change();
  nop();
  ft=(4.9215*result*4.096)/4095;//已经误差调整过,理论公式应为ft=(4.9215*result*4.096)/4095

  for(i=0;i<100;i++)
  {
       display_led(ft);
  }
 }
}


阅读(1082) | 评论(0) | 转发(0) |
0

上一篇:鸣谢

下一篇:TEST2

给主人留下些什么吧!~~