全套资料包含:Proteus仿真源文件+keil C语言源程序+AD原理图+流程图+元器件清单+说明书等
资料下载:
链接: https://pan.baidu.com/s/1Rc0fm-6g1rfAnENdw5uTfA?pwd=dnayhttps://pan.baidu.com/s/1Rc0fm-6g1rfAnENdw5uTfA?pwd=dnay 提取码: dnay
目录
项目功能:
基于51单片机汽车倒车防撞报警系设计:
1、采用单片机+C语言进行设计,实现倒车测距报警功能。
2、使用超声波实现倒车测距,如果距离过小进行声光报警。
3、使用LCD1602显示汽车倒车距离和温度信息。
4、使用按键设定汽车报警距离越近,报警声音频率越高。
项目文件:
一、Proteus仿真源文件
二、AD原理图文件
二、报告说明书
三、系统流程图
四、器件清单
Category | Quantity | References | Value |
Capacitors | 2 | C1-C2 | 30PF |
Capacitors | 1 | C3 | 22uF |
Resistors | 9 | R1,R18-R19,R22-R23,R26-R27,R29-R30 | 10k |
Resistors | 8 | R2,R15-R17,R20-R21,R24-R25 | 200 |
Resistors | 12 | R3-R14 | 100 |
Integrated Circuits | 1 | U1 | 单片机 |
Transistors | 8 | Q1-Q8 | PNP |
Diodes | 4 | D1,D4,D7,D10 | LED-RED |
Diodes | 4 | D2,D5,D8,D11 | LED-YELLOW |
Diodes | 4 | D3,D6,D9,D12 | LED-GREEN |
Miscellaneous | 1 | RP1 | RESPACK-8 |
Miscellaneous | 1 | X1 | CRYSTAL |
五、Keil c语言程序源代码(部分)
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit shi_B1 = P2^4;
sbit ge_B1 = P2^5;
sbit shi_B2 = P2^6;
sbit ge_B2 = P2^7;
unsigned char int_time; //记录中断次数
unsigned char second_A=24; //储存秒(东西)
unsigned char second_B=28; //储存秒(南北)
int Time_Count = 0;
uchar Flash_Count = 0,Operation_Type = 1;
unsigned char code Tab[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf};//共阳数码管0~F
/***********************************************************************
函数功能:快速动态扫描延时,延时约0.6毫秒
************************************************************************/
void delay(void)
{
unsigned char i;
for(i=0;i<200;i++)
;
}
void delay_ms(uint z)
{
unsigned int y;
for(;z>0;z--)
for(y=110;y>0;y--);
}
/***********************************************************************
函数功能:显示秒
入口参数:k
出口参数:无
************************************************************************/
void DisplaySecond_A(unsigned char k)
{
shi_A1=0;
ge_A1=1;
shi_A2=0;
ge_A2=1;
P0=Tab[k/10]; //显示十位
delay_ms(10);
shi_A2=1;
ge_A2=0;
P0=Tab[k%10]; //显示个位
delay_ms(10);
shi_A2=1;
ge_A2=1;
P0=0xff; //显示个位
delay_ms(10);
}
void DisplaySecond_B(unsigned char k)
{
shi_B1=0;
ge_B1=1;
shi_B2=0;
ge_B2=1;
P0=Tab[k/10]; //显示十位
delay_ms(10);
shi_B1=1;
ge_B1=0;
shi_B2=1;
ge_B2=0;
P0=Tab[k%10]; //显示个位
delay_ms(10);
shi_B1=1;
ge_B1=1;
shi_B2=1;
ge_B2=1;
P0=0xff; //显示个位
delay_ms(10);
}
void main()
{
char flag = 0;
TMOD = 0x01;
IE = 0x82;
TR0 = 1;
while(1)
{
DisplaySecond_A(second_A); //时间显示
DisplaySecond_B(second_B); //时间显示
}
}
void T0_INT() interrupt 1
{
TH0 = -50000/256;
TL0 = -50000%256;
int_time ++; //每来一次中断,中断次数int_time自加1
if(int_time==20) //够20次中断,即1秒钟进行一次检测结果采样
{
int_time=0; //中断次数清0
second_A--; //秒加1
second_B--;
if(second_A==0)
second_A =0;
if(second_B==0)
second_B =0;
}
if(flag_difengfirst==0)
{
Operation_Type=1;
second_A=24;
second_B=28;
flag_difengfirst=1;
flag_gaofengfirst=0;
}
switch(Operation_Type)
{
case 1:
RED_A=1;YELLOW_A=1;GREEN_A=0; //东西绿,南北红
RED_B=0;YELLOW_B=1;GREEN_B=1;
GREEN_A=1;
second_A=4;////4S
second_B=4;
break;
case 2: //A东西黄,B南北红都是
RED_A=1;YELLOW_A=0;GREEN_A=1;
RED_B=0;YELLOW_B=1;GREEN_B=1;
if(++Time_Count != 80) return;
Time_Count=0;
Operation_Type = 3;
YELLOW_A=1;
second_A=52; //A东西红,B南北绿
second_B=48;
break;
}
}
六、全套资料包含
七:项目资源获取
需要完整的资料可以点击下面的名片关注,回复“资料”!
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