《MCS-51系列单片机一.ppt》由会员分享,可在线阅读,更多相关《MCS-51系列单片机一.ppt(15页珍藏版)》请在三一文库上搜索。
1、2MCS-51系列单片机系统的扩展能力,片外扩展存储器: 数据存储器:为216=64KB,地址范围为0000HFFFFH; 程序存储器:为216=64KB,地址范围为0000HFFFFH; 允许片外程序存储器和数据存储器的地址重叠。 I/O接口的编址方法:独立编址与统一编址。 MCS-51单片机采用了统一编址方式; I/O端口地址与外部数据存储单元地址统一编址为0000HFFFFH(64KB); 扩展I/O接口占据的数据存储器的地址。,方法:直接以系统空闲的高位地址线作为外部芯片的片选信号。 优点:简单明了,无须另外增加硬件电路。 缺点:寻址范围不惟一,地址空间没有被充分利用,可外扩芯片的个数
2、较少。 适用对象:适用于小规模单片机应用系统中片选信号的产生。 2. 全地址译码法 方法:利用译码器对系统中未被外扩芯片用到的高位地址线进行译码,以译码器的输出作为外围芯片的片选信号。常用的译码器有:74LS139,74LS138,74LS154等。 优点:存储器的每个存储单元只有惟一的一个系统空间地址,不存在地址重叠现象;对存储空间的使用是连续的,能有效地利用系统的存储空间。 缺点:所需地址译码电路较多。 适用对象:单片机应用系统设计中经常采用的方法。,1. 线选法,4.1.2 MCS-51单片机系统地址空间的分配,3. 部分地址译码法 方法:单片机的未被外扩芯片用到的高位地址线中,只有一部
3、分参与地址译码,其余部分是悬空的。 优点:可以减少所用地址译码器的数量。 缺点:外部器件每个单元的地址不是惟一的,存在地址重叠现象。 适用对象:适用于系统未被外扩芯片用到的高位地址线较多,而需要外扩的外部芯片较少的系统。 注意:采用部分地址译码法时必须把程序和数据存放在基本地址范围内,以避免因地址重叠引起程序运行的错误。,3典型扩展电路,MCS-51外扩存储器时应考虑: (1)锁存器的选择与连接; (2)片选信号产生的方法,编址电路设计; (3)存储器的选择与连接。 访问程序存储器的控制信号: ALE 地址锁存信号 片外程序存储器读信号 EA 片内/外程序存储器访问选择信号, EA=0:访问片
4、外;EA=1:访问片内。,8051扩展2764的电路连接方法: 数据线:P0口D0D7 ; 地址线: 2764容量为8KB,213=8KB,片内寻址A0A12共13根地址线。P0口经地址锁存器A0A7 ; P2.0P2.4 A8A12, P2.5 CE 控制线:ALE373的LE,PSENEPROM的OE,EAVCC。,MCS-51单片机扩展2764电路,2764的地址范围为:000H1FFFH。,2.数据存储器典型扩展电路,MCS-51扩展6264的电路连接方法: 数据线:P0口接RAM的D0D7 ; 地址线: 6264容量为8KB,213=8KB,片内寻址A0A12共13根地址线。P0口经
5、地址锁存器A0A7 ; P2.0P2.4A8A12 。 控制线:ALE接373的LE, 接RAM的 、 接RAM的 ,用线选法实现片选 , P2.5 。,6264的地址范围为: 0000H1FFFH。,MCS-51单片机扩展6264电路,例题 在上页图的数据存储器扩展电路中,将片内RAM 以50H单元开始的16个数据,传送片外数据存储器0000H开始的单元中。 程序如下: ORG 0000H LJMP START ORG 0030H START : MOV R0, #50H ; 数据指针指向片内50H单元 MOV R7, #16 ; 待传送数据个数送计数寄存器 MOV DPTR, #0000H
6、 ; 数据指针指向数据存储器6264的0000H单元 AGAIN: MOV A, R0 ; 片内待输出的数据送累加器A MOVX DPTR, A ; 数据输出至数据存储器6264 INC R0 INC DPTR ; 修改数据指针 DJNZ R7, AGAIN ; 判断数据是否传送完成 SJMP $ END,4.2.3 MCS-51对外部存储器的扩展,8031 单片机外扩16KB程序存储器和8KB数据存储器。 16KB程序存储器:两片2764芯片 8KB数据存储器:一片6264芯片 编址方法:采用全地址译码方式,P2.7用于控制24译码器的工作,P2.6, P2.5参加译码,且无悬空地址线,无地
7、址重叠现象。,1# 2764, 2# 2764, 3# 6264的 地址范围分别为: 0000H1FFFH, 2000H3FFFH, 40005FFFH。,MCS-51单片机扩展外部存储器,(4)接口与编程方法,数据线: 8255A内部已有数据总线驱动器,可以直接与单片机的数据总线相连接( P0口D0D7 )。 地址线:片选采用先选法, P2.7;片内寻址的A1,A0 单片机的地址线最低2位。 控制线: , ,RESET直接与单片机的相应线相连。,MCS-51单片机扩展扩展8255电路,PA, PB, PC口及控制寄存器的地址分别为: 7FFCH, 7FFDH, 7FFEH和7FFFH。,例题
8、如图上页所示,8255A芯片的PA接一组8只状态指示灯,PB接一组8个开关,设计完成将开关闭合的状态输入到片内60H单元保存,将70H单元的内容送状态指示灯显示,并置位PC7引脚,编写相应程序。 解:设置8255A的A口方式0输出,B口方式0输入,C口高四位输出,8255A的方式字为82H(10000010B),C口置位/复位字为0FH(00001111B),8255A的方式字及置位/复位控制字地址为7FFFH。 程序如下: ORG 0000H LJMP START ORG 0030H DSP8255: MOV DPTR, #7FFFH ; 数据指针指向8255A控制口 MOV A, #82H
9、 MOVX DPTR, A ; 工作方式字送8255A控制口 MOV A, #0FH MOVX DPTR, A ; C口置位/复位字送8255A控制口 MOV DPTR, #7FFDH ; 数据指针指向8255A 的B口 MOVX A, DPTR MOV 60H, A ; 将B口开关状态送入60H单元 MOV DPTR, #7FFCH ; 数据指针指向8255A 的A口 MOV A, 70H MOVX DPTR, A ; 70H单元内容A口指示灯显示 SJMP $ END,8255A采用方式0,由PC0模拟产生STB信号。因PC7输入,PC0输出,则方式选择命令字为:10001110B=8EH
10、。 自内部RAM 20H单元开始向打印机输出80个数据的程序如下:,LP: MOV DPTR, 7FFEH ; R0指向C口 LP1: MOVX A, DPTR ; 读PC7连接BUSY状态 JB ACC.7, LP1 ; 查询等待打印机 MOV DPTR, 7FFCH ; 指向A口 MOV A, R1 ; 取RAM 数据 MOVX DPTR, A ; 数据输出到8255A口锁存 INC R1 ; RAM地址加1 MOV DPTR, 7FFFH ; R0指向控制口 MOV A, 01H ; PC0复位控制字 MOVX DPTR, A ; PC0=0, 产生STB的下降沿 MOV A, 00H
11、; PC0置位控制字 MOVX DPTR, A ; PC0=1, 产生STB的上升沿 DJNZ R2, LP ; 未完, 则反复,MOV DPTR, 7FFFH ; R0 指向控制口 MOV A, 8EH ; 方式控制字为8EH MOV DPTR , A ; 送方式控制字 MOV R1, 20H ; 送内部RAM数据块首地址至指针R1 MOV R2, 50H ; 置数据块长度,(5)接口与编程,接口:8155可以直接与MCS-51单片机连接,不需外加任何逻辑电路。 扩展8155的资源:一片8155系统可以增加256B片外RAM、22位I/O口线及一个14位减法计数器。,256B的RAM字节地址
12、范围:7E00H7EFFH; 命令/状态寄存器:7F00H;PA口: 7F01H;PB口:7F02H;PC口:7F03H; 定时器低8位寄存器:7F04H; 定时器高8位寄存器:7F05H。,MCS-51单片机扩展8155电路,例题 在上页图中,将单片机片内RAM 40H4FH单元的内容,送8155芯片内的00H0FH单元,并设定8155芯片的工作方式为:A口基本输入方式,B口基本输出方式,C口输入方式,计数器作为方波发生器,对输入脉冲100分频。 解:程序如下: ORG 0000H LJMP START ORG 0030H START : MOV R0, #40H ; CPU片内RAM 40
13、H单元地址指针送R0 MOV DPTR, #7E00H ; 数据指针指向8155内部RAM单元,LP: MOV A, R0 ; 数据送累加器A MOVX DPTR, A ; 数据从累加器A送8155内部RAM单元 INC DPTR ; 指向下一个8155内部RAM单元 INC R0 ; 指向下一个CPU内部RAM单元 CJNE R0, #50H,LP ; 数据未传送完返回 MOV DPTR, #7F04H ; 指向定时器低8位 MOV A, #64H ; 分频系数(64)16=(100)10 MOVX DPTR, A ; 低8位初值装入 INC DPTR ; 指向定时器高8位 MOV A, #40H ; 设计数器方式为连续方波(40H=0100 0000B) MOVX DPTR, A ; 计数器方式及高6位初值装入 MOV DPTR, #7F00H ; 数据指针指向控制字寄存器 MOV A, #0C2H ; 设定A, B, C口方式 MOVX DPTR, A ; 启动计数器(0C2H=1100 0010B) SJMP $ END,
链接地址:https://www.31doc.com/p-2893468.html