[信息与通信]MCS-51单片机系统扩展及接口技术.ppt
《[信息与通信]MCS-51单片机系统扩展及接口技术.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]MCS-51单片机系统扩展及接口技术.ppt(106页珍藏版)》请在三一文库上搜索。
1、第六章 MCS-51单片机系统 扩展及接口技术,6 . 1 MCS-51单片机系统总线,一、最小系统 最小系统:一个真正可用的单片机最小配置系统,二、单片机系统的三总线结构,6 . 2 MCS-51单片机系统存储器扩展,一、存储器扩展概述,1、MCS-51单片机的扩展能力,2、存储器扩展的方法,RAM:片内片外独立编址,可重叠,用不同的访问指令区别,存储器的控制线,ROM:片内片外统一编址,不可重叠,片内片外地址连续,若有片内程序存储器,又扩展片外存储器时,EA接高电平单片机先执行片内存储器中的程序,然后自动转向片外程序存储器执行程序,MOVX A,Rj MOVX A,DPTR 执行该指令将在
2、单片机的RD端产生读脉冲输出。 MOVX Rj,A MOVX DPTR,A 执行该指令将在单片机的WR端产生写脉冲输出。,存储器的数据线,4位字长的芯片数据线有4条, 8位字长的芯片数据线有8 条,存储器的数据总线与单片机的P0口由低到高位顺序连接。,访问片外RAM存储器指令:,存储器的地址线,存储器的容量Q与地址线数目N的关系,单片机P0口作低8位地址线和数据线分时复用,P2口扩展为高8位地址 在需要扩展多片同类存储芯片时,可采用线译码或专用译码器译码方式以寻址多块存储芯片。,二、ROM 的扩展,1、常用EPROM芯片,2716(2K*8)、2732A(4K*8)、2764(8K*8)、 2
3、7128(16K*8)、27256(32K*8)、 27512(64K*8),2、EPROM的扩展方法,(1)单片EPROM的扩展,可寻址的地址范围: xxx0 0000 0000 0000xxx1 1111 1111 1111,即:0000H1FFFH,2000H3FFFHE000HFFFFH,(2) 采用线译码方式的多片EPROM的扩展,可寻址的地址范围: 2764(1):01x0 0000 0000 000001x1 1111 1111 1111,如:6000H7FFFH,2764(2):10x0 0000 0000 000010x1 1111 1111 1111,如:0A000H0BF
4、FFH,(3) 采用译码器芯片的多片EPROM的扩展,译码地址范围唯一:2764(1):0000H1FFFH 2764(2):2000H3FFFH,74LS138是3-8译码器,它有3个输入端、3个控制端及8个输出端,引线及功能如图9-5所示。74LS138译码器只有当控制端G1、为100时,才会在输出的某一端(由输入端C、B、A的状态决定)输出低电平信号,其余的输出端仍为高电平。,片内ROM有4KB, 其编址为0000H0FFFH;,片外ROM有16KB,其编址紧接在后为1000H4FFFH,而不是:xx00 0000 0000 0000xx11 1111 1111 1111,如:0000H
5、3FFFH,例:要求用2764(8K*8)芯片扩展8031的片外程序存储器空间,分配的地址范围为0000H 3FFFH。 分析:本例采用完全译码的方法,即所有地址线全部连接,每个单元只占用唯一的1个地址。,确定片数 片数(末地址一首地址) 1芯片容量 ( 3FFFH0000H) 12000H 4000H2000H 2(片),分配地址范围 第1组(1片)所占用的地址范围为: 0000000000000000 0000H 0001111111111111 1FFFH 第2组(1片)所占用的地址范围为: 0010000000000000 2000H 0011111111111111 3FFFH,设计
6、外译码电路:采用38译码器74LS138,画出存储器扩展连接图,三、RAM 的扩展,1、常用RAM芯片,6116(2K*8)、6264(8K*8)、62256(32K*8),2、RAM的扩展方法,单片RAM的扩展,可寻址的地址范围:,0xx0 0000 0000 00000xx1 1111 1111 1111,如: 0000H1FFFH,多片RAM的扩展(采用线译码或译码芯片译码),译码地址范围:,上下两片编址都是:xxx0 0000 0000 0000xxx1 1111 1111 1111,由于片内片外RAM可重叠编址,可取0000H1FFFH,2000H3FFFH,4000H5FFFHE0
7、00HFFFFH任意一组用,四、兼有片外ROM又有片外RAM的扩展方法,ROM和RAM寻址范围都是32K,都自0000H7FFFH,二者完全重叠。由于访问片外ROM与访问片外RAM所用的控制线不同,且PSEN与RD、WR不会同时有效,尽管地址总线与数据总线公用,不会引起混乱。,五、基于I2C总线的串行存储器E2PROM的扩展 (导学-见教材),数据存储器和程序存储器公用地址总线和数据总 线, 会引起混乱吗?,作 业,程序存储器和数据存储器的扩展有何相同点及不同点?试将8031芯片外接一片2764EPROM和一片6264RAM组成一个扩展后的系统,画出扩展后的连接图,并说明他们各自的寻址范围。,
8、思 考,6 . 3 I/O扩展,一、MCS-51单片机的接口直接作为I/O接口,MOV A,#0FFH MOV P1,A;P1用作输入前先全置1 LOOP:MOV A,P1;输入开关状态 CPL A;取反 MOV P3,A;开关状态输出 SJMP LOOP,二、简单I/O接口的扩展,74LS244及74LS273地址都是 0xxx xxxx xxxx xxxx,可取7FFFH,三、扩展8155可编程并行接口芯片(了解内容),LOOP:DPTR,#7FFFH;指向扩展I/O接口地址 MOVX A,DPTR;启动从74LS244读入数据 MOVX DPTR,A;向74LS273写入数据,驱动LED
9、 SJMP LOOP,1、8155结构,(1)命令 / 状态寄存器(C/S寄存器) 地址:XXXXX000B,3、8155的寄存器,命令寄存器(只写),状态寄存器(只读),(2)PA寄存器,地址:XXXXX001B 可按命令寄存器的内容设定为输入或输出口,可工作于基本I/O方式,也可工作于选通I/O方式 PA寄存器有8位,引脚是PA0-PA7,地址:XXXXX010B 功能同PA,(3)PB寄存器,(4)PC寄存器,地址:XXXXX011B PC寄存器仅6位,由命令寄存器的第2、3位确定为输入、输出口,或做A、B两口的控制信号 当PC0-5用作控制口时,PC0-2位分配给PA口,PC3-5位分
10、配给PB口,4、8155的定时器/计数器,14位定时器,它对输入引脚TIMERIN上的脉冲进行递减计数,当达到计数终点时,可从TIMEROUT端提供脉冲或方波输出 计数长度寄存器:两个8位寄存器,地址:低8位 XXXXX100B,高8位 XXXXX101B,5、用8155扩展I/O口,8155片内RAM及I/O口地址编码,RAM字节地址:0xxx xxx0 0000 00000xxx xxx0 1111 1111,可取7E00H7EFFH (xxxxxx=111111),C/S寄存器: 0xxx xxx1 xxxx x000,取0111 1111 0000 0000 即为7F00H,PA口:
11、0xxx xxx1 xxxx x001,取0111 1111 0000 0001 即为7F01H,PB口: 0xxx xxx1 xxxx x010,取0111 1111 0000 0001 即为7F02H,PC口: 0xxx xxx1 xxxx x011,取0111 1111 0000 0001 即为7F03H,定时器低8位: 0xxx xxx1 xxxx x100,取0111 1111 0000 0001 即为7F04H,定时器高8位: 0xxx xxx1 xxxx x101,取0111 1111 0000 0001 即为7F05H,6、8155编程举例,将8155设置为I/O和定时器工作方
12、式,A口定义为基本输入方式,B口定义为基本输出方式,定时器作为方波发生器,对输入脉冲进行16分频,MOV DPTR,#7F04H ;指向定时器低8位 MOV A,#10H ;计数常数16 MOVX DPTR,A ;装入定时器低8位 INC DPTR ;指向定时器高8位 MOV A,#40H ;设定定时器为连续方波输出 MOVX DPTR,A ;装入定时器高8位 MOV DPTR,#7F00H ;指向C/S口 MOV A,#0C2H ;命令控制字设定(1100 0010) MOVX DPTR,A ;启动定时器,读写8155RAM单元的内容,读8155RAM的F1H单元内容,MOV DPTR,#7
13、EF1H MOVX A,DPTR,将立即数58H写入8155RAM的20H单元,MOV A,#58H MOV DPTR,#7E20H MOVX DPTR,A,四、利用单片机的串行口扩展并行I/O接口,MCS-51单片机的串行口在方式0(移位寄存器方式)下,,利用串行口扩展并行输入口,用4014/74LS165扩展两个8位并行输入口,并将输入的数据存于片内30H、31H单元,使用移位寄存器芯片可以扩展一个或多个并行I/O接口,SETB P1.0 ;置4014为并行输入方式(P/S=1) CLR P3.1 SETB P3.1 ;在CLK上产生一个脉冲的上升沿,使4014并行置数 CLR P1.0
14、;置4014为串行移位工作方式 MOV SCON,#10H ;置串口为方式0,启动串口接收数据 JNB RI,$ ;等待串口接收数据 CLR RI ;接收完后清RI标志 MOV A,SBUF ;读串行口接收的数据(SBUF为接受/发送缓冲寄存器) MOV 30H,A ;存入30H单元 MOV SCON,#10H ;再启动串行口接收4014(2)的8位数据 JNB RI,$ ;等待串口接收数据 CLR RI ;接收完后清RI标志 MOV A,SBUF ;读串行口接收的数据 MOV 31H,A ;存入31H单元,利用串行口扩展并行输出口,用4094/74LS164扩展两个8位并行输出口,输出的数据
15、来自于片内30H、31H单元,五、利用I2C总线接口芯片扩展I/O接口(自学内容),6 . 4 按键、键盘及其接口,一、键输入过程与软件结构,二、键输入和键编码,1、键输入过程,2、键编码及键值,(1)用键盘连接的I/O线的二进制组合表示键码,一组按键或键盘都要通过I/O口线查询按键的开关状态。根据键盘结构不同,采用不同的编码方法。但无论有无编码,以及采用什么编码,最后都要转换成与累加器中的数值相对应的键值,以实现按键功能程序的散转,(2)顺序排列编码,对于是否有键按下的信息输入方式,通常采用查询工作方式、定时扫描工作方式及中断工作方式三种。,3、键盘的监测方法,三、独立式按键,独立式按键是指
16、直接用一根I/O口线构成的单个按键电路。每个独立式按键单独占有一根I/O口线,每根I/O口线上的按键的工作状态不会影响其它I/O口线的工作状态。,通常按键输入都采用低电平有效,上拉电阻可保证按键断开时I/O线上有确定的高电平,1、独立式按键接口,2、独立式按键的处理程序,以查询方式设计键盘程序。程序中省略了软件去抖动措施,只包括键查询、键功能程序转移。K0K7为功能程序入口地址标号,其地址间隔应能容纳JMP指令字节,PROM0PROM7分别为每个按键的功能程序,设I/O为P1口,START: MOV A,#0FFH ;输入时先置P1口全为1 MOV P1,A MOV A,P1 ;键状态输入 J
17、NB ACC.0,K0 ;0号键按下转K0标号地址 JNB ACC.1,K1 ;1号键按下转K1标号地址 JNB ACC.2,K2 ;2号键按下转K2标号地址 JNB ACC.3,K3 ;3号键按下转K3标号地址 JNB ACC.4,K4 ;4号键按下转K4标号地址 JNB ACC.5,K5 ;5号键按下转K5标号地址 JNB ACC.6,K6 ;6号键按下转K6标号地址 JNB ACC.7,K7 ;7号键按下转K7标号地址 JMP START ;无键按下返回 K0:LJMP PROM0 K1:LJMP PROM1 PROM0: ;0号键功能程序 LJMP START ;0号键程序执行完返回
18、PROM7: ;7号键功能程序 LJMP START ;7号键程序执行完返回,四、矩阵式键盘,1、矩阵式键盘接口及工作原理,采用两步对键盘进行扫描,用全扫描方式检测键盘上有无键按下,用逐行/逐列扫描方式识别是哪个键按下,2、采用8155扩展I/O接口与键盘接口,(1)键盘扫描子程序的功能,判断键盘上有无键按下,用时间延迟重检的办法消除键抖动,判断闭合键的键号,扫描口PA7PA0依次输出列扫描字,如下表,再相应的读取PC口的可能状态如下表,即输出一个列扫描字,紧接着读PC口状态,若PC3PC0全为1,则列线输出为0的列上没有键闭合;否则,就可据PC3PC0逐一判断以确定按键所在行。,键扫描法确定
19、按键位置,闭合的键号: N=行首键号+列号,每行的首键号自上至下依次为:0、8、10H、18H,列号依次为07,行列号可据低电平对应的位确定。,待按键释放后再将扫描号送累加器A进行处理,(2)键盘扫描子程序,流程图如教材,8155的初始化在主程序中完成,PA口为基本输出方式,PC口为基本输入方式,子程序出口参数:(A)=键号,KEY1:ACALL KS1 ;调用判断有无键按下子程序 JNZ LK1 ;有键按下时, ,转消抖动 AJMP KEY1 ;无键按下返回 LK1 :ACALL T10MS ;调用10ms延时子程序 ACALL KS1 ;确认是否真有键按下 JNZ LK2 ;有键按下, 转
20、逐列扫描 AJMP KEY1 ;不是键按下返回 LK2 : MOV R2,#0FEH ;首列扫描字送R2 MOV R4,#00H ;首列号送R4 LK4 : MOV DPTR,#7F01H ;列扫描字送8155PA口 MOV A,R2 ;第1次列扫描,MOVX DPTR,A ;使第0列线为0 INC DPTR ;指向8155PC口 INC DPTR MOVX A,DPTR ;读入行状态 JB ACC.0,LONE ;第0行无键按下,转查第1行 MOV A,#00H ;第0行有键按下,该行首键号#00H送A AJMP LKP ;转求键号 LONE: JB ACC.1,LTWO ;第1行无键按下,
21、转查第2行 MOV A,#08H ;第1行有键按下,该行首键号#08H送A AJMP LKP LTWO:JB ACC.2,LTHR ;第2行无键按下,转查第3行 MOV A,#10H ;第2行有键按下,该行首键号#10H送A AJMP LKP LTHR:JB ACC.3,NEXT ;第3行无键按下,改查下一列 MOV A,#18H ;第3行有键按下,该行首键号#18H送A LKP :ADD A,R4 ;键号=行首键号+列号 PUSH ACC ;键号进栈保护 LK3 :ACALL KS1 ;等待键释放,JNZ LK3 ;未释放,等待 ACALL T10MS ;调用10ms延时子程序 POP AC
22、C ;键释放,键号出栈 RET ;键扫描结束,出口参数(A)=键号 NEXT: INC R4 ;列号加1指向下一列 MOV A,R2 ;判断8列扫描完没有 JNB ACC.7,KND ;扫描完,返回 RL A ;扫描字左移一位 MOV R2,A ;扫描字送R2 AJMP LK4 ;转下一列扫描 KND :AJMP KEY1 KS1 :MOV DPTR,#7F01H ;指向PA口 MOV A,#00H ;全扫描字 MOVX DPTR,A INC DPTR INC DPTR ;指向PC口 MOVX A,DPTR ;读入PC口状态 CPL A ;高电平表示有键按下,ANL A,#0FH ;屏蔽高4位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息与通信 信息 通信 MCS 51 单片机 系统 扩展 接口 技术
链接地址:https://www.31doc.com/p-2000608.html