开中断
TMOD0x01Timer0工作方式1
RCAP2H0x3c
RCAP2L0xb0Timer2延时50ms
while1
switchKey_Sca
按键扫描
caseup_array
编辑版word
f
Key_Idle
检测按键松开
break
casedow
_array
Key_Idle
检测按键松开
break
caseclear_array
Key_Idle
检测按键松开
break
casefu
ctio
_array
Key_Fu
ctio
clock_timealarm_time
case
ull
Clock_Freshclock_time时间刷新
Lcd_Clockclock_time时间显示
Se
sor_Freshtemperature温度更新
编辑版word
fLcd_Temperturetemperature温度显示
Cale
dar_Co
vert0clock_timeWeek_Co
vert0clock_time
整点报时ifclock_time0x59clock_time10x59
bell0TR21启动Timer2
闹钟报警ifalarm_timeHexNum_Co
vertclock_time1分钟相吻ifalarm_time1HexNum_Co
vertclock_time2小时相吻合
bell0TR21启动Timer2
break
编辑版word
f2温度控制程序if
def_SENSORdefi
e_SENSORdefi
eucharu
sig
edchardefi
eui
tu
sig
edi
tDS18B20管脚配置sbitdqP21DS18B20软件延时专用voidSe
sor_Delayucharcou
t延时函数
whilecou
t从DS18B20读一个字节ucharSe
sor_Read_Bytevoid
uchari0uchartemp0fori8i0i
编辑版word
fdq0给脉冲信号temp1dq1给脉冲信号ifdqtemp0x80Se
sor_Delay20
retur
temp向DS18B20写一个字节voidSe
sor_Write_Byteuchartempuchari0fori8i0i
dq0dqtemp0x01Se
sor_Delay20dq1
编辑版word
ftemp1
DS18B20初始化
ucharSe
sor_I
itialvoid
uchari0
dq1
DQ复位
Se
sor_Delay1
稍做延时
dq0
单片机将DQ拉低
Se
sor_Delay100
精确延时,大于480us
dq1
拉高总线
Se
sor_Delay6
稍做延时后
idq
若x0则初始化成功,
若x1则初始化失败
Se
sor_Delay130
retur
i
读取并显示温度
编辑版word
f
voidSe
sor_Freshuchartemperature
Se
sor_I
itial
Se
sor_Write_Byte0xCC
跳过读序r