|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1 J) W+ h. T4 p' r1 s' t! A
摘要:介绍了一种基于单片机的智能仪器前面板的设计及实现方法。根据数字旋钮的特点,在硬件上设计了鉴相电路检测旋
: s6 _1 H8 T/ r, L* a钮的正旋和反旋,巧妙地将旋钮扫描和按键扫描统一起来,以Philip低成本的Flash 型单片机P89LPC922作为处理芯片,运
$ g P. L- R: t, b6 B7 L R+ m用了定时中断、状态机、软件去抖、RS-232接口协议等方法实现软件设计,提高按键和旋钮的抗干扰能力,并介绍了用自定0 T, `7 p5 i7 e& W. A& v6 d
义的通信协议计算旋钮转动量和减少主机负担。具有良好的通用性,适用于短周期、低成本的按键和旋钮混合面板设计,并/ e C; F; k* h6 F
已成功地应用于数字存储大功率半导体管特性曲线图示仪。
- r. z. `: J! \1 X$ c关键词:单片机;智能仪器;面板;数字旋钮;鉴相电路9 K, Z$ O, C9 [: u, u( A
引言2 H- b$ l' G/ V
许多仪器的前面板通常是由诸多的旋钮、按键组成的混合
+ K. B* p* g9 M+ q界面。传统的仪器前面板上通常有两种旋钮,--种是电位器,用
+ I8 V5 v7 \8 H: z* {于调节连续变化的量;另一种是档位开关,用于调节间隔变化的8 O7 h/ u( C- ?7 D0 ~
量。它们嵌人在测量电路中,可以直接改变仪器的参数和设置。
, E9 S5 c3 \2 f1 b- F而在现代智能仪器中,这两类调节均可以通过数字旋钮由微控
& x4 J& ~9 J2 U& o+ w! e% v- w& L制器将用户操作的变化量反馈给仪器的主处理器,再由主处理5 S# b T( E+ z+ Y
器改变仪器的参数和设置。所以,智能仪器上的数字旋钮和传) D; m% @! e4 s# `2 O( a6 t
统仪器上的旋钮在原理和处理方法上有很大不同。为了节省成
6 H8 ^1 V. s1 H. ]2 `+ x6 Z5 u/ a# Q! z: n本,面板处理往往采用体积小性价比高的单片机(mcu)。运用. Z) @: q; _; F9 `6 t
单片机不但经济灵活,并可充分利用MCU逻辑处理的优势,大; `* R3 c' O9 f7 i8 z1 b
大简化外围连线,对旋钮按键混合控制系统的处理尤为突出。
0 b* H k, ^5 V: h7 L9 v设计采用LPC900系列的P89LPC922Flash单片机来实现
/ D/ I- c t+ T1 _软件处理。P89LPC922 采用高性能的处理器结构, 6倍于标准
" L, F, w5 v7 R# g; n* n' v80C51器件的速率,并自带波特率发生器。充分考虑单片机的资6 P3 L4 r8 {) A( u4 L/ q# q5 ^$ s
源和处理速度,分模块设计一按钮电路,旋钮电路,串口电路,6 {! x6 p0 }+ ^8 x
扫描电路。用protel完成电路原理图,制作电路板,在KeilC环
% `. T; @; B8 P, Z境下编写软件。软件和硬件相结合,协同实现整个面板。" T) k) h9 l' q5 S0 M
1硬件设计及原理
3 R" B* t. n+ C: d# i1.1旋钮电路设计! `4 D* p! ]; S( m8 v
1.1.1数字旋钮的工作原理
: |& Y! Q1 Q& d, F5 w5 d7 K本设计选用常见的编码器EC16系列作为数字旋钮,如图/ w7 B/ Q3 S. j
9 t0 B* d0 _* B1。4、5脚供固定之用,3脚接VCC(+5V),1、2脚在转动时输出连6 r+ }8 P& j' \& {
续脉冲。这种旋钮只有两种操作,即正旋和反旋。通过示波器可' K+ B9 D7 F9 M
以观察到如图所示的旋钮转动时1、2脚的波形。$ w# S7 g9 N8 q+ z. G
图1旋钮结构及正旋和反旋时的波形图
; Y" x1 s) b* q+ o, X每次转动1、2脚都会产生脉冲信号,正旋时1脚先变高,反+ R7 g1 L% B8 p) p$ C1 e' F
旋时2脚先变高。也就是说,正旋和反旋输出信号的相位不同,' l- j8 j7 }/ p
只要检测出相位,就可以识别正旋和反旋。% B2 `. B W4 i1 E9 N" r) w
1.1.2鉴相电路设计
1 E X) U/ K& p' B: m本文设计的鉴相电路见图2,附箭头所指数字标号对应的. ^; f' O! V5 j% W, |5 P4 q* e
波形(以正旋为例)。旋钮的1、2脚分别与D触发器的D端和
$ z' o' c% Y6 `: aCLK端连接,根据上面所述旋钮的工作原理,正旋时1脚(D)先变5 n# h+ @ F% @# |
高,2脚(CLK).上升沿时Q端输出1,反旋转时输出0,Q端则相
* @: d% G8 \. g% t) n% G5 {反。因此根据Q、Q输出为10还是01就可以判断出转动方向。1 A) {- H6 ^+ l6 E
但是,如果继续正旋,Q.Q将维持现状(图2中的④③),因此还4 R$ M) C$ c; @8 P: N; S3 t
必须检测脉冲个数来反映转动量。这时不用考虑1、2脚的相位,& A9 H( Y+ G* B8 `4 j4 C) R
可将2个信号相与产生新的信号(图2中的⑤),可利用该信号! t V; o# G0 N
分别和Q Q相与即可分辨出每次旋钮的转动。$ s1 @; ~! Y6 `- K
最后的输出为⑥和⑦,正旋时⑦线有脉冲,⑥线一直为低,
$ ` p- i) [6 J$ {3 f反旋则两根线相反。至此完成了鉴相,下面要解决如何与单片
' \% U6 [# Z2 v9 x& c0 F机接口的问题。# v! j9 U$ M* Q: w3 ~+ b1 ]5 a
1.2扫描电路设计
* k# Z0 H0 c4 h$ C; ]用户操作面板时,为了能及时准确地识别哪个按钮和哪个
2 K: a9 w1 v- }2 p( _' `# c
% ]* {7 q! w" f. w$ W J
1 L$ m8 |& P% B! Z [8 o% c& p2 @1 a5 R* m
4 \8 f2 Q/ h& h' h H& R! U5 y! X
附件下载:
) N, q. M- P3 b2 h, r" c
- D; j6 f. @0 O0 r+ F7 x% [
9 H7 i, i# `0 h" P) t" x |
|