肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > 倒车雷达matlab仿真 51单片机倒车雷达测距系统仿真+源代码

倒车雷达matlab仿真 51单片机倒车雷达测距系统仿真+源代码

时间:2023-07-25 15:13:18

相关推荐

#include

#include "intrins.h"

#include "Lcd1602.h"

#define uchar unsigned char

#define uint unsigned int

sbit BEEP = P1^6;//报警提示口

sbit vout = P1^7;//脉冲发送口

sbit P3_2 = P3^2;//中断接收口

//sbit INT = P1^6;

bit flag;

//unsigned char discol[4]={0xef,0xdf,0xbf,0x7f};

unsigned char code Anum_code[]={"0123456789"};

//unsigned char disbuf[4]={0,1,2,3};

float high,low;

unsigned char qian,bai,shi,ge;

//unsigned char j=600;

/*void delay_1ms(void)//12mhz delay 1.01ms

{

unsigned char x,y;

x=3;

while(x--)

{

y=40;

while(y--);

}

}

void delay_1us(unsigned char i) //i=1, 5us; i=2,7us; i=3,9us

{

while(--i);

}*/

void delay_50us(unsigned int t) // t=100, 5ms; t=1000, 50ms

{

unsigned char j;

for(;t>0;t--)

for(j=19;j>0;j--);

}

/*void delay_50ms(unsigned int t) // t=10, 500ms; t=100, 5s;

{

unsigned int j;

for(;t>0;t--)

for(j=6245;j>0;j--);

}*/

void display(void)

{

Write_Comm(0x01); //清显示屏

Write_Comm(0x80);

Write_Data(Anum_code[qian]);

//Write_Comm(0x80);

Write_Data(Anum_code[bai]);

//Write_Comm(0x80);

Write_Data(Anum_code[shi]);

//Write_Comm(0x83);

Write_Data(Anum_code[ge]);

}

void work(void)

{

//unsigned char qian,bai,shi,ge;

float value;

value=(high*256+low)*17/100;

qian=value/1000;

bai=(value-qian*1000)/100;

shi=(value-qian*1000-bai*100)/10;

ge=value-qian*1000-bai*100-shi*10;

if(value<=1000)

{

BEEP=0;

}

else

{

BEEP=1;

}

/*disbuf[0] = qian;

disbuf[1] = bai;

disbuf[2] = shi;

disbuf[3] = ge;*/

}

main()

{

//unsigned char i;

//unsigned int t;

Lcd_Init();

TMOD = 0x11;

TH0 =0;

TL0 = 0;

TH1 = 0;

TL1 = 0;

P0 = 0xff;

P1 = 0xff;

P2 = 0xff;

P3 = 0xff;

//EX0 = 1; //允许外部中断0

ET1 = 1; //允许定时器1中断

EA = 1;

TR1 = 1;

while(1)

{

//display();

if(flag)

{

EA = 0;

work();

//EA = 0;

display();

//delay_50ms(100);

//for(i=5;i>0;i--)

//for(t=6245;t>0;t--);

flag = 0;

ET0 = 0; //禁止定时器0中断

TH0 = 0;

TL0 = 0;

ET1 = 1;

TR1 = 1;

EA = 1;

}

}

}

void INTT1() interrupt 3

{

unsigned char i;

EA = 0;

TR1 = 0;

EX0 = 0; //禁止外部中断

TH0 = 0;

TL0 = 0;

TH1 = 0;

TL1 = 0;

EA = 1;

TR0 = 1;

for(i=0;i<4;i++)

{

vout = ~vout;

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

}

delay_50us(40);

EX0 = 1; //开启外部中断

//ET0 = 1; //允许定时器0中断

/*if(j==600)

{

j=j+200;

TR0 = 1;

EX0 = 1; //开启外部中断

delay_50us(j);

INT=0;

}

else

{

j=j-200;

TR0 = 1;

EX0 = 1; //开启外部中断

delay_50us(j);

INT=0;

}*/

}

void PINT0() interrupt 0

{

//_nop_();

TR0 = 0; //关闭定时器0

EX0 = 0;

EA = 0;

low = TL0;

high = TH0;

……………………

…………限于本文篇幅 余下代码请从51黑下载附件…………

如果觉得《倒车雷达matlab仿真 51单片机倒车雷达测距系统仿真+源代码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。