第 8 章 并行接口与应用
DESCRIPTION
第 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 的引脚 - PowerPoint PPT PresentationTRANSCRIPT
第第 88 章 章 并行接口与应用并行接口与应用
8.1 并行接口的基本概念
8.2 可编程并行接口芯片8255A
8.3 可编程并行接口芯片8155
8.4 单片机与键盘和数码管显示器的接口电路
退出退出
8.1 8.1 并行接口的基本概念并行接口的基本概念
MCS-51MCS-51 单片机有四个并行单片机有四个并行 I/OI/O 口。当用口。当用 MCS-MCS-
5151 单片机组成的应用系统需外扩程序存储器和数据存单片机组成的应用系统需外扩程序存储器和数据存
储器时,真正可用的并行口,就只有一个储器时,真正可用的并行口,就只有一个 P1P1 口了。口了。
8.2 8.2 可编程并行接口芯片可编程并行接口芯片 828255A55A
8.2.1 8255A8.2.1 8255A 的内部结构及引脚的内部结构及引脚
22 、、 8255A8255A 的引脚的引脚
(( 11 )) 8255A8255A 与单片机相连的引脚与单片机相连的引脚
8255A8255A 采用采用 NMOSNMOS 工艺制造,有工艺制造,有 4040 个引脚,个引脚,
采用双列直插式封装形式。其引脚如图采用双列直插式封装形式。其引脚如图 8-28-2 所示。所示。
8.2.3 MCS-518.2.3 MCS-51 单片机与单片机与 8255A8255A 的接口的接口
【【例例 8-38-3 】】试设计一个试设计一个 80318031 单片机与并行接口单片机与并行接口芯片芯片 8255A8255A 的接口电路。端口的接口电路。端口 AA 接一组指示灯,显示接一组指示灯,显示的内容由的内容由 AA 口输出至指示灯; 端口口输出至指示灯; 端口 BB 接一组开关,将接一组开关,将开关的内容由开关的内容由 BB 口输入,并将此开关状态通过口输入,并将此开关状态通过 AA 口由口由指示灯显示出来。指示灯显示出来。 8255A8255A 的的 AA 口、口、 BB 口、口、 CC 口和控制口和控制字的地址分别为字的地址分别为 7F00H7F00H 、、 7F01H7F01H 、、 7F02H7F02H 和和 7F03H7F03H 。。
80318031 单片机与单片机与 8255A8255A 的接口电路如图的接口电路如图 8-138-13 所示。所示。
参考程序如下:参考程序如下:ORG 1000HORG 1000H
MOV DPTR , #7F03HMOV DPTR , #7F03H
MOV A , #82HMOV A , #82H
MOVX @DPTR , AMOVX @DPTR , A
MOV DPTR , #7F01HMOV DPTR , #7F01H
MOV A , @DPTRMOV A , @DPTR
DEC DPTRDEC DPTR
MOV @DPTR , AMOV @DPTR , A
RETRET
8.3 8.3 可编程并行接口芯片可编程并行接口芯片 81815555
8.3.1 81558.3.1 8155 的内部结构及引脚的内部结构及引脚
11 、、 81558155 的内部结构的内部结构
22 、、 81558155 的引脚的引脚
Intel8155Intel8155 为为 HMOSHMOS 型芯片,型芯片, 4040 个引脚采用双个引脚采用双
列直插式封装。其引脚如图列直插式封装。其引脚如图 8-158-15 所示。所示。
33 、、 81558155 的寄存器的寄存器
(( 11 )命令寄存器)命令寄存器
81558155 只有一个控制字,命令寄存器决定只有一个控制字,命令寄存器决定 AA 口、口、 BB 口、口、 CC 口和定时器口和定时器 // 计数器的工计数器的工
作方式及功能。其位格式为:作方式及功能。其位格式为:
PAPA :决定:决定 AA 口的工作方式。口的工作方式。 PA=0PA=0 ,, AA 口为输入方式;口为输入方式; PPA=1A=1 ,, AA 口为输出方式。口为输出方式。
PBPB :决定:决定 BB 口的工作方式。口的工作方式。 PB=0PB=0 ,, BB 口为输入方式;口为输入方式; PBPB=1=1 ,, BB 口为输出方式。口为输出方式。
PC2PC2 、、 PC1PC1 :决定:决定 PCPC 口的工作方式。口的工作方式。PC2PC1 PC2PC1 (( ALT1ALT1 )) =00=00 ,, AA 口、口、 BB 口为基本输入口为基本输入 // 输出,输出, CC 口口为基本输入口;为基本输入口;
PC2PC1 PC2PC1 (( ALT2ALT2 )) =01=01 ,, AA 口、口、 BB 口为基本输入口为基本输入 // 输出,输出,CC 口为基本输出口;口为基本输出口;
PC2PC1 PC2PC1 (( ALT3ALT3 )) =10=10 ,, AA 口为选通输入口为选通输入 // 输出口, 输出口, BB口为基本输入口为基本输入 // 输出口;输出口;
PC2PC1 PC2PC1 (( ALT4ALT4 )) =11=11 ,, AA 口、口、 BB 口为选通输入口为选通输入 // 输出口。输出口。
IEAIEA :: AA 口中断允许位。口中断允许位。 IEA=1IEA=1 允许允许 AA 口中断,口中断, IEA=0IEA=0禁止禁止 AA 口中断。口中断。
IEBIEB :: BB 口中断允许位。口中断允许位。 IEB=1IEB=1 允许允许 BB 口中断,口中断, IEB=0IEB=0禁止禁止 BB 口中断。口中断。TM2TM2 、、 TM1TM1 :定时:定时 // 计数器命令。计数器命令。TM2TM1=00TM2TM1=00 ,空操作,不影响计数器操作;,空操作,不影响计数器操作;TM2TM1=01TM2TM1=01 ,停止计数器计数;,停止计数器计数;TM2TM1=10TM2TM1=10 ,定时,定时 // 计数器长度减为计数器长度减为 00 时停止计数;时停止计数;TM2TM1=11TM2TM1=11 ,连续方式,当计数器赋予初值后,立即,连续方式,当计数器赋予初值后,立即 启启动定时动定时 // 计数器;若正在计数,则置新的方式和长度,计数结束计数器;若正在计数,则置新的方式和长度,计数结束后按新的方式和新的时间常数计数。后按新的方式和新的时间常数计数。
(( 22 )状态寄存器)状态寄存器
状态寄存器由状态寄存器由 77 位寄存器组成,其中位寄存器组成,其中 66 位用于位用于
表示表示 AA 口和口和 BB 口的状态,口的状态, 11 位表示定时位表示定时 // 计数器的状计数器的状
态。此寄存器为只读寄存器其位格式为:态。此寄存器为只读寄存器其位格式为:
INTRAINTRA :: AA 口中断请求位。口中断请求位。BFABFA :: AA 口缓冲器满标志位。口缓冲器满标志位。INTEAINTEA :: AA 口中断允许位。口中断允许位。INTRBINTRB :: BB 口中断请求位。口中断请求位。BFBBFB :: BB 口缓冲器满标志位。口缓冲器满标志位。INTEBINTEB :: BB 口中断允许位。口中断允许位。TIMERTIMER :定时中断请求位。:定时中断请求位。(( 33 )) PAPA 寄存器寄存器(( 44 )) PBPB 寄存器寄存器(( 55 )) PCPC 寄存器寄存器PC0PC0 ~~ 55 的工作方式及各位的作用如表的工作方式及各位的作用如表 8-58-5 所示。所示。
其中,其中, T0T0 ~~ T14T14 构成构成 1414 位计数器。定时位计数器。定时 // 计数器是递计数器是递减计数器,对输入脉冲计数。当计数器计到减计数器,对输入脉冲计数。当计数器计到 00 时,可从定时计时,可从定时计数器的输出端输出一个脉冲或方波。数器的输出端输出一个脉冲或方波。 M2M1M2M1 决定定时器的输决定定时器的输出波形。出波形。
当:当: M2M1=00M2M1=00 时,定时时,定时 // 计数器的输出波形为单个方波;计数器的输出波形为单个方波;M2M1=01M2M1=01 时,定时时,定时 // 计数器的输出波形为连续方波;计数器的输出波形为连续方波;M2M1=10M2M1=10 时,定时时,定时 // 计数器的输出波形为单个脉冲;计数器的输出波形为单个脉冲;M2M1=00M2M1=00 时,定时时,定时 // 计数器的输出波形为连续脉冲。计数器的输出波形为连续脉冲。
8.3.2 81558.3.2 8155 的工作方式的工作方式
81558155 的工作方式有两种:基本输入的工作方式有两种:基本输入 // 输出方式输出方式
和选通工作方式。这两种工作方式与和选通工作方式。这两种工作方式与 82558255 的方式的方式 00 和和
方式方式 11 具有相同的时序;不同的是,工作在选通工作具有相同的时序;不同的是,工作在选通工作
方式时,方式时, 81558155 的输入的输入 // 输出共用一组联络信号。输出共用一组联络信号。
8.3.3 MCS-518.3.3 MCS-51 单片机与单片机与 81558155 的接口的接口【【例例 8-48-4 】】试设计一个试设计一个 80318031 单片机与并行接口芯片单片机与并行接口芯片 81558155 的接口电的接口电
路,并对路,并对 81558155 进行初始化编程:让进行初始化编程:让 81558155 的的 PAPA 口、口、 PBPB 口工作在基本输入口工作在基本输入// 输出方式,其中,输出方式,其中, AA 口为输出,口为输出, BB 口为输入,对输入脉冲进行口为输入,对输入脉冲进行 3232 分频,分频,定时器作为脉冲发生器,输出连续脉冲。 定时器作为脉冲发生器,输出连续脉冲。
对对 8155I/O8155I/O 口地址分配如下:口地址分配如下:命令命令 // 状态寄存器的地址: 状态寄存器的地址: 7F00H7F00H
PAPA 口的地址:口的地址: 7F01H7F01H
PBPB 口的地址:口的地址: 7F02H7F02H
PCPC 口的地址:口的地址: 7F03H7F03H
定时器低定时器低 88 位的地址:位的地址: 7F04H7F04H
定时器高定时器高 88 位的地址:位的地址: 7F05H7F05H 。。80318031 单片机与并行接口单片机与并行接口 81558155 的接口电路如图的接口电路如图 8-178-17 所示。所示。
81558155 初始化参考程序如下:初始化参考程序如下:MOVMOV DPTR , #7F04HDPTR , #7F04H
MOVMOV A , #20HA , #20H ;对计数器的低;对计数器的低 88 位赋初值位赋初值MOVXMOVX @DPTR , A@DPTR , A
INCINC DPTRDPTR
MOVMOV A , #C0H A , #C0H ;设定定时器为连续脉冲输出;设定定时器为连续脉冲输出MOVXMOVX @DPTR , A@DPTR , A ;装入定时器高;装入定时器高 88 位位MOVMOV DPTR , #7F00HDPTR , #7F00H
MOVMOV A , #0C1HA , #0C1H ;设定命令控制字,并启动定时器;设定命令控制字,并启动定时器MOVXMOVX @DPTR , A@DPTR , A
8.4 8.4 单片机与键盘和数码管单片机与键盘和数码管显示器的接口电路显示器的接口电路
8.4.1 8.4.1 键盘接口键盘接口
11 、按键电路和抖动的消除、按键电路和抖动的消除
键盘中的每一个按键为常开状态,如图键盘中的每一个按键为常开状态,如图 8-188-18 所示。所示。
22 、非编码键盘的结构、非编码键盘的结构
非编码键盘分为独立式非编码键盘,和行列式非非编码键盘分为独立式非编码键盘,和行列式非
编码键盘。下面分别进行介绍。编码键盘。下面分别进行介绍。
(( 11 )独立式非编码键盘)独立式非编码键盘
独立式非编码键盘,是每个按键独立地占用一条独立式非编码键盘,是每个按键独立地占用一条
数据输入线。如图数据输入线。如图 8-218-21 所示。当某一按键闭合时,相应所示。当某一按键闭合时,相应
的的 I/OI/O 线变为低电平。线变为低电平。
判断是否有键按下的方法,是查询每一个连接按判断是否有键按下的方法,是查询每一个连接按键的键的 I/OI/O 线。当查询到的线。当查询到的 I/OI/O 线为低电平时,便知此键线为低电平时,便知此键按下。按下。
(( 22 )非编码行列式键盘)非编码行列式键盘
非编码行列式键盘是将非编码行列式键盘是将 I/OI/O 线的一部分作为行线,线的一部分作为行线,另一部分作为列线,按键设置在行线和列线的交叉点上。另一部分作为列线,按键设置在行线和列线的交叉点上。行列式键盘的数量为:行线数行列式键盘的数量为:行线数 mm 乘以列线数乘以列线数 nn 。图。图 8-228-22
是一个是一个 4×44×4 行列式键盘,按键数量为行列式键盘,按键数量为 1616 个。个。
33 、非编码键盘按键的处理过程、非编码键盘按键的处理过程(( 11 )键盘处理程序的功能)键盘处理程序的功能a a 首先应判断键盘中有无键按下 首先应判断键盘中有无键按下 bb 消除键的抖动 消除键的抖动 cc 求键号求键号 对 对 I/OI/O 口中的口中的 D3D3 ~~ D0D0 依次输出下列扫描信号 :依次输出下列扫描信号 :
D3 D2 D1 D0D3 D2 D1 D0
第一次 第一次 1 1 1 01 1 1 0
第二次 第二次 1 1 0 11 1 0 1
第三次 第三次 1 0 1 1 1 0 1 1
第四次 第四次 0 1 1 10 1 1 1
(( 22 )中断扫描方式)中断扫描方式
22 、数码管显示器接口、数码管显示器接口
【【例例 8-58-5 】】如图如图 8-268-26 ,通过并行接口芯片,通过并行接口芯片 81558155
扩展扩展 66 位动态数码管显示电路,轮流点亮各位动态数码管显示电路,轮流点亮各 LEDLED 数码数码
管,每位点亮管,每位点亮 2ms2ms ,重复此过程。,重复此过程。
让让 81558155 的的 PAPA 口、口、 PBPB 口,工作在基本输出方式。口,工作在基本输出方式。
PBPB 口输出显示代码,口输出显示代码, PAPA 口输出位选码。设口输出位选码。设 PAPA 口的地址口的地址
为为 7F01H7F01H ,, PBPB 口的地址为口的地址为 7F02H7F02H ,控制字寄存器的地址,控制字寄存器的地址
为为 7F00H7F00H ,显示缓冲区为,显示缓冲区为 60H60H ~~ 65H65H 。其显示程序流程,。其显示程序流程,
如图如图 8-278-27 所示。所示。
参考程序如下:参考程序如下:START:START: MOVMOV A , #03HA , #03H ;;
对对 81558155 初始化初始化MOVMOV DPTR , #7F00HDPTR , #7F00H
MOVXMOVX @DPTR , A@DPTR , A
MOVMOV R0 , #60HR0 , #60H ;;置显示缓冲区首地址置显示缓冲区首地址MOVMOV R2 , #01HR2 , #01H ;;置位选码初值置位选码初值MOVMOV A , R2A , R2
LOOP:LOOP: MOVMOV DPTR , #7F01HDPTR , #7F01H
MOVXMOVX @DPTR , A@DPTR , A
INCINC DPTRDPTR
MOVMOV A , @R0A , @R0
ADDADD A , #0DHA , #0DH ;;
形成查表的偏移地址形成查表的偏移地址
MOVCMOVC A , @A+PCA , @A+PC
DIRDIR :: MOVXMOVX @DPTR , A@DPTR , A
ACLLACLL DELAYDELAY ;延时;延时INCINC R0R0
MOVMOV A , R2A , R2
JBJB ACC.5 , LOOP1ACC.5 , LOOP1 ;;判断判断 66 位是否显示完毕位是否显示完毕RLRL AA
MOVMOV R2 , AR2 , A
AJMPAJMP LOOPLOOP
LOOP1:LOOP1: RETRET
DBDB 3FH , 06H , 5BH , 4FH , 66H , 6DH 3FH , 06H , 5BH , 4FH , 66H , 6DH
DBDB 7DH , 07H , 7FH , 6FH , 77H , 7CH7DH , 07H , 7FH , 6FH , 77H , 7CH
DBDB 39H , 5EH , 79H , 71H39H , 5EH , 79H , 71H
DELAY:DELAY: MOVMOV R7 , #04HR7 , #04H
DELAY1:DELAY1: MOVMOV R6 , #0FFHR6 , #0FFH
DELAY2:DELAY2: DJNZDJNZ R6 , DELAY2R6 , DELAY2
DJNZDJNZ R7 , DELAY1R7 , DELAY1
RETRET
通过通过 81558155 扩展扩展 2424 键键盘和键键盘和 66 位动态数码管显示器的接口位动态数码管显示器的接口电路,如图电路,如图 8-288-28 所示,供读者参考。所示,供读者参考。