標(biāo)題:
單片機(jī)車載智能設(shè)備程序源碼
[打印本頁(yè)]
作者:
樊鋒
時(shí)間:
2020-11-20 13:09
標(biāo)題:
單片機(jī)車載智能設(shè)備程序源碼
這個(gè)程序是實(shí)現(xiàn)泥頭車遠(yuǎn)程智能管理,遠(yuǎn)程平臺(tái)可以實(shí)時(shí)對(duì)車輛進(jìn)行監(jiān)控。車載智能設(shè)備每隔3秒鐘就給平臺(tái)發(fā)送車輛位置,油剩余量,車速,揚(yáng)塵量數(shù)據(jù)發(fā)送到平臺(tái)。
單片機(jī)源程序如下:
#include "eeprom.h"
#include "bianma.h"
#include <reg52.h>
#include <intrins.h>
sbit AM=P3^2;
sbit BM=P3^3;
sbit k=P3^7;
sbit s=P3^6;
extern uint temp,temp2;
extern uint AR,BR;
extern uint date;
extern uchar kc;
extern uint AT,BT;
uchar num_a=0;
uchar num_b=0;
uint dateA, dateB,numB;
uchar cofig,key,a=0;
uchar ok,u;
uchar i,r;
uint Compare[5]={0,0,0,0,0};
uint Compare1[5]={0,0,0,0,0};
void waiint()
{
EX0=1;
IT0=0;
EA=1;
}
void delayss(UINT16 z)
{
UINT16 x,y;
for(x=z;x>0;x--)
for(y=120;y>0;y--);
}
void main()
{
waiint();
intt();
num_a=EEPROMReadByte(1);delayss(60);
num_b=EEPROMReadByte(2);delayss(60);
//date=num_a+(254*num_b);
SBUF=num_a;while(TI==0);TI=0;
TR1=1;
SBUF=num_b;while(TI==0);TI=0;
delay(100);
date=num_a;
date=(date<<8)&0xff00;
date=date|num_b;
key=2;
kc=0;
dateA=0;
while(1)
{
if(s==0)
{
delay(10);
if(s==0)
{ AR=0;}}
while(k==0)
{ TR0=1;
while(k==0)
{
ok=1;
if(Compare1[0]==0xff&&Compare1[1]==0xff&&Compare1
[2]==0xff&&Compare1[3]==0xff&&Compare1[4]==0xff)
{r++;}
else
if(Compare1[0]==0x00&&Compare1[1]==0x00&&Compare1
[2]==0x00&&Compare1[3]==0x00&&Compare1[4]==0x00)
{r++;}
else
{ Compare[4]=0x00;}
if(r==5&&Compare[0]<Compare[4])
{dateA=Compare[4];r=0;}
// dateA=Compare[9];
TR1=1;
if(dateA!=0)
{
SBUF=num_a=dateA>>8;
while(TI==0);TI=0;TR1=1;
SBUF=num_b=dateA&0XFF;
while(TI==0);TI=0; }}
TR0=0;
delay(1);
EA=0;
EEPROMSectorErase(1);
EEPROMWriteByte(1,num_a);
EEPROMWriteByte(2,num_b);
delay(1000); EA=1; }
// mm: dateA=caiji();
// if(dateA==0xff)
// {goto mm;}
if(Compare1[0]==0xff&&Compare1[1]==0xff&&Compare1
[2]==0xff&&Compare1[3]==0xff&&Compare1[4]==0xff)
{r++;}
else
if(Compare1[0]==0x00&&Compare1[1]==0x00&&Compare1
[2]==0x00&&Compare1[3]==0x00&&Compare1[4]==0x00)
{r++;}
else
{ Compare[4]=0x00;}
if(r==5&&Compare[0]<Compare[4])
{dateA=Compare[4];r=0;}
if(key==10)//順時(shí)針轉(zhuǎn)cofig=1;(關(guān)閉 )
{
if(dateA>20)
{ TR2=1;
if(temp>=1000)
{
temp=0;
if(date<=(dateA+5))// 車蓬閉合良好
{ SBUF=0xd2;while(TI==0);TI=0;dateA=0;
key=2;AT=BT=0;TF2=0;TR2=0;delay(1000);}
else
{SBUF=0xd1;while(TI==0);TI=0;TF2=0; delay(100);}
}}
}
if(key==2) //逆時(shí)針轉(zhuǎn)cofig=0;( 打開(kāi) )
{
if((dateA>=30)&&(dateA<=300))//車蓬沒(méi)關(guān)好
{
TR2=1;
if(temp>1000)
{SBUF=0xd1;while(TI==0);TI=0;temp=0;}
}
if(dateA>350)
{temp=0;TR2=0;}
if(date<=(dateA+30)) //車篷全開(kāi)
{
temp=0;
TR2=0;SBUF=0xd3;while(TI==0);
TI=0;dateA=0;key=1;AT=BT=0;TF2=0;delay(10);}
}
}}
void teim(void) interrupt 0
{ uchar h,l;
while(AM==0);
if(ok==1)
{
if(BM==1)
{h++;if(h==5){dateA++;cofig=0xff;h=0;u++;}}//順時(shí)針
else
if(BM==0)
{l++;if(l==5){dateA++;cofig=0x00;l=0;u++;}}//逆時(shí)針
Compare[u]=dateA;
Compare1[u]=cofig;
if(u==5){u=0;}
ok=0; }TR0=0;TR1=1;}
void time4(void) interrupt 4
{TR1=0;}
void time0(void) interrupt 1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
temp++; temp2++;
if (temp2>5000)
{temp2=0;}
if(temp>2000)
{temp=0;}
}
復(fù)制代碼
作者:
admin
時(shí)間:
2020-11-21 22:04
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說(shuō)明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
作者:
樊鋒
時(shí)間:
2020-11-30 14:22
車載智能管理設(shè)備電路原理圖現(xiàn)在上傳
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1