1 / 27

一、复习 8255A 的应用

第 9 章 MCS-51 扩展 I/O 接口的设计. 一、复习 8255A 的应用. 二、 MCS-51 单片机与 8155H 的接口. 8155H 芯片介绍. 8155H 的命令字与状态字. 8155H 的三种工作方式. MCS-51 单片机和 8155H 的接口及编程. 三、用 74LSTTL 电路扩展并行 I/O 口. 来自 8031. a. 8255A. f. b. PC. PA. g. PB. e. c. ●. d. dp. ·. ·. ·.

latham
Download Presentation

一、复习 8255A 的应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第9章 MCS-51扩展I/O接口的设计 一、复习8255A的应用 二、MCS-51单片机与8155H的接口 8155H芯片介绍 8155H的命令字与状态字 8155H的三种工作方式 MCS-51单片机和8155H的接口及编程 三、用74LSTTL电路扩展并行I/O口

  2. 来自8031 a 8255A f b PC PA g PB e c ● d dp · · · 下图为某MCS-51应用系统的3位LED 8段共阴极静态显示器的接口电路(1)写出显示字符“8.”、“5”、“3”的七段码,注意:段码的最低位为“a” 段,段码的最高位为“dp” 段。 (2)已知8255A的PA口、PB口和PC口的地址分别为7FFCH、7FFDH、7FFEH,画出8255A与8031间的连线;编写程序,首先初始化8255A为方式0输出,然后使3位LED共阴极显示器从左至右显示“8.53”。

  3. ABC: MOV DPTR, #7FFFH ;指针指向控制口 MOV A,#80H ;控制字10000000B MOVX @DPTR,A;初始化8255 MOV DPTR, #7FFCH MOV A,#0FFH MOVX @DPTR,A;写PA口 INC DPTR MOV A,#5BH MOVX @DPTR,A;写PB口 INC DPTR MOV A,#4FH MOVX @DPTR,A;写PC口 RET

  4. 9.3 MCS-51单片机与8155H的接口 9.3.1 8155H芯片介绍 1.8155H的逻辑结构 功能描述: 8155H:可编程的IO/RAM扩展接口电路(2个8位I/O口,1个6位I/O口, 256个RAM字节单元,1个14位的减法定时器/计数器)。 根据上述功能描述,构想芯片的内部框图,构想引脚分配。

  5. 8155H的逻辑结构

  6. 2.8155H的引脚功能8155H的引脚功能 (1)AD7~AD0(8条) (2)I/O总线(22条) (3)控制总线(8条) RESET:复位输入线 CE*和IO/M* RD*和WR* ALE:地址锁存允许 TIMERIN和TIMEROUT*: (4)电源线(2条) Vcc:+5V电源 Vss:地

  7. 3.CPU对8155H I/O端口的控制 (1) 8155H各端口地址分配

  8. 内部RAM地址为: IO/M*=0 00H~FFH 内部端口地址为:IO/M*=1 000-----------命令/状态寄存器 001-----------A口 010-----------B口 011-----------C口 100-----------计数器低8位 101-----------计数器高6位及计数器方式 设置位

  9. (2)8155H的命令字 关心有什么功能

  10. 能读回哪些状态? (3)8155H的状态字

  11. 9.3.2 8155H的工作方式 1.存储器方式 对片内RAM单元进行读写,若IO/M*=0和CE*=0,则 通过AD7~AD0上的地址对RAM存储器任一单元读写。 2.I/O方式 8155H的I/O方式分为基本I/O和选通I/O两种工作 方式,如表9-3所示。可对片内任一寄存器读写, 端口地址由A2、A1、A0三位决定(见表9-2)。

  12. 表9-3 C口在两种I/O工作方式下各位定义

  13. (1)基本I/O方式 (2)选通I/O方式 a.选通I/O输入 b.选通I/O输出

  14. 考查定时器/计数器的学习 3. 内部定时器/计数器及使用 14位的减1定时器/计数器,计数长度和计数方式由写入计数寄存器的控制字来确定。 计数器的两个寄存器的格式如图9-16。 1.定时器/计数器的初值如何算? 2.如何装入初值,如何启动? 3.工作模式有什么说法?

  15. M2、M1:设置定时器的4种工作方式 4种工作方式及相应输出波形如图9-17。

  16. 9.3.3 MCS-51与8155H接口及软件编程 1.MCS-51与8155H的硬件接口电路

  17. 片选: CE*=P2.7=0 内部RAM地址为: IO/M*=P2.0=0 00H~FFH 7E00H~7EFFH 内部端口地址为:IO/M*=P2.0=1 000-----------命令/状态寄存器 001-----------A口 010-----------B口 011-----------C口 100-----------计数器低8位 101-----------计数器高6位及计数器方式 设置位 7F00H~7F05H

  18. 2. 8155H的编程举例8155H 11000010B (1) 初始化程序设计 例9-3若A口定义为基本输入方式,B口定义为基本输出方 式,对输入脉冲进行24分频,初始化程序如下: START:MOV DPTR, #7F04H ;指针指向定时器低8位 MOV A,#18H ;计数初值24送A, MOVX @DPTR,A;计数初值低8位装入定时器 INC DPTR ;指针指向定时器高8位 MOV A,#40H ;设定时器连续方波输出 MOVX @DPTR,A;计数初值高6位装入定时器 MOV DPTR,#7F00H ;指向命令/状态口 MOV A,#0C2H ;设定命令控制字 MOVX @DPTR,A;A口输入,B口输出,开定时器

  19. 9.4 用74LSTTL电路扩展并行I/O口 利用74LS273和74LS244,将P0口扩展成简单的输入、输出口的电路。 74LS273输出端接8个LED发光二极管,以显示8个按 钮开关状态,某位低电平时二极管发光。 74LS244是缓冲驱动器,扩展输入口,接8个按钮开关。 74LS273和74LS244的工作受8031的P2.0、RD*、WR*三条控制线控制。电路的工作原理如下: 当P2.0=0,WR*=0(RD*=1)选中写74LS273, 8031通过P0口 输出数据到74LS273,; 当P2.0=0,RD*=0(WR*=1)时选中读74LS244,某开关按下时则对应位输入为“0”。

  20. *******0********B

  21. 输出程序段: MOV A,#data ;数据→A MOV DPTR,#0FEFFH;I/O地址→DPTR MOVX @DPTR,A ;WR*为低,数据经74LS273口输出 输入程序段: MOV DPTR,#0FEFFH ;I/O地址→DPTR MOVX A,@DPTR ;RD*为低,74LS244口 ;数据读入内部RAM

  22. 例9-6编写程序把按钮开关状态通过图9-20中的发例9-6编写程序把按钮开关状态通过图9-20中的发 光二极管显示出来。程序如下: DDIS: MOV DPTR,#0FEFFH ;输入口地址→DPTR LP: MOVX A,@DPTR ;按钮开关状态读入A中 MOVX @DPTR,A ;A中数据送输出口 LCALL DELAY SJMP LP ;反复连续执行

  23. 9.5 用MCS-51的串行口扩展并行口 9.5.1 用74LS165扩展并行输入口 例9-7从16位扩展口读入5组数据(每组二个字节),并把它们转存到内部RAM 20H开始的单元中。

  24. MOV R7,#05H ;设置读入组数 MOV R0,#20H ;设置内部RAM数据区首址 START: CLR P1.0 ;并行置入数据,S/L*=0 SETB P1.0 ;允许串行移位,S/L*=1 MOV R1,#02H ;设置每组字节数,即外扩 ;74LS165的个数 RXDAT: MOV SCON,#10H ;设串口方式0,允许接收,启动 WAIT: JNB RI,WAIT ;未接收完一帧,循环等待 CLR RI ;清RI标志,准备下次接收 MOV A,SBUF ;读入数据 MOV @R0,A ;送至RAM缓冲区 INC R0 ;指向下一个地址 DJNZ R1,RXDATA ;未读完一组数据,继续 DJNZ R7,START ;5组数据未读完重新并行置入 ……;对数据进行处理

  25. 9.5.2 用74LS164扩展并行输出口.

  26. 例9-8编写将内部RAM单元30H、31H的内容经串行口 由74LS164并行输出子程序。 START: MOV R7,#02H ;设置要发送的字节个数 MOV R0,#30H ;设置地址指针 MOV SCON,#00H ;设置串行口为方式0 SEND: MOV A,@R0 MOV SBUF,A ;启动串行口发送过程 WAIT: JNB TI,WAIT ;1帧数据未发完,循环等待 CLR TI INC R0 ;取下一个数 DJNZ R7,SEND ;未完,发完从子程序返回 RET

  27. 2009-11-26 作业 • P225 9、10、11、12(选作)

More Related