单片机第8章单片机的并行接口.ppt
《单片机第8章单片机的并行接口.ppt》由会员分享,可在线阅读,更多相关《单片机第8章单片机的并行接口.ppt(106页珍藏版)》请在课桌文档上搜索。
1、第8章 单片机的并行接口,【本章内容】本章主要介绍MCS-51单片机并行接口的结构、工作原理、并行接口芯片、并行接口的扩展、单片机与键盘、LED的连接等。,8.1.1 并行接口的结构,MCS-51单片机共有4个并行I/O口P0P3,每个均由8位锁存器和8位输出驱动器组成。4个8位数据锁存器和端口号P0、P1、P2和P3同名,均为特殊功能寄存器,通过对锁存器的读写,就可以实现数据的输入/输出操作。,P0口:在单片机没有扩展外部存储器时,P0口可作为通用I/O口使用;当单片机接有外部存储器时,P0口则作为地址/数据口使用,以分时操作方式工作,即先输出外部存储器的低8位地址,然后再切换为传输外部存储
2、器读/写数据方式。P1口:仅作为通用I/O口,用于输入/输出数据。P2口:在单片机没有扩展外部存储器时,作为通用I/O口使用;当单片机接有外部存储器时,用于输出外部存储器的高8位地址。,P3口 的第二功能,1输出数据方式,在输出数据方式下,CPU通过一条字节操作指令就可以把输出数据写入P0P3的端口锁存器,然后通过输出驱动器送到端口引脚。例如,如下指令均可在P1口输出数据:,MOV P1,A;P1(A)ANL P1,#data;P1 dataORLP1,R2;P1(R2)XRLP1,30H;P1(30H),2读端口数据方式,CPU读入的数据并非端口引脚线上输入的数据。因此,CPU只要用一条传送
3、指令就可把端口锁存器中数据读入累加器A或内部RAM中,例如,如下指令可以从P1口输入数据。MOVA,P1;A(P1)MOVR2,P1;R2(P1)MOV30H,P1;30H(P1)MOVR1,P1;(R1)(P1),3读引脚方式,读引脚方式可以从端口引脚线上读入信息。在这种方式下,必须先向欲读端口引脚所对应的锁存器写入1,目的是使接在该引脚内部的场效应驱动管截止,使引脚处于悬浮状态,成为高阻抗输入。然后再用传送指令把引脚线上的数据读入累加器A或内部RAM中。,MOV P1,#0FFH;向P1口写入1,为 读引脚作好准备MOV A,P1;读P1口所有引脚 的数据,读引脚指令:,如下两条指令可以将
4、P1口的8条引脚上的数据读入累加器A中。,如下两条指令可以将P1口低4位4条引脚上的数据读入累加器A的低4位中。,读引脚指令:,ORL P1,#0FH;向P1口低4位写入 1,其余位不变MOV A,P1;读P1口低4位引脚,8.2 并行接口的扩展,8.2.1 并行接口芯片81558.2.2 利用8155扩展并行接口,8.2.1 并行接口芯片8155,8155芯片是一块通用I/O接口芯片,是单片机应用系统中广泛使用的芯片之一,其内部包含两个8位并行口和一个6位并行口,以及256字节的RAM存储器和一个14位定时器/计数器。8155芯片具有地址锁存功能,与单片机接口非常简单,因此,其被广泛应用于M
5、CS-51单片机系统中。,18155的内部结构,图8-1 8155的内部结构,双向数据总线缓冲器:用于缓冲存储单片机与8155的RAM之间的读/写数据。地址锁存器:用于锁存单片机送给8155的端口地址或RAM单元地址。地址译码器:用于对地址锁存器送来的低3位地址进行译码,根据译码输出,选择命令/状态寄存器、定时器/计数器或A、B和C 3个I/O寄存器中的某一个工作。,8155芯片各组成部分的作用:,读写控制器:根据和线上的信号,控制单片机与8155之间所传信息的 读写。RAM存储器:容量为256字节,用于存放实时数据。存储器存储单元地址由地址锁存器指定。,I/O寄存器:A、B和C 3个端口各有
6、一个I/O寄存器。其中A、B端口的I/O寄存器为8位,用于存放外设的输入/输出数据;C口的I/O寄存器为6位,用于存放输入/输出数据或命令/状态信息。8155在某一时刻只能选中某个I/O寄存器工作,这由单片机送给8155的命令字决定。,命令寄存器和状态寄存器:命令寄存器存放单片机送来的命令字,只能写入;状态寄存器存放8155的状态字,只能读出。定时器/计数器:是一个二进制14位的减法计数器。计数器初值由单片机送入,由TIMER IN引脚上输入的脉冲实现减1计数控制,并根据不同的计数输出方式从TIMER OUT引脚输出相应的波形。作为定时器使用时,TIMER IN引脚应输入频率恒定的周期脉冲。,
7、28155的外部引脚,38155的端口地址,8155内部RAM的地址为00HFFH,当IO/=0时被选中。8155内部的其他端口,在IO/=1时,由低3位地址进行选择,具体的端口地址分配如表8-1所示。,表8-18155端口地址分配,表中的“”表示0或1,当高13位地址A15A3不作为、IO/控制线时,可以为任意值,否则,应为具体值。,IO/,48155的命令字,8155的命令字用于选择8155的工作方式,由单片机写入8155的命令寄存器中,从而起控制作用。8155命令字的格式如图8-3所示。,图8-3 8155命令字的格式,PA:A口数据传送方向设置位。为0时表示输入;为1时表示输出。PB:
8、B口数据传送方向设置位。为0时表示输入;为1时表示输出。PC1、PC2:C口工作方式设置位,设置方法如表8-2所示。,8115命令字各位的定义:,表8-2C口工作方式设置,表8-3C口工作方式为ALT3、ALT4时,其各引脚的定义,(1):A口选通。由外设送给8155,用于选通A口。(2)BFA:A口缓冲器满。由8155送给外设,用于通知外设读/写A口数据。(3)INTRA:A口中断请求。由8155送给单片机,用于向单片机提出中断请求。,表8-3中各脚的名称与功能:,(4)、BFB、INTRB:B口使用的3个控制信号,功能与A口的相应信号相同。IEA:A口的中断允许设置位。为0时表示禁止;为1
9、时表示允许。IEB:B口的中断允许设置位。为0时表示禁止;为1时表示允许。TM2、TM1:定时器/计数器工作方式设置位,设置方法如表8-4所示。,表8-3中各脚的名称与功能:,表8-4计数器工作方式设置:,58155的状态字,8155的状态字由8155根据其自身的工作状态生成,并存放在8155的状态寄存器中。单片机可使用一条读片外RAM指令MOVX A,Ri或MOVX A,DPTR将状态字读出,从而得知8155所处的工作状态。,8155状态字的格式如图8-4所示。,图8-4 8155状态字的格式,8155状态字格式,最高位:空出不用。TIMER:定时器/计数器计数中断状态标志位。TIMER=0
10、,表示定时器/计数器处于复位、尚未计数、正在计数或硬件复件;TIMER=1,表示定时器/计数器已计满回零,当状态字被读出后,它被复位为0。,8155状态字各位的定义:,INTEB、INTEA:B口、A口中断允许/禁止标志位。为0时,表示禁止中断;为1时,表示允许中断。INTRB、INTRA:B口、A口中断请求标志位。为0时,表示无中断请求;为1时,表示有中断请求。,8155状态字各位的定义:,BFB、BFA:B口、A口缓冲器状态标志位。为0时,表示缓冲器为空,可以接受外设或单片机送入数据;为1时,表示缓冲器已装满数据,可供外设或单片机读取。,8155状态字各位的定义:,68155的定时器/计数
11、器,8155的定时器/计数器由两个字节构成,低字节地址低3位为100B,高字节地址低3位为101B(详见表8-1)。其中,高字节的高两位为定时器/计数器输出模式选择位,其余为计数位,最大计数长度为14位。8155的定时器/计数器各位的定义如图8-5所示。,图8-5 8155的定时器/计数器各位定义,在M2、M1选择的4种输出模式下,定时器/计数器输出端TIMER OUT输出的波形:,图8-6 8155定时器/计数器输出端TIMER OUT输出的波形,(1)当M2M1=00时,定时器/计数器在计数的后半周期内使定时器/计数器输出端输出低电平,计数结束后,变为高电平,从而形成一个单次矩形波。若计数
12、器初值为偶数,则矩形波为对称方波;若为奇数,则矩形波的高电平持续期比低电平的持续期多一个计数脉冲时间。,4种输出模式说明:,(2)当M2M1=01时,定时器/计数器每当减1到全0时都会自动装入计数初值,并重新开始减1计数。因此,可在定时器/计数器输出端输出连续矩形波。矩形波周期与给定的计数初值有关。,4种输出模式说明:,(3)当M2M1=10时,定时器/计数器每当减1到全0时,便在定时器/计数器输出端输出一个单次脉冲。(4)M2M1=11时与M2M1=01时类似,每当减1到全0时能自动装入计数初值,并重新开始计数,从而输出连续脉冲。脉冲周期由计数初值决定。,4种输出模式说明:,8.2.2 利用
13、8155扩展并行接口,由于8155内部包含一个8位地址锁存器,可以用来锁存单片机送来的8155端口地址或其内部RAM的地址。因此,将8155与单片机连接时,无需外加地址锁存器,直接将单片机的ALE引脚与8155的ALE引脚连接即可。值得注意的是,8155端口地址的低3位是不变的,其余位则随着译码方法的不同而有所不同。,8031与8155的连接,图8-7 8031与8155的连接示意图,地址译码方法选用的是线选译码。8031的P2.7、P2.0分别与8155的 和IO/引脚连接,因此,当P2.7(A15)=0及P2.0(A8)=0时,选中8155的内部RAM,它们的地址范围为00 0000000
14、0B00 11111111B(表示0或1,选0时对应的地址为基本地址,其余为重叠地址);当P2.7(A15)=0及P2.0(A8)=1时,选中8155的I/O端口,所以按图8-7进行连接时,8155的I/O端口地址如表8-5所示(详见P.144)。,图8-7说明:,【项目应用】在应用项目中,利用8155扩展并行口的电路如图8-8所示。,图8-8 应用项目中的并行口扩展电路,8155地址译码方法选用的是线选译码。8155的引脚接为常选。8155的IO/引脚与单片机的P2.7连接,因此,I/O端口地址与RAM地址,主要由P2.7的状态决定。,图8-8说明:,命令/状态口:1000 0000 000
15、0 0000B(8000H)A口:1000 0000 0000 0001B(8001H)B口:1000 0000 0000 0010B(8002H)C口:1000 0000 0000 0011B(8003H)定时器/计数器低字节:1000 0000 0000 0100B(8004H)定时器/计数器高字节:1000 0000 0000 0101B(8005H),端口地址:,当P2.7=1时,选中8155的I/O端口,此时8155各端口的基本地址如下。,当P2.7=0时,选中8155的内部RAM,因此,8155中的RAM基本地址范围为:0000 0000 0000 0000B 0000 0000
16、1111 1111B(即0000H00FFH)。,RAM地址:,由于扩展得到的A口、B口都用作输出口,因此,需要写入8155的命令字为:0000 0011B(03H)。其中,最低两位设为1,用于将A口、B口的数据传送方向设为输出,C口以及其他控制位没有使用,均设为0。,8155的命令字:,应用程序中使用如下3条指令,将8155命令字写入8155的命令口:10 MAIN:MOV A,#03H;8155初始化命令字11 MOV DPTR,#8000H;8155命令口地址12MOVX DPTR,A;向8155写入命令字,写入8155命令字的程序:,8.3 单片机与外设的接口,8.3.1 单片机与键盘
17、的接口8.3.2 单片机与LED的接口,8.3.1 单片机与键盘的接口,1单片机与独立式键盘的接口2单片机与矩阵式键盘的接口,1单片机与独立式键盘的接口,图8-10 单片机与独立键盘的接口电路,在图8-10中,连接按键的是单片机的P1口,由于P1口内部有上拉电阻,所以无需再外接上拉电阻。这种独立式键盘配置灵活,软件结构简单,但每个按键必须占用一根端口线,按键数量多时,需占用的端口线也多。所以独立式按键常用于按键数量不多的场合。,图8-10说明:,(1)随机扫描方式:当CPU空闲时,调用键盘扫描子程序,在子程序中对键盘进行扫描,从而识别按键,响应键盘的输入请求。,独立式键盘扫描方式,(2)定时扫
18、描方式:利用单片机内部的定时器产生定时中断,在中断服务程序中对键盘进行扫描,并在有按键被按下时,转入键功能处理程序。定时扫描方式的硬件接口电路与随机扫描方式相同。,独立式键盘扫描方式,(3)中断扫描方式:当键盘上有按键闭合时,产生中断请求,CPU响应中断并在中断服务程序中判断键盘闭合键的键号,并作相应的处理。采用中断扫描方式的一种键盘接口电路如图8-11所示,独立式键盘扫描方式,采用中断扫描方式的键盘接口电路,图8-11 采用中断扫描方式的键盘接口电路,SCAN:MOV P1,#0FFH;置P1口为输入方式 MOV A,P1;读P1口信息 JNB ACC.0,KEY0;0号键按下,转0号键处理
19、 JNB ACC.1,KEY1;1号键按下,转1号键处理 JNB ACC.7,KEY7;7号键按下,转7号键处理 RET;无键按下,返回主程序,与图8-10对应的键盘扫描子程序(随机扫描方式):,与图8-10对应的键盘扫描子程序:,KEY0:;0号键处理程序 LJMPSCAN;处理完毕,重新扫描KEY1:;1号键处理程序 LJMPSCAN;处理完毕,重新扫描 KEY7:;7号键处理程序 LJMPSCAN;处理完毕,重新扫描,2单片机与矩阵式键盘的接口,矩阵式键盘采用行列式结构,按键设置在行列的交叉点上。当使用单片机的P1口与矩阵式键盘连接时,可以将P1口低4位的4条端口线定义为行线,P1口高4
20、位的4条端口线定义为列线,形成44键盘,可以配置16个按键,如图8-12所示。,单片机与矩阵式键盘的接口电路,图8-12 单片机与矩阵式键盘的接口电路,通常将矩阵式键盘的行线作为输入线,通过上拉电阻接+5V电源(在图8-12中,由于P1口内部有上拉电阻,所以不用外接上拉电阻),使行线的状态为1;列线作为输出线,送出低电平0。当键盘上没有键闭合时,所有行线与列线相互分开,行线均呈高电平1状态;当键盘上某一个按键被按下时,该按键所对应的行线与列线短接,此时该行线的电平将被短接的列线箝位为低电平0。,图8-12说明:,(1)判断是否有按键被按下(2)去抖动处理(3)防窜键处理(4)求出被按键所在的列
21、号(5)求出被按键所在的行号(6)求出被按键的键号,监视键盘的步骤,首先使所有列线为低电平,然后读行线状态,若行线均为高电平,则没有键按下;若读出的行线状态不全为高电平,则可以断定有按键被按下。,(1)判断是否有按键被按下,当某个按键被按下时,由于按键簧片的抖动,导致单片机对一次按键进行多次处理的错误。如图8-9所示。,(2)去抖动处理,图8-9 按键抖动形成的波形,因此,当发现有按键被按下后,需要采用软件延时10ms,然后再进行扫描确认。,窜键是指用户在操作按键时,由于不小心同时按下了两个以上的按键。处理原则:把最后放开的按键当成真正被按的按键。处理方法:在程序中预先设定一个窜键标志寄存器。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 并行 接口
链接地址:https://www.desk33.com/p-246731.html