功能介绍:
0.本系统采用STC89C52作为单片机
1.LCD1602液晶实时显示时间/当前温度
2.按键可进行闹钟设置和温度上下限设置
3.到达闹钟时间或温度超过阈值范围,蜂鸣器报警
4.到达闹钟时间,蜂鸣器将报警30s,可手动提前停止报警
5.采用DC002作为电源接口可直接输入5V给整个系统供电

原理图:

PCB :

主程序:

#define __MAIN_C
#include <reg52.h>
#include "main.h"enum DISP_MODE_DF DispMode; //显示模式unsigned char setIndex = 0; //设置位置标志
unsigned char alarmTime[3] = {21, 0, 0}; //闹钟时间
bit dispFlag = 1; //显示标志
bit setFlag = 0; //设置标志
bit alarmSwitch = 0; //闹钟开关
bit buzzerFlag1 = 0; //蜂鸣器报警标志1
bit buzzerFlag2 = 0; //蜂鸣器报警标志2
unsigned char buzzerDelay = 0; //蜂鸣器报警倒计时
int tempBuf = 0; //温度
float f_temperature = 0.0; //温度
int minTemp = 15; //温度阈值下限
int maxTemp = 35; //温度阈值上限void main()
{//初始化DispMode = NORMAL;setFlag = 0;Timer0_Init();LCD_Init();DS1302_Init();DelayMs(20);if (!KEY_ENTER) //启动过程中确定键按下,初始化时间{DelayMs(10);if (!KEY_ENTER){DS1302_WriteTime(); //写入时间}}//开机显示LCD_DispStr(0, 0, "    Welcome!    ");DS18B20_Start(); DS18B20_GetTemp(&tempBuf);f_temperature = (float)tempBuf * 0.0625;DelayS(2);LCD_Clear();while(1){// LCD1602液晶显示if ((dispFlag == 1) && (setFlag == 0)){dispFlag = 0;DS1302_ReadTime(); //读取时间//检测温度DS18B20_Start(); DS18B20_GetTemp(&tempBuf);f_temperature = (float)tempBuf * 0.0625;if (DispMode == NORMAL){DispNormal(setIndex);}if (alarmSwitch == 1) //闹钟开关打开{if (alarmTime[0] == timeBufDec[4] && alarmTime[1] == timeBufDec[5] && alarmTime[2] == timeBufDec[6]){buzzerFlag1 = 1;buzzerDelay = 120; //报警30s 250ms*120//buzzerDelay = 20; //报警5s 250ms*20}}if (f_temperature < minTemp || f_temperature > maxTemp){buzzerFlag2 = 1;buzzerDelay = 20; //报警5s 250ms*20}else{buzzerFlag2 = 0;}if (buzzerFlag1 == 1 || buzzerFlag2 == 1){if (buzzerDelay != 0){BUZZER = ON;buzzerDelay--;}else{BUZZER = OFF;}}else{BUZZER = OFF;}}KeyProcess(); //按键处理}
}void Timer0_Init(void)
{TMOD &= 0xF0;TMOD |= 0x01;TL0 = 0x00;       //设置定时初始值TH0 = 0x4C;       //设置定时初始值 50msTR0 = 1; //启动T0计时ET0 = 1; //打开T0中断EA = 1;  //打开总中断
}void Timer0_Intterupt(void) interrupt 1
{static unsigned char time50ms = 0;TL0 = 0x00;        //设置定时初始值TH0 = 0x4C;       //设置定时初始值 50mstime50ms++;if (time50ms >= 5) //250ms刷新一次状态{time50ms = 0;dispFlag = 1;}}

仿真演示视频:
https://www.bilibili.com/video/BV1hD4y117vQ/

实物演示视频:
https://www.bilibili.com/video/BV1hP411J78B/

基于51单片机的时钟闹钟温度计LCD1602显示proteus仿真原理图PCB相关推荐

  1. 基于51单片机的时钟电子秤称重系统proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.采用LCD1602液晶显示当前时间和检测重量 2.按键可更改时间和设置超重报警阈值 3.采用HEX711和称重支架传感器获取物体重量信息,传入 ...

  2. 基于51单片机声音噪声分贝检测采集显示proteus仿真原理图PCB程序设计

    硬件设计 (末尾附文件) 功能说明: 1.基于STC89C51/52(与AT89S51/52.AT89C51/52通用)单片机作为主控制器 2.采用LCD1602液晶显示屏实时显示分贝值: 3.使用小 ...

  3. 基于51单片机的教室照明灯人数计数系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前时间/温度/教室人数 2.自动模式下,在工作时间内(1824时),当环境黑暗时,根据进入教室的人数开启14盏灯,其余 ...

  4. 基于51单片机的智能蓝牙路灯街灯控制系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.液晶实时显示时间/环境光强/工作模式 2.每隔5s向蓝牙串口发送一次信息 3.支持路灯故障检测 4.工作时间18~24时,两个路灯同时点亮,24时 ...

  5. 基于51单片机的水温温度PID算法控制系统proteus仿真原理图PCB

    1.本系统采用STC89C52作为单片机 2.采用液晶LCD1602液晶实时显示相关数据 3.采用矩阵键盘可设置PID相关参数 4.采用L298驱动功率电阻模拟加热过程 5.当温度超过设定值的一定范围 ...

  6. 基于51单片机的智能护眼台灯设计proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前时间/环境光强/工作模式 2.当检测到人体距离灯光太近时,蜂鸣器报警提醒 3.当使用时间超过设定阈值时,蜂鸣器报 ...

  7. 基于51单片机的智能饮水机烧水控制系统proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前温度和设定温度 2.当温度到达100℃时,蜂鸣器报警提醒水烧开了 3.按键可更改预设温度值,当温度低于设定温度5 ...

  8. 基于51单片机电子秤称重系统10kg量程proteus仿真原理图PCB

    功能: 1.本系统采用STC89C52作为单片机 2.本系统LCD1602液晶实时显示时间和当前重量 3.四个功能按键其中,按'设置'键进入时间设置,按'去皮'键实现去皮功能 4.系统设置有重量阈值, ...

  9. 基于51单片机的智能水表水流量计流量报警器proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶显示水流量/累计流量/累计流量阈值 2.按'清零'键清除累计流量,按'加''减'设置累计流量报警阈值,按'启停'启动停止水泵 3 ...

最新文章

  1. LINUX TOP,不是这样玩地!!!
  2. 如何在PowerShell中使用带有空格和引号的参数运行EXE文件
  3. OpenCV学习笔记大集锦
  4. [CodeForces 567C] Geometric Progression
  5. 多线程:AQS的一些心得
  6. 引入用于 Azure IoT Edge 的 Visual Studio 工具
  7. [041] 微信公众帐号开发教程第17篇-应用实例之智能翻译
  8. 单个基因集富集分析泡泡图绘制
  9. KDD Cup 2020 Debiasing比赛冠军技术方案及在美团广告的实践
  10. Kali2.0——ssh使用
  11. 职场上人和人的差距是怎样拉开的?
  12. windows server 2012r2 快速启动模式部署remoteapp,检查兼容性,显示有挂起的重新启动...
  13. git 下载指定历史版本
  14. 提高微服务安全性的11个方法
  15. SpringBoot集成RabbitMQ实现消息重试机制,消息重试3次失败后写入死信队列,消息重试3次失败后入库
  16. 恒生与中国信通院联合发布《证券行业分布式核心系统SRE运维白皮书》
  17. Java类管理机制——包的详解
  18. 红帽考试资料_冰山一角
  19. 优秀的工程师是怎样炼成的
  20. Could not delete path ‘D:\AndroidStudioProjects\LargeScreen\app\build\generated\source\r\debug\andro

热门文章

  1. 谷歌浏览器 lass CPU 占用高解决办法
  2. 炉石传说怎么修改服务器,云服务器 炉石传说
  3. Linux加入Windows域之完整操作步骤
  4. android应用搬家的实现
  5. NVIDIA TX2刷ubuntu16.04、刷设备树教程
  6. 网页设计之双眼爱心表情包
  7. 学计算机有什么好处200字,关于电脑的作文200字(通用10篇)
  8. 电子货架标签------医院床头卡
  9. requests 爬取人人网信息,难点:验证码
  10. CSS使微信小程序 view文字水平垂直居中