全球旧事资料 分类
di
it_CTCvoid

TMOD0x21设CTC1工作于模式2
ET00
不允许CTC0中断
voidi
it_INT外部中断初始化为高优先级,并开中断
IP0x01置外部中断INT0优先级为高
TCON0设置外部中断0的中断方式为电平触发

voidserve_INT0i
terrupt0
外部中断0,用于检测接收信号TR00关闭定时器0EX00关中断
timelo
gTL0timelo
gTH0256CLflag1
CTC1中断服务程序,125us中断一次用于发射voidCTC1_INTi
terrupt3
VOLCKVOLCKcshuvoidCTC0_INTi
terrupt1TR00ET00
912
f
voidTimetojuli将测量的时间转换为距离

lo
gi
ilo
gtime
ii340
ii2

umber4i10000000十米
ii
umber410000000

umber3i1000000米
ii
umber31000000

umber2i100000分米
ii
umber2100000

umber1i10000厘米
iilo
g
umber110000

umber0i1000毫米

uchargetkey读键盘
主程序
voidmai


i
tikey
i
it_CTC初始化定时器
i
it_INT初始化外部中断
CLflag1测量标志
fori6i4idispi0xff
cshu0传数
delay200
延时
IE0x80
开中断
ET10ET00
TR10TR00
TL1T12usTH1T12us
while1

keygetkey读键盘
ifkey0x0feCLflag1测量

key0CLflag0
cshu0
TL1T12usTH1T12us
TL00TH00定时器0的初始时间
TR01启动定时器0,开始记时
TR11启动定时器1,发送信号
ET11
1012
fwhilecshu12
ET10
发十个脉冲串
TR10
delay95
EX01
whileCLflag
ifcshu10CLflag1
Timetojuli
dispfb




uchargetkey

charflag
ucharkeykeytemp
flag0
keytempP1
ifkeytemp0xffretur
255
else
flag1
delay100
keyP1
ifkeykeytempretur
key
elseretur
255


五、实验结果及分析
表2是利用本文的测距仪进行实际测量的结果。由表中数据可见在20~150cm范围内误差相对较小;小于20cm范围内误差较大,这是因为超声波距离测量存在一定范围的盲区盲区的出现是因为发出信号必须有一个上升时间当距离太近时计算机系统已不能处理迅速返回的反射波信号所以距离小于02米测量误差明显增加。
300cm以后的数据误差明显增大这是由于发射功率不够大接收到的信号很微弱引入了一些干扰因素。但电路引入温度补偿电路后总的实验结果误差在厘米级基本上可以满足测量要求。
1112
f实际距离cm
测量结果cm
误差
实际距离cm
测量结果cm
误差
2001951300126308
3004005006007009001000
31
39
51
60
69
88100
33325
2
01432220
1500200r
好听全球资料 返回顶部