《 单片机技术超声波测距》课程设计(2)

2019-01-26 15:13

//display(1234); Echo=0;

while(Echo==1);

//display(2244); TR1=0;

//EX0=1;

EX0=0; //关闭外部中断

distance=MeasuringDistance(timeH,timeL); while(1) {

display(distance); } } }

四.设计中的问题及改进

部分故障分析:

1、中间调试的时候发现数码管显示符号不清楚,利用延时和消隐顺利解决。

2、电路改进:

1、在proteus中发现没有超声波传感器,因此我们选择了用一个用电容和电阻来代替和模拟,通过滑动变阻器来调节距离的远近。

2、在第一次调试的时候发现数码管上没有显示,发现是因为没有在之间加上一个电阻,调整后得到了解决。

五.总 结

6

此次设计我受益良多。首先,我懂得了查阅资料的必要性。在做本次 实习的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的 设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少 的。与此同时,在实验设计过程中,我们也学习到了很多知识,学会了如何寻找问题的思路,学会了如何发现和解决问题,这对我们以后的学习有着重要的帮助。实验设计的劳动成果,会让我们受益终身。在今后的学习过程中,我相信我们会做的更好的。 六.源代码

#include //头文件 #define uchar unsigned char

#define uint unsigned int //定义变量类型 int i,j;

sbit Trig = P2^0; sbit Echo = P3^2; //sbit a4=P1^1; sbit a2=P1^2; sbit a1=P1^3;

sbit a3=P1^4;//数码管的位 sbit test=P1^6;//位定义

uint succeed_flag,time,timeH,timeL; uint distance; Unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //确定数码管数字

//char table[80];

void delay(uint z)//自定义延时函数 {

uint x,y;

for(x=z;x>0;x--) for(y=110;y>0;y--); }//延时函数

void delay_20us()//延时

7

{

uchar a;

for(a=0;a<16;a++); }

unsigned int MeasuringDistance(uint timeH,timeL)//计算距离 {

time=timeH*256+timeL; distance=(time*17)/1000; return distance; }

void display(uint temp)//将距离在数码管上显示 {

uchar one,two,three; one=temp/100;

two=(temp0)/10; three=temp; a1=a2=a3=1; a1=0;

P0=table[one]; delay(5); P0=0xff;

a1=a2=a3=1; a2=0;

P0=table[two]; delay(5); P0=0xff;

a1=a2=a3=1; a3=0;

P0=table[three]; delay(5); P0=0xff; }

void main() //echo输出响应 {

//test =0; Trig=0; Echo=0; EA=1;

TMOD=0x10; while(1) {

8

EA=0; Trig=1;

delay_20us();//延时等待 Trig=0;

while(Echo==0); succeed_flag=0; EA=1; //开启总中断 TH1=0; TL1=0;

EX0=1; //开启外部中断 TR1=1; TF1=0;// //delay(200); //display(1234); Echo=0;

while(Echo==1);

//display(2244); TR1=0;

//EX0=1;

EX0=0; //关闭外部中断

distance=MeasuringDistance(timeH,timeL); while(1) {

display(distance); } } }

void exter() interrupt 0 {

timeH =TH1; timeL =TL1; succeed_flag=1; EX0=0; } //外部中断

void timer1() interrupt 3 {

//TH1=0; //TL1=0;l }//定时器中断

七.电路图

9

四段数码管接线图

六、参考文献

[1] 超声波测距HC-SR04用户手册

[2].单片机原理与应用(C语言版) .北京人民邮电出版社 ,2013

10


《 单片机技术超声波测距》课程设计(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高中化学学业水平测试试卷

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: