找回密码
 注册
关于网站域名变更的通知
查看: 400|回复: 2
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
实际工作中常常需要自动测量两点间的距离,如液面的高度、机动车倒车时与障碍物间的距离等等。在这类距离的测量中,一点是可达到的,另一点则是不可到达的。因此,测量时,从可到达的一点发射一定频率的信号波,经不可到达的一点反射回来,由接收电路接收回波信号。单片机准确计算信号在两点间传播所用的时间,再根据发射波的传播速度,计算出两点间的距离。0 I9 m4 s" x7 W
    设计电路时,首先分析测量的对象,选择合适的信号波发射器(如发射声波、红外线、超声波等)。若所选信号波传播速度较慢,可通过单片机对发射波与回波的查询或由发射波与回波触发中断,开关定时器完成计时功能。当波的传播速度很快时(如超声波),测出的误差很大。原因在于:其一,不管是查询发射波与回波,还是由之触发单片机中断再通过软件启停定时器均需要一定的时间(中断的方式误差相对要小);其二,相对而言,单片机的时间分辨率不是太高,如晶振频率为12MHz,则时间分辨率为1μs。
, u& |2 H8 n; o% {% U    引入专用的定时/计数器8254进行计时,可大大提高测距系统的精确性。8254的每个定时器都有一个GATE门控信号,可用发射波与回波直接启停8254,而不必把发射波与回波接至单片机,通过中断或查询再发出定时器启停信号。同时,8254具有更高的工作频率,时间的分辨率更高,如输入4MHz的工作频率,时间分辨率为0.25μs。. V6 E2 D3 k( h: ^4 i
    一、硬件结构
9 o0 b) D+ J5 j    电路如附图。图中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显示电路,则可将测出的距离显示出来。
* u' s* L$ N+ C/ D( A    如果波的来回传播时间超过了8254一次计时的最大范围,可将其定时器的OUT引脚接至单片机的INT1,由中断累加计时。! x5 A8 }5 W4 V4 X3 \& ], j
    二、软件编程3 }; J7 |6 u6 k0 M9 s) `* |
    主要程序清单如下:! M% _* l5 K2 \  `/ s9 @$ V6 H: }
            ORG 0000H' |, x) e4 _  z! W( Z& d0 e" v! U
            AJMP START- s/ n* W' @# c
            ORG 0003H; @& U$ e; T! g- ~# N& t, p2 ]* C8 X
            AJMP WBZD
6 a4 T" f  `7 nSTART:CLR P1.0;JK触发器初态置0
5 q9 j* Z8 T: R( n            MOV R0,#7FH;8254工作方式:T0方式0,16位
/ e: e+ [' m& N! W+ A( |            MOV A,#00110000
3 b  Y+ _7 u: R  Y            MOV @R0,A- E' {  U8 L9 a* v# ]
            MOV R0,#7CH2 J# h- K& |1 y. t( }- A; x7 q$ _. m
            MOV A,#0FFH
. e) F' D5 D( `( ]. G! }3 C0 l3 b            MOV @R0,A;置T0计数初值低8位8 _6 b, x0 E& r( u6 G) f
            MOV @R0,A;置T0计数初值高8位(最大范围)% o1 M8 k+ K# `) c3 N# a
            SETB IT0;/INTO下跳沿触发
4 Q. w: G# w9 \            SETB EA5 {$ h& q' W! Y% Q: {& s
            SETB EX0;开/INT0中断4 M" p( E. U% }
TAB:    ACALL  ;数据处理子程序
3 k! g  \+ c3 z* V! z5 t            ACALL  ;键盘处理子程序
. U3 Z! }5 }, @# i% n/ X            AJMP TAB) x  U. g$ y! p* ~
WBZD:  MOV R0,#7CH;中断服务子程序/ J4 Y. p3 g  g7 W
            MOV A,@R0
4 x" T: X' ~/ P) r# ~) \, h            MOV 20H,A;读出低8位时标送20H8 [4 S5 G& ]0 K
            MOV A,@R0; k8 y7 w  R/ D# `  B* Q4 N
            MOV 21H,A;读出高8位时标送21H1 a: G+ r/ ~' w$ ~9 s4 x
            MOV A,#0FFH
' d9 z! q6 F  h2 T0 L            MOV @R0,A
% P( P: R6 j7 u! j  ~            MOV @R0,A;重装计数初值8 F* u/ g  g1 R+ [" S4 w: B" V
            CLR P1.0;JK触发器初态置0# Y/ f" J7 g  A2 E; q: u7 P
            RETI
8 ^" S1 i0 n8 G6 M  g            END

该用户从未签到

2#
发表于 2016-8-16 10:35 | 只看该作者
学习中,谢谢分享3 I4 _/ h; }( G; m
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-1 15:15 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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