收藏 分享(赏)

单片机系统8.ppt

上传人:pw17869 文档编号:5850109 上传时间:2019-03-19 格式:PPT 页数:68 大小:2.26MB
下载 相关 举报
单片机系统8.ppt_第1页
第1页 / 共68页
单片机系统8.ppt_第2页
第2页 / 共68页
单片机系统8.ppt_第3页
第3页 / 共68页
单片机系统8.ppt_第4页
第4页 / 共68页
单片机系统8.ppt_第5页
第5页 / 共68页
点击查看更多>>
资源描述

1、8 系统扩展与应用,本章学习目标,掌握MCS-51单片机基本I/O口的应用与扩展串行通信控制寄存器 掌握键盘与显示器的扩展原理及方法 掌握常用外围电路接口芯片8255、8155、8279的性能特点及使用方法。 掌握存储器的扩展原理与方法,9.1 I/O扩展概述,I/O接口电路也叫做输入/输出接口电路,9.1.1 I/O接口电路的功能并行通信 1速度协调 2数据锁存 3三态缓冲4信息转换,9.1.2 I/O端口的编址,1I/O端口和存储器统一编址方式 I/O端口和存储器公用一个地址空间,端口与存储器统一编址,即把每个I/O端口当做一个存储单元,给它分配存储空间的一个地址。 2I/O端口独立编址方

2、式 这种方式是端口地址与存储器地址分开编址。对I/O端口独立编址,需要专门的I/O指令和接口信号访问I/O端口。,9.2 基本I/O口的应用与扩展,9.2.1 I/O口的直接应用,从P1.0P1.3输入开关状态,再经P1.4P1.7输出去驱动发光二极管,使发光二极管显示开关的状态。,程序如下:,ORG 0000HAJMP MAINORG 0030H MAIN: MOV A,#0FH MOV P1,A ;熄灭发光二极管MOV A,P1 ;读入开关状态SWAP A ;A高低半字节交换MOV P1,A ;开关状态输出AJMP MAINEND,扩展I/O接口所用的芯片主要有通用可编程I/O芯片和TTL

3、、CMOS锁存器、三态门电路芯片两大类。,9.2.2 简单并行I/O接口的扩展,采用74LS244做扩展输入、74LS273做扩展输出的简单I/O扩展电路。,程序如下:,ORG 0000HAJMP MAINORG 0030H MAIN: MOV DPTR,#0FEFFH;数据指针指向I/O口地址MOVX A,DPTR ;从244读入数据,检测按键MOVX DPTR,A ;向273输出数据,驱动LEDAJMP MAINEND,9.3 键盘与显示器的扩展,9.3.1 基本LED显示原理 1LED显示器的结构与原理,共阴极,共阳极,十六进制数字形代码表,2LED显示器接口方法,(1)以硬件为主的接口

4、方法,(2)以软件为主的接口方法,9.3.2 矩阵式键盘的扩展,键盘上的键按行列构成矩阵,在行列的交点上都对应有一个键。 所谓键实际上就是一个机械开关,被按下则其交点的行线和列线接通。非编码键键盘接口技术的主要内容就是如何确定被按键的行列位置,并根据此产生键码。,1键输入过程与软件结构,2键盘输入接口与软件应解决的任务,(1)键开关的可靠输入 抖动的处理有硬件处理和软件处理两种。 (2)按键编码与键号定义 (3)键盘检测与编制键盘程序,3矩阵式键盘电路的结构及工作原理,一个44的行、列结构可以构成一个含有16个按键的键盘。,扫描方法:先令列线Y0为低电平(0),其余3根列线Y1、Y2、Y3都为

5、高电平,读行线状态。如果X0、X1、X2、X3都为高电平,则Y0这一列上没有键闭合,如果读出的行线状态不全为高电平,则为低电平的行线和Y0相交的键处于闭合状态;如果Y0这一列上没有键闭合,接着使列线Y1为低电平,其余列线为高电平。用同样的方法检查Y1这一列上有无键闭合,依次类推,最后使列线Y3为低电平,其余列线为高电平,检查Y3这一列有无键闭合。,4键盘接口举例,82行列式键盘扫描接口电路,键盘扫描的程序(采用查询方法),KS: MOV DPTR,#7FFFH ;键扫描程序CLR P1.0 ;先扫描第1列(即07号键)MOVX A,DPTR ;读入按键状态MOV 37H,A ;暂存按键状态CP

