📄
字号:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define uchar unsigned char
#define uint unsigned int
uchar a,b,c,d;
unsigned char getdata;
unsigned int temp;
unsigned int j;
unsigned char m;
uchar code table0[]=" The V Is:";
uchar code table2[]="0123456789MV .";
sbit rs=P2^5;
sbit rw=P2^6;
sbit e =P2^7;
sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit CLK=P3^3;
sbit ALE=P3^7;
sbit led1=P2^2;
sbit led2=P2^3;
sbit led3=P2^4;
sbit s1=P2^0;
sbit s2=P2^1;
#define _v0_2 {s1=0;s2=1;}
#define _v2 {s1=1;s2=0;}
#define _v20 {s1=0;s2=0;}
void TimeInitial();
void TimeInitial()
{ TMOD=0x10;
TH1=(65536-200)/256;
TL1=(65536-200)%256;
EA=1;
ET1=1;
TR1=1;
}
void delay(unsigned char x)
{
unsigned char a,b;
for(a=x;a!=0;a--)
for(b=20;b!=0;b--);
}
void writecomm(uchar comm)
{
P0=comm;
rs=0;
rw=0;
e=0;
delay(5);
e=1;
delay(5);
e=0;
}
void writedat(uchar dat)
{
P0=dat;
rs=1;
rw=0;
e=0;
delay(5);
e=1;
delay(5);
e=0;
}
void writesmh(uchar add,uchar date)
{
uchar count;
count=date;
writecomm(0xc0+add);
delay(5);
writedat(table2[count]);
delay(5);
}
void init()
{
uchar i;
delay(50);
writecomm(0x38);
delay(50);
writecomm(0x0c);
delay(50);
writecomm(0x06);
delay(50);
writecomm(0x01);
delay(50);
writecomm(0x80);
delay(5);
for(i=0;i<10;i++ )
{
writedat(table0[i]);
delay(5);
}
writesmh(4,a);
delay(5);
writesmh(5,b);
delay(5);
writesmh(7,c);
delay(5);
writesmh(8,d);
delay(5);
}
void main()
{ init();
_v20;
m=1;
TimeInitial();
while(1)
{
ST=1;
ST=0;
while(EOC==0);
OE=1;
getdata=P1;
OE=0;
if ((s1==0) && (s2==0) && (temp<200))
{
_v2;
m=2;
}
else if ((s1==1)&&(s2==0) && (getdata<26))
{
_v0_2;
m=3;
}
else if((s1==0)&&(s2==1) && (getdata>254))
{
_v2;
m=2;
}
else if ((s1==1)&&(s2==0) && (getdata>254))
{
_v20;
m=1;
}
temp=(getdata*1.0/255)*2000;
a=temp/1000;
b=temp/100%10;
c=temp/10%10;
d=temp%10;
if(m==1)
{
writesmh(4,a);
delay(5);
writesmh(5,b);
delay(5);
writesmh(6,13);
delay(5);
writesmh(7,c);
delay(5);
writesmh(8,d);
delay(5);
writesmh(9,12);
delay(5);
writesmh(10,11);
delay(5);
led2=1;
led1=0;
led3=1;
}
if (m==2)
{
writesmh(4,a);
delay(5);
writesmh(5,b);
delay(5);
writesmh(6,c);
delay(5);
writesmh(7,d);
delay(5);
writesmh(8,12);
delay(5);
writesmh(9,10);
delay(5);
writesmh(10,11);
delay(5);
led2=0;
led1=1;
led3=1;
}
if (m==3)
{
writesmh(4,a);
delay(5);
writesmh(5,b);
delay(5);
writesmh(6,c);
delay(5);
writesmh(7,13);
delay(5);
writesmh(8,d);
delay(5);
writesmh(9,10);
delay(5);
writesmh(10,11);
delay(5);
led2=1;
led1=1;
led3=0;
}
for(j=0;j<40;j++)
delay(250);
}
}
void t1(void) interrupt 3 using 0
{
TH1=(65536-200)/256;
TL1=(65536-200)%256;
CLK=~CLK;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -