📄 main.c
字号:
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={
0x5f,0x41,0x9d,0xd5,
0xc3,0xd6,0xde,0x45,
0xdf,0xd7,0xcf,0xda,
0x1e,0xd9,0x9e,0x8e};
sbit dula=P2^6;
sbit wela=P2^7;
sbit test=P2^5;
unsigned long f;
uint t_0,n=0;
void delay(uint z);
void init();
void print(uint number);
void print_1(uint num_p,uint wei);
void main()
{
init();
while(1)
{
print(f);
}
}
void init()
{
wela=0;
dula=0;
EA=0;
T1=1;
TMOD=0x51;
TH0=15536/256;
TL0=15536%256;
TH1=0;
TL1=0;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
EA=1;
test=0;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}void print(uint number)//阻值分解为三个数,并调用数码管显示函数,number为AD转换读取数。
{
uint num_1=number;
print_1(num_1%10,0x06);//第三位
print_1(num_1%100/10,0x05);//第二位
print_1(num_1%1000/100,0x03);//第一位
}
void print_1(uint num_p,uint wei)//数码管显示函数,num_p为显示数,wei为选择数码管
{
wela=1;
P0=wei;
wela=0;
dula=1;
P0=table[num_p];
dula=0;
delay(2);
}
void time0() interrupt 1
{
EA=0;
TH0=15536/256;
TL0=15536%256;
t_0++;
test=~test;
if(t_0==20)
{
TR0=0;
TR1=0;
t_0=0;
f=(TH1*256+TL1+65535*n);
if(f<1000)
{
P1=0xfe;
}else
if((f>999)&&(f<999999))
{
f=f/1000;
P1=0xfd;
}else
{
if(f>999999)
f=f/1000000;
P1=0xfb;
}
n=0;
TH1=0;
TL1=0;
TR0=1;
TR1=1;
}
EA=1;
}
void time1() interrupt 3
{
n++;
TH1=0;
TL1=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -