找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 45|回复: 2
打印 上一主题 下一主题

单片机构成的精确测距系统

[复制链接]

165

主题

528

帖子

1255

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1255
跳转到指定楼层
1#
发表于 2016-8-15 15:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您!

您需要 登录 才可以下载或查看,没有帐号?注册

x
实际工作中常常需要自动测量两点间的距离,如液面的高度、机动车倒车时与障碍物间的距离等等。在这类距离的测量中,一点是可达到的,另一点则是不可到达的。因此,测量时,从可到达的一点发射一定频率的信号波,经不可到达的一点反射回来,由接收电路接收回波信号。单片机准确计算信号在两点间传播所用的时间,再根据发射波的传播速度,计算出两点间的距离。# p. G% h0 M+ e: v- d  V
    设计电路时,首先分析测量的对象,选择合适的信号波发射器(如发射声波、红外线、超声波等)。若所选信号波传播速度较慢,可通过单片机对发射波与回波的查询或由发射波与回波触发中断,开关定时器完成计时功能。当波的传播速度很快时(如超声波),测出的误差很大。原因在于:其一,不管是查询发射波与回波,还是由之触发单片机中断再通过软件启停定时器均需要一定的时间(中断的方式误差相对要小);其二,相对而言,单片机的时间分辨率不是太高,如晶振频率为12MHz,则时间分辨率为1μs。% S: Q) f2 s7 ]/ G. b/ n: Y( C
    引入专用的定时/计数器8254进行计时,可大大提高测距系统的精确性。8254的每个定时器都有一个GATE门控信号,可用发射波与回波直接启停8254,而不必把发射波与回波接至单片机,通过中断或查询再发出定时器启停信号。同时,8254具有更高的工作频率,时间的分辨率更高,如输入4MHz的工作频率,时间分辨率为0.25μs。
+ S0 C) C" F; \# k# p) g    一、硬件结构4 T7 t  C3 Z4 f
    电路如附图。图中8254的地址为7CH(0#定时器)、7DH(1#定时器)、7EH(2#定时器))、7FH(控制口),其工作频率CLK0由外部电路提供4MHz的脉冲信号(该信号为计时的基准信号,频率要求精确,可用4060等分频器实现)。受发射波与回波控制的JK触发器的输出作为8254 0#定时器的门控信号GATE0,回波信号同时作为单片机INT0的中断响应信号。初始化时,由单片机的P1.0口控制JK触发器的初态为0,8254的T0不计时;发射波产生后,JK触发器翻转,T0开始工作,计数初值不断减1;收到回波信号后,JK触发器再次翻转,8253的T0停止工作,同时触发单片机中断,在中断服务程序中读出时标(计数初值中所剩余的值),然后由数据处理子程序计算出距离。若增加LED显示电路,则可将测出的距离显示出来。! Z; z, p; @3 P4 s& P
    如果波的来回传播时间超过了8254一次计时的最大范围,可将其定时器的OUT引脚接至单片机的INT1,由中断累加计时。  T0 k( U# F( j8 z& `
    二、软件编程
/ u; a7 \: T/ m" a9 I! {' e    主要程序清单如下:
8 |% L+ m/ o: ~6 c2 ?            ORG 0000H
: z. C  G+ b% ^6 x5 \# F            AJMP START
) B% B  x+ \/ j            ORG 0003H
9 A1 w; u4 g2 z( {; F) f            AJMP WBZD: Z4 ~9 E- W. e3 H1 z5 Y
START:CLR P1.0;JK触发器初态置0( m9 Z( G. O, [9 g' A7 I) J' W
            MOV R0,#7FH;8254工作方式:T0方式0,16位
7 W$ p& h! R! ~; m$ E  E; |            MOV A,#00110000' ?( P- H6 G, h4 g2 V7 P
            MOV @R0,A
8 I2 ^' F% ?/ `& T. S+ L            MOV R0,#7CH
1 Q" W/ k9 L% F  _  i9 h" u# f2 B            MOV A,#0FFH
5 k& n) e; p. y- y            MOV @R0,A;置T0计数初值低8位& F- X" ?# s4 R
            MOV @R0,A;置T0计数初值高8位(最大范围)
, y$ E& m) i7 M7 Z            SETB IT0;/INTO下跳沿触发' Q6 m& ]. _# ~" d3 @$ V4 J  s
            SETB EA2 E( v. z  F& D& L6 \" j: J
            SETB EX0;开/INT0中断
# I" V- l7 k: S0 ]0 q% KTAB:    ACALL  ;数据处理子程序
" e0 L: w8 l+ d# i7 r            ACALL  ;键盘处理子程序4 Q+ A6 M: F$ d1 v& f! d% s! |8 M9 k
            AJMP TAB
8 H! P6 ~8 i: d) i: j5 YWBZD:  MOV R0,#7CH;中断服务子程序- V9 v4 d; H' R6 k
            MOV A,@R0
7 G0 \/ A: I9 t# `            MOV 20H,A;读出低8位时标送20H) Z; [6 {5 C2 D8 u8 ^; {. R/ ~& ^
            MOV A,@R0
9 V: `8 w: P) t3 F& N+ E            MOV 21H,A;读出高8位时标送21H
; T2 e1 a+ Z- O8 e! Y4 n            MOV A,#0FFH
& e0 y) v/ B3 S& T1 D            MOV @R0,A( U4 ^& B# y. v) F
            MOV @R0,A;重装计数初值. v$ j4 t4 a9 p% U1 b
            CLR P1.0;JK触发器初态置0
! k$ Q' {; ^$ ^0 I            RETI
( M' D( q1 h* ^: j4 y4 |2 s/ i            END
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

211

主题

652

帖子

1507

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1507
2#
发表于 2016-8-16 10:35 | 只看该作者
学习中,谢谢分享; u8 a9 O) u; J' z+ A+ o5 |: k

162

主题

614

帖子

1255

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1255
3#
发表于 2016-11-30 10:42 | 只看该作者
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-3-11 04:19 , Processed in 0.053643 second(s), 31 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表