📄 text2.c
字号:
#include <reg52.h>
code unsigned char duma[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x63,0x39};
code unsigned char xuan[] = {0xfe,0xfd,0xfb,0xf7};
unsigned char dis[4];
unsigned int sdata;
sbit dat=P2^7;
void delay1(unsigned int t){
unsigned int i;
while (t--){
for (i=0;i<125;i++){}
}
}
void tmreset(void){
unsigned int i;
dat=0;
i=103;while(i>0)i--;
dat=1;
i=4;while (i>0)i--;
}
void tmpre(){
unsigned int i;
while(dat);
while(~dat);
i=4;while(i>0)i--;
}
bit tmrbit(){
unsigned int i;
bit d;
dat=0;i++;
dat=1;i++;i++;
d=dat;
i=8;while(i>0)i--;
return (d);
}
unsigned char tmrbyte(){
unsigned char i,j,d;
d=0;
for(i=1;i<=8;i++){
j=tmrbit();
d=(j<<7)|(d>>1);
}
return(d);
}
void tmwbyte(unsigned char d){
unsigned int i;
unsigned char j;
bit testb;
for (j=1;j<=8;j++){
testb=d&0x01;
d=d>>1;
if(testb){
dat=0;
i++;i++;
dat=1;
i=8;while(i>0)i--;
}
else{
dat=0;
i=8;while(i>0)i--;
dat=1;
i++;i++;
}
}
}
void tmstart(){
tmreset();
tmpre();
delay1(1);
tmwbyte(0xcc);
tmwbyte(0x44);
}
unsigned int tmrtemp () {
unsigned char a,b,y1;
unsigned int y3,y2;
tmreset();
tmpre();
delay1(1);
tmwbyte(0xcc);
tmwbyte(0xbe);
a=tmrbyte();
b=tmrbyte();
y1=a;
y2=b<<8;
y3=y1|y2;
y3=y3*10/16;
return(y3);
}
void delay(){
int i;
for(i=0;i<100;i++);//100shanshuo
}
void bcd(){
dis[0] = sdata/100;
dis[1] = (sdata%100)/10;
dis[2] = sdata%10;
dis[3] = 0;
}
void show(){
unsigned char s;
for(s=0;s<4;s++){
if(s==1)
P0 = duma[dis[s]]|0x80;
else
P0= duma[dis[s]];
P1= xuan[s];
delay();
}
}
void main(){
char i;
sdata=0;
while(1){
tmstart();//zai si xunhuan yilei
sdata=tmrtemp();
if(sdata>320)P3=0x07;
else if(sdata>310)P3=0x8b;
else if(sdata>300)P3=0x0e;
else P3=0x4d;
for(i=0;i<30;i++){
bcd();show();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -