chuankouad.c
来自「用串口AD1649实现模数转化」· C语言 代码 · 共 65 行
C
65 行
#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 + =
减小字号Ctrl + -
显示快捷键?