基于单片机的万年历温度无线传输控制系统系统
一、系统方案
本设计采用DS1302采集年月日时分秒,DS18B20采集温度值,按键设置温度报警上下限,实际测量温度低于下限或高于上限,蜂鸣器报警,同时将测量温度上传到蓝牙助手。

二、硬件设计
原理图如下:

三、单片机软件设计
1、首先是系统初始化
P0 = P1 = P2 = P3 = 0xff; //单片机IO口初始化为1
init_time0(); //初始化定时器
init_1602(); //lcd1602初始化
init_1602_dis_csf(); //lcd1602初始化显示
temperature = read_temp(); //先读出温度的值
delay_1ms(650);
Uart_init();
2、液晶显示程序
/lcd1602写命令函数*/
void write_com(uchar com)
{
e=0;
rs=0;
rw=0;
P0=com;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}
/lcd1602写数据函数*/
void write_data(uchar dat)
{
e=0;
rs=1;
rw=0;
P0=dat;
delay_uint(3);
e=1;
delay_uint(25);
e=0;
}
3、按键程序
/***独立按键程序/
uchar key_can; //按键值
void key() //独立按键程序
{
static uchar key_new;
key_can = 20; //按键值还原
P3 |= 0x78; //对应的按键IO口输出为1
if((P3 & 0x78) != 0x78) //按键按下
{
delay_1ms(1); //按键消抖动
if(((P3 & 0x78) != 0x78) && (key_new == 1))
{ //确认是按键按下
key_new = 0;
switch(P3 & 0x78)
{
case 0x70: key_can = 4; break; //得到按键值
case 0x68: key_can = 3; break; //得到按键值
case 0x58: key_can = 2; break; //得到按键值
case 0x38: key_can = 1; break; //得到按键值
}
// write_sfm2(1,0,key_can); //显示按键值
}
}
else
key_new = 1;
}
4、核心算法程序
/主函数***/
void main()
{
P0 = P1 = P2 = P3 = 0xff; //单片机IO口初始化为1
init_time0(); //初始化定时器
init_1602(); //lcd1602初始化
init_1602_dis_csf(); //lcd1602初始化显示
temperature = read_temp(); //先读出温度的值
delay_1ms(650);
Uart_init();
while(1)
{if(temperature>ah*10){led1=0;}else{led1=1; }if(temperature<al*10){led2=0;}else{led2=1; }if((temperature>ah*10)||(temperature<al*10)){beep=0;}else{beep=1; }mcu_pc('W');mcu_pc('e');mcu_pc('e');mcu_pc('d');mcu_pc('u');mcu_pc(':');mcu_pc(' ');mcu_pc(temperature/100+0x30);mcu_pc(temperature%100/10+0x30);mcu_pc('.');mcu_pc(temperature%10+0x30);mcu_pc('C');mcu_pc(0X0D);mcu_pc(0X0A);key(); //按键程序if(key_can < 10){key_with(); read_time(); }if(flag_200ms == 1){ flag_200ms = 0;if(menu_1 == 0){read_time(); //读时间EA=0;temperature = read_temp(); //先读出温度的值EA=1;init_1602_ds1302(); //显示时钟}}delay_1ms(1);
}
}
四、 proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。

