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

📄 chuankouad.c

📁 用串口AD1649实现模数转化
💻 C
字号:
#include<reg51.h>
#include<stdio.h>
#include<intrins.h> 
#define uchar unsigned char
#define uint  unsigned int
sbit  clk = P3^3;        //ad_clk
sbit  dout = P3^4;        //ad_dout
sbit  cs = P3^5;        //ad_cs
uint adc(void);            //ad convert
void delay(uchar us);        //delay
uchar code table[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x1f,0x70,0x7f,0x73};//shumaxianshi
uchar huanchong[]={0x00,0x01,0x02,0x03};
uchar code xuan[4]={0x01,0x02,0x04,0x08};	
uint result=0;   //the result of ad convert
void dongxian()		 //动显
 {   
  unsigned char b,i,j;
  for(i=0;i<4;i++)
            {  P1=xuan[i];
               b=huanchong[i];
	           P2=table[b]; 
			   
	           for(j=255;j>0;j--);
            }         
  }           
void main()
{  unsigned char a,b;
   float u1=0;
   P1=0x7f;
   while(1)
  {
   u1=adc();
   result=(5000*(u1))/(1024);
   huanchong[0]=result/1000;									   
   a=result- huanchong[0]*1000;
   huanchong[1]=a/100;
   b=a-huanchong[1]*100;
   huanchong[2]=b/10;
   huanchong[3]=b- huanchong[2]*10;   
   dongxian();
   }      
}
uint adc(void)
{ 
  uint  u=0;
  uchar i;
  cs=1;
  _nop_();
  cs=0;
  for(i=0;i<10;i++)        //read data
   { 
     clk=0;
     u=(u<<1)|dout;
     clk=1;
     _nop_();      
   }
  delay(2);            //delay 25us
  cs=1;
  return(u);            //return ad data
}

void delay(uchar us)        //delay time
{while(us--);
}

⌨️ 快捷键说明

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