|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
第13讲 IO 扩展(输入扩展)与按键触发实验
! ^0 b3 Y4 B5 M3 G( c4 k& c8 }知识点:
- ?/ s9 }8 @% P% a3 ~' m
- @: B4 T+ w h% I Y+ @! X1、 IO 扩展之输入扩展
7 L3 T8 Q5 O( Z6 `2、 74HC165用法3 a" s$ C7 i4 u5 O' w
3、 基于 74HC165 按键扩展实验
, `! T0 V: o) v4、 矩阵式按键扩充实验
# n% \- p1 E Z6 H- c5、 时序与真值表
# D' j1 K# a0 i. d2 y: b6、 学会根据器件真值表和时序图编写器件驱动程序
- W! s+ Y) ?2 y+ a$ b! | V+ _; n7、 单片机外围器件驱动程序设计的两种方式(器件时序图与标准通信接口) d7 p" f" f! e1 S# x
3 s0 z, d7 G, z* l2 l5 A# U4 ?一、IO扩展之输入扩展:
) G }4 P! \+ g* F, [( \/ [8 g* ^这里所讨论的 IO输入扩展,意思是如何通过单片机一位 IO端口去读取外部输入的一个字节的数据(8 位)。下面我们介绍一下器件74HC165。+ Q; M4 S1 \& `6 R
& K* R5 M3 M# t5 _1 w; Z' p; p- C5 \
二、74HC165用法:! `2 `) j5 a" S* ?
, M" z# \* {, R& M- x引脚介绍
/ r- y6 U. b: N* N+ y
( {, h( T, v$ N8 [# c5 M; PSH//LD:移位控制/置入控制(低电平有效),移位:使能移位输出;置入:把数据放入移位寄存器中
& P7 U) X6 V* \0 `CLK,CLK_INH:时钟输入端
) u. L$ J& Q& bSER:串行数据输入端
% i( i% n3 |9 t* F/ J: C5 i1 |QH:输出端
u. c5 H: I5 q2 O0 E/QH:互补输出端/ g8 W) T( W# h' p1 e2 F
A- H:并行数据输入端 其实看一个芯片如何使用的,不只是看引脚功能,更重要的是要看时序图和真值表。 # ]6 y l9 z4 }% _ B
0 I+ q a! k5 t6 B! u
真值表:, F1 f/ d# |9 k- R9 Q& w
) @& l- l ], m# w. q0 w0 P
* S- P1 [. N6 w$ a1 c4 t/ Z& r; C$ F% ]! t2 `: x; E( M' h
时序图:
& S: g0 i/ S+ J: w T
8 L5 b& H0 ]9 S/ }' M
: N9 A2 m4 Y; C3 H$ T这个时序图包含两大部分内容:装载数据(LOAD)和串行移位(SERIAL SHIFT),其中 LOAD 时, 必须 inhibit(时钟禁止),CLOCK _INHIBIT = 1;
3 X& C8 r5 _* q T) M: A首先分析如何 LOAD,所谓 LOAD 就是把通过此器件获得的 8 位数据,加载到此器件的内部移 位寄存器里。比如外接的是 8 个按键,平时没按下按键时是高电平,这时,加载到器件内部 移位寄存器里的是 0XFF,当其中某一个键被按下时,对应的 8 位编码数据就被加载内部移位
) ]0 X% ~0 G9 W# Z# H* @7 P
' o- x& k" w' [1 I) j5 `! I+ Y寄存器里。通过时序图和真值表,我们不难发现,LOAD 时,SHIFT//LOAD 必须保持低电平。 所以加载数据时,我们可以这样编码:
: s5 _6 ]3 p9 I5 l G) V0 GSHIFT//LOAD = 0;7 g2 D6 q" o& \, P9 f K6 U- k
_NOP_(); //保持一段时间的低电平
3 t7 Q( G$ B* Z- e% o' W, d: c' h0 h+ @, b6 Z% j7 {
随后,在 CLOCK_HAIBIT 保持低电平,SHIFT//LOAD 保高电平,开如一段 8 位串行数据的移 位输出,时钟上升沿状态下开始移位输出。以下是上升沿的写法,一定要记住!
0 g7 T# E* H4 k* m5 z. v; g1 j! I: D( q2 ^
CLOCK = 0;
! m6 c/ s6 ?5 {_NOP_();
5 i$ E7 ^8 D; }) c% A9 O. P+ r/ Jindata |= indata; CLOCK = 1;
7 _% Z/ }3 q0 `6 h. T+ w+ ]2 U n4 ~: u1 {( h1 Y; c3 L0 i
三、基于 74HC165 按键扩展实验: 实验现象:下载程序后,按下独立按键可以点亮对应 LED 灯。注意事项:必须将 74HC165 模块的 JP165 短接片短接,否则不会出现象。
+ B t/ Z k" [1 l- R% c$ P9 l5 ^' O s0 Z( D$ ]
四、时序与真值表 时序,就是按照一定的时间顺序给出信号。按照这个时间顺序,你就能得到你想要的数据或 者把你要写的数据写进芯片。2 t* Z2 y P! i9 y, L N2 z
真值表:输入与输出物理电平关系 ! ]( K8 S2 |/ p/ @
2 t4 S2 A6 I1 G8 k+ L. Z
五、矩阵式按键扩充实验 不同的按键触发不同的功能(按键事件解析)) \5 I) _2 |/ ?8 c: F- C @
# |+ y O- B1 ~& q& j六、学会根据器件真值表和时序图编写器件驱动程序
- n$ j1 I1 f& p m |
|