|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
: x5 |5 A4 Q6 n5 C. j4 \; N4 S摘要;为减少单片机键盘控制占用口线过多的问题,本文介绍了基于I2C总线结构的键盘控制方法,给出了硬件电路和软件代码。该4 K P9 q: I( k) b& m1 `! P5 C0 O
方法只要占用单片机的三个口线即可实现对多达64个按键的控制,不但解决了当前单片机开发中遇到的口线不够用的问题,而且电路- G2 U* `2 _* h" ^5 }- M) H6 Z4 e
实现简单,同时采用中断的方式实现按键扫描码的读入,能直接读出按键扫描码,程序简单、易行。
) ~1 } \9 ]% w3 w关键词:单片机;I2C总线;键盘控制;电路设计: P1 ], f! A% Q
0 F' s9 c/ Y' o5 u1 C; d
1引言# u$ U! \( t3 |
单片机已广泛应用于工业控制、智能仪表等领域,随着应用* K' R o# L: R- X% H9 Z. `
和技术的发展、系统的集成度、复杂性的提高,CPU对口线的数量
% e n& J5 Z1 m1 h5 \8 `' c7 {/ u6 P要求也越来越多,因此需通过适当的手段来对单片机进行扩展,7 Z& B% p P. H4 T/ x4 ^, [; N5 N
或通过其它方法减少口线的占用来达到用户不同的需求。然而,
& O- F* A# k1 V I5 x) c传统的单片机对键盘的控制,很多还是直接采用CPU口线,或者: j; j' M! p6 { `" I( {* M
通过扩展外围I/0口如采用LS373. 573等实行控制。常见的按键/ F3 j% ?0 @1 z. R! P; o
结构电路分为独立式按键和行列式按键,独立式按键即每个按键
$ Z2 a! y/ W1 J0 L+ R占用一根I/O线,直接用I0口线构成单个按键电路,但占用口线9 b* E. d* T" v5 v b. h
较多,只适合数目不多的应用。行列式键盘I/0是采用口线构成行
( J$ g+ w5 r4 X# _! i列结构,按键设置在行列的交点上。在按键较多时可节省I/O口
) `, N3 W- D% p* Y- W" Y/ V1 z线。但当键盘数目较多时也需占用较多的单片机口线。而且这两
" ]; ?# M- y9 P6 F种方式 都不能直接得出扫描码,必须通 过计算才行。为解决这些
$ {0 Y# x* s) O# Q7 c6 M. i. C问题,本文提出了采用I2C结构实现键盘控制,并以SD7218A芯
& r6 f' o4 Y, R% o2 Z片为例,给出了硬件电路与程序代码。
3 l }5 `% M0 n, A2 q! K, p& e2 I2C总线介绍- U4 F: P( v2 U* K s* c3 G/ B' I
% s5 n% Y' V0 i+ G7 N6 o* A0 I5 c
* P7 e p, t) I
+ L$ \# g' Z$ z6 d0 S% \* v( A |
|