6、L A ;JZ KSK1 ;07号键没有键操作,则跳LCALL DL20 ;07号键有操作,则延时去抖MOVX A,DPTR ;再读键状态XRL A,37H ;和延时前的状态一样吗?JZ KS1 ;一样,则转去查询键号 KSK1: SETB P1.0 ;开始扫描第2列,8F号键CLR P1.1MOVX A,DPTR ;读入按键状态MOV 37H,A ;暂存按键状态CPL AJZ KSK2 ;8F号键没有键操作,则跳LCALL DL20 ;8F号键有操作,则延时去抖,MOVX A,DPTR ;再读键状态XRL A,37H ;和延时前的状态一样吗?JZ KS1 ;一样,则转去查询键号 KSK2:

7、AJMP KS9 ;8F号键也不存在操作,则跳 KS1: MOVX A,DPTR ;再读按键状态CPL A JNZ KS1 ;按键没有松开,则等待松开MOV A,37H ;查询有键操作的键号JB ACC.0,KS2 ;不是第1个键,则跳MOV 37H,#00H ;赋键初值AJMP KS10 KS2: JB ACC.1,KS3 ;不是第2个键,则跳MOV 37H,#01H ;赋键初值AJMP KS10 ,9.3.4 8255A的应用,8255A是可编程的并行输入/输出接口芯片,通用性强且使用灵活,常用来实现与MCS-51系列单片机的并行I/O扩展。,18255A的逻辑结构和信号引脚,2总线接口电

8、路,(1)数据总线缓冲器 (2)读/写控制器 38255A的工作方式 8255A共有三种工作方式,即方式0、方式1和方式2。,(1)方式0 基本输入/输出方式,方式0适合于无条件数据传送,可供使用的是两个8位口(A口和B口)及两个4位口(C口高位部分和低位部分)。,(2)方式1 选通输入/输出方式,方式1下,A口和B口分别用于数据的输入/输出。而C口则作为数据传送的联络信号。具体定义见表。,(3)方式2 双向数据传送方式,只有A口才能选择这种工作方式,这时A口既能输入数据又能输出数据。在这种方式下需使用C口的五位口线作控制线。方式2适用于查询或中断方式的双向数据传送。如果把A口置于方式2下,则

9、B口只能工作于方式0。,58255A控制字及初始化编程,(1)工作方式控制字,(2)C口位置位/复位位控制字,68255A的应用,ORG 0000H AJMP MAIN ORG 0030H MAIN:MOV A,#90H ;方式0,A口输入C口输出 MOV DPTR,#7FFFH ;控制寄存器地址DPTR MOVX DPTR,A ;写入控制寄存器 MOV DPTR,#7FFCH ;A口地址DPTR MOVX A,DPTR ;接收A口数据 MOV DPTR,#7FFEH ;C口地址DPTR MOVX DPTR,A ;将A口读入数据送C口输出 END,8255A芯片的PA端口的地址为7FFCH,P

10、B端口的地址为7FFDH,PC端口的地址为7FFEH,控制寄存器的地址为7FFFH。可用“MOVX”指令来访问这些端口。,9.3.5 8155的应用,1.主要接口信号引脚,AD7AD0:地址数据复合线。 ALE:地址信号锁存信号,除进行AD7AD0的地址锁存控制外,还用于把片选信号和等信号进行锁存。:读选通信号。:写选通信号。:片选信号。:I/O与片内RAM选择信号。8155内部的I/O口与RAM是分开编址的,要使用控制信号进行区分。 RESET:复位信号。8155以600ns的正脉冲进行复位后,复位后A、B、C口均为输入方式。,PA和PB都是8位通用输入/输出口,只有输入/输出两种工作方式。

11、而PC口则为6位口,它既可以作为数据口用于数据的I/O传送,也可以用于传送控制信号和状态信号,对PA和PB的I/O操作进行控制。PC口具有4种工作方式,即输入方式、输出方式、PA口控制端口方式以及PA和PB口控制端口方式。,RAM单元及I/O编址,8155共有256个RAM单元,加上6个可编址的端口。为此8155引入了8位地址AD7AD0,无论是RAM还是可编址端口都使用这8位地址进行编址。可编址的6个端口地址是:命令/状态寄存器、PA口、PB口、PC口、定时器/计数器低8位以及定时器/计数器高8位。,28155的命令/状态字,8155有一个命令/状态寄存器,实际上这是两个不同的寄存器,分别存

12、放命令字和状态字。 (1)命令字 命令字共8位,用于定义端口及定时器/计数器的工作方式。对命令寄存器只写不能读。 ALT1:A口、B口基本输入输出,C口输入。 ALT2:A口、B口基本输入输出,C口输出。 ALT3:A口选通输入输出,B口基本输入输出,PC0: AINTR,PC1:ABF, PC2: ,PC5PC3:输出。 ALT4:A口、B口选通输入输出,PC0:AINTR PC1:ABF, PC2:,PC3:BINTR,PC4:BBF ,PC5: 。,8155命令字格式,8155状态字格式,38155的定时器/计数器,8155的定时器/计数器是一个14位的减法计数器,由两个8位寄存器构成,

