第8-2章8051单片机系统扩展与接口技术

上传人:第*** 文档编号:54438403 上传时间:2018-09-13 格式:PPT 页数:53 大小:889KB
返回 下载 相关 举报
第8-2章8051单片机系统扩展与接口技术_第1页
第1页 / 共53页
第8-2章8051单片机系统扩展与接口技术_第2页
第2页 / 共53页
第8-2章8051单片机系统扩展与接口技术_第3页
第3页 / 共53页
第8-2章8051单片机系统扩展与接口技术_第4页
第4页 / 共53页
第8-2章8051单片机系统扩展与接口技术_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《第8-2章8051单片机系统扩展与接口技术》由会员分享,可在线阅读,更多相关《第8-2章8051单片机系统扩展与接口技术(53页珍藏版)》请在金锄头文库上搜索。

1、第七章 8051单片机系统扩展与接口技术,第一节 8051 单片机系统扩展概述,第二节 单片机外部存储器扩展,第三节 单片机输入输出(I/O)口扩展及应用,第四节 LED显示器接口电路及显示程序,第五节 单片机键盘接口技术,第六节 单片机与数模(DA)及模数(AD)转换,第三节 单片机输入输出(I/O)口扩展及应用,概述 一、I/O接口电路 把CPU与外设连接起来的电路。 二、 CPU与外设之间通过I/O口交换的信息 1、数据信息 2、控制信息 3、状态信息,三、I/O接口的作用,消除CPU与外设之间的差异。 1、速度协调。 (1)数据锁存。(2)三态缓冲。 2、数据格式转换。 3、电平转换。

2、,四、数据交换的方式,1、无条件传送方式 定时已知的简单外设。 2、条件传送方式(查询方式) 定时未知的中低外设。 3、中断方式 4、DMA方式,五、通信方式,主机与外设之间信息交换称为通信。 1、并行通信 数据的各位同时传送,并行接口实现。 2、串行通信 数据的各位分时一位一位顺序传送,串行接口实现。,六、I/O接口的编址方式,1、统一编址方式外部I/O接口与外部RAM统一编址,共用一个地址空间。用访问外部RAM的指令MOVX 访问外部I/O口。 2、独立编址方式外部I/O接口有独立的地址空间,有专用的I/O接口输入/输出指令。,第三节 单片机输入输出(I/O)口扩展及应用,7-3-1 单片

3、机简单I/O口应用及扩展,7-3-2 8155作单片机的I/O扩展,一、8155引脚,RESET: 复位信号线,高电平有效。,CE:片选端,低电平有效。该端 加一低电平时,芯片被选中,可以与单 片机交换信息。 AD7AD0:三态地址/数据总 线,分时传送8位地址信号和数据号。 ALE:地址锁存器启用信号线,高电平有效,其有效信号可将AD7AD0的地址信号、以及片选信CE,IO/M信号锁存起来。,IO/M:I/O口和RAM选择信号线,高电平选择I/O口,低电平选择RAM。,RD:读信号线,低电平有效,当片选信号与RD有效时,此时如果IO/M为低电平,则RAM的内容读至AD7AD0;如果IO/M为

4、高电平,则选中的I/O口的内容读到AD7AD0。,TIN:定时/计数器输入信号线,定时/计数器的计数脉冲由此输入。 TOUT:定时/计数器输出信号线,输出信号为方波还是脉冲则由定时/计数器的工作方式而定。 VCC:电源线,接5V直流电源。 VSS:接地线。,WR:写信号线,低电平有效,当片选信号和WR信号有效时,AD7AD0上的数据将根据IO/M的极性写入RAM或I/O口中,PB7PB0:端口B的输入输出信号线,通用的8位I/O口,输入/输出方向通过命令/状态寄存器的编程来选择。 PC5PC0:端口C的输入/输出线,6位可编程I/O口,也可用作A和B的控制信号线,通过对命令/状态寄存器编程来选

