|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
. U( e2 [) ` S, B I
摘要:介绍了一种基于单片机的智能仪器前面板的设计及实现方法。根据数字旋钮的特点,在硬件上设计了鉴相电路检测旋
( R2 h7 Q6 {/ m. t( g" d5 P钮的正旋和反旋,巧妙地将旋钮扫描和按键扫描统一起来,以Philip低成本的Flash 型单片机P89LPC922作为处理芯片,运
( U9 u" i) J$ A+ t, b用了定时中断、状态机、软件去抖、RS-232接口协议等方法实现软件设计,提高按键和旋钮的抗干扰能力,并介绍了用自定
8 w. R; s( H# e4 T+ _义的通信协议计算旋钮转动量和减少主机负担。具有良好的通用性,适用于短周期、低成本的按键和旋钮混合面板设计,并% T/ D O6 [/ A( e# D: u
已成功地应用于数字存储大功率半导体管特性曲线图示仪。) y5 }6 X" z8 J+ N+ U
关键词:单片机;智能仪器;面板;数字旋钮;鉴相电路1 ~" K9 A; r) B% z7 y9 P
引言1 B4 q, L/ X) `! E, Y9 j$ k# S
许多仪器的前面板通常是由诸多的旋钮、按键组成的混合5 j/ W+ d3 ^9 q8 w/ }( \! u9 U
界面。传统的仪器前面板上通常有两种旋钮,--种是电位器,用) B: E F |1 v7 s- W% R
于调节连续变化的量;另一种是档位开关,用于调节间隔变化的! f/ c3 \- G; t; Y* F4 {1 b- ?
量。它们嵌人在测量电路中,可以直接改变仪器的参数和设置。
% k6 B2 q: ~, I& U% _& D而在现代智能仪器中,这两类调节均可以通过数字旋钮由微控# L& r9 F% }* X0 i" J
制器将用户操作的变化量反馈给仪器的主处理器,再由主处理
6 Z5 J- A8 m6 Q: [! L! d+ E器改变仪器的参数和设置。所以,智能仪器上的数字旋钮和传
# U# |: h8 D3 l7 H统仪器上的旋钮在原理和处理方法上有很大不同。为了节省成9 P3 N. P" C* b# J$ R5 E( W
本,面板处理往往采用体积小性价比高的单片机(mcu)。运用
L9 K2 B. F7 A; `4 {5 Y单片机不但经济灵活,并可充分利用MCU逻辑处理的优势,大
3 J( O! z+ {7 b; @大简化外围连线,对旋钮按键混合控制系统的处理尤为突出。1 I. @ C' I9 _
设计采用LPC900系列的P89LPC922Flash单片机来实现# B q+ b# l- b& c3 x
软件处理。P89LPC922 采用高性能的处理器结构, 6倍于标准" L2 ^. h; t5 r+ X4 M+ N
80C51器件的速率,并自带波特率发生器。充分考虑单片机的资
: n9 V: ?/ S5 y; j! Q源和处理速度,分模块设计一按钮电路,旋钮电路,串口电路,. H( u- B3 o, o; b6 Q |8 y; J
扫描电路。用protel完成电路原理图,制作电路板,在KeilC环
% \$ U* `+ T6 E* X) D境下编写软件。软件和硬件相结合,协同实现整个面板。% @1 a3 _$ o; h6 x
1硬件设计及原理
% g' R: T. A! t+ X* G- m0 a1 I9 ?1.1旋钮电路设计
, _0 m# H9 L" `+ y* Z' p2 ]( t' [1.1.1数字旋钮的工作原理
7 `4 q* `# j: e- C( c/ Y本设计选用常见的编码器EC16系列作为数字旋钮,如图
6 b0 {; I) ]. f1 l+ b+ P
/ T) E0 s. A6 A* f7 [1。4、5脚供固定之用,3脚接VCC(+5V),1、2脚在转动时输出连
" j( D" @2 ]! E1 O* d0 N% `: ^续脉冲。这种旋钮只有两种操作,即正旋和反旋。通过示波器可# S: u0 Q3 G1 R% `1 [
以观察到如图所示的旋钮转动时1、2脚的波形。
4 u" P0 G' P8 k5 i0 i图1旋钮结构及正旋和反旋时的波形图
8 v4 U1 p: {2 T: J, _每次转动1、2脚都会产生脉冲信号,正旋时1脚先变高,反 r' [0 H3 t% s6 i
旋时2脚先变高。也就是说,正旋和反旋输出信号的相位不同,
7 m% ~9 H$ N; O B8 [% o8 b. b/ l只要检测出相位,就可以识别正旋和反旋。
. _* D7 j5 [* U+ I* u7 E- F) G0 Y _1.1.2鉴相电路设计
6 V( r( v" h Q/ |本文设计的鉴相电路见图2,附箭头所指数字标号对应的% O6 l. G) Z% a- c+ K, [9 b
波形(以正旋为例)。旋钮的1、2脚分别与D触发器的D端和8 v* ~7 F1 w; l9 v8 P, P
CLK端连接,根据上面所述旋钮的工作原理,正旋时1脚(D)先变
2 G. x$ Q' \) b, T5 f高,2脚(CLK).上升沿时Q端输出1,反旋转时输出0,Q端则相
1 t, I, i% r! k1 N* J0 @* P, s/ m反。因此根据Q、Q输出为10还是01就可以判断出转动方向。
) N$ d: W( z" Y5 B2 O# O但是,如果继续正旋,Q.Q将维持现状(图2中的④③),因此还
9 I% X7 j' O3 ?* j0 x必须检测脉冲个数来反映转动量。这时不用考虑1、2脚的相位,
" S3 I* f) \7 ^- a& K& k) A可将2个信号相与产生新的信号(图2中的⑤),可利用该信号' r. ]+ X/ |% e# y& A
分别和Q Q相与即可分辨出每次旋钮的转动。
+ a! Q3 q; L. h$ a4 r$ V最后的输出为⑥和⑦,正旋时⑦线有脉冲,⑥线一直为低,
4 g. {3 b( G) p! K5 Y反旋则两根线相反。至此完成了鉴相,下面要解决如何与单片
1 F5 T) M8 Z: h |; r& w0 @: M机接口的问题。$ y) b, Q( f- [1 P
1.2扫描电路设计$ K; S% S! {8 `9 [* v9 A x, z
用户操作面板时,为了能及时准确地识别哪个按钮和哪个
9 y) `0 ~; N2 C9 `, B$ O
, f8 K) k1 k" A- ^6 m, ?/ p( A d* F' c( Z" o6 r$ l
% D7 F& r q4 G9 O p2 _% T
* P( [; I$ N9 G& y1 S, t附件下载:* r$ ~- T2 G) F
q" d6 ~& r! I# [
5 p; l0 b% X2 c |
|