📄 ad1674.c
字号:
#include<reg51.h>
#include<stdio.h>
#include<intrins.h>
sbit L1=P3^3;
sbit L2=P3^2;
sbit L3=P3^1;
sbit L4=P3^0;
//定义端口
sbit CE=P1^4;
sbit CS=P1^1; //定义端口
sbit RC=P1^3;
sbit A0=P1^2;
sbit STS=P1^0;
unsigned char Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF};
static unsigned char i,j,w,p,q,r,s,t,a,b,c,d,e,f,g,h;
unsigned int l,k,n,S;
float m;
Delay(ms)
{
while(ms--)
{unsigned char i;
for(i=0;i<20;i++)
{;}
}
}
void INIT_ADC()
{
CE=0;
CS=0;
RC=0;
A0=1;
CE=1;
while(STS==1);
CE=0;
}
unsigned int dec(unsigned int n)
{
unsigned int a[4];
unsigned int r;
a[0]=n/4096;
a[1]=n%4096/256;
a[2]=n%256/16;
a[3]=n%16;
r=a[0]*4096+a[1]*256+a[2]*16+a[3];
return r;
}
void main()
{
TH0=(65535-5000)/256; // 开启记时器设置
TL0=(65535-5000)%256;
EA=1;
ET0=1;
TMOD=0x01;
TR0=1;
while(1)
{
INIT_ADC(); //启动ad转换
A0=0;
CS=1;
CE=1;
RC=1;
CE=0;
CS=0;
_nop_();
CE=1;
//传值
k=P0;
CE=0;
_nop_(); //取高八位
CS=1;
CE=1;
A0=1;
CE=0;
CS=0;
_nop_();
CE=1;
//传值
l=P0;
CE=0; //取低四位
k=(k)<<4;
l=l>>4;
m=k+l;
m=dec(m);
S=m*5000;
S=m/4096;
a=S%10; //数据处理
b=S/10%10;
c=S/100%10;
d=S/1000;
}
}
void Timer0() interrupt 1 //记时器显示程序
{
TH0=(65535-5000)/256;
TL0=(65535-5000)%256;
L1=0;
P2=Tab[d+10];
Delay(1);
L1=1;
L2=0;
P2=Tab[c];
Delay(1);
L2=1;
L3=0;
P2=Tab[b];
Delay(1);
L3=1;
L4=0;
P2=Tab[a];
Delay(1);
L4=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -