您当前的位置:五五电子网电子知识单片机-工控设备51单片机isd1420语音芯片的温度报警器程序 正文
isd1420语音芯片的温度报警器程序

isd1420语音芯片的温度报警器程序

点击数:7785 次   录入时间:03-04 11:35:59   整理:http://www.55dianzi.com   51单片机
    WriteOneChar(0xBE);     //读取温度寄存器等(共可读9个寄存器) 前两个就是温度

    delay_18B20(100);

    a=ReadOneChar();        //读取温度值低8位
    b=ReadOneChar();           //读取温度值高8位
    temp1=b<<4;            
    temp1+=(a&0xf0)>>4;     //小数点前的数据
    temp2=a&0x0f;           //小数点后的数据
    temp=temp1;
    
//    temp=((b*256+a)>>4);//当前采集温度值除16得实际温度值
    
    

//    temp1 = t/100%10;       //温度值十位
//  temp2 = t/10%10;        //温度值个位  
//    temp3 = t%10;           //温度值十分位
}

/***************液晶显示子函数1正常显示*****************/

void displayfun1(void)
{    
    WriteCommandLCM(0x0c,1);                        //显示屏打开,光标不显示,不闪烁,检测忙信号    
    DisplayListChar(0,0,str0);    
    DisplayListChar(0,1,str1);    
    
    DisplayOneChar(3,0,hour/10+0x30);
    DisplayOneChar(4,0,hour%10+0x30);

    DisplayOneChar(6,0,minite/10+0x30);
    DisplayOneChar(7,0,minite%10+0x30);
    
    DisplayOneChar(9,0, seconde/10+0x30);
    DisplayOneChar(10,0,seconde%10+0x30);
 
    DisplayOneChar(5,1,temp1/10+0x30);               
    DisplayOneChar(6,1,temp1%10+0x30);
    DisplayOneChar(8,1,temp2/10+0x30);
}

/***************定时器t0初始化*******************/


void init_timer0(void)
{
     TMOD=0x01;              //time0为定时器,方式1
     TH0=0x3c;               //预置计数初值
     TL0=0xb0;
     EA=1;                                   
     ET0=1;                                                      
     TR0=1;                  
}

/***********定时器t0中断子函数**************/

void timer0(void) interrupt 1 using 0         //定时器0方式1,50ms中断一次
{
     TH0=0x3c;
     TL0=0xb0;
     mstcnt++;
     if(mstcnt>=20 )  {seconde++; mstcnt=0; }
     if(seconde>=60)  {minite++;  seconde=0;}
     if(minite>=60 )  {hour++;    minite=0; }
     if(hour>=24   )  {hour=0;}
}


/*****************系统报警子函数***************************/

void playalarm(void)                    //语音提示温度上升过快
{
    
    if(temp>20&&temp<25)              
    {
        RED_ALARM=0;
        PLAYE_ADDR=0x11;
        _nop_();
        PLAYE_ADDR=0x10;
        delay_LCM(2000);                 //等待放音结束
        RED_ALARM=1;
    }
    
     if(temp>25&&temp<30)                //语音提示温度上升过慢
    {
        GREEN_ALARM=0;
        PLAYE_ADDR=0x21;
         _nop_();
        PLAYE_ADDR=0x20;
        delay_LCM(2000);
        GREEN_ALARM=1;
    }
    
    if(temp>30)                         //语音提示恒温控制
    {
        WRITE_ALARM=0;
        PLAYE_ADDR=0x31;
        _nop_();
        PLAYE_ADDR=0x30;
        delay_LCM(1000);
        WRITE_ALARM=1;
    }
}

/***************the main funtion****************/
    
void main(void)

    P1=0xff;                                   //初始化p1口,全设为1   
    P3=0xff;    
    delay_LCM(500);     
    initLCM( );                                //LCD初始化

上一页  [1] [2] [3] [4]  下一页


本文关键字:程序  语音  报警器  51单片机单片机-工控设备 - 51单片机