📄 chuankouad.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 + -