標(biāo)題: 智能水杯部分功能代碼 [打印本頁(yè)]

作者: uno    時(shí)間: 2018-5-22 10:37
標(biāo)題: 智能水杯部分功能代碼
/*************************************
  系統(tǒng)作用情況
  該系統(tǒng)可示重,示溫,提醒功能,存儲(chǔ)
    提醒模塊,系統(tǒng)每隔半小時(shí)提醒一次用戶喝水,提醒時(shí)長(zhǎng)12秒,提醒方式為led燈快速閃爍。
*************************************/
#include <reg52.h>
#include "LCD1602.H"
#include "DS18B20.H"
#include "RP_C18.3_ST.H"

sbit LED = P1^0;
uint vibrationInterval = 600;     //間隔半小時(shí)提醒,10x60x60;
uchar vibrationNum = 240;            //提醒長(zhǎng)度5s     20x12
uchar powerOnHour = 0;          //記錄上電的小時(shí)數(shù)
uchar enoughFlag;

uint vibrationTime = 0;         //提醒時(shí)間計(jì)數(shù)
uchar hourVbrationFlag = 0;

void Delay1Ms(uint t){                        //大致延時(shí)1mS
        uint x, y;
        for(x = t; x > 0; x--)
                for( y = 125; y > 0; y--);
}

void main(){
        uchar a;
        uchar temp;
       
        LED = 0;
        TMOD = 0X01;
        TH0 = (65536 - 46080) / 256;
        TL0 = (65536 - 46080) % 256;
        EA = 1;
        ET0 = 1;
        TR0 = 1;
       
        cmg88();
        LCD_Init();
        LCD_Clear();
        while(1){
                if(vibrationTime / 5 % 2 == 0){
                        tmpchange();
                        for(a = 10; a > 0; a--){
                                displayTem();
                                displayVal();
                        }
                }
                if(hourVbrationFlag){
                        if(vibrationTime / 3 % 2 == 0){
                                LED = 0;
                        }else{
                                LED = 1;
                        }
                        if(vibrationTime > (vibrationNum + vibrationInterval)){
                                LED = 0;
                                vibrationTime = 0;
                                hourVbrationFlag = 0;
                        }
                }
        }
}

void Timer0() interrupt 1{
        TH0 = (65536 - 46080) / 256;
        TL0 = (65536 - 46080) % 256;
        vibrationTime++;
        if(vibrationTime >= vibrationInterval){         //每半小時(shí)上電計(jì)數(shù)加1
                powerOnHour++;
                hourVbrationFlag = 1;
        }
}


作者: cico    時(shí)間: 2019-1-7 17:18
有全部資料嗎?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1