找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2180|回復: 1
打印 上一主題 下一主題
收起左側

我寫了一部分調用函數(shù),關于顯示部分和控溫報警主函數(shù)怎么弄

[復制鏈接]
跳轉到指定樓層
樓主
ID:445575 發(fā)表于 2018-12-13 13:45 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
2黑幣
本帖最后由 ark8976 于 2018-12-13 13:48 編輯



#include <reg51.h>           //包含頭文件reg51.h,定義了51單片機的專用寄存器
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P2^0;/*上翻頁*/
sbit key2=P2^1;/*功能選擇*/
sbit key3=P2^2;/*下翻頁*/
sbit led=P2^7;
sbit jdq=P2^6;
sbit DQ=P2^4;
void key1_jianyi(void);
void key2_pueren(void);
void key3_jiayi(void);
void key_shaomio(void);
void int_18b20(void);//初始化DS18B20
void read_one_char(void);
void write_one_char(uchar);
void read_temp(void);
uchar temp_mea;
uchar set_flag;
usigned char t0,t1;//定義全局變量,用來保存延時時間循環(huán)次數(shù)
void delay0_5s1()
{  
   for(t0=0;t0<10;t0++)                    //采用全局變量t0作為循環(huán)控制變量
   {            
   TH1=(65536-50000)/256;                //設置定時器初值
   TL1=(65536-50000)%256;  
TR1=1;                                       //啟動T1
   while(!TF1);                             //查詢計數(shù)是否溢出,即50ms定時時間到,TF1=1
   TF1=0;                                                   //50ms定時時間到,將定時器溢出標志位TF1清零
   }
}
//函數(shù)名:delay_t1
//函數(shù)功能:實現(xiàn)0.5~128s延時
//形式參數(shù):unsigned char t;
//          延時時間為0.5s×t
//返回值:無
void delay_t1(unsigned char t)
{
    for(t1=0;t1<t;t1++)                    //采用全局變量t1作為循環(huán)控制變量
    delay0_5s1();
}
void main()
{
        uchar code display1[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
        uchar code bitcode[]={0x7f,0xbf,0xdf,0xef};
        
        


}
void int_18b20(void)  //初始化DS18B20
{
        uchar x=0;
        DQ=1;       //復位
        delay0_5s1();
        DQ=0;
        delay0_5s1();
        DQ=1;      
        delay0_5s1();
        x=DQ;
        delay0_5s1();
}
void read_one_char(void)
{
        uchar i=0;
        uchar dat=0;
        for(i=8;i>0;i--)
        {
                DQ=0;
                _nop_();
                dat>>=1;
                DQ=1;
                delay0_5s1();
                if(DQ)dat|=0x80;
        }
        return(dat);
}
void write_one_char(uchar dat)
{
        uchar i=0;
        for(i=8;i>0;i--);
        {
                DQ=0;
                _nop_();
                DQ=dat&0x01;
                delay0_5s1();
                DQ=1;
                dat>>=1;
                delay0_5s1();
        }
}
void read_temp(void)
{
        uchar a=0;
        uchar b=0;
        uchar t=0;
        int_18b20();
        write_one_char(0xcc);
        write_one_char(0x44);
        int_18b20();
        write_one_char(0xcc);
        write_one_char(0xbe);
        a=read_one_char();
        b=read_one_char();
        t=b;
        t<<=8;        
        t=t|a;
        temp_mea=t*(0.0625);
}
void key_shaomio(void)
{
        uchar temp;
        P2=0xff;
        if(P2!=0xff)
        {
                delay0_5s1();
                if(P2!=0xff)
                {
                        temp=P2;
                        switch(temp)
                        {
                                case 0xfe:key2_pueren();break;//P2.1按下,功能選擇
                                case 0xfd:key1_jianyi();break;//P2.0按下,數(shù)字加1
                                case 0xfd:key3_jiayi();break;//P2.2按下,數(shù)字減一
                                default:break;
                        },
                }
        }
}
key2_pueren(void)
{
        set_flag++;
        if(        set_flag>=3)        //set_flag=1設定上限值
        set_flag=0;                        //set_flag=2設定下限值
}
key1_jianyi(void)
{
        switch(set_flag)
        {
                case 1:temp_set1++;if(temp_set1>=99)temp_set1=99;break;        
                case 2:temp_set2++;if(temp_set2>=temp_set1)temp_set2=temp_set1;break;
                default:break;
        }
}
key3_jiayi(void)
{
        switch(set_flag)
        {
                case 1:temp_set1--;if(temp_set1<=temp_set2)temp_set1=temp_set2;break;        
                case 2:temp_set2--;if(temp_set2<=1)temp_set2=1;break;
                default:break;
        }
}

               
        
        

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:277550 發(fā)表于 2018-12-13 15:06 | 只看該作者
不停讀溫度值,看是否超出范圍,,,,,,如果超出就報警。。。。。。。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表