#include<reg52.H>
#include<INTRINS.H>
#define uchar unsigned char
#define uint unsigned int
sbit lcdrs=P2^5;
sbit lcdrw=P2^6;
sbit lcden=P2^7;
sbit P20=P2^0;
sbit P21=P2^1;
bit flag;
uchar const table[]= "LENTH: mm ";
uchar const table1[]=" ";
uchar const table2[]="OUT OF RANGE!!! ";
float l;
uchar num,ge,shi,bai,qian,wan;
uint distance,t,i;
void send(void);
void delay(uint z); //延时z毫秒
void init();
void write_com(uint com);
void write_date(uint date);
void main()
{
init();
TMOD=0x01;
TH0=0;
TL0=0;
IT0=1;
ET0=1;
EA=1;
// PX0=1;
flag=1;
// TR0=1;
while(1)
{
if(flag)
{
// TR0=1;
send();
TH0=0;
TL0=0;
TR0=1; //定时器0开始计时
i=150;
while(i)
{
_nop_();
i--;
}
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
EX0=1; //允许INT0中断
}
}
}
void delay(uint z) //延时z毫秒
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void init() //1602初始化
{
write_com(0x38);
write_com(0x01);
write_com(0x0c);
write_com(0x06);
write_com(0x80);
for(i=0;i<16;i++)
{
write_date(table[i]);
}
write_com(0x80+0x40);
for(i=0;i<15;i++)
{
write_date(table1[i]);
}
}
void write_com(uint com) //1602写指令
{
lcdrs=0;
lcdrw=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_date(uint date) //1602写数据
{
lcdrs=1;
lcdrw=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void int_0() interrupt 0 //外部中断0服务函数
{ //定时器1停止
TR0=0; //定时器0停止
flag=1;
t=(TH0*256+TL0)/2; //单程传播时间
l=0.344*t;
distance=l;
wan=distance/10000;
qian=distance%10000/1000;
bai=distance%1000/100;
shi=distance%100/10;
ge=distance%10;
write_com(0x80+0x06);
write_date(0x30+wan);
write_date(0x30+qian);
write_date(0x30+bai);
write_date(0x30+shi);
write_date(0x30+ge);
}
void timer0() interrupt 1 //定时器0中断服务函数
{
write_com(0x80+0x40);
for(i=0;i<16;i++)
{
write_date(table2[i]);
}
P21=~P21;
TR0=0;
flag=1;
}
void send(void) //P20口发送40KHZ方波
{flag=0;
i=25;
while(i)
{
P20=1;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
P20=0;
_nop_();
_nop_();
_nop_();
_nop_();
i--;
}
}
超声波测距51单片机C语言源程序
5星 · 超过95%的资源 需积分: 19 128 浏览量
2009-07-31
10:09:23
上传
评论 6
收藏 3KB RAR 举报
lidongzzu
- 粉丝: 1
- 资源: 10
最新资源
- 课程设计-基于SpringBoot + Mybatis+python爬虫NBA球员数据爬取可视化+源代码+文档+sql+效果图
- 软件品质管理系列二项目策划规范.doc
- 基于TensorFlow+PyQt+GUI的酒店评论情感分析,支持分析本地数据文件和网络爬取数据分析+源代码+文档说明+安装教程
- 软件定义无线电中的模拟电路测试技术.pptx
- 软件开发协议(作为技术开发合同附件).doc
- 软件开发和咨询行业技术趋势分析.pptx
- 软件测试题详解及答案.doc
- 软件漏洞生命周期管理策略.pptx
- 毕业设计-基于Python实现的的简易气温爬虫,可以爬取全国各市的近7日气温数据
- 软件系统测试报告(实用版).doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页