|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
! ?6 n7 Q. L6 f4 u, e6 x9 {摘要;为减少单片机键盘控制占用口线过多的问题,本文介绍了基于I2C总线结构的键盘控制方法,给出了硬件电路和软件代码。该8 j" @, o& T6 m8 a2 w# H
方法只要占用单片机的三个口线即可实现对多达64个按键的控制,不但解决了当前单片机开发中遇到的口线不够用的问题,而且电路
+ q1 Y% _, |! A$ I3 S实现简单,同时采用中断的方式实现按键扫描码的读入,能直接读出按键扫描码,程序简单、易行。
$ ?. J4 X6 V. k/ u( Q关键词:单片机;I2C总线;键盘控制;电路设计9 o3 o# \$ O( ]
5 A6 L& K$ k, o! q& C# V9 [. ^1引言7 C" X) F. f2 h+ x
单片机已广泛应用于工业控制、智能仪表等领域,随着应用5 T% y: u# W; L% w- C
和技术的发展、系统的集成度、复杂性的提高,CPU对口线的数量
5 m- k% b( f* q p要求也越来越多,因此需通过适当的手段来对单片机进行扩展,4 c. I* \7 p4 h# Z& N' @
或通过其它方法减少口线的占用来达到用户不同的需求。然而,
6 e0 p# M1 g* H9 R4 e传统的单片机对键盘的控制,很多还是直接采用CPU口线,或者4 {/ R" V" V) ?1 A! G# s" `: \
通过扩展外围I/0口如采用LS373. 573等实行控制。常见的按键% N! V8 |- w4 M3 ~5 y2 H3 i
结构电路分为独立式按键和行列式按键,独立式按键即每个按键4 }# A) `! j/ T) [$ c6 M
占用一根I/O线,直接用I0口线构成单个按键电路,但占用口线
0 @( @7 V5 }1 l1 |# _较多,只适合数目不多的应用。行列式键盘I/0是采用口线构成行
: s! v; i& T$ F, q8 i( B* ]列结构,按键设置在行列的交点上。在按键较多时可节省I/O口
7 S% r' [" Z% ?* k线。但当键盘数目较多时也需占用较多的单片机口线。而且这两
2 K3 I/ S) z9 A# R1 A4 s' }种方式 都不能直接得出扫描码,必须通 过计算才行。为解决这些; V: R& d m: y7 ~1 y2 S0 j0 C
问题,本文提出了采用I2C结构实现键盘控制,并以SD7218A芯
' B/ X! B, g) C( G# v) ^% j% [4 Q7 a4 M片为例,给出了硬件电路与程序代码。
8 X" ~/ g" N& q2 I2C总线介绍0 E+ i3 ]3 {" h: T D# z& [
1 k7 {+ L* [; ?0 Y0 r# [ V
$ f9 @1 t. q& w
! R3 P: g5 w3 F" m U
|
|