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

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

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

功能介绍

具体功能:

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

2.51单片机处理控制;

3.LCD1602液晶显示胎压;

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

#include <AT89X52.h> 			
/*********΢ÐŹ«ÖںţºÄ¾×Óµ¥Æ¬»ú*******/
#include <intrins.h>
#include <stdio.h>
//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 signal
#define uint unsigned int //ºê¶¨Òå
#define uchar unsigned char//ºê¶¨Òå
unsigned char dispbuf[8];
unsigned int temp;
unsigned int rx_buff[4];
unsigned char getdata,getdata1; //»ñÈ¡ADCת»»»ØÀ´µÄÖµ
sbit en = P2^5; //Òº¾§Ê¹ÄܶË				6
sbit rw = P2^1; //Òº¾§¶ÁдѡÔñ¶Ë			5
sbit rs = P2^0; //Òº¾§Êý¾ÝÃüÁîÑ¡Ôñ¶Ë		4  
sbit beep=P3^7;
//**************ºÁÃë*******************
void delayxms(uint ms)					   //ÑÓʱ x  ms
{
    uint a,j;
    for(a=0;a<ms;a++) 
	  for(j=0;j<110;j++);
}

/*******************************************************************
                  дÃüÁî
************************************************************************/
void xiemingling(unsigned char mingling)
{
  en=0;
  rs=0;
  rw=0;
  P0=mingling;
  delayxms(5);
  en=1;
  delayxms(10);
  en=0;
}
/*******************************************************************
                  дÊý¾Ý
************************************************************************/
void xieshuju(unsigned char shuju)
{   
  en=0;
  rs=1;
  rw=0;
  P0=shuju;
  delayxms(5);
  en=1;
  delayxms(10);
  en=0;
}
/*******************************************************************
                  Òº¾§³õʼ»¯
************************************************************************/
void chushihua()
{
  delayxms(20); //¸øÒº¾§Ò»¶Îʱ¼ä
  en=0;
  xiemingling(0x38);//ÉèÖÃ16*2ÏÔʾ£¬5*7µãÕó£¬8λÊý¾Ý½Ó¿Ú
  delayxms(20);
  xiemingling(0x38);//
  delayxms(20);
  xiemingling(0x0c);//ÉèÖÿªÏÔʾ£¬²»ÏÔʾ¹â±ê
  delayxms(20);
  xiemingling(0x06);//дһ¸ö×Ö·ûºóµØÖ·Ö¸Õë¼Ó1
  delayxms(20);
  xiemingling(0x01);//ÏÔʾÇåÁ㣬Êý¾ÝÖ¸ÕëÇåÁã
  delayxms(20);
  xiemingling(0x80);//Ö¸¶¨×Ö·ûÏÔʾµÄʵ¼ÊµØÖ·£¬£¬£¬ÏÔʾλÖõÄÈ·¶¨·½·¨¹æ¶¨Îª"80H+µØÖ·Âëx"
  delayxms(20);
}

void delay(uint xms)  //ÑÓʱ
{
	uint xx,yy;
	for (xx=xms;xx>0;xx--)
		for(yy=110;yy>0;yy--);
}

/************
¶Á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¶Ë,ÐγÉϽµÑØ3
    ADDI=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
}

硬件设计

使用元器件:

单片机:AC89C52;

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

设计资料

01 仿真图

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

02 程序

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

03 设计报告

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

04 设计资料

全部资料包括仿真源文件 、程序(含注释)、设计报告等。具体内容如下,全网最全! !

 

下面是开源51单片机设计资料

​大家共同学习进步:

链接:百度网盘 请输入提取码

提取码:rwtn

点赞分享,一起学习进步!一起成长。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值