read_eepom();
if(a_a == 0xff) //新的单片机初始单片机问EEPOM {
t_high = 300; t_low = 100; a_a = 1;
write_eepom(); }
delay_1ms(650);
temperature = read_temp(); //先读出温度的值 dis_smg[0] = smg_du[temperature % 10]; //取温度的小数显示
dis_smg[1] = smg_du[temperature / 10 % 10] & 0x7f; //取温度的个位显示 dis_smg[2] = smg_du[temperature / 100 % 10] ; //取温度的十位显示 while(1) {
display(); //显示函数 key(); //按键程序 if(key_can < 10) {
key_with(); //设置报警温度 }
temperature = read_temp(); //先读出温度的值
if(flag_300ms == 1) //300ms 处理一次温度程序 {
clock_h_l(); //报警函数 flag_300ms = 0; if(menu_1 == 0) {
smg_i = 3;
dis_smg[0] = smg_du[temperature % 10]; //取温度的小数显示 dis_smg[1] = smg_du[temperature / 10 % 10] & 0x7f; //取温度的个位显示
dis_smg[2] = smg_du[temperature / 100 % 10] ; //取温度的十位显示
}
if(zd_break_en == 1) //自动退出设置界面程序 {
zd_break_value ++; //每300ms加一次
if(zd_break_value > 30) //15秒后自动退出设置界面 {
menu_1 = 0;
zd_break_en = 0; zd_break_value = 0; }
.专业.专注.
} } } }
/*************定时器0中断服务程序***************/ void time0_int() interrupt 1 {
static uchar value; TH0 = 0x3c;
TL0 = 0xb0; // 50ms value ++;
if(value % 6 == 0) {
flag_300ms = 1; //300ms value = 0; }
if(flag_lj_en == 1) //按下按键使能 {
key_time ++;
if(key_time >= 10) //500ms {
key_time = 0;
key_500ms = 1; //500ms flag_value ++; if(flag_value > 3) {
flag_value = 10;
flag_lj_3_en = 1; //3次后1.5秒连加大些 } } } }
.专业.专注.
相关推荐: