您当前的位置:五五电子网电子知识单片机-工控设备51单片机18B20温度LCD显示程序 正文
18B20温度LCD显示程序

18B20温度LCD显示程序

点击数:7580 次   录入时间:03-04 11:59:32   整理:http://www.55dianzi.com   51单片机
DisplayOneChar(10,0,sec%10+0x30);
//=================================
DisplayOneChar(4,1,T/10+0x30);
DisplayOneChar(5,1,T%10+0x30);
//=================================
DisplayOneChar(11,1,temp1/10+0x30);
DisplayOneChar(12,1,temp1%10+0x30);
DisplayOneChar(14,1,temp2+0x30);
//===================================
WriteCommandLCM(0x0f,1);//显示屏打开,光标显示、闪烁,检测忙信号
DisplayOneChar(6,0,min/10+0x30);
DisplayOneChar(7,0,min%10+0x30);
}
/***************************************/
void fun3(void)            //液晶显示子函数3
{
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,min/10+0x30);
DisplayOneChar(7,0,min%10+0x30);
//=================================
DisplayOneChar(9,0,sec/10+0x30);
DisplayOneChar(10,0,sec%10+0x30);
//=================================
DisplayOneChar(11,1,temp1/10+0x30);
DisplayOneChar(12,1,temp1%10+0x30);
DisplayOneChar(14,1,temp2+0x30);
//=================================
WriteCommandLCM(0x0f,1);//显示屏打开,光标显示、闪烁,检测忙信号
DisplayOneChar(4,1,T/10+0x30);
DisplayOneChar(5,1,T%10+0x30);
}
/************************************/
void key(void)                        //扫描键盘
{uchar xx;// 局部变量
P2=0xff;
    if(P2!=0xff)
    {delay(10);
        if(P2!=0xff)
        {xx=P2;
            switch(xx)// 根据按键状态,调用不同的子函数
            {
            case 0xfe:set_adj();break; //"MS"键按下,调用set_adj()子函数
            case 0xfd:inc_key();break; //"+"键按下,调用inc_key()子函数
            case 0xfb:dec_key();break; //"-"键按下,调用dec_key()子函数
            case 0xf7:ON_OFF=!ON_OFF;break;// "ON/OFF"键按下,ON_OFF标志取反
            default:break;
            }
        }
    }
}
/************************************/
void set_adj(void)                    //设定工作模式子函数
{
    if(cnt==5)
    {set++;
    if(set>=4)set=0;
    }
}
/***************************************/
void inc_key(void)                    //按键加法子函数
{
    if(cnt==5)
    {
        switch(set)
        {
        case 0:if(P2==0xf7)ON_OFF=!ON_OFF;break;
        case 1:hour++;if(hour>=23)hour=23;break;
        case 2:min++;if(min>=59)min=59;break;
        case 3:T++;if(T>=99)T=99;    break;
        default:break;
        }
    }
}
/***************************************/
void dec_key(void)                        //按键减法子函数
{
    if(cnt==5)
    {
        switch(set)
        {
        case 0:if(P2==0xf7)ON_OFF=!ON_OFF;break;
        case 1:hour--;if(hour<=0)hour=0;break;
        case 2:min--;if(min<=0)min=0;break;
        case 3:T--;if(T<=1)T=1;break;
        default:break;
        }
    }
}
/***************************************/
/*****************************************/
void delay15us(void)                        //延时15微秒子函数
{
uchar i;
for(i=0;i<4;i++);
}
//*************************************************
void delay60us(void)                        //延时60微秒子函数
{
uchar i;
for(i=0;i<15;i++);
}
//***************************************************
void write0TS(void)                        //写DS18B20数据位0
{
TSOR=1;
TSOR=0;
delay15us();delay15us();delay15us();delay15us();
TSOR=1;
_nop_();
_nop_();
}
//********************************************************
void write1TS(void)                    //写DS18B20数据位1
{
TSOR=1;
TSOR=0;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
TSOR=1;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
delay15us();delay15us();delay15us();
}
//******************************
bit readTS(void)                        //读DS18B20数据位
{
bit b;
TSOR=1;
TSOR=0;
_nop_();_nop_();_nop_();_nop_();
TSOR=1;
_nop_();_nop_();_nop_();_nop_();_nop_();
b=TSOR;
delay15us();delay15us();delay15us();
_nop_();_nop_();
return b;
}
//*************************************
void resetTS(void)                        //复位DS18B20
{uchar i;
TSOR=1;
TSOR=0;
for(i=0;i<8;i++)delay60us();
TSOR=1;
while(TSOR);
for(i=0;i<8;i++)delay60us();
}
//***************************************
void writeBTS(uchar byte)                //写1字节

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


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