5、择。,PA7PA0:输入/输出口A的信号线,通用8位I/O口,输入/输出的方向通过对命令/状态寄存器的编程来选择。,二、结构,三、8155的RAM和I/O口寻址,8155在8051系统中的RAM和I/O口是按外部存储器统一编址的,为16位地址。其高8位提供 和 输入信号。低8位地址由8051的P0口送到8155芯片地址线AD0AD7确定。当 为0时,单片机对8155RAM读/写,RAM低8位编址为00HFFH;当 为1时,单片机对I/O口进行读写,8155内部I/O及定时器的低8位编址如表,四、8155寄存器,8155内部共有7个寄存器,其中命令寄存器(只写)和状态寄存器(只读)共用一个地址X

6、 X X X X 0 0 0B,故称命令/状态寄存器,由读写指令来区别,定时器寄存器的高8位和低8位各有其地址,X X X X X 1 0 1B和X X X X X 1 0 0B,1 命令寄存器(COMMAND,只写)可以把一个命令写入X X X X X 0 0 0B地址中改变命令寄存器的内容实现编程,即控制I/O接口的工作方式和数据流向。工作方式控制字的格式及功能如图所示,2 状态寄存器 (STATUS,只读) 状态寄存器和命令寄存器的地址相同,当读地址XXXXX000B的内容时,则可查询I/O口和定时/计数器的状态。状态寄存器中各位的意义如表所示:,6 定时/计数器8155片内的定时/计数

7、器是一个14位的减法计数器,另外两位是用于确定输出方式。因此它是两个8位寄存器。 低8位地址为XXXXX100B和高8位地址为XXXXX101B。计数初值由程序预置,每次预置一个字节,该寄存器的013位规定了下一次计数的长度,14、15位规定了定时/计数器的输出方式,该寄存器的定义如表所示。,两个寄存器有双重作用,在写操作时,可送入定时常数和输出方式的指令;在读操作时,可把定时/计数器的当前值和方式位读出。上述读写均要分两次传送进行。,对定时器编程首先要计数常数和定时器的方式字送入地址口04H和05H。,定时常数范围:2H3FFFH。定时/计数器的启动和停止命令送命令寄存器(00H)的最高位。

8、,定时/计数器是递减计数器,定时/计数器对TIN端的时钟脉冲进行计数,并在达到最后计数值(TC)终值时给出一个方波或脉冲。高字节寄存器中的M1和M2是输出波形控制位。波形如图所示。,五、8155的使用,1、作片外256字节RAM,2、作扩展I/O口使用,3、作定时器扩展用,IO/M脚接低电平,8155作片外RAM用,地址高8位接片选端CE和IO/M端,低8位为00HFFH,与其它片外数据存储器统一编址。,IO/M脚接高电平,8155作扩展I/O口用,此时PA、PB、PC口的口地址低等位分别为01H、02H、03H(设无关位为0)。I/O方式的选择是对命令寄存器(命令口)设定命令控制字。,定时器

9、的方式选择 定时器的编程,六、MCS51芯片和 8155的连接和编程,1、连接方法,2、8155软件,设下例中按上图连接,课本例子,现用8155作为外部256个RAM扩展及六位LED显示器接口电路,要求外部RAM地址范围是0200H02FFH;A口输出,作为LED显示器八位段控输出口,地址是0301H;C口输出,作为六位LED的位控输出口,地址是0303H,试设计硬件电路并写出初始化程序。 解:由题意可得硬件电路如719所示:,由图可得:P2.1=1,CE =0时芯片选中;P2.0= 0,选中RAM单元; P2.0= 1,选中I/O口。显然地址信号在0200H02FFH范围内可选中8155中2

10、56个RAM单元。(P2.1 P2.0=10,A7A0从0000000011111111B变化),8155中六个I/O地址如下:,又根据题意可得8155控制字如下:,初始化程序如下:MOV DPTR, #0300H ;指向命令寄存器地址。MOV A, #05H ;控制字送A。MOVX DPTR,A ;控制字送命令寄存器。,命令状态寄存器地址: 0300H (P2.1,P2.0=11,A2 A1 A0=000)口A地址: 0301H (P2.1,P2.0=11,A2 A1 A0=001)口C地址: 0303H (P2.1,P2.0=11,A2 A1 A0=011),第四节 LED显示器接口电路及

11、显示程序,一LED显示器工作原理,LED显示器用于显示工业控制参数、过程状态。 1. LED数码管 共阴极LED和共阳极LED 当LED字段引线与数据线连接,每个显示字形对应一个字形码。,D7 D6 D5 D4 D3 D2 D1 D0 h g f e d c b a,二、LED显示器与单片机的接口电路,显示多位数据的两种电路: 1静态显示,2动态显示,多位LED共用一个8位字段口,各位LED公共端用字位口控制,扫描输出显示不同字形。,每个LED需要一个8位并行口,例:8155接6位LED动态显示,三、显示程序任务:,1.设置显示缓冲区,存放待显示数据和字符(位置码)。 2.显示译码:程序存储器

12、中建立字形码常数表,查表得出对应数据和字符的字形码。 3.输出显示:输出字形码到显示端口。,1、显示缓冲区与多位LED对应关系:,例: MOV DPTR,#WTAB;指向字形码表首地址MOV A,R0 ;取显示缓冲区中数据MOVC A,A+DPTR;查表显示译码MOV P1,A ;输出显示 WTAB: DB 3FH,06H,5BH ;字形码表,2、译码,3、显示程序:,DIS: MOV R0,#7AH ;指向显示缓冲区起始单元 MOV R3,#01H ;字位码初值R3MOV A,R3 ;取字位码 DLP: MOV DPTR,#PAAR;指向字位口 (PA口) MOVX DPTR,A ;输出字位

13、码,显示其中1位 MOV A,R0 ;取一个显示数据ADD A,#0CH ;查表偏移量MOVC A,A+PC ;取出字形码INC DPTR ;指向字段口(PB口)MOVX DPTR,A ;输出字形码ACALL DLY1MS ;延时1msINC R0 ;指向显缓区下一单元MOV A,R3 ;修改字位码RL A ;显示下一位MOV R3,AJNB ACC.6,DLP ;未显示到最右边LED,继续显示 RET ;全部扫描一遍,结束 DTAB:DB 0C0H,0F9H,0A4H ;字形表,共阳极LEDDB 0B0H,99H, DLY1MS: ;延时1ms子程序,课本例子,1. 建立显示缓冲区通常在内部

14、RAM中开辟显示缓冲区,显缓区单元个数与LED位数相同。例如对六位LED显示器,可设显示缓冲区单元为79H7EH,对应关系如下:,显示缓冲区中可按显示次序放入所显示字符的编码,或直接放入所显示的字符,然后再通过查字形代码表找出相应字符编码作为段控码送LED显示器。,2编写显示程序 现用六位LED显示”008031”六个字符,设A口地址为0301H,C口地址为0303H,用查表方式来求得相应编码并显示。可事先在显示缓冲区中依次放入待显示字符如下:,例:8155接6位LED动态显示,显示参考程序如下:(考虑反相驱动器反相作用)DIS:MOV R1, #79H ;指向显缓区首址。MOV R2, #0

15、0000001B ;从右面第一位开始显示。LD0:MOV A, #00HMOV DPTR, #0303H ;送字形前先关显示。MOVX DPTR,A MOV A, R1 ;取显示字符。MOV DPTR, TABLE ;指向字符代码表首址。MOVC A, A+DPTR ;取字符相应编码。MOV DPTR, #0301H ;指向段控口。MOVX DPTR, A ;字符编码送A口(段控口)。MOV A, R2 ;位控码送A。MOV DPTR, #0303H ;指向位控口。MOVX DPTR,A ;位控码送C口(位控口)。 ACALL DELAY ;延时。INC R1 ;指向下一显缓单元。MOV A, R2 ;取当前位控码。JB ACC.5, LD1, ;是否扫描到最左边,是返回。RL A ;否,左移一位。MOV R2, A ;保存位控码。AJMP LD0 ;继续扫描显示。LD1:RET ;返回。ORG 3000H ;依次建立字符代码表。TABLE:DB 0C0H ;0DB 0F9H ;1DB 0A4H ;2DB 0B0H ;3DB 99H ;4DB 92H ;5. . . . .,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号