600 likes | 802 Views
第 8 章 并行接口与应用. 8.1 并行接口的基本概念 8.2 可编程并行接口芯片 8255A 8.3 可编程并行接口芯片 8155 8.4 单片机与键盘和数码管显示器的接口电路. 退出. 8.1 并行接口的基本概念. MCS-51 单片机有四个并行 I/O 口。当用 MCS-51 单片机组成的应用系统需外扩程序存储器和数据存储器时,真正可用的并行口,就只有一个 P1 口了。. 8.2 可编程并行接口芯片 8255A. 8.2.1 8255A 的内部结构及引脚. 2 、 8255A 的引脚
E N D
第8章 并行接口与应用 • 8.1 并行接口的基本概念 • 8.2 可编程并行接口芯片8255A • 8.3 可编程并行接口芯片8155 • 8.4 单片机与键盘和数码管显示器的接口电路 退出
8.1 并行接口的基本概念 • MCS-51单片机有四个并行I/O口。当用MCS-51单片机组成的应用系统需外扩程序存储器和数据存储器时,真正可用的并行口,就只有一个P1口了。
8.2 可编程并行接口芯片8255A • 8.2.1 8255A的内部结构及引脚
2、8255A的引脚 • (1)8255A与单片机相连的引脚 • 8255A采用NMOS工艺制造,有40个引脚,采用双列直插式封装形式。其引脚如图8-2所示。
8.2.3 MCS-51单片机与8255A的接口 • 【例8-3】试设计一个8031单片机与并行接口芯片8255A的接口电路。端口A接一组指示灯,显示的内容由A口输出至指示灯; 端口B接一组开关,将开关的内容由B口输入,并将此开关状态通过A口由指示灯显示出来。8255A的A口、B口、C口和控制字的地址分别为7F00H、7F01H、7F02H和7F03H。 • 8031单片机与8255A的接口电路如图8-13所示。
参考程序如下: • ORG 1000H • MOV DPTR , #7F03H • MOV A , #82H • MOVX @DPTR , A • MOV DPTR , #7F01H • MOV A , @DPTR • DEC DPTR • MOV @DPTR , A • RET
8.3 可编程并行接口芯片8155 • 8.3.1 8155的内部结构及引脚 • 1、8155的内部结构
2、8155的引脚 • Intel8155为HMOS型芯片,40个引脚采用双列直插式封装。其引脚如图8-15所示。
3、8155的寄存器 • (1)命令寄存器 • 8155只有一个控制字,命令寄存器决定A口、B口、C口和定时器/计数器的工作方式及功能。其位格式为:
PA:决定A口的工作方式。PA=0,A口为输入方式;PA=1,A口为输出方式。 PA:决定A口的工作方式。PA=0,A口为输入方式;PA=1,A口为输出方式。 • PB:决定B口的工作方式。PB=0,B口为输入方式;PB=1,B口为输出方式。 • PC2、PC1:决定PC口的工作方式。 • PC2PC1 (ALT1)=00,A口、B口为基本输入/输出,C口为基本输入口; • PC2PC1 (ALT2)=01,A口、B口为基本输入/输出,C口为基本输出口; • PC2PC1 (ALT3)=10,A口为选通输入/输出口, B口为基本输入/输出口; • PC2PC1 (ALT4)=11,A口、B口为选通输入/输出口。
IEA:A口中断允许位。IEA=1允许A口中断,IEA=0禁止A口中断。 IEA:A口中断允许位。IEA=1允许A口中断,IEA=0禁止A口中断。 • IEB:B口中断允许位。IEB=1允许B口中断,IEB=0禁止B口中断。 • TM2、TM1:定时/计数器命令。 • TM2TM1=00,空操作,不影响计数器操作; • TM2TM1=01,停止计数器计数; • TM2TM1=10,定时/计数器长度减为0时停止计数; • TM2TM1=11,连续方式,当计数器赋予初值后,立即 启动定时/计数器;若正在计数,则置新的方式和长度,计数结束后按新的方式和新的时间常数计数。
(2)状态寄存器 • 状态寄存器由7位寄存器组成,其中6位用于表示A口和B口的状态,1位表示定时/计数器的状态。此寄存器为只读寄存器其位格式为:
INTRA:A口中断请求位。 • BFA:A口缓冲器满标志位。 • INTEA:A口中断允许位。 • INTRB:B口中断请求位。 • BFB:B口缓冲器满标志位。 • INTEB:B口中断允许位。 • TIMER:定时中断请求位。 • (3)PA寄存器 • (4)PB寄存器 • (5)PC寄存器 • PC0~5的工作方式及各位的作用如表8-5所示。
其中,T0~T14构成14位计数器。定时/计数器是递减计数器,对输入脉冲计数。当计数器计到0时,可从定时计数器的输出端输出一个脉冲或方波。M2M1决定定时器的输出波形。其中,T0~T14构成14位计数器。定时/计数器是递减计数器,对输入脉冲计数。当计数器计到0时,可从定时计数器的输出端输出一个脉冲或方波。M2M1决定定时器的输出波形。 • 当: M2M1=00时,定时/计数器的输出波形为单个方波; • M2M1=01时,定时/计数器的输出波形为连续方波; • M2M1=10时,定时/计数器的输出波形为单个脉冲; • M2M1=00时,定时/计数器的输出波形为连续脉冲。
8.3.2 8155的工作方式 • 8155的工作方式有两种:基本输入/输出方式和选通工作方式。这两种工作方式与8255的方式0和方式1具有相同的时序;不同的是,工作在选通工作方式时,8155的输入/输出共用一组联络信号。
8.3.3 MCS-51单片机与8155的接口 • 【例8-4】试设计一个8031单片机与并行接口芯片8155的接口电路,并对8155进行初始化编程:让8155的PA口、PB口工作在基本输入/输出方式,其中,A口为输出,B口为输入,对输入脉冲进行32分频,定时器作为脉冲发生器,输出连续脉冲。 • 对8155I/O口地址分配如下: • 命令/状态寄存器的地址: 7F00H • PA口的地址:7F01H • PB口的地址:7F02H • PC口的地址:7F03H • 定时器低8位的地址:7F04H • 定时器高8位的地址:7F05H。 • 8031单片机与并行接口8155的接口电路如图8-17所示。
8155初始化参考程序如下: • MOV DPTR , #7F04H • MOV A , #20H;对计数器的低8位赋初值 • MOVX @DPTR , A • INC DPTR • MOV A , #C0H ;设定定时器为连续脉冲输出 • MOVX @DPTR , A;装入定时器高8位 • MOV DPTR , #7F00H • MOV A , #0C1H;设定命令控制字,并启动定时器 • MOVX @DPTR , A
8.4 单片机与键盘和数码管显示器的接口电路 • 8.4.1 键盘接口 • 1、按键电路和抖动的消除 • 键盘中的每一个按键为常开状态,如图8-18所示。
2、非编码键盘的结构 • 非编码键盘分为独立式非编码键盘,和行列式非编码键盘。下面分别进行介绍。 • (1)独立式非编码键盘 • 独立式非编码键盘,是每个按键独立地占用一条数据输入线。如图8-21所示。当某一按键闭合时,相应的I/O线变为低电平。
判断是否有键按下的方法,是查询每一个连接按键的I/O线。当查询到的I/O线为低电平时,便知此键按下。判断是否有键按下的方法,是查询每一个连接按键的I/O线。当查询到的I/O线为低电平时,便知此键按下。 • (2)非编码行列式键盘 • 非编码行列式键盘是将I/O线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的交叉点上。行列式键盘的数量为:行线数m乘以列线数n。图8-22是一个4×4行列式键盘,按键数量为16个。
3、非编码键盘按键的处理过程 • (1)键盘处理程序的功能 • a 首先应判断键盘中有无键按下 • b消除键的抖动 • c求键号 对I/O口中的D3~D0依次输出下列扫描信号 : • D3 D2 D1 D0 • 第一次 1 1 1 0 • 第二次 1 1 0 1 • 第三次 1 0 1 1 • 第四次 0 1 1 1 • (2)中断扫描方式