📄 直流电压表.c
字号:
#include "reg51.h"
sbit START=P3^0;
sbit OE=P3^1;
sbit P3_2=P3^2;
unsigned char Rec_data=0;
code unsigned char display[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char count[4]={1,2,3,4};
unsigned char cnt;
void delay(unsigned char j)
{ unsigned char i;
while(j--)
{
for(i=0;i<125;i++)
{;}
}
}
void led_display()
{
unsigned char i,k;
k=0x10;
for(i=0;i<=3;i++)
{
if(i==0)
{
P2=k;
P1=(display[count[i]])|0x80;
k<<=1;
}
else
{
P2=k;
P1=(display[count[i]]);
k<<=1;
}
delay(2);
}
}
void Process(void)
{
float temp;
unsigned int Data_temp;
temp=(Rec_data/255.0)*5.0;
temp*=1000;
Data_temp=(int)temp;
count[0]=Data_temp/1000;
count[1]=Data_temp%1000/100;
count[2]=Data_temp%1000%100/10;
count[3]=Data_temp%10;
}
void Rec(void) interrupt 0
{ unsigned char i;
OE=1;
i++;
START=0;
Rec_data=P0;
i++;
OE=0;
//START=1;
}
void timer0(void)interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
START=1;
cnt++;
}
main()
{
P3=0;
P2=0;
P3_2=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EX0=1;
IT0=1;
EA=1;
PX0=1;
TR0=1;
START=1;
while(1)
{
Process();
led_display();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -