基于51单片机霍尔汽车自行车码表测速测里程显示proteus仿真原理图PCB

news2024/9/23 1:20:59

功能:
0.本系统采用STC89C52作为单片机
1.LCD1602液晶分三种显示模式
a)显示实时速度和本次里程
b)显示当前时间
c)显示报警速度和总里程
2.超过报警速度将声光报警
3.功能按键介绍
a显示状态下:
'上’键——电机速度+1 '下’键——电机速度-1
'设置’键——电机启动/暂停
'切换’键——切换显示状态
b显示状态下:
'设置’键——进入时间设置
'切换’键——切换显示状态
*时间设置状态
'上’键——加1 '下’键——减1
'左’键/'右’键——更改设置坐标
'切换’键——确定
c显示状态下:
'设置’键——进入速度设置
'切换’键——切换显示状态
*报警速度设置状态
'上’键——加1 '下’键——减1
'左’键/'右’键——更改设置选项
'切换’键——确定
*总里程设置状态
'上’键/'下’键——清零
'左’键/'右’键——更改设置选项
'切换’键——确定
4.采用DC002作为电源接口可直接输入5V给整个系统供电

原理图:
在这里插入图片描述

PCB :
在这里插入图片描述

主程序:

#include <reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
#include "main.h"

unsigned long time_20ms; //定时计数
char dis0[9];			 //液晶数组显示暂存
char dis1[3];
unsigned int setNum = 37; //设置值
//---------------------------------------
//Name: CALTEMP
//Temperature data is T=(Data)*0.02-273.15
//---------------------------------------

bit disFlag = 0;		//更新显示标志
unsigned int Tem;		//温度
float objTemp, envTemp; //物体温度和环境温度

void main(void)
{
	Timer0_Init(); //定时器0初始化

	LCD_Init();	 //初始化液晶
	DelayMs(20); //延时有助于稳定
	LCD_Clear();

	while (1) //主循环
	{
    
        if (KEY_ADD == 0) //有按键按下
		{
            DelayMs(150);
            if (KEY_ADD == 0) //按键1按下
            {
                if (setNum < 200)
                    setNum++; //++
            }
		}
        
        if (KEY_SUB == 0)
        {
            DelayMs(150);
            if (KEY_SUB == 0) //按键2按下
            {
                if (setNum > 0)
                    setNum--; //--
            }
        }
    
		if (disFlag == 1) //显示标志
		{
			Tem = ReadObjectTemp(); //读取实物温度
			objTemp = (float)(Tem)*0.02 - 273.15;

			Tem = ReadEnvironTemp(); //读取环境温度
			envTemp = (float)(Tem)*0.02 - 273.15;

			sprintf(dis0, "Env:%5.1f", envTemp); //打印环境温度
			LCD_DispStr(0, 0, dis0); //显示
			LCD_WriteData(0xDF);
			LCD_WriteData('C');
			LCD_DispStr(13, 0, "Set");
			sprintf(dis0, "Obj:%5.1f", objTemp); //打印目标温度
			LCD_DispStr(0, 1, dis0); //显示
			LCD_WriteData(0xDF);
			LCD_WriteData('C');
			sprintf(dis1, "%3d", setNum); //打印温度设置值
			LCD_DispStr(13, 1, dis1); //显示

			if (objTemp > setNum)
			{
				BUZZER = 0;
			} //温度高蜂鸣器鸣叫
			else
			{
				BUZZER = 1;
			} //温度低 停止
			disFlag = 0;
		}




	}
}

void Timer0_Init()
{
	TMOD &= 0xF0;
	TMOD |= 0x01;	  //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
	TH0 = RH_10MS(2); //重新赋值 20ms
	TL0 = RL_10MS(2);
	EA = 1;	 //总中断打开
	ET0 = 1; //定时器中断打开
	TR0 = 1; //定时器开关打开
}

void Timer0_Interrupt() interrupt 1
{
	TH0 = RH_10MS(2); //重新赋值 20ms
	TL0 = RL_10MS(2);
	time_20ms++;
	if (time_20ms >= 20) //定时更新显示
	{
		disFlag = 1;
		time_20ms = 0;
	}
}

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/32766.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

四、【基础】组件实例三大核心属性之一 state

