|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
) h: d% B: D# I* ~
摘要;为减少单片机键盘控制占用口线过多的问题,本文介绍了基于I2C总线结构的键盘控制方法,给出了硬件电路和软件代码。该
`* W, M9 \0 i7 b7 Y方法只要占用单片机的三个口线即可实现对多达64个按键的控制,不但解决了当前单片机开发中遇到的口线不够用的问题,而且电路
- q8 o2 {8 A6 M: n9 g5 g实现简单,同时采用中断的方式实现按键扫描码的读入,能直接读出按键扫描码,程序简单、易行。
/ ^; l, D* g* f3 [! `关键词:单片机;I2C总线;键盘控制;电路设计
* _% x' ?/ ~$ l/ G! d2 f. G
! W: V. E7 P- p; q5 X- m( D1引言
' I' W" r9 ]' d, V8 V: }* B- \单片机已广泛应用于工业控制、智能仪表等领域,随着应用/ P( s& I! A( z
和技术的发展、系统的集成度、复杂性的提高,CPU对口线的数量 t; h4 X- V3 `+ c1 p. H) g& w
要求也越来越多,因此需通过适当的手段来对单片机进行扩展,4 r! \; }1 V1 J6 Z* T' T0 C5 Z
或通过其它方法减少口线的占用来达到用户不同的需求。然而,
$ W$ R" Z# y/ K9 E传统的单片机对键盘的控制,很多还是直接采用CPU口线,或者
1 b! J) {7 M4 i; V通过扩展外围I/0口如采用LS373. 573等实行控制。常见的按键4 T; ~3 |/ J0 ~1 _" t/ m& z1 Z
结构电路分为独立式按键和行列式按键,独立式按键即每个按键
$ L2 R% {( T$ t' N占用一根I/O线,直接用I0口线构成单个按键电路,但占用口线
Y' a4 m [2 S8 b k) E较多,只适合数目不多的应用。行列式键盘I/0是采用口线构成行9 {7 X/ g2 x8 s" a, W1 }
列结构,按键设置在行列的交点上。在按键较多时可节省I/O口
0 P& ?' L! o6 d8 l1 Z- N5 ]线。但当键盘数目较多时也需占用较多的单片机口线。而且这两1 G! s7 F1 r; w# y
种方式 都不能直接得出扫描码,必须通 过计算才行。为解决这些+ |1 d' w1 _ _: K
问题,本文提出了采用I2C结构实现键盘控制,并以SD7218A芯 D. q! z3 E3 S% Y
片为例,给出了硬件电路与程序代码。! h/ H& A- Y1 o: ?
2 I2C总线介绍
- E7 R `4 _+ T
: I* w0 {. K7 d) \; w; U5 q) O8 A6 D$ C
6 k+ H/ ?% d, `* B8 U
|
|