|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
' N; K- m7 N8 q* ?2 c1 U
摘要:介绍了一种基于单片机的智能仪器前面板的设计及实现方法。根据数字旋钮的特点,在硬件上设计了鉴相电路检测旋
& S$ |, x$ T' F9 X0 {1 P x& U钮的正旋和反旋,巧妙地将旋钮扫描和按键扫描统一起来,以Philip低成本的Flash 型单片机P89LPC922作为处理芯片,运
0 r2 |3 e2 L( P用了定时中断、状态机、软件去抖、RS-232接口协议等方法实现软件设计,提高按键和旋钮的抗干扰能力,并介绍了用自定
0 D" a V- K' j* s义的通信协议计算旋钮转动量和减少主机负担。具有良好的通用性,适用于短周期、低成本的按键和旋钮混合面板设计,并# K- [& P9 E) V- o/ O
已成功地应用于数字存储大功率半导体管特性曲线图示仪。9 x2 z* l$ B ?$ I
关键词:单片机;智能仪器;面板;数字旋钮;鉴相电路1 B: ~7 U* Y7 z: t4 T8 l5 x
引言
5 Y5 a2 n; @ J许多仪器的前面板通常是由诸多的旋钮、按键组成的混合/ P$ p. L0 S* c
界面。传统的仪器前面板上通常有两种旋钮,--种是电位器,用6 v5 F5 K& J h; s% q
于调节连续变化的量;另一种是档位开关,用于调节间隔变化的9 \8 T; M0 H& v6 P- [
量。它们嵌人在测量电路中,可以直接改变仪器的参数和设置。
) a7 }! a7 A5 `7 i! {$ V" b; t而在现代智能仪器中,这两类调节均可以通过数字旋钮由微控
4 X1 j( k: V( Q0 j+ l% ?制器将用户操作的变化量反馈给仪器的主处理器,再由主处理
0 d. y; j# \4 Y# [: x2 ~/ }器改变仪器的参数和设置。所以,智能仪器上的数字旋钮和传% d. a h, q% _4 D* r
统仪器上的旋钮在原理和处理方法上有很大不同。为了节省成
* ]" x. A% g6 a$ ]2 I0 P9 _本,面板处理往往采用体积小性价比高的单片机(mcu)。运用
2 O1 Z: ^6 q; K4 J: C5 Z单片机不但经济灵活,并可充分利用MCU逻辑处理的优势,大
. @( `. a! D% c1 ]) t w) c0 M1 I大简化外围连线,对旋钮按键混合控制系统的处理尤为突出。$ y* T& X: ~7 ^
设计采用LPC900系列的P89LPC922Flash单片机来实现
0 z- p. B" K! _; C* \软件处理。P89LPC922 采用高性能的处理器结构, 6倍于标准
3 f( h/ I6 \, |/ z' ?0 m9 j80C51器件的速率,并自带波特率发生器。充分考虑单片机的资
c1 s8 h0 W; @1 U! m) D; r5 p源和处理速度,分模块设计一按钮电路,旋钮电路,串口电路,
( v- |/ c1 S1 B b5 k+ o% Y, v. H扫描电路。用protel完成电路原理图,制作电路板,在KeilC环7 I1 N# Y& X& ]: U. J
境下编写软件。软件和硬件相结合,协同实现整个面板。
1 Q! E) W* I9 D1硬件设计及原理6 H( i& [: f ^* T( m
1.1旋钮电路设计
) I/ B+ J- M7 F9 c6 c1.1.1数字旋钮的工作原理
; J- U4 \# S5 a; Z2 r: _8 b- \本设计选用常见的编码器EC16系列作为数字旋钮,如图! e, x+ E* l* s: P
, A9 u- Y- t: ~2 ?" o3 q1。4、5脚供固定之用,3脚接VCC(+5V),1、2脚在转动时输出连
' O8 X& x( P6 j6 j* O8 j续脉冲。这种旋钮只有两种操作,即正旋和反旋。通过示波器可
* s0 }! p2 ]& U6 p6 A以观察到如图所示的旋钮转动时1、2脚的波形。
! U1 R" T+ i, Q9 U图1旋钮结构及正旋和反旋时的波形图. E0 e' D- W, F& h# t# V) j+ W
每次转动1、2脚都会产生脉冲信号,正旋时1脚先变高,反0 L1 L1 w$ \: G1 s$ H9 l$ n) d- T
旋时2脚先变高。也就是说,正旋和反旋输出信号的相位不同,+ P% s [7 @: Z8 \. Z* V3 R# T
只要检测出相位,就可以识别正旋和反旋。
& W" E) G, V" ^2 |- f5 y1.1.2鉴相电路设计
8 c" M4 G' x3 y) m' b9 b8 n本文设计的鉴相电路见图2,附箭头所指数字标号对应的; G) U" M3 ^, B' ]' J
波形(以正旋为例)。旋钮的1、2脚分别与D触发器的D端和& Q- p0 j* ~- U. j g9 _& C8 `( }1 U
CLK端连接,根据上面所述旋钮的工作原理,正旋时1脚(D)先变7 S6 D; e, Z9 _
高,2脚(CLK).上升沿时Q端输出1,反旋转时输出0,Q端则相
7 u. X! Y8 l+ \, q3 g( C1 I- z1 J, P反。因此根据Q、Q输出为10还是01就可以判断出转动方向。& m: \$ [/ f$ ]. o7 {
但是,如果继续正旋,Q.Q将维持现状(图2中的④③),因此还
. v) I6 t7 S, u5 e8 E; L必须检测脉冲个数来反映转动量。这时不用考虑1、2脚的相位,
. W2 ?/ x# X$ Q& D9 S b7 E8 \可将2个信号相与产生新的信号(图2中的⑤),可利用该信号* i+ ]) `. r; \: T6 N# `( ^3 C) H
分别和Q Q相与即可分辨出每次旋钮的转动。* }& W6 |3 Z/ r: S* h
最后的输出为⑥和⑦,正旋时⑦线有脉冲,⑥线一直为低,. e$ n1 t3 w4 w; b9 l$ {, O
反旋则两根线相反。至此完成了鉴相,下面要解决如何与单片
4 D) E1 s* b0 n; Z5 M; y机接口的问题。
: r. r3 w- |( L; y3 X$ Z; q# [) |4 S0 ?1.2扫描电路设计# q9 y: v8 v |/ p: ]/ C
用户操作面板时,为了能及时准确地识别哪个按钮和哪个* @5 q6 x! W* o, |- v4 c
2 N$ U; o0 s. d, f2 L# r# b' E- s
) R1 l, l& e- v2 m5 G1 O2 `, t" X3 R. ]
$ d* `& b8 q2 G. K% @% e
6 g9 |# i. W# I8 R* k5 i附件下载:
$ |! |0 |- [( a' w2 |; L0 L+ V% S7 w) B/ q& c" f- u0 e+ ~2 T
# w. a8 i" @ c+ u" r
|
|