找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1262|回复: 1
打印 上一主题 下一主题
收起左侧

我写了一部分调用函数,关于显示部分和控温报警主函数怎么弄

[复制链接]
跳转到指定楼层
楼主
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;//定义全局变量,用来保存延时时间循环次数
void delay0_5s1()
{  
   for(t0=0;t0<10;t0++)                    //采用全局变量t0作为循环控制变量
   {            
   TH1=(65536-50000)/256;                //设置定时器初值
   TL1=(65536-50000)%256;  
TR1=1;                                       //启动T1
   while(!TF1);                             //查询计数是否溢出,即50ms定时时间到,TF1=1
   TF1=0;                                                   //50ms定时时间到,将定时器溢出标志位TF1清零
   }
}
//函数名:delay_t1
//函数功能:实现0.5~128s延时
//形式参数:unsigned char t;
//          延时时间为0.5s×t
//返回值:无
void delay_t1(unsigned char t)
{
    for(t1=0;t1<t;t1++)                    //采用全局变量t1作为循环控制变量
    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按下,数字加1
                                case 0xfd:key3_jiayi();break;//P2.2按下,数字减一
                                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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:277550 发表于 2018-12-13 15:06 | 只看该作者
不停读温度值,看是否超出范围,,,,,,如果超出就报警。。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表