}
DisplayOneChar(9, 1, ASCII[11]);
DisplayOneChar(10, 1, ASCII[12]); //显示M } else {
disbuff[0]=S00/100; disbuff[1]=S000/10; disbuff[2]=S00 ;
DisplayOneChar(6, 1, ASCII[disbuff[0]]); DisplayOneChar(7, 1, ASCII[10]);
//显示点
DisplayOneChar(8, 1, ASCII[disbuff[1]]); DisplayOneChar(9, 1, ASCII[disbuff[2]]); DisplayOneChar(10, 1, ASCII[12]); //显示M }
4.4报警模块程序设计 4.4.1模块简介
报警模块主要用于驱动蜂鸣器与LCD小灯,达到报警的效果。 4.4.2模块代码 void beep() { }
4.5辅助代码
该部分代码主要用于对整个代码框架起辅助作用,主要包括系统中所包含的函数接口声明,以及系统硬件各个硬件接口申明定义,以及系统常用延时函数,
21
int i; SPK = 0;
for(i = 0; i <50; i++) {
DelayUs2x(100); SPK =!SPK; } SPK = 1;
一些标志函数。起到了精简代码的所用,减少了整个代码的冗余度,同时使程序在运行的过程中简洁。
系统硬件接口以及函数声明 #include #include
#define SPK P1_0 //喇叭定义 #define LED P1_1
#define LCM_RW P2_5 //定义LCD引脚 #define LCM_RS P2_4 #define LCM_E P2_6 #define LCM_Data P0
#define Busy 0x80 //用于检测LCM状态字中的Busy标识
voidLCMInit(void);
voidDisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
voidDisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);
void Delay5Ms(void); void Delay400Ms(void);
void Decode(unsigned char ScanCode); voidWriteDataLCM(unsigned char WDLCM);
voidWriteCommandLCM(unsigned char WCLCM,BuysC);
unsigned char ReadDataLCM(void); unsigned char ReadStatusLCM(void);
unsigned char code mcustudio[] ={%unsigned char code email[] = {\
unsigned char code Cls[] = {%unsigned char code ASCII[15] =
{'0','1','2','3','4','5','6','7','8','9','.','-','M'};
22
//器件配置文件
static unsigned char DisNum = 0; //显示用指针 unsignedinttime=0;
unsigned long S=0; bit flag =0;
unsigned char disbuff[4] ={ 0,0,0,0,};
系统各级别延时函数: //5ms延时
void Delay5Ms(void) { }
//400ms延时
void Delay400Ms(void) { }
void zd0() interrupt 1 {
flag=1; }
voiddelayms(unsigned intms) {
unsigned char i=100,j; for(;ms;ms--) {
23
unsignedintTempCyc = 5552; while(TempCyc--);
unsigned char TempCycA = 5; unsignedintTempCycB; while(TempCycA--)
{ };
TempCycB=7269; while(TempCycB--);
//T0中断用来计数器溢出,超过测距范围
//中断溢出标志
}
}
while(--i) { }
j=10; while(--j);
void DelayUs2x(unsigned char t) { while(--t); }
24
结论
本文介绍了基于89C51单片机的超声波倒车雷达系统的设计,对整个硬件电路和软件程序设计进行分析,文中介绍了倒车雷达的现状及发展,介绍了超声波倒车雷达的设计方案选择及原理介绍,加深了51单片机的知识了解。学习对超声波模块HC-SR04的使用、硬件绘图软件altium designer,单片机开发软件keil uvision4的使用,采用仿真软件能更直观的反应设计的正确性,缩短设计时间。其实写完了本篇论文,也仅仅是对基于单片机控制超声波测距雷达做了一个简单的设计方案,但超声波可利用在很多领域,例如在工程学方面的应用:水下定位与通讯、地下资源勘查等,治疗学方面的应用:理疗、治癌、外科、体外碎石、牙科等。本文利用超声波超声波在传播时,方向性强,能量易于集中. 能在各种不同媒质中传播,且可传播足够远的距离的特点设计倒车雷达,该设计在安全驾驶领域有较好的实用价值。
25