《MCS51系列单片机一.ppt》由会员分享,可在线阅读,更多相关《MCS51系列单片机一.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:访问片外;EA=1:访问片内。,8051扩展2764的电路连接方
4、法:数据线: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口经地址锁存器A0A7;P2.0P2.4A8A12。控制线:ALE接373的LE,接R
5、AM的、接RAM的,用线选法实现片选,P2.5。,6264的地址范围为:0000H1FFFH。,MCS-51单片机扩展6264电路,例题 在上页图的数据存储器扩展电路中,将片内RAM 以50H单元开始的16个数据,传送片外数据存储器0000H开始的单元中。程序如下:ORG 0000H LJMP START ORG 0030HSTART:MOV R0,#50H;数据指针指向片内50H单元 MOV R7,#16;待传送数据个数送计数寄存器 MOV DPTR,#0000H;数据指针指向数据存储器6264的0000H单元 AGAIN:MOV A,R0;片内待输出的数据送累加器A MOVX DPTR,A
6、;数据输出至数据存储器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参加译码,且无悬空地址线,无地址重叠现象。,1#2764,2#2764,3#6264的地址范围分别为:0000H1FFFH,2000H3FFFH,40005FFFH。,MCS-51单片机扩展外部存储器
7、,(4)接口与编程方法,数据线:8255A内部已有数据总线驱动器,可以直接与单片机的数据总线相连接(P0口D0D7)。地址线:片选采用先选法,P2.7;片内寻址的A1,A0 单片机的地址线最低2位。控制线:,RESET直接与单片机的相应线相连。,MCS-51单片机扩展扩展8255电路,PA,PB,PC口及控制寄存器的地址分别为:7FFCH,7FFDH,7FFEH和7FFFH。,例题如图上页所示,8255A芯片的PA接一组8只状态指示灯,PB接一组8个开关,设计完成将开关闭合的状态输入到片内60H单元保存,将70H单元的内容送状态指示灯显示,并置位PC7引脚,编写相应程序。解:设置8255A的A
8、口方式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 MOVX DPTR,A;工作方式字送8255A控制口 MOV A,#0FH MOVX DPTR,A;C口置位/复位字送8255A控制口 MOV DPTR,#7FFDH;数据指针指向8255A 的B口 MOVX A,DPTR MOV
9、 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。自内部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;取RA
10、M 数据 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;PC0置位控制字 MOVX DPTR,A;PC0=1,产生STB的上升沿 DJNZ R2,LP;未完,则反复,MOV DPTR,7FFFH;R0 指向控制口MOV A,8EH;方式控制字为8EHMOV DPTR,A;送方式控制字MOV R1,20H;送内部RAM数据块首地址至指针R1MOV R2,50H;置数据块长度,(5)接口与编程,接口:81
11、55可以直接与MCS-51单片机连接,不需外加任何逻辑电路。扩展8155的资源:一片8155系统可以增加256B片外RAM、22位I/O口线及一个14位减法计数器。,256B的RAM字节地址范围:7E00H7EFFH;命令/状态寄存器:7F00H;PA口:7F01H;PB口:7F02H;PC口:7F03H;定时器低8位寄存器:7F04H;定时器高8位寄存器:7F05H。,MCS-51单片机扩展8155电路,例题 在上页图中,将单片机片内RAM 40H4FH单元的内容,送8155芯片内的00H0FH单元,并设定8155芯片的工作方式为:A口基本输入方式,B口基本输出方式,C口输入方式,计数器作为
12、方波发生器,对输入脉冲100分频。解:程序如下:ORG 0000H LJMP START ORG 0030HSTART:MOV R0,#40H;CPU片内RAM 40H单元地址指针送R0 MOV DPTR,#7E00H;数据指针指向8155内部RAM单元,LP:MOV A,R0;数据送累加器AMOVX 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)10MOVX 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,