文章目录1、CODE2、Result2.1、初始化2.2、触发更新3、state简写理解&#xff1a; state是组件对象最重要的属性, 值是对象(可以包含多个key-value的组合)组件被称为"状态机", 通过更新组件的state来更新对应的页面显示(重新渲染组件) 注意&#xff1a; 组件中rende…

算法导论习题—摊还时间代价分析、栈实现队列、贪心算法近似比、集合覆盖问题

在执行的nnn个操作中&#xff0c;有至多⌈lgn⌉⌈lg n⌉⌈lgn⌉个操作的次序是222的幂&#xff0c;这些操作的次序&#xff08;即代价&#xff09;如下 1,2,4,8,⋅⋅⋅,2⌈lgn⌉1, 2, 4, 8, , 2 ⌈lg n⌉ 1,2,4,8,⋅⋅⋅,2⌈lgn⌉ nnn个操作的总代价为 T∑k0⌈lgn⌉2k(n−⌈…

Android App网络通信中利用okhttp实现下拉刷新和上拉加载实战(抓取文章信息 超详细 附源码)

需要源码和工具类请点赞关注收藏后评论区留言私信~~~ 一、实现下拉刷新和上拉加载功能 网络上的信息很多&#xff0c;往往无法依次拉下来&#xff0c;故而App引入了分页加载功能&#xff0c;最开始先展示第一页内容&#xff0c;等到用户拉到该页底部后再去加载下一页内容&…

网络安全面试、实习、校招经验打包分享

整理收集了近些年的资料 内几乎覆盖了各大公司&#xff0c;大厂小厂都有 很多培训机构都是收费提供 本公众号无任何套路全部免费 提供下载学习 为了防止失效&#xff0c;建议下载收藏起来 以后总会用得上&#xff01; 下面截取部分资料 腾讯-安全技术实习生 时长&am…

流媒体技术基础-摄像头接口与标准

一、摄像头接口概括 摄像头按接口分类如下 主板直接接的专用接口 SPI接口&#xff1a;串行传输、速度慢。常用用于MCU DVP接口&#xff1a;并口传输&#xff0c;速度较慢&#xff0c;传输的带宽低。 MIPI接口&#xff1a;手机平台标准接口&#xff0c;差分串口传输&#xff…

CSS3基础

CSS 层叠样式表Cascading Style Sheets&#xff0c;缩写为CSS&#xff0c;是一种样式表语言&#xff0c;用来描述HTML或XML&#xff08;包括如SVG、MathML、XHTML 之类的XML 分支语言&#xff09;文档的呈现。 CSS描述了在屏幕、纸质、音频等其它媒体上的元素应该如何被渲染的问…

AI 预测世界杯比赛结果,惊掉下巴

哈喽&#xff0c;大家好。 今天看到Kaggle上有一个预测世界杯比赛结果的项目&#xff0c;截至目前 4 场比赛预测结果全中。 今天把源码研究了一下&#xff0c;做了中文注释&#xff0c;给大家分享下。 文章目录技术提升1. 获取数据集2. 特征工程3. 建模4. 预测技术提升 本文…

“软硬兼施”,全方位守护企业数据安全

编者按&#xff1a;知识管理涉及大量企业数据&#xff0c;所以其数据安全问题不容忽视。如何做好企业知识管理安全&#xff1f;本文分析了企业数据安全问题主要来自哪里&#xff0c;并从设备、部署、人员管控三方面出发&#xff0c;最终指出了解决方案。 关键词&#xff1a;私…

ORB-SLAM3算法学习—Frame构造—基于SAD滑窗的双目特征匹配

文章目录0总述1双目匹配1.1为左目每个特征点建立带状区域搜索表&#xff0c;限定搜索区域。&#xff08;已提前极线校正&#xff09;1.2对左目相机每个特征点&#xff0c;通过描述子在右目带状搜索区域找到匹配点1.3通过SAD滑窗得到匹配修正量bestincR1.4 做抛物线拟合找谷底得…

力扣刷题(代码回忆录)——回溯算法

关于回溯算法&#xff0c;你该了解这些&#xff01;回溯算法&#xff1a;组合问题回溯算法&#xff1a;组合问题再剪剪枝回溯算法&#xff1a;求组合总和&#xff01;回溯算法&#xff1a;电话号码的字母组合本周小结&#xff01;&#xff08;回溯算法系列一&#xff09;回溯算…

变压器励磁电感以及漏感

1 励磁电感(magnetic inductance):脉冲变压器的初级电感 仅在变压器中才出现的名词,也就是一个等效电感值,事实上这个电感是变压器的初级侧电感,作用在其上的电流不会传导到次级,它的作用是拿来对铁芯产生激磁作用,使铁芯内的铁磁分子可以用来导磁,就好比铁芯是磁中性,绕上…

SuperMap iManager for K8S使用XFS文件系统类型出现节点异常解决办法

前段时间&#xff0c;遇到了多个用户在使用iManager for K8S的过程出现K8S节点宕机&#xff0c;或者是使用无法使用任何命令的情况。通过了解之后发现这些客户都存在一个共同点&#xff0c;服务节点的文件系统类型都是XFS&#xff0c;并且使用的NFS作为存储。本篇文章将讲解如何…

窗口函数简介与总结

目录 什么是窗口函数 窗口函数的实现原理 窗口函数使用场景 常用的窗口函数有&#xff1a; 1. 窗口排序函数&#xff1a;ROW_NUMBER()、RANK()、DENSE_RANK()&#xff1b; 2. 窗口聚合函数&#xff1a;SUM()、MIN()、MAX()、AVG()&#xff1b; 3. LAG() 4. LEAD() 5. …

88.Django中间件的说明与使用方法

1. 概述 ​ AOP&#xff08;Aspect Oriented Programming &#xff09;&#xff0c;面向切面编程&#xff0c;是对业务逻辑的各个部分进行隔离&#xff0c;从而使得业务逻辑各部分之间的耦合度降低&#xff0c;提高程序的可重用性&#xff0c;同时提高了开发的效率。可以实现在…

css-实现卡牌的发牌和翻牌动画

场景描述&#xff1a; 打开抽卡界面&#xff0c;卡牌出现并发牌至固定的位置&#xff0c;此时展示的是卡牌的背面&#xff1b;用户点击卡牌时&#xff0c;卡牌进行翻转&#xff0c;并展示卡牌内容&#xff0c;或者发牌后自动进行翻转和展示。 本实例在页面挂载后自动播放动画&…

前端网站动态主题色解决方案

动态主题色替换分两种&#xff1a;UI 组件库主题色替换和系统主题色替换。 组件库 UI 动态主题替换现阶段只在 Element-UI 和 Vant-UI 测试过&#xff0c;根据排查这种方案应该适用于所有类似的动态主题色替换场景。 1. UI 组件库主题色替换 在进入到这一部分之前&#xff0c;…

力扣232 - 用栈实现队列【C语言实现】

用栈实现队列~一、题目描述二、思路分析三、代码详解1、结构声明与展开剖析2、入队【入栈思想】3、获取队头【出栈思想】4、出队【复用思想】5、逐步算法图解四、整体代码展示&#x1f4bb;C语言代码实现五、总结与提炼一、题目描述 示例 1&#xff1a; 输入&#xff1a; [“My…

Java基础知识+必考面试题(分享收藏版)

在学习Java语言之前&#xff0c;我们要了解相关知识体系&#xff0c;才能更好的掌握学习。那么下面我们就一起来学习JAVA语言吧~ Java语言概述 Java语言是Sun公司在1995年推出的高级编程语言&#xff0c;编程语言就是计算机语言&#xff0c;人们可以通过使用编程语言让计算机完…

Webfunny 创始人:Skywalking × Zabbix 与观纵探索可观测性

作为 Webfunny 的 PMC&#xff0c;应伟长期致力于前端监控、埋点探针的产品研发&#xff0c;伴随着全链路监控的探索&#xff0c;在整合 Skywalking 与 Zabbix 打造一体化监控平台的实践中&#xff0c;是怎样的心路历程&#xff1f; “ 从前端监控到全链路监控的挑战 Webfun…

Mockplus Cloud updated传达设计意图的新方法

Mockplus Cloud updated传达设计意图的新方法 增加了Mockplus Cloud UI 2.0&#xff0c;使UI更加直观和简洁。 引入了注解&#xff0c;为向开发人员传达设计意图提供了一种新的方式。 添加了上传图像以进一步解释任务注释的功能。 优化任务创建以改善用户体验。 提高了下载、导…