|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 ByElmer1 于 2020-1-21 15:14 编辑 : N1 ~9 Q' _' U* Y! ]' R; F
, G3 Z& C9 r& H' J6 \[摘要]介绍-种单片机1/0端口分时复用方法设计键盘和显示电路。利用单片机执行速度快和人的视觉反应有限的原理,通过对同- -1/0端口分时作为键盘电+ m: @3 g# k! l) z5 {/ _
路的出入端[1和並示电路的输出端口来实现共用1/0端口的目的。测试表明采用分时复用I/0口设计键盘和显示电路可行,按键和显示功能正常。/ y& J+ P, B" G; J! H; R$ R
, F9 x4 Q2 e* j, I {' o[关键词]:单片机(SN8P2624) 分时复用 键盘/显示 n( @% B) O, t D5 u
3 Q6 q, f- @8 F- w! |- M7 q
一、引言$ R" y" x1 h; |( s0 y& x$ j- o
一般任何一个适用的系统都少不了键盘和显示这两个部分,键盘为使) T8 U. r5 k" Z4 B4 \; x5 u
用者设定功能提供操作平台:显示反映出使用者设定功能的状态。在传统0 M9 P+ i5 Y8 [3 |* a8 S
的设计中,-般都是把键盘模块和显示模块分开设计,这样结构清晰,软, V% @7 a' M. H" t
件设计简单,当I/0口不够用时,通常通过扩展1/0的方法来解决问题。常8 Y" T9 u' g% j2 U2 y: o9 k
用的扩展1/0芯片有8255A、2ilog-PI0. 8155、 8156. 87C75PF等, 其中,: E! [3 ?/ @6 }6 }8 y m) g" B
又以8255A最为常用[1].有的使用专门的驱动芯片驱动键盘与显示。比如
& u2 g- W) G* |" |利用芯片MAX6954来设计键盘与显示电路[2].也有用MC33993来设计健盘& T, G6 J( M$ W" L
和LED显示电路[3]。要求较高的有采用Inte18279来实现键盘与显示器的
9 S8 Y/ S0 o, i2 X, ?扩展[4]。以上所说的都各有各的特点和优点,但同时也都暴露了-一个问. u3 s t1 l4 m' h- I: Q: _9 z* a
题,它们都需要通过增加芯片来扩展1/0口。当硬件成本要求苛刻的情况
: t* D! g9 ^, M; d) N1 ?下,这种设计理念就很难适应其要求,而本设计采用显示模块和键盘模块
. f2 t6 i/ }; F7 {1 F; y# |- i共用端口的方法,分时显示和按键扫描,很好的解决了这一矛盾。: X0 q+ h5 a2 t' \- d
二、原理
+ H, @2 a! U3 o我们知道微控制器的运行速度快,人的视觉灵敏度有限,同时显示器件
- G' \8 f2 _$ A. p& @(主要是发光二极管,数码管)具有余光效应,所以我们可以充分利用以4 l% f( a3 z+ V P7 [5 d- g
上特点,合理分配显示和键盘扫描的时间,就可以实现显示模块和键盘; ?2 B7 w6 U3 {# J
模块共用端口以及不同显示共用端口的功能。其硬件原理框图如图1所示。- D2 e* B7 l1 M0 [+ c- v A, I
三.软件设计流程
/ `; t, C7 k8 w1 \1 K. ?# M软件设计分为键盘扫描和显示两个模块,通常每0. 1S就关显示- -次去/ s8 I* B4 i% j
执行键盘扫描和其他功能函数。这样-方面可以保证 显示正常,另一方面9 l+ K8 G2 G4 A. y1 {
由可以保证按键扫描部分执行正常。键盘扫描程序设计流程图和显示子程
; [% @* e, \: U序设计流程图分别如图2中(a) 和(b) 所示。
E" v* Y4 J% D' U- h$ t, p9 R; Q四、应用实例 l4 Z! e; s, W
图3是我们在设计一款电烤箱时设计的键盘与显示电路,按键用来设
+ e( a7 e; U6 F1 L定加热的档位和加热方式,敷码臂用来显示现在所设定的档位值。从图中0 j% C( K5 m* h! \" W1 t" ~
可以看出,本设计采用Sonix公司的SNBP2624单片机[5]作为微控制器,键.( w* V4 E; ?! l5 B6 U
盘和显示部分共用1/0端口,通过合理分配按键打描和显示的时间,就能
: ~8 _1 L2 i9 z, @8 [实现1/0口共用的功能。2 }$ F: C, D/ J$ r W' @
+ d% T* x5 I4 i9 R/ |3 h
附件下载:7 O; k) m, ~- U3 J; B4 X
. b6 A' N. v7 q3 w4 E) I, {
1 P6 m* u/ I1 H% d1 B/ h+ |2 a! P" e8 ^: B; }4 A5 Y: j0 V
1 U% D* c: u9 `! \& P1 p
' z7 o+ ^, i6 L6 `; S8 C
|
|