《高职高专《单片机原理及应用》51总线概述.ppt》由会员分享,可在线阅读,更多相关《高职高专《单片机原理及应用》51总线概述.ppt(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、教案名称:单片机原理及应用授课章节:51 概述授课时间:第八周 星期三 3、4节授课日期:2007、10、24授课班级:05机电与数控技术 班一、外部总线的扩展一、外部总线的扩展 51 概述概述图图 5.2 地址锁存器的引脚和接口地址锁存器的引脚和接口 二、总线驱动二、总线驱动 在单片机应用系统中,扩展的三总线上挂接很多负载,如存储器、并行接口、A/D接口、显示接口等,但总线接口的负载能力有限,因此常常需要通过连接总线驱动器进行总线驱动。总线驱动器对于单片机的I/O口只相当于增加了一个TTL负载,因此驱动器除了对后级电路驱动外,还能对负载的波动变化起隔离作用。在对TTL 负载驱动时,只需考虑驱
2、动电流的大小;在对MOS负载驱动时,MOS负载的输入电流很小,更多地要考虑对分布电容的电流驱动。1 常用的总线驱动器常用的总线驱动器 系统总线中地址总线和控制总线是单向的,因此驱动器可以选用单向的,如74LS244。74LS244还带有三态控制,能实现总线缓冲和隔离。.系统中的数据总线是双向的,其驱动器也要选用双向的,如74LS245。74LS245 也是三态的,有一个方向控制端DIR,DIR=1时输出(AnBn),DIR=0时输入(AnBn)。图 7.3 总线驱动器芯片管脚(a)单向驱动器;(b)双向驱动器 2.总线驱动器的接口总线驱动器的接口 图 5.4 8051与总线驱动器的接口(a)P
3、2 口的驱动;(b)P0 口的驱动 3、键盘接口、键盘接口 键盘实际上是由排列成矩阵形式的一系列按键开关组成,用户通过键盘可以向CPU输入数据、地址和命令。键盘按其结构形式可分为:编码式键盘和非编码式键盘两类。单片机系统中普遍使用非编码式键盘,这类键盘主要解决以下几个问题:键的识别;如何消除键的抖动;键的保护。4.非编码式键盘工作原理非编码式键盘工作原理 非编码式键盘识别按键的方法有两种:一是行扫描法,二是线反转法。1)行扫描法 通过行线发出低电平信号,如果该行线所连接的键没有按下的话,则列线所接的端口得到的是全“1”信号,如果有键按下的话,则得到非全“1”信号。为了防止双键或多键同时按下,往
4、往从第 0 行一直扫描到最后 1 行,若只发现 1 个闭合键,则为有效键,否则全部作废。找到闭合键后,读入相应的键值,再转至相应的键处理程序。2)线反转法 线反转法也是识别闭合键的一种常用方法,该法比行扫描速度快,但在硬件上要求行线与列线外接上拉电阻。先将行线作为输出线,列线作为输入线,行线输出全“0”信号,读入列线的值,然后将行线和列线的输入输出关系互换,并且将刚才读到的列线值从列线所接的端口输出,再读取行线的输入值。那么在闭合键所在的行线上值必为 0。这样,当一个键被按下时,必定可读到一对唯一的行列值。5.键盘接口电路键盘接口电路 图 5.26 采用8155的键盘接口电路 下面的程序是用行
5、扫描法进行键扫描的程序,其中KS1 为判键闭合的子程序。有键闭合时(A)=0。DIR为数码显示器扫描显示子程序,执行一遍的时间约6 ms。程序执行后,若键闭合,键值存入A中,键值的计算公式是:键值=行号4+列号;若无键闭合,则A中存入标志FFH。KEY1:LCALL KS1 ;检查有无闭合键?JNZ LK1 ;(A)=0,有键闭合则转 LJMP LK8 ;无闭合键则返回 LK1:LCALL DIR ;延时 12 ms LCALL DIR ;清抖 LCALL LS1 ;再检查有键闭合否?JNZ LK2 ;有键闭合则转 LJMP LK8 ;无键闭合则返回 LK2:MOV R3,00H ;行号初值送
6、R3 MOV R2,FEH ;行扫描初值送R2LK3:MOV DPTR,0101H ;指向 8155 口A MOV A,R2 ;行扫描值送A MOVX DOTR,A ;扫描 1 行 INC DPTR INC DPTR ;指向 8155 口C MOVX A,DPTR ;读入列值 ANL A,0FH ;保留低 4 位 MOV R4,A ;暂存列值 CJNZ A,0FH,LK4 ;列值非全“1”则转 MOV A,R2 ;行扫描值送A JNB ACC.7,LK8 ;扫至最后一行则转RL A ;未扫完,则移至下一行MOV R2,A ;行值存入R2 中INC R3 ;行号加 1SJMP LK3 ;转至扫描
7、下一行 LK4:MOV A,R3 ;行号送入A ADD A,R3 ;行号2 MOV R5,A ADD A,R5 ;行号4 MOV R5,A ;存入R5 中 MOV A,R4 ;列值送A LK5:RRC A ;右移一位 JNC LK6 ;该位为 0 则转 INC R5 ;列号加 1 SJMP LK5 ;列号未判完则继续LK6:MOV 20H,R5;存键值LK7:LCALL DIR ;扫描一遍显示器 LCALL KS1 ;发扫描信号 JNZ LK7 ;键未释放等待 LCALL DIR ;键已释放 LCALL DIR ;延时 12 ms,清抖 MOV A,20H ;键值存入A中KND:RET LK8:MOV A,FFH ;无键标志FFH存入A中 RET KS1:MOV DPTR,0101H ;判键子程序 MOV A,00H ;全扫描信号 MOVX DPTR,A ;发全扫描信号 INC DPTR INC DPTR ;指向8155口C MOVX A,DPTR;读入列值 ANL A,0FH ;保留低4位 ORL A,F0H ;高4位取“1”CPL A ;取反,无键按下则全“0”RET 作作 业:业:P163 1、2、3
限制150内