找回密码
 立即注册

QQ登录

只需一步,快速开始

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

智能水杯部分功能代码

[复制链接]
跳转到指定楼层
楼主
ID:335483 发表于 2018-5-22 10:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*************************************
  系统作用情况
  该系统可示重,示温,提醒功能,存储
    提醒模块,系统每隔半小时提醒一次用户喝水,提醒时长12秒,提醒方式为led灯快速闪烁。
*************************************/
#include <reg52.h>
#include "LCD1602.H"
#include "DS18B20.H"
#include "RP_C18.3_ST.H"

sbit LED = P1^0;
uint vibrationInterval = 600;     //间隔半小时提醒,10x60x60;
uchar vibrationNum = 240;            //提醒长度5s     20x12
uchar powerOnHour = 0;          //记录上电的小时数
uchar enoughFlag;

uint vibrationTime = 0;         //提醒时间计数
uchar hourVbrationFlag = 0;

void Delay1Ms(uint t){                        //大致延时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){         //每半小时上电计数加1
                powerOnHour++;
                hourVbrationFlag = 1;
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:397025 发表于 2019-1-7 17:18 | 只看该作者
有全部资料吗?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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