📄 adc003.c
字号:
#include<absacc.h>
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit P24=P2^4;
sbit EOC=P2^6;
sbit GW=P2^0;
sbit SW=P2^1;
sbit BW=P2^2;
sbit QW=P2^3;
sbit DOT=P1^7;
unsigned char getdata;
unsigned long temp;
uchar led_tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void display(int m )
{
P1=led_tab[m];
}
/*uchar data led[4];
uint data tvdata;
uchar code tv[]={0xfe,0xfd,0xfb,0xf7};
uchar code a[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
void delay(void) //延时程序
{
uint i;
for(i=0;i<10;i++);
}
void ledxianshi(void) //显示模块
{
uchar k,i;
led[0]=tvdata%10;
led[1]=tvdata/10%10;
led[2]=tvdata/100%10;
led[3]=tvdata/1000;
for(k=0;k<4;k++)
{
P2=tv[k];
i=led[k];
P1=a[i];
delay();
}
}
*/
void ST(bit i)
{
P24=i;
WR=i;
}
void OE(bit i)
{
P24=i;
RD=i;
}
void delay(unsigned int k)
{
while(k--);
}
void main()
{
unsigned int num;
/*
ST(1);
OE(1);
TMOD=0x12;
TH0=0x216;
TL0=0x216;
TH1=(65536-4000)/256;
TL1=(65536-4000)%256;
TR1=1;
TR0=1;
ET0=1;
ET1=1;
EA=1;
ST(0);
ST(1);
//getdata=P0;
if(EOC==0)
{
OE(0);
getdata=P0;
OE(1);
temp=(getdata*2350);
temp=temp/128;
if(temp<2732)
{
temp=2732-temp;
}
else
{
temp=temp-2732;
}
}
*/
EA = 1; //开总中断
TMOD = 0x02; //设定定时器T0工作方式
TH0=216; //利用T0中断产生CLK信号
TL0=216;
TR0=1; //启动定时器T0
ET0=1;
ST(1);
OE(1);
ST(1);
delay(10);
ST(0); //启动AD转换
delay(10);
ST(1);
while(EOC==0)
;
OE(0);
getdata=P0;
OE(1);
delay(100);
temp=getdata*195;
num=(unsigned int)temp/100;
while(1)
{
GW=0;
display(num%10);
delay(100);
GW=1;
SW=0;
display(num/10%10);
DOT=1;
delay(100);
SW=1;
BW=0;
display(num/100);
delay(100);
BW=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -