?? 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; // 開啟記時器設(shè)置
TL0=(65535-5000)%256;
EA=1;
ET0=1;
TMOD=0x01;
TR0=1;
while(1)
{
INIT_ADC(); //啟動ad轉(zhuǎn)換
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; //數(shù)據(jù)處理
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;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -