基于51单片机轮胎胎压监测系统—数码管显示

2024-04-09 22:12

本文主要是介绍基于51单片机轮胎胎压监测系统—数码管显示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于51单片机轮胎胎压监测系统

(仿真+程序+设计报告)

功能介绍

具体功能:

1.MPX4115压力传感器胎压检测;

2.ADC0832进行模数转换后,51单片机处理控制;

3.数码管显示胎压;

4.胎压过高蜂鸣器报警;

​演示视频:

基于51单片机气压监测系统—数码管显示

//ÏßÐÔÇø¼ä±ê¶È±ä»»¹«Ê½£º    y=(115-15)/(243-13)*X+15kpa   
#include <AT89X52.h> 
#include <intrins.h>
#include <stdio.h>#define R24C04ADD 0xA1
#define W24C04ADD 0xA0//ADC0832µÄÒý½Å
sbit ADCS =P2^2;  //ADC0832 chip seclect
sbit ADDI =P2^4;  //ADC0832 k in
sbit ADDO =P2^4;  //ADC0832 k out
sbit ADCLK =P2^3;  //ADC0832 clock signalsbit SDA = P2 ^ 1;	                        //Êý¾ÝÏß
sbit SCL = P2 ^ 0;	                        //ʱÖÓÏß
bit bAck;	                                  //Ó¦´ð±êÖ¾ µ±bbAck=1ÊÇΪÕýÈ·µÄÓ¦´ðunsigned char dispbitcode[8]={0xf7,0xfb,0xfd,0xfe,0xef,0xdf,0xbf,0x7f};  //λɨÃè
unsigned char dispcode[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};  //¹²ÑôÊýÂë¹Ü×Ö¶ÎÂë
unsigned char dispbuf[4];
unsigned int temp;
unsigned char getdata; //»ñÈ¡ADCת»»»ØÀ´µÄÖµvoid delay_1ms(void)  //12mhz delay 1.01ms
{unsigned char x,y;   x=3;while(x--) {y=40;while(y--);}
}
void display(void)  //ÊýÂë¹ÜÏÔʾº¯Êý
{char k;for(k=0;k<4;k++){P1 = dispbitcode[k];P0 = dispcode[dispbuf[k]];if(k==1)	  //¼ÓÉÏÊýÂë¹ÜµÄdpСÊýµãP0&=0x7f;delay_1ms();	  }
}/************
¶ÁADC0832º¯Êý
************///²É¼¯²¢·µ»Ø
unsigned int Adc0832(unsigned char channel)     //ADת»»£¬·µ»Ø½á¹û
{unsigned char i=0;unsigned char j;unsigned int dat=0;unsigned char ndat=0;if(channel==0)channel=2;if(channel==1)channel=3;ADDI=1;_nop_();_nop_();ADCS=0;//À­µÍCS¶Ë_nop_();_nop_();ADCLK=1;//À­¸ßCLK¶Ë_nop_();_nop_();ADCLK=0;//À­µÍCLK¶Ë,ÐγÉϽµÑØ1_nop_();_nop_();ADCLK=1;//À­¸ßCLK¶ËADDI=channel&0x1;_nop_();_nop_();ADCLK=0;//À­µÍCLK¶Ë,ÐγÉϽµÑØ2_nop_();_nop_();ADCLK=1;//À­¸ßCLK¶ËADDI=(channel>>1)&0x1;_nop_();_nop_();ADCLK=0;//À­µÍCLK¶Ë,ÐγÉϽµÑØ3ADDI=1;//¿ØÖÆÃüÁî½áÊø _nop_();_nop_();dat=0;for(i=0;i<8;i++){dat|=ADDO;//ÊÕÊý¾ÝADCLK=1;_nop_();_nop_();ADCLK=0;//ÐγÉÒ»´ÎʱÖÓÂö³å_nop_();_nop_();dat<<=1;if(i==7)dat|=ADDO;}  for(i=0;i<8;i++){j=0;j=j|ADDO;//ÊÕÊý¾ÝADCLK=1;_nop_();_nop_();ADCLK=0;//ÐγÉÒ»´ÎʱÖÓÂö³å_nop_();_nop_();j=j<<7;ndat=ndat|j;if(i<7)ndat>>=1;}ADCS=1;//À­µÍCS¶ËADCLK=0;//À­µÍCLK¶ËADDO=1;//À­¸ßÊý¾Ý¶Ë,»Øµ½³õʼ״̬dat<<=8;dat|=ndat;return(dat);            //return ad k
}//Æô¶¯I2C×ÜÏߣ¬¼´·¢ËÍÆðʼÌõ¼þ
void StartI2C()
{SDA = 1;	                      //·¢ËÍÆðʼÌõ¼þÊý¾ÝÐźÅ_nop_();SCL = 1;_nop_();		                    //Æðʼ½¨Á¢Ê±¼ä´óÓÚ4.7us_nop_();_nop_();_nop_();_nop_();SDA = 0;	                      //·¢ËÍÆðʼÐźÅ_nop_();_nop_();_nop_();_nop_();_nop_();SCL = 0;	                        //ʱÖÓ²Ù×÷_nop_();_nop_();
}
//½áÊøI2C×ÜÏߣ¬¼´·¢ËÍI2C½áÊøÌõ¼þ
void StopI2C()
{SDA = 0;	                        //·¢ËͽáÊøÌõ¼þµÄÊý¾ÝÐźÅ_nop_();		                      //·¢ËͽáÊøÌõ¼þµÄʱÖÓÐźÅSCL = 1;	                        //½áÊøÌõ¼þ½¨Á¢Ê±¼ä´óÓÚ4us_nop_();_nop_();_nop_();_nop_();_nop_();SDA = 1;	                        //·¢ËÍI2C×ÜÏß½áÊøÃüÁî_nop_();_nop_();_nop_();_nop_();_nop_();	
}
//·¢ËÍÒ»¸ö×Ö½ÚµÄÊý¾Ý
void	SendByte(unsigned char c)
{unsigned char BitCnt;for(BitCnt = 0;BitCnt < 8;BitCnt++)			          //Ò»¸ö×Ö½Ú{if((c << BitCnt)& 0x80) SDA = 1;	           //ÅжϷ¢ËÍλelse	SDA = 0;_nop_();SCL = 1;	                      //ʱÖÓÏßΪ¸ß£¬Í¨Öª´Ó»ú¿ªÊ¼½ÓÊÕÊý¾Ý_nop_();_nop_();_nop_();_nop_();_nop_();SCL = 0;}_nop_();_nop_();SDA = 1;	                                        //ÊÍ·ÅÊý¾ÝÏߣ¬×¼±¸½ÓÊÜÓ¦´ðλ_nop_();_nop_();SCL = 1;_nop_();_nop_();_nop_();if(SDA == 1) bAck =0;else bAck = 1;		                                //ÅжÏÊÇ·ñÊÕµ½Ó¦´ðÐźÅSCL = 0;_nop_();_nop_();
}
//½ÓÊÕÒ»¸ö×Ö½ÚµÄÊý¾Ý
unsigned char RevByte()
{unsigned char retc;unsigned char BitCnt;retc = 0;SDA = 1;for(BitCnt=0;BitCnt<8;BitCnt++){_nop_();SCL = 0;	                                    //ÖÃʱÖÓÏßΪµÍ£¬×¼±¸½ÓÊÕ_nop_();_nop_();_nop_();_nop_();_nop_();SCL = 1;	                                    //ÖÃʱÖÓÏßΪ¸ßʹµÃÊý¾ÝÓÐЧ_nop_();_nop_();retc = retc << 1;	                            //×óÒƲ¹Áãif (SDA == 1)retc = retc + 1;                             	//µ±Êý¾ÝΪ1ÔòÊÕµ½µÄÊý¾Ý+1_nop_();_nop_();}SCL = 0;_nop_();_nop_();return(retc);                                   //·µ»ØÊÕµ½µÄÊý¾Ý
}unsigned char WIICByte(unsigned char WChipAdd,unsigned char InterAdd,unsigned char WIICData)
{StartI2C();										      //Æô¶¯×ÜÏßSendByte(WChipAdd);							//·¢ËÍÆ÷¼þµØÖ·ÒÔ¼°ÃüÁîif (bAck==1)											  //ÊÕµ½Ó¦´ð{SendByte(InterAdd);								//·¢ËÍÄÚ²¿×ÓµØÖ·if (bAck ==1){SendByte(WIICData);							//·¢ËÍÊý¾Ýif(bAck == 1){StopI2C();                    //Í£Ö¹×ÜÏßreturn(0xff);}else{return(0x03);}			}else{return(0x02);}}return(0x01);
}
//¶ÁÈ¡Ö¸¶¨Æ÷¼þµÄÄÚ²¿Ö¸¶¨µØÖ·Ò»¸ö×Ö½ÚÊý¾Ý
unsigned char RIICByte(unsigned char WChipAdd,unsigned char RChipAdd,unsigned char InterDataAdd)
{unsigned char TempData;	TempData = 0;StartI2C();								        //Æô¶¯SendByte(WChipAdd);					    	//·¢ËÍÆ÷¼þµØÖ·ÒÔ¼°¶ÁÃüÁîif (bAck==1)								    	//ÊÕµ½Ó¦´ð{SendByte(InterDataAdd);					//·¢ËÍÄÚ²¿×ÓµØÖ·if (bAck ==1){StartI2C();SendByte(RChipAdd);	if(bAck == 1){TempData = RevByte();       //½ÓÊÕÊý¾ÝStopI2C();                  //Í£Ö¹I2C×ÜÏßreturn(TempData);           //·µ»ØÊý¾Ý}else{return(0x03);}	}else{return(0x02);}}else{return(0x01);}
}

硬件设计

使用元器件:

单片机:AC89C52;

(注意:单片机是通用的,无论51还是52、无论stc还是at都一样,引脚功能都一样。程序也是一样的。)

设计资料

01 仿真图

本设计使用proteus7.8和proteus8.9两个版本设计,向下兼容,无需担心!具体如图!

02 程序

本设计使用软件keil4和keil5两个版本编程设计,无需担心!具体如图

03 设计报告

一千字设计报告,具体如下!

04 设计资料

        资料获取请关注同名公众号,全部资料包括仿真源文件 、程序(含注释)、设计报告、仿真视频等。具体内容如下,全网最全! !

资料获取请观看前面演示视频!

点赞分享一起学习成长。

这篇关于基于51单片机轮胎胎压监测系统—数码管显示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/889340

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

电力系统中的A类在线监测装置—APView400

随着电力系统的日益复杂和人们对电能质量要求的提高,电能质量在线监测装置在电力系统中得到广泛应用。目前,市场上的在线监测装置主要分为A类和B类两种类型,A类和B类在线监测装置主要区别在于应用场景、技术参数、通讯协议和扩展性。选择时应根据实际需求和应用场景综合考虑,并定期维护和校准。电能质量在线监测装置是用于实时监测电力系统中的电能质量参数的设备。 APView400电能质量A类在线监测装置以其多核

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、