当前位置: 首页 > news >正文

基于51单片机电子钟温度计数码显示设计( proteus仿真+程序+设计报告+讲解视频)

这里写目录标题

  • ✅1.主要功能:
  • ✅讲解视频:
  • ✅2.仿真设计
  • ✅3. 程序代码
  • ✅4. 设计报告
  • ✅5. 设计资料内容清单&&下载链接
    • ✅[资料下载链接:](https://docs.qq.com/doc/DS0Nja3BaQmVtWUpZ)

基于51单片机电子钟温度检测数码显示设计( proteus仿真+程序+设计报告+讲解视频)

仿真图proteus7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0061

✅1.主要功能:

基于51单片机AT89C51/52(与AT89S51/52、AT89C51/52、STC89C51/52等51内核单片机通用)

1、设备初始化时钟为 23 时 59 分 50 秒。

2、按键 K4 定义为“时钟设置”按键,通过该按键可切换选择待调整的时、分、秒,当前选择的显示单元以 1 秒为间隔亮灭,时、分、秒的调整需注意数据边界属性。

3、按键 K2 定义为“加”按键,在“时钟设置”状态下,每次按下该按键当前选择的单元(时、分或秒)增加 1 个单位。

4、按键 K1 定义为“减”按键,在“时钟设置”状态下,每次按下该按键当前选择的单元(时、分或秒)减少 1 个单位。

5、“时钟显示”状态下,按下 K3 按键,显示温度数据,松开按键,返回“时钟显示”界面。

6、当温度超过 30 摄氏度时指示灯 D1 以 0.2 秒为间隔闪烁。

需注意仿真中51单片机芯片是兼容的,AT89C51,AT89C52是51单片机的具体型号,内核是一样的。相同的原理图里,无论stc还是at都一样,引脚功能都是一样的,程序是兼容的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

✅讲解视频:

仿真讲解+代码讲解

基于51单片机电子钟温度计数码管proteus仿真代码讲解(附下载链接

✅2.仿真设计

开始仿真

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。

imgimg

✅3. 程序代码

使用keil4或者keil5编译,代码有注释,可以结合报告理解代码含义。

img

主函数main.c代码

#include <reg51.h>
#include"temp.h"#define uint unsigned int
#define uchar unsigned char
#define ulong unsigned longsbit L1=P2^2;//138引脚
sbit L2=P2^3;
sbit L3=P2^4;sbit k1=P3^0;	//减
sbit k2=P3^1;	//加
sbit k3=P3^2;	//切换
sbit k4=P3^3;	//设置sbit led=P2^0; //led
uchar key=0;//按键标志
uchar code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9
uchar shuma[8]={0x5b,0x4f,0x40,0x6d,0x6f,0x40,0x6d,0x3f};//时间显存
uchar wendu[3]={0x3f,0x3f,0x39};//温度显存uchar time=0,miao=50,fen=59,shi=23;	//计时
uchar wen=0;//温度
uchar time0=0,time1=0;//定时变量
uchar mode=0;//模式,设置用void delay(uint i);//函数声明void display1()	//显示温度
{uchar i;for(i=0;i<3;i++){P0=0;P2=(P2& 0xe3)+(i<<2);P0=wendu[2-i];delay(50);}
}
void display2()	//显示时间
{uchar i;for(i=0;i<8;i++){P0=0;P2=(P2& 0xe3)+(i<<2);P0=shuma[7-i];delay(50);}
}
//显示计算
void suan()
{shuma[0]=smgduan[shi/10];shuma[1]=smgduan[shi%10];shuma[3]=smgduan[fen/10];shuma[4]=smgduan[fen%10];shuma[6]=smgduan[miao/10];shuma[7]=smgduan[miao%10];wen=Ds18b20ReadTemp();//读取温度wendu[0]=smgduan[wen/10];wendu[1]=smgduan[wen%10];
}
//按键检测
void key_scan()
{if(k1 && k2 && k3 && k4) //按键标志清零key=0;if(!k4 &&(key!=4))//设置{key=4;if(mode<3)mode++;elsemode=0;}if(!k1 &&(key!=1))//减{key=1;if(mode==1){if(shi>0)shi--;elseshi=23;}if(mode==2){if(fen>0)fen--;elsefen=59;}if(mode==3){if(miao>0)miao--;elsemiao=59;}suan();}if(!k2 &&(key!=2))//加{key=2;if(mode==1){if(shi<23)shi++;elseshi=0;}if(mode==2){if(fen<59)fen++;elsefen=0;}if(mode==3){if(miao<59)miao++;elsemiao=0;}suan();}
}
//延时
void delay(uint i)
{while(i--){key_scan();}
}
//主函数
void main(void)
{ 	TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。TH0=0X3C;	//给定时器赋初值,定时50msTL0=0Xb0;	ET0=1;//打开定时器0中断允许EA=1;//打开总中断TR0=1;//打开定时器while(1){		if(mode==0){if(k3)		//显示display2();//时间显示elsedisplay1();//温度显示}else//闪烁显示{if(mode==1)//小时{if(time<11){P0=0;P2=(P2& 0xe3)+(0<<2);P0=shuma[7];delay(50);P0=0;P2=(P2& 0xe3)+(1<<2);P0=shuma[6];delay(50);P0=0;P2=(P2& 0xe3)+(2<<2);P0=shuma[5];delay(50);P0=0;P2=(P2& 0xe3)+(3<<2);P0=shuma[4];delay(50);P0=0;P2=(P2& 0xe3)+(4<<2);P0=shuma[3];delay(50);P0=0;P2=(P2& 0xe3)+(5<<2);P0=shuma[2];delay(50);}elsedisplay2();}if(mode==2)//分钟{if(time<11){P0=0;P2=(P2& 0xe3)+(0<<2);P0=shuma[7];delay(50);P0=0;P2=(P2& 0xe3)+(1<<2);P0=shuma[6];delay(50);P0=0;P2=(P2& 0xe3)+(2<<2);P0=shuma[5];delay(50);P0=0;P2=(P2& 0xe3)+(5<<2);P0=shuma[2];delay(50);P0=0;P2=(P2& 0xe3)+(6<<2);P0=shuma[1];delay(50);P0=0;P2=(P2& 0xe3)+(7<<2);P0=shuma[0];delay(50);}elsedisplay2();}if(mode==3)//秒{if(time<11){P0=0;P2=(P2& 0xe3)+(2<<2);P0=shuma[5];delay(50);P0=0;P2=(P2& 0xe3)+(3<<2);P0=shuma[4];delay(50);P0=0;P2=(P2& 0xe3)+(4<<2);P0=shuma[3];delay(50);P0=0;P2=(P2& 0xe3)+(5<<2);P0=shuma[2];delay(50);P0=0;P2=(P2& 0xe3)+(6<<2);P0=shuma[1];delay(50);P0=0;P2=(P2& 0xe3)+(7<<2);P0=shuma[0];delay(50);}elsedisplay2();}}}
}
//定时器0中断
void Timer0() interrupt 1
{if((time0<4)&&(wen>30))//led闪烁{time0=0;led=!led;}
elseled=1;
if(time<20)//计时time++;
else{time=0;if(mode==0)	//模式0正常计时{if(miao<59)miao++;else{miao=0;if(fen<59)fen++;else{fen=0;if(shi<23)shi++;else{shi=0;}}		}suan();//显示计算}}TH0=0X3C;	//给定时器赋初值,定时50msTL0=0Xb0;
}

✅4. 设计报告

5001字设计报告,内容包括硬件设计、软件设计、软硬件框图、调试、结论等

img

✅5. 设计资料内容清单&&下载链接

资料设计资料包括仿真,程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。

0、常见使用问题及解决方法–必读!!!!

1、仿真图

2、程序源码

3、功能要求

4、元器件清单

5、开题报告

6、软硬件流程框图

7、设计报告

8、讲解视频

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url

img

资料下载链接:

相关文章:

基于51单片机电子钟温度计数码显示设计( proteus仿真+程序+设计报告+讲解视频)

这里写目录标题 ✅1.主要功能&#xff1a;✅讲解视频&#xff1a;✅2.仿真设计✅3. 程序代码✅4. 设计报告✅5. 设计资料内容清单&&下载链接✅[资料下载链接&#xff1a;](https://docs.qq.com/doc/DS0Nja3BaQmVtWUpZ) 基于51单片机电子钟温度检测数码显示设计( proteu…...

jenkins+centos7上传发布net6+gitlab

工作中实践了一下jenkins的操作&#xff0c;所以记录一下这次经验&#xff0c;没有使用到docker 先看下成果&#xff1a; 选择发布项目 选择要发布的分支 构建中 发布成功 开始 首先安装好jenkins并注册自己的jenkins账号 因为我们的项目代码管理使用的是gitlab&#xff0c…...

python趣味编程-5分钟实现一个F1 赛车公路游戏(含源码、步骤讲解)

Python 中的 F1 赛车公路游戏及其源代码 F1 Race Road Game是用Python编程语言开发的,它是一个桌面应用程序。 这款 Python 语言的 F1 赛道游戏可以免费下载开源代码,它是为想要学习 Python 的初学者创建的。 该项目系统使用了 Pygame 和 Random 函数。 Pygame 是一组跨平…...

Kafka快速入门

文章目录 Kafka快速入门1、相关概念介绍前言1.1 基本介绍1.2 常见消息队列的比较1.3 Kafka常见相关概念介绍 2、安装Kafka3、初体验前期准备编码测试配置介绍 bug记录 Kafka快速入门 1、相关概念介绍 前言 在当今信息爆炸的时代&#xff0c;实时数据处理已经成为许多应用程序和…...

基于Pytorch的从零开始的目标检测

引言 目标检测是计算机视觉中一个非常流行的任务&#xff0c;在这个任务中&#xff0c;给定一个图像&#xff0c;你预测图像中物体的包围盒(通常是矩形的) &#xff0c;并且识别物体的类型。在这个图像中可能有多个对象&#xff0c;而且现在有各种先进的技术和框架来解决这个问…...

interview review

M: intrinsic matrix [ f x s c x 0 f y c y 0 0 1 ] \begin{bmatrix}f_x & s & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1\end{bmatrix} ​fx​00​sfy​0​cx​cy​1​ ​ ( c x , c y ) (c_x, c_y) (cx​,cy​): camera center in pixels ( f x , f y …...

layui表头多出一列(已解决)

问题描述 &#xff1a;layui表头多出来一列&#xff0c;但是表体没有内容&#xff0c;很影响美观。 好像是原本的表格有滚轮&#xff0c;我操作放大之后滚轮没有了&#xff0c;但是滚轮自带的表头样式还在&#xff0c; 之后手动把这个样式隐藏掉了&#xff0c;代码如下&#xf…...

​LeetCode解法汇总307. 区域和检索 - 数组可修改

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 描述&#xff1a; 给你一个数…...

Java源码分析:Guava之不可变集合ImmutableMap的源码分析

原创/朱季谦 一、案例场景 遇到过这样的场景&#xff0c;在定义一个static修饰的Map时&#xff0c;使用了大量的put()方法赋值&#xff0c;就类似这样—— public static final Map<String,String> dayMap new HashMap<>(); static {dayMap.put("Monday&q…...

详解自动化测试之 Selenium

目录 1. 什么是自动化 2.自动化测试的分类 3. selenium&#xff08;web 自动化测试工具&#xff09; 1&#xff09;选择 selenium 的原因 2&#xff09;环境部署 3&#xff09;什么是驱动&#xff1f; 4. 一个简单的自动化例子 5.selenium 常用方法 5.1 查找页面元素&…...

vue监听对象属性值变化

一、官方文档 二、实现方法 方法一、直接根据watch来监听 export default {data() {return {object: {username: ,password: }}},watch: {object.username(newVal, oldVal) {console.log(newVal, oldVal)}} }方法二&#xff1a;利用watch和computed来实现监听 利用computed定…...

Unicode编码的emoji表情如何在前端页面展示(未完成)

Unicode编码的emoji表情如何在前端页面展示 一、首先几个定义解决办法 一、首先几个定义 U1F601 和 0x1F601 表示同一个 Unicode 代码点&#xff0c;即笑脸 Emoji 的代码点。它们之间的区别在于表示方式和数据类型。 1.U1F601 是一种常见的表示方式&#xff0c;也称为 “U” 标…...

基于SSM的设备配件管理和设备检修系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…...

鸿蒙开发|鸿蒙系统项目开发前的准备工作

文章目录 鸿蒙项目开发的基本流程介绍鸿蒙项目开发和其他项目有什么不同成为华为开发者-注册和实名认证1.登录官方网站 鸿蒙项目开发的基本流程介绍 直接上图&#xff0c;简单易懂&#xff01; 整个项目的开发通过4个模块进行&#xff1a;开发准备、开发应用、运行调试测试和发…...

Evil靶场

Evil 1.主机发现 使用命令探测存活主机&#xff0c;80.139是kali的地址&#xff0c;所以靶机地址就是80.134 fping -gaq 192.168.80.0/242.端口扫描 开放80&#xff0c;22端口 nmap -Pn -sV -p- -A 192.168.80.1343.信息收集 访问web界面 路径扫描 gobuster dir -u http…...

第77题. 组合

原题链接&#xff1a;第77题. 组合 全代码&#xff1a; class Solution { private:vector<vector<int>> result; // 存放符合条件结果的集合vector<int> path; // 用来存放符合条件结果void backtracking(int n, int k, int startIndex) {if (path.size() …...

读书笔记:彼得·德鲁克《认识管理》第21章 企业与政府

一、章节内容概述 企业社会责任最重要的维度之一是政企关系。无论对于企业的顺利运作&#xff0c;还是对于政府的顺利运作&#xff0c;政企关系都至关重要。然而&#xff0c;重商主义典范和宪政主义典范这两种传统理论越来越不适应社会现实&#xff0c;越来越失效。虽然当前尚…...

C/C++疫情集中隔离 2021年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C疫情集中隔离 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C疫情集中隔离 2021年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 A同学12月初从国外回来&#xff0c;按照防疫要…...

052-第三代软件开发-系统监测

第三代软件开发-系统监测 文章目录 第三代软件开发-系统监测项目介绍系统监测 关键字&#xff1a; Qt、 Qml、 cpu、 内存、memory 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object Language&#xff09;和 C 的强大功…...

向量矩阵范数pytorch

向量矩阵范数pytorch 矩阵按照某个维度求和&#xff08;dim就是shape数组的下标&#xff09;1. torch1.1 Tensors一些常用函数 一些安装问题cd进不去不去目录PyTorch里面_表示重写内容 在默认情况下&#xff0c;PyTorch会累积梯度&#xff0c;我们需要清除之前的值 范数是向量或…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...