#include <reg52.h>
#include <function.h> //详见第六章第8讲
#include <timer.h> //详见第八章第11讲
#include <uart.h> //详见第十章第4讲
#include <ds18b20.h> //详见第十三章第5讲
u8 flag1s = 0;
void main()
{
u32 x=1;
u8 str[13];
u16 temp;
EA = 1;
LED_Init();
Start18B20();
TIM0_Init(1000,33);
ConfigUART(9600);
while (1)
{
if (flag1s)
{
flag1s = 0;
if( TEMP_CONV(&temp,str)==1
{
printf_str("第");
printf_num(x);
x++;
printf_str("秒:");
printf_str(str+temp_i);
printf_str("度");
printf_rn();
temp_i=0;
LedBuff[0]=LedChar[str[4]-'0'];
LedBuff[1]=0x7F;
LedBuff[2]=LedChar[str[2]-'0'];
if(str[0]=='-')
{
if(str[1]=='0')
{
LedBuff[3]=0xBF;
LedBuff[4]=0xFF;
}
else
{
LedBuff[3]=LedChar[str[1]-'0'];
LedBuff[4]=0xBF;
}
}
else
{
if(str[1]=='0')LedBuff[3]=0xFF;
else LedBuff[3]=LedChar[str[1]-'0'];
if(str[0]=='0')LedBuff[4]=0xFF;
else LedBuff[4]=LedChar[str[0]-'0'];
}
}
Start18B20();
}
}
}
void TIM0_IRQHandler() interrupt 1
{
static u16 tmr1s = 0;
TH0 = T0RH;
TL0 = T0RL;
tmr1s++;
SEG_Scan();
if (tmr1s >= 1000)
{
tmr1s = 0;
flag1s= 1;
}
}
void InterruptUART() interrupt 4
{
if (RI)
{
RI = 0;
}
}