51单片机驱动超声波测距模块C51程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

51单片机驱动超声波测距模块C51程序

#include;

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

//******************* 函数声明

**************************

void init_Total(); //总初始化

void init_T0(); //初始化定时器T0

void init_T1(); //初始化定时器T1

void init_inter0();//初始化外部中断1

void send_T();

void delay(uint z);//延时一段时间

void delay_300us();//延时300us

void delay_100us();//延时100us

//*********************************************** *********

sbit lcdrs=P1^7;

sbit lcdrw=P3^1;

sbit lcden=P1^5;//1602液晶控制端

sbit send=P1^0;

//sbit BEEP=P2^5;

sbit wei=P2^6;

sbit duan=P2^7;

volatile uchar Count_TH ,Count_TL;//分别读计数器T1的高位TH1,低位TL1

uchar t0,flag;

uint time;

uchar code table1[]=" distance "; uchar code table2[]=" ";//初始化显示

void write_com(uchar com)//1602写指令函数

{

lcdrs=0;

P0=com;

delay(5);

lcden=1;

delay(5);

lcden=0;

void write_data(uchar datb)//1602写数据函数{

lcdrs=1;

P0=datb;

delay(1);

lcden=1;

delay(1);

lcden=0;

}

void distance(uchar addr,uint datb)

{

uchar bai,shi,ge ;

bai=datb/100;

shi=datb%100/10;

ge=datb%10;

write_com(0x80+0x40+addr);

write_data(0x30+bai);

write_data(0x30+shi);

write_data(0x30+ge);

}

/************************************************ **************************************

* 名称:void init_Total()

* 功能:总初始化

* 入口参数:NULL

* 全局变量:NULL

* 返回值:NULL

************************************************* *************************************/

void init_Total()

{

init_T0(); //初始化定时器T0为工作方式2 init_T1(); //初始化定时器T1为工作方式1 init_inter0();//初始化外部中断1

EA=1; //开总中断

}

/************************************************ **************************************

* 名称:void init_T0()

* 功能:初始化定时器T0为工作方式2

* 入口参数:NULL

* 全局变量:NULL

* 返回值:NULL

************************************************* *************************************/

void init_T0()

{

TMOD=0X12;

TH0=0XE7;

TL0=0XE7;

EA=0;

ET0=1;

TR0=1;

}

/************************************************ **************************************

* 名称:void init_T1()

* 功能:初始化定时器T1为工作方式1

* 入口参数:NULL

* 全局变量:NULL

* 返回值:NULL

************************************************* *************************************/

void init_T1()

{

TMOD=0X12;

TH1=0;

TL1=0;

EA=0;

ET1=1;

TR1=1;

}

/************************************************ **************************************

* 名称:void init_inter1()

* 功能:初始化外部中断1为低电平触发方式

* 入口参数:NULL

* 全局变量:NULL

* 返回值:NULL

************************************************* *************************************/

void init_inter0()

{

IT0=0; //低电平触发

相关文档
最新文档