hc-sr04c语言程序,1602和HC-SR04超声波模块测距C语言程序.doc

1602和HC-SR04超声波模块测距C语言程序

#define uchar unsigned char

#define uint unsigned int

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

Trig超声波传感器控制端,

Echo超声波传感器接收端。

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

sbit Trig=P2^4;

sbit Echo=P3^2;

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

lcd_rs为1602液晶数据命令选择,

lcd_en为1602液晶使能端,lcd_rw

为1602液晶读写控制端。

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

sbit lcd_rs=P2^5;

sbit lcd_rw=P2^6;

sbit lcd_en=P2^7;

#include

#include

#include"ZNCCSB1.h"

void init(); //函数初始化

void LCD_init(); //LCD的初始化

void LCD_write_date(uchar date); //lcd的写数据函数

void LCD_write_com(uchar com); //lcd的写指令函数

void delay(uint); //延时函数

void dev_delay(); //读写延时函数

void distance_display(); //lcd的显示函数

uchar code num[] ={'0','1','2','3','4','5','6','7','8','9','m'};

uchar code warning[]={"Measurement error!"};

uchar T0_cout,display_flag;

uint T0_time;

void main()

{

delay(1500);

init();

while(1)

{

Trig=1;

delay(20);

Trig=0;

while(Echo==0);

TR0=1;

while(Echo==1);

//TR0=0;

while(display_flag==0);

while(display_flag==1)

{

display_flag=0;

LCD_init();

distance_display();

delay(1500);

}

}

}

void dev_delay()

{

_nop_();

_nop_();

_nop_();

_nop_();

}

void delay(uint time)

{

uchar x;

uint y;

for(y=time;y>0;y--)

for(x=220;x>0;x--);

}

void LCD_write_com(uchar com)

{

lcd_en=0;

lcd_rs=0;

lcd_rw=0;

P0=com;

dev_delay();

lcd_en=1;

delay(1);

lcd_en=0;

dev_delay();

}

void LCD_write_date(uchar date)

{

lcd_rs=1;

lcd_rw=0;

lcd_en=0;

P0=date;

dev_delay();

lcd_en=1;

delay(1);

lcd_en=0;

dev_delay();

}

void LCD_init()

{

LCD_write_com(0x38);

LCD_write_com(0x0c);

LCD_write_com(0x06);

LCD_write_com(0x01);

}

void init()

{

LCD_init();

TMOD=0x01;

TH0=0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值