13、其中的低14位组成计数器,剩下的两个高位(M2、M1)用于定义计数器输出的信号形式。T13T0为计数器的计数初值,M2、M1表示计数器的输出方式。,48051单片机与8155的接口及应用,程序:,ORG 0000H AJMP MAINORG 0030H MAIN: MOV DPTR,#7F00H ;指向命令字端口MOV A,#02H ;A口为输入,B口、C口为输出MOVX DPTR,A ;送命令字MOV DPTR,#7F01H ;指向A口地址MOVX A,DPTR ;读入A口的数据INC DPTR ;指向B口MOVX DPTR,A ;数据送入B口AJMP MAINEND,9.3.6 8279的

14、应用,18279的内部结构原理,28279的管脚及引线功能,(1)D0D7:双向、三态数据总线。用与CPU和8279之间数据、命令和状态的传送。 (2)CLK:时钟输入线,用于产生内部时钟。 (3)RESET:复位输入线,该引脚输入一个高电平以复位8279。其复位状态为:16个字符显示左边输入;编码扫描键盘双键锁定;时钟系数为31。 (4) :读有效输入线,低电平有效。读有效时将数据读出,送外部数据总线。 (5) :写有效输入线,低电平有效。写有效时接收外部数据总线上的数据。,引线功能,6)A0:缓冲器地址输入线。当A0=1时CPU写入8279的数据为命令字,CPU从8279读出的数据为状态字

15、;当A0=0时,CPU读、写的信息均为数据。 (7) :片选信号。当为低电平时,CPU才选中8279进行读写。 (8)IRQ:中断请求输出线,高电平有效。在键盘工作方式中,当FIFO RAM缓冲器中存有键盘上闭合键的编码时,IRQ线升高,向CPU请求中断 (9)SHIFT:换挡输入线,高电平有效。 (10)CNTL/STB:控制/选通输入线,高电平有效。在键盘工作方式时,该输入信号是键盘数据的最高位。在选通输入方式时,该信号的上升沿可把来自RL0RL7的数据存入FIFO RAM中。在传感器方式下,该信号无效。,引线功能,(11)RL0RL7:输入线,它们是键盘矩阵或传感器矩阵的列(或行)信号输

16、入线。作为键输入线,由内部上拉电阻拉成高电平,也可由键盘上按键拉成低电平。(12)SL0SL3:扫描输出线,用于对键盘显示器扫描。 (13)OUTA0OUTA3:显示段数据输出线。 (14)OUTB0OUTB3:显示段数据输出线。OUTB0OUTB3和OUTA0OUTA3可分别作为两个半个字节输出,也可作为8位段数据输出口,此时OUTB0为最低位,OUTA3为最高位。 (15)BD:显示消隐输出线,低电平有效。,38279的命令格式与命令字,8279控制命令字,4状态格式与状态字,其中:NNN(D2、D1、D0)为表示FIFO RAM中字符的个数(闭合键次数);FIFO中无字符(无键闭合)时,

17、该3位为000;F(D3)为FIFO满标志。当F=1时,表示FIFO RAM已满(存入8个键入数据);U(D4)为读空标志。当FIFO RAM中没有输入字符时,CPU对FIFO RAM读,该位置“1”;O(D5)为FIFO RAM溢出标志。当FIFO已满,又输入一个字符时发生溢出,该位置“1”;S/E(D6)为S/E用于传感器矩阵输入方式,几个传感器同时闭合时置“1”;DU(D7)为显示无效特征位。,5输入数据格式,(1)在键扫描方式中,键输入数据格式如下:,(2)传感器方式或选通方式中,输入数据格式为:,68279与键盘/显示器的接口,初始化程序:,Z8279 EQU 7FFFH ;8279

18、 状态口地址 D8279 EQU 7FFEH ;8279数据口地址 INIT8279:MOV DPTR,#Z8279 ;指向命令/状态口MOV A,#0D1H ;送清除命令MOVX DPTR,A WAIT: MOVX A,DPTR ;读入8279状态字JB ACC.7,WAIT ;等待清除命令完成MOV A,#00H ;送方式字MOVX DPTR,AMOV A,#2AH ;设置分频命令字MOVX DPTR,ASETB EA,读取键盘子程序:,PINT1: PUSH PSWPUSH DPHPUSH DPL PUSH AMOV DPTR,#Z8279MOVX A,DPTR ;读8279状态ANL

19、A,#07HJNZ GETVAL ;判断是否有键输入MOV A,#00H ;置无键输入标志SJMP NKBHIT GETVAL:MOV A,#40H ;输出读FIFO命令MOVX DPTR,AMOV DPTR,#D8279 ;读键输入值,MOVX A,DPTRANL A,#3FH ;屏蔽SHIFT和CTRL键MOV DPTR,#KEYCODE ;键码表起始地址 MOVC A,A+DPTR ;查表MOV B,A ;置返回键值MOV A,#0FFH ;置有键输入标志 PRI1:POP APOP DPLPOP DPHPOP PSWRET,显示字符子程序:,DISLED: PUSH DPHPUSH D

