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

利用ds18b20检测当前温度isd1420语音芯片的温度报警程序

点击数:7863 次   录入时间:03-04 11:51:34   整理:http://www.55dianzi.com   51单片机

利用ds18b20检测当前温度isd1420语音芯片的温度报警程序
功能:利用ds18b20检测当前温度,通过和设定参数的比较,给ISD1420发出
      报警脉冲,通过功率放大器LM386 驱动喇叭报警。 
注:  isd1420的报警采用延时方式(isd1420的延时报警取决于录音时间的长短) 

#include<reg51.h>
#include<intrins.h>
#include <absaCC.h>

#define uchar unsigned char
#define uint   unsigned int
#define PLAYE_ADDR XBYTE[0XBFFF] //语音报警地址

#define BUSY  0x80              //LCD忙检测标志
#define DATAPORT P0             

sbit P1_0=P1^4;                 //时钟调整
sbit P1_1=P1^5;                 //时钟加
sbit P1_2=P1^6;                 //时钟减

sbit RED_ALARM=P1^0;            //红色指示灯
sbit WRITE_ALARM=P1^1;          //白色指示灯
sbit GREEN_ALARM=P1^2;          //绿色指示灯

sbit DQ = P3^7;                 //定义ds18b20通信端口 
sbit LCM_RS=P2^0;                //数据/命令端
sbit LCM_RW=P2^1;                //读/写选择端
sbit LCM_EN=P2^2;               //LCD使能信号
sbit RECLED_EOC=P3^5;           //ISD1420放音结束查询标志

                        
unsigned char seconde=0;                 //定义并初始化时钟变量
unsigned char minite=0;
unsigned char hour=12;
unsigned char mstcnt=0;
unsigned char temp1,temp2,teMP3;
unsigned char runtime;                   //系统运行总时间
unsigned char t;
unsigned int temp;

uchar code str0[]={"---  :  :  ---of"};
uchar code str1[]={"temp:  . C------"};

void delay_LCM(uint);                                                         //LCD延时子程序
void initLCM( void);                                                           //LCD初始化子程序
void lcd_wait(void);                                                          //LCD检测忙子程序
void WriteCommandLCM(uchar WCLCM,uchar BusyC);                              //写指令到ICM子函数
void WritEDAtaLCM(uchar WDLCM);                                             //写数据到LCM子函数
void DisplayOneChar(uchar X,uchar Y,uchar DData);                           //显示指定坐标的一个字符子函数
void DisplayListChar(uchar X,uchar Y,uchar code *DData);                    //显示指定坐标的一串字符子函数

void init_timer0(void);                                                       //定时器初始化
void displayfun1(void);

void delay_18B20(unsigned int i);
void Init_DS18B20(void) ;
uchar ReadOneChar(void);
void WriteOneChar(unsigned char dat);
void ReadTemperature(void);
void playalarm(void);

/*********延时K*1ms,12.000mHz**********/

void delay_LCM(uint k)
{
    uint i,j;
    for(i=0;i<k;i++)
    {
        for(j=0;j<60;j++)
            {;}
    }
}   
/**********写指令到ICM子函数************/

void WriteCommandLCM(uchar WCLCM,uchar BusyC)
{
    if(BusyC)lcd_wait();
    DATAPORT=WCLCM;
    LCM_RS=0;                   // 选中指令寄存器
    LCM_RW=0;                   // 写模式    
    LCM_EN=1;    
    _nop_();   
    _nop_();
    _nop_(); 
    LCM_EN=0;  
}

/**********写数据到LCM子函数************/

void WriteDataLCM(uchar WDLCM)

    lcd_wait( );            //检测忙信号    
    DATAPORT=WDLCM;
    LCM_RS=1;               // 选中数据寄存器

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


本文关键字:程序  语音  检测  51单片机单片机-工控设备 - 51单片机