相关文章:
基于单片机的万年历温度无线传输控制系统系统
一、系统方案 本设计采用DS1302采集年月日时分秒,DS18B20采集温度值,按键设置温度报警上下限,实际测量温度低于下限或高于上限,蜂鸣器报警,同时将测量温度上传到蓝牙助手。 二、硬件设计 原理图如下: 三…...
ElementUI浅尝辄止19:Badge 标记
出现在按钮、图标旁的数字或状态标记。 1.如何使用? 可展示新消息数量。 //定义value属性,它接受Number或者String。<el-badge :value"12" class"item"><el-button size"small">评论</el-button> <…...
nginx两台负载均衡服务器之间使用keepalived实现高可用
目录 高可用HAkeepalived实现高可用VRRP协议单VIP架构VIP飘移脑裂双VIP架构(互为主从)keepalived监控 、执行脚本notify 高可用HA 单点故障:某个重要的功能只有一份,如果他出现问题,会导致全局不能使用 “高可用性”…...
如何将Express项目部署到Vercel
什么是Vercel? 想必好多前端同学都知道Vercel吧!如果还不了解的同学也没关系,好好看这篇文章,认识认识Vercel,我想对你部署项目有一定帮助。 Vercel 是一个云平台,用于托管和部署静态网站、前端应用程序以…...
Java作业3
1.下面代码的运行结果是(C) public static void main(String[] args){String s;System.out.println("s"s);}A.代码编程成功,并输出”s” B.代码编译成功,并输出”snull” C.由于String s没有初始化,代码不…...
ARM编程模型-寄存器组
Cortex A系列ARM处理器共有40个32位寄存器,其中33个为通用寄存器,7个为状态寄存器。usr模式和sys模式共用同一组寄存器。 通用寄存器包括R0~R15,可以分为3类: 未分组寄存器R0~R7分组寄存器R8~R14、R13(SP) 、R14(LR)程序计数器PC(R15)、R8_fiq-R12_fir为快中断独有 在不同模…...
C++ string
目录 string类介绍访问:[ ] 遍历迭代器遍历范围for遍历 容量相关:修改相关:编码表的了解写时拷贝的了解string的模拟 STL(standard template libaray-标准模板库):是C标准库的重要组成部分,不仅是一个可复用的组件库&a…...
百亿级访问量,如何做缓存架构设计
说在前面 在40岁老架构师 尼恩的读者社区(50)中,最近有小伙伴拿到了一线互联网企业如阿里、网易、有赞、希音、百度、网易、滴滴的面试资格,遇到一几个很重要的面试题:: 分布式缓存系统,如何架构?百亿级访…...
(数字图像处理MATLAB+Python)第十一章图像描述与分析-第三、四节:几何表述和形状描述
文章目录 一:几何描述(1)像素间几何关系A:邻接与连通B:距离 (2)像素间几何特征A:位置B:方向C:尺寸 (3)程序 二:形状描述&a…...
20230901工作心得:IDEA列操作lambda表达式加强版用法
今天是中小学开学时间,亦是9月的开始,继续努力。 今日收获较大的有四个地方,先说这四点。 1、IDEA列操作 使用场景:需要批量将Excel表格里的数据插入到数据库中,此时需要写大量的insert SQL语句。 比如像这样的&am…...
macOS Sonoma 14beta 7(23A5337a)更新发布,附黑/白苹果系统镜像
系统介绍(镜像请前往黑果魏叔官网下载) 黑果魏叔8 月 31 日消息,苹果今日向 Mac 电脑用户推送了 macOS 14 开发者预览版 Beta 7 更新(内部版本号:23A5337a),本次更新距离上次发布隔了 8 天。 …...
QT基础教程之九Qt文件系统
QT基础教程之九Qt文件系统 文件操作是应用程序必不可少的部分。Qt 作为一个通用开发库,提供了跨平台的文件操作能力。Qt 通过QIODevice提供了对 I/O 设备的抽象,这些设备具有读写字节块的能力。下面是 I/O 设备的类图(Qt5)&#…...
OpenCV(十八):图像直方图
目录 1.直方图统计 2.直方图均衡化 3.直方图匹配 1.直方图统计 直方图统计是一种用于分析图像或数据的统计方法,它通过统计每个数值或像素值的频率分布来了解数据的分布情况。 在OpenCV中,可以使用函数cv::calcHist()来计算图像的直方图。 calcHist(…...
mac pro 查看隐藏文件夹
在Mac上查看隐藏文件夹可以使用以下方法: 使用终端: 打开终端应用程序,位于“应用程序”文件夹的“实用工具”子文件夹中。 在终端中,输入以下命令,然后按回车键: defaults write com.apple.finder AppleS…...
软件测试/测试开发丨Selenium 高级定位 Xpath
点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27036 一、xpath 基本概念 XPATH是一门在XML文档中查找信息的语言 XPATH使用路径表达式在XML文档中进行导航 XPATH的应用非常广泛,可以用于UI自…...
各类注意力机制Attention——可变形注意力
目录 《Attention is all you need 》稀疏Attention残差Attention通道注意力空间注意力时间注意力可变形注意力 《Attention is all you need 》 稀疏Attention 残差Attention 通道注意力 空间注意力 时间注意力 实际上序列类任务也属于时间注意力,比如transformer…...
桥接模式:连接抽象与实现
欢迎来到设计模式系列的第八篇文章!在之前的几篇文章中,我们已经学习了许多常见的设计模式,今天我们将继续探讨另一个重要的设计模式——桥接模式。 桥接模式简介 桥接模式是一种结构型设计模式,它主要用于将抽象部分与实现部分…...
同步推送?苹果计划本月推出 iOS17和iPadOS17,你的手机支持吗?
据报道,苹果公司计划在本月推出 iOS 17 和 iPadOS 17 正式版更新。与去年不同的是,这次更新将同时发布,而不是分别发布。根据彭博社的一位消息人士马克・古尔曼的说法,苹果公司认为 iOS 17 和 iPadOS 17 的第八个测试版已经非常接…...
方案展示 | RK3588开发板Linux双摄同显方案
iTOP-RK3588开发板使用手册更新,后续资料会不断更新,不断完善,帮助用户快速入门,大大提升研发速度。 RK3588开发板载4路MIPI CAMERA摄像头接口、MIPI CSI DPHY的4.5Gbps、2.5Gops的MIPI CSI CPHY,四路同时输入…...
数据库-多表设计
概述: 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本分为三种: 一对…...
动态数据源配置加密终极指南:如何选择最安全的填充模式保护敏感数据 [特殊字符]️
动态数据源配置加密终极指南:如何选择最安全的填充模式保护敏感数据 🛡️ 【免费下载链接】dynamic-datasource dynamic datasource for springboot 多数据源 动态数据源 主从分离 读写分离 分布式事务 项目地址: https://gitcode.com/gh_mirrors/dy/…...
如何用RecastNavigation构建高效AI导航系统:5个实战技巧揭秘
如何用RecastNavigation构建高效AI导航系统:5个实战技巧揭秘 【免费下载链接】recastnavigation Navigation-mesh Toolset for Games 项目地址: https://gitcode.com/gh_mirrors/re/recastnavigation 你是否曾为游戏中的AI角色设计路径规划而头疼?…...
Notepad4:轻量级编辑器的技术突破与实用指南
Notepad4:轻量级编辑器的技术突破与实用指南 【免费下载链接】notepad2 Notepad2-zufuliu is a light-weight Scintilla based text editor for Windows with syntax highlighting, code folding, auto-completion and API list for many programming languages and…...
告别乱码!ESP32-S3+LVGL 9.2.2驱动ILI9488显示中文的保姆级教程(附完整代码)
ESP32-S3LVGL 9.2.2中文显示实战:从乱码到完美呈现的终极指南 当你在ESP32-S3上成功驱动了ILI9488显示屏,LVGL的基础例程也跑起来了,却发现中文显示全是方块或乱码时,这种挫败感我深有体会。中文显示问题一直是嵌入式GUI开发中的…...
重庆银行:万亿新贵的高光与隐忧
对于重庆银行而言,2026年3月24日是一个值得载入史册的日子。就在这一天,该行正式发布了2025年年度报告,其资产规模突破以往周期,使其成功跻身“万亿级城商行俱乐部”。其中,该行的营收与净利润时隔五年再次实现了“双十…...
别再折腾CUDA了!用Anaconda在Windows上一键搞定TensorFlow 2.5 GPU环境(附清华源配置)
告别CUDA版本地狱:Anaconda三分钟部署TensorFlow GPU全攻略 刚接触深度学习的开发者们,往往在第一步就被GPU环境配置劝退。CUDA与cuDNN的版本匹配问题像一道高墙,让无数Windows用户在TensorFlow门前徘徊。我曾见过同事花三天时间反复卸载重装…...
Qwen3智能字幕系统效果展示:法庭庭审录音→高司法术语准确率字幕
Qwen3智能字幕系统效果展示:法庭庭审录音→高司法术语准确率字幕 1. 引言:当AI成为“数字书记员” 想象一下这样的场景:一场长达数小时的法庭庭审正在进行,书记员的手指在键盘上飞速敲击,试图跟上律师与证人间密集、…...
HRNet代码逐行解析:从BasicBlock到HighResolutionNet,手把手教你读懂多分辨率融合
HRNet代码深度解析:从基础模块到多分辨率融合实战 在计算机视觉领域,HRNet(High-Resolution Network)因其独特的并行多分辨率架构而备受关注。与传统的串行降采样网络不同,HRNet在整个前向传播过程中始终保持高分辨率表…...
Paimon实时数据湖实战:五种分桶模式选型与性能调优指南
1. Paimon分桶机制的核心价值 分桶是Paimon数据湖架构中提升性能的关键设计。想象你管理一个超大型图书馆,如果所有书籍都堆放在一起,每次找书都需要全馆搜索。但如果你按照书籍编号将书架分成100个区域,找书时只需计算编号哈希就能直达对应区…...
MQTT安全连接不止一种:用MQTTnet库玩转C#客户端单向与双向认证
MQTT安全连接实战:从单向认证到双向认证的C#实现精要 物联网设备间的数据传输安全一直是开发者关注的核心问题。MQTT协议作为轻量级的消息传输协议,在工业自动化、智能家居等领域广泛应用,但其默认的1883端口通信并不加密。本文将深入探讨如何…...