20、PLPUSH AMOV DPTR,#Z8279H;输出写显示RAM命令MOV A,#90HMOVX DPTR,AMOV R0,#70H ;显示数据的起始地址MOV R7,#08HMOV DPTR,#D8279H DL0: MOV A,R0ADD A,#05HMOVC A,A+PC;显示数据转换为段码MOVX DPTR,A;写入显示RAMINC R0,DJNZ R7,DL0RET LEDSEG:DB 3FH,06H,5BH,4FH,66H,6DH ; DB 7DH,07H,7EH,6FH,77H,7CHDB 39H,5EH,79H,71H,9.4 存储器扩展,9.4.1 利用P0口与P2口扩展数

21、据存储器 1典型数据存储器的扩展方法 访问片外数据存储器时,仅用4条寄存器间接寻址指令: MOVX A,Ri MOVX A,DPTR MOVX Ri,A MOVX DPTR,A,2典型数据存储器的扩展电路,(1)6116静态RAM的扩展 A10A0:地址线 D7D0:数据线 :片选信号 :数据输出允许信号 :写选通信号 VCC:电源(+5V) GND:地,6116工作方式选择,扩展6116静态RAM,9.4.2 串行数据存储器的扩展,传统扩展数据存储器的并行方法占用了CPU的P0口和P2口以及部分P3口的宝贵端口I/O线资源,而状态显示、键盘操作、A/D转换等所需要的I/O口往往还要进行扩充,

22、其结果是电路结构复杂,总线外置,抗干扰性能差。解决这个问题可采用串行扩展数据存储器的方法。,1. X24128引脚说明,X24128有三种封装形式:14-SOIC、16-SOIC和8-PDIP VCC、VSS:为电源的正、负极输入端。 SCL:串行时钟输入端。 SDA:串行数据输入与输出的共用管脚。漏极输出。 WP:硬件写保护输入管脚 。 S0、S1、S2:器件选择输入端。,2地址选择,X24128内部EEPROM由16K8位组成 ,地址为0000H3FFFH。 在器件地址中,高四位必须为1010,这是X24128的识别码。S0、S1、S2三位为所选器件的地址码,它们必须与所选器件的输入管脚S

23、0、S1、S2相一致。例如所选器件的S2管脚接VCC,S1、S0两个输入管脚连接VSS,则器件地址应为1010100。位为读、写选择位,位为时,选择读:位为时,选择写。,3写保护寄存器,WEL:为EEPROM阵列写使能锁存器,WEL=1时,写使能锁存器置位,可进行写操作;WEL=0时,写使能锁存器复位,拒绝一切写操作。 RWEL:为“写保护寄存器”写使能锁存器,RWEL=1时,可对“写保护寄存器”进行改写;RWEL=0时,写使能锁存器复位,拒绝改写。,BL1、BL0=00时,整个阵列未加块锁定保护; BL1、BL0=01时,地址为3000H3FFFH的阵列进行块锁定保护; BL1、BL0=10

24、时,地址为2000H3FFFH的阵列进行块锁定保护; BL1、BL0=11时,地址为0000H3FFFH的阵列进行块锁定保护。 WPEN:写保护使能位,当WPEN位被写入且将器件的WP管脚接至VCC时,硬件写保护使能;,4读写时序,(1)按字节写时序 (2)按页写时序 (3)读当前地址数据 (4)读取任一地址的数据 (5)连续读取数据,5接口电路及编程,编程如下:,SCL BIT P1.0 SDA BIT P1.1 ORG 1000H WDATA:LCALL START MOV A,#0A0H SETB C LCALL LOOP MOV DPTR,#0010H MOV A,DPH SETB C

25、 LCALL LOOP MOV A,DPL SETB C LCALL LOOP,MOV A,R1 SETB CLCALL LOOPLCALL STOP START: SETB SDA SETB SCLCLR SDANOPNOPCLR SCLRET,LOOP: RLC AJNC LOOP1SETB SDALJMP LOOP2 LOOP1: CLR SDA LOOP2: LCALL CLOCKCJNE A,#80H,LOOPLJMP ACK LOOP3: CLR CLJMP LOOP CLOCK: SETB SCL NOPNOPCLR C,JNB SDA,CLOCK1 SETB C CLOCK1:CLR SCLRET ACK: SETB SDA LCALL CLOCK RET STOP: CLR SDASETB SCLNOPNOPSETB SDARET,END,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑环境 > 建筑资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报