1 / 45

第九章 8051 扩展资源的 C 编程

第九章 8051 扩展资源的 C 编程. 可编程外围定时器 8253 可编程外围并行接口 8255 可编程接口芯片 8155 I 2 C 总线扩展存储器. 可编程外围定时器 8253. CLK 时钟输入 OUT 计数器输出,当计数器减为零时,输出相应信号 GATE 门控信号,用于启动或禁止计数器工作. 8285 的控制方式和控制字. D 0. D 7. BCD 格式说明: ①计数值范围: 0000 ~ 9999H ,其中 0000 表示最大值 10000 ,即 10 4 ; ② 当预置了 n=1234H ,表示预置了一个十进制数 1234 。.

Download Presentation

第九章 8051 扩展资源的 C 编程

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. 第九章 8051扩展资源的C编程

  2. 可编程外围定时器8253 • 可编程外围并行接口8255 • 可编程接口芯片8155 • I2C总线扩展存储器

  3. 可编程外围定时器8253 • CLK 时钟输入 • OUT 计数器输出,当计数器减为零时,输出相应信号 • GATE 门控信号,用于启动或禁止计数器工作

  4. 8285的控制方式和控制字 D0 D7

  5. BCD格式说明: ①计数值范围:0000~9999H,其中0000表示最大值10000,即104; ②当预置了n=1234H,表示预置了一个十进制数1234。 二进制格式说明: ①计数值范围:0000~FFFFH,其中0000表示最大值65536,即216 ②当预置了n=1234H,表示预置了一个十六进制数1234H,即十进制数4660。

  6. 8253的工作方式概述 • 方式0计数结束中断方式 • 方式1可编程单稳态输出方式 • 方式2比率发生器 • 方式3方波发生器 • 方式4软件触发选通 • 方式5硬件触发选通

  7. 方式0:计数结束中断方式 • 写入控制字后OUT初始状态:低电平 • 门控信号GATE的作用:①高电平允许计数;②如果在计数过程GATE为低电平,则暂停计数;③GATE回到高电平后,继续往下计数。 • 计数过程中OUT状态:保持低电平 • 计数结束OUT状态:发生由低到高的正跳变,可以发出中断请求信号。 • 计数器回0后,是否重新计数:否 • 应用:用于工业生产中对产品的计数

  8. 方式1:可编程单稳态输出方式 • 写入控制字后OUT初始状态:高电平 • 门控信号GATE的作用:①高电平或低电平均不起作用;②只有在GATE发生由低到高的正跳变,输出OUT由高到低跳变,并开始计数;③在计数过程中,若GATE产生负跳变,不影响计数;④在计数器回0之前,GATE又产生由低到高的正跳变,8253又将初始值装入,重新开始计数,使生成脉冲加宽。 • 计数过程中OUT状态:保持低电平 • 计数结束OUT状态:发生由低到高的正跳变。 • 计数器回0后,是否重新计数:否 • 应用:用于定时

  9. 方式2:脉冲发生器 • 写入控制字后OUT初始状态:高电平 • 门控信号GATE的作用:①高电平允许计数; ②在计数过程中,若GATE变为低电平时,禁止计数;③当GATE由低变高时,又把预置的计数初值装入计数器,重新开始计数。 • 计数过程中OUT状态:保持高电平 • 计数结束OUT状态:产生一个时钟周期的负脉冲。 • 计数器回0后,是否重新计数:是 • 应用:用于分频

  10. 方式3:方波发生器 • 写入控制字后OUT初始状态:高电平 • 门控信号GATE的作用:①高电平允许计数; ②在计数过程中,GATE变为低电平时,禁止计数;③当GATE由低变高时,又把预置的计数初值装入计数器,重新开始计数。 • 计数过程中OUT状态:如果计数初值为偶数,则产生占空比为1/2的方波;如果计数初值为奇数,则产生占空比为(n+1)/2 : n的方波,n为计数值 • 计数结束OUT状态:继续输出方波 • 计数器回0后,是否重新计数:是 • 应用:用于分频

  11. 方式4:软件触发选通 • 写入控制字后OUT初始状态:高电平 • 门控信号GATE的作用:①高电平允许计数; ②在计数过程中,GATE变为低电平时,禁止计数;③当GATE由低变高时,又把预置的计数初值装入计数器,重新开始计数。 • 计数过程中OUT状态:保持高电平 • 计数结束OUT状态:输出一个时钟周期的负脉冲 • 计数器回0后,是否重新计数:否 • 应用:用于软件触发计数的场合

  12. 方式5:硬件触发选通 • 写入控制字后OUT初始状态:高电平 • 门控信号GATE的作用:①高电平或低电平均不起作用;②只有在GATE发生由低到高的正跳变,开始计数;③在计数过程中,若GATE产生负跳变,不影响计数;④在计数器回0之前,GATE又产生由低到高的正跳变,8253又将初始值装入,重新开始计数。 • 计数过程中OUT状态:保持高电平 • 计数结束OUT状态:输出一个时钟周期的负脉冲 • 计数器回0后,是否重新计数:计数器回0后,自动将计数值装入执行部件,当GATE出现正跳变触发脉冲时,又重新计数 • 应用:用于硬件触发计数的场合

  13. 8253门控信号的控制功能

  14. 8253各种工作方式的特点 • 方式0:写入控制字后,OUT端变低,计数结束后,OUT端由低变高,该信号可以作为中断源,实现对外部事件进行计数 • 方式1:主要用来产生单脉冲,可用于定时 • 方式2:用来产生序列负脉冲,每个负脉冲宽度与CLK的周期相同,实现对CLK进行分频 • 方式3:用于产生连续的方波,实现对CLK进行分频 • 方式4和方式5的波形相同,方式4由计数值触发计数;方式5由门控信号触发计数

  15. WR WR RD RD 89C51单片机 8253 D0-D7 P0.0-P0.7 373 A0 D Q0 Q1 A1 ALE G CLK0 +5V EA OE CLK1 P2.4 30Px2 CS P2.5 8 CLK2 P2.6 154 P2.7 6MHz P1.7 GATE0,1,2

  16. 写入控制字 • 写入计数初值 初始化8253 锁计数值 读计数值

  17. A组端口A(8) B组端口B(8) I/O PA7-PA0 A组控制部件 A组端口C上半部(4) 双向数据总线 8位内部数据总线 I/O PC7-PC4 数据总线缓冲器 D7-D0 I/O PC3-PC0 B组端口C下半部(4) RD 读写控制部件 WR B组控制部件 A1 I/O PB7-PB0 A0 RESET CS 可编程外围并行接口8255

  18. 8255 PA3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PB0 PB1 PB2 PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 Vcc PB7 PB6 PB5 PB4 PB3 8255A外部引脚 • 与CPU连接的引脚 • D0~D7: 双向数据线 • CS:片选信号 • A1,A0:片内地址选择信号 • RD、WR: 读写输入控制 • RESET: 复位信号 • 与外设连接的引脚 PA0~PA7、 PB0~PB7、PC0~PC7 • 4个端口地址: A口、B口、C口和控制口

  19. 信号组合实现的端口操作 地 址 线

  20. 1=输入0=输出 1=输入0=输出 1=输入0=输出 1=输入0=输出 特征位 D7=1 下C口 I/O A组方式: 00=方式0 01=方式1 1x=方式2 B口I/O B组方式 0=方式0 1=方式1 上C口I/O A口I/O 方式选择控制字 8255A有3种基本的工作方式,在对8255A进行初始化编程时,应向控制寄存器(即控制口)写入方式选择控制字,以规定各端口的工作方式。 方式选择控制字格式

  21. 1=置位 0=复位 不用 标志位 C端口置位/复位控制字 • 端口C的数位常用作控制或应答信号,通过对8255A的控制口写入置位/复位控制字,可使端口C的任意一个引脚的输出单独置1或单独置0.

  22. 8255A的工作方式 • 1. 方式0(基本输入/输出方式) • 24根I /O线全部由用户支配 • A口、B口、C口都可工作在此方式 • 不设置专用的联络信号线和状态位 • 单向I /O • 输出有锁存器功能,输入只有A口有锁存功能。

  23. 1) 方式1输入 此时PC3~5 和PC0~2分别用作A口和B口的状态和控制线, PC6和PC7用作IO线 方式1 (B口) 8 PB7~PB0 1 STBB PC2 8 PA7~PA0 PC1 IBFB 1 & PC4 STBA PC0 INTRB PC5 IBFA & RD o PC3 INTRA RD o PC6PC7 I/O线 2、方式 1-选通输入/ 输出方式 输入或输出都通过应答信号实现,端口A和端口B均可工作在此方式。这时端口A或B用作数据口,端口C的部分引脚用作握手信号线与中断请求线。数据口的输入、输出数据都能锁存。 方式1 (A口)

  24. STB-数据选通输入信号,低电平有效,由外设输入; STB-数据选通输入信号,低电平有效,由外设输入; 方式1 (A口) 8 PA7~PA0 1 PC4 STBA PC5 IBFA & PC3 INTRA INTR-中断请求信号,高电平有效。是8255A向CPU发出的请求中断信号,要求CPU服务。当 IBF =1、STB =1时,INTR =1。 RD o PC6PC7 I/O线 各应答信号的意义: IBF-输入缓冲器满信号,高电平有效,由8255A输出的状态信号,表示输入锁存器已满,向外设指明不能再送入数据。

  25. 2) 方式1输出 这时PC3、PC6和PC7作A口的应答信号,PC0、PC1和PC2作B口的应答信号。余下的PC4和PC5可作输入或输出线。 方式1输出 (A口) 方式1输出 (B口) 8 PA7~PA0 PB7~PB0 8 1 1 PC6 ACKA ACKB PC2 PC7 OBFA PC1 OBFB & & PC3 INTRA PC0 INTRB WR o WR o PC4PC5 I/O线

  26. 各应答信号的意义: OBF-输出缓冲器满信号,输出,低电平有效。表示CPU已输出数据到指定端口。 ACK-外设的回答信号,低电平有效,由外设送给8255A。表示CPU送到指定端口的数据已被外设接受。 方式1输出 (A口) 8 PA7~PA0 1 PC6 ACKA PC7 OBFA & PC3 INTRA WR o PC4PC5 I/O线 INTR-中断请求信号,高电平有效。

  27. 1 PC3 INTRA PA7~PA0 8位 & OBFA PC7 1 PC6 ACKA & 1 PC4 STBA PC5 IBFA PC2~PC0 I/O 3.方式2(双向选通输入/输出方式) • 只有A口可以工作于这种方式。A口既可用于输入,又可用于输出,但输入和输出过程不能同时进行。

  28. 8031 8255 A 微型打印机 RD RD PA7 DB7 … … WR WR PA0 DB0 RESET RESET 74 LS 373 CS Q7 P7 PB7 BUSY D7 … … PC0 STB P0 D0 Q1 A1 Q0 A0 G PB7 D7 ALE … … PB0 D0 EA

  29. (a)逻辑结构 (b)引脚图 可编程接口芯片8155

  30. 8155口地址分布

  31. D7 D6 D5 D4 D3 D2 D1 D0 TM2 TM1 IEB IEA PC2 PC1 PB PA

  32. C口工作方式及控制信号分布

  33. 8155状态寄存器

  34. I2C总线扩展存储器 • 目前新一代单片机中使用的串行扩展接口有Motorola的SPI,NS公司的MICROWIRE/PLUS和PHILIPS公司的I2C总线。其中I2C总线具有标准的规范以及众多带I2C接口的外围器件,形成了较为完善的串行扩展总线。

  35. I2C总线(Inter IC Bus)是PHILIPS公司推出的两线串行多主总线。 I2C总线最显著的特点是规范的完整性,结构的独立性和用户使用时的“傻瓜”化。 • I2C总线有严格的规范:接口的电器特性、信号时序、信号传输的定义、总线状态设置、总线管理规则及总线状态处理等。

  36. I2C总线结构 • I2C总线通过两根线:串行数据线SDA和串行时钟线SCL,在总线连接的器件之间传信息,采用软件寻址方式识别每个器件。 • I2C是多主机总线。可以由所连的多个器件分时控制总线。

  37. 单片机A将信息送至B:A(主器件)寻址B(从器件);A(发送方)把数据传至B(接收方);A终止传送。单片机A将信息送至B:A(主器件)寻址B(从器件);A(发送方)把数据传至B(接收方);A终止传送。 • 单片机A从B接收信息:A(主器件)寻址B(从器件);A(接收方)接收B(发送方)数据;A终止接收。

  38. 串行数据线SDA和串行时钟线SCL都是双向I/O线,通过上拉电阻接正电源电压VDD,因此电平取决于线上的正电源,也可以由用户自行改变。串行数据线SDA和串行时钟线SCL都是双向I/O线,通过上拉电阻接正电源电压VDD,因此电平取决于线上的正电源,也可以由用户自行改变。

  39. I2C总线的通信规约 • SDA 和 SCL 都是双向线路,当总线空闲时,这两条线路都是高电平。连接到总线的器件输出级必须是漏极开路或集电极开路才能执行线与的功 能。 • I2C 总线上数据的传输速率在标准模式下可达 100kbit/s,在快速模式下可达 400kbit/s • SDA线上的数据必须在时钟的高电平周期保持稳定。数据线的高或低电平状态只有在SCL线的时钟信号是低电平时才能改变 • 在 I2C 总线中,唯一出现的是被定义为起始(S)和停止(P)条件的情况。 • 在SCL 线是高电平时,SDA 线从高电平向低电平切换。这个情况表示起始条件。当SCL是高电平时,SDA 线由低电平向高电平切换表示停止条件。

  40. I2C总线传送的格式为:开始位以后,主器件送出8位的控制字符,以选择从器件并控制总线传送的方向,其后传送数据。I2C总线上传送的每一个数据均为8位,传送数据的字节数没有限制。但每传送一个字节后,接收器都必须发一位应答信号ACK(低电平为应答信号,高电平为非应答信号),发送器应答后,再发下一个数据。每一个数据都是先发高位,再发低位,在全部数据传送结束后主器件发送终止信号PI2C总线传送的格式为:开始位以后,主器件送出8位的控制字符,以选择从器件并控制总线传送的方向,其后传送数据。I2C总线上传送的每一个数据均为8位,传送数据的字节数没有限制。但每传送一个字节后,接收器都必须发一位应答信号ACK(低电平为应答信号,高电平为非应答信号),发送器应答后,再发下一个数据。每一个数据都是先发高位,再发低位,在全部数据传送结束后主器件发送终止信号P

  41. 串行口I2C总线E2PROM 24CXX • AT24CXX系列E2PROM是I2C总线串行器件 • 具有工作电源宽(1.8~5.5 V),抗干扰能力强f输入引脚内置施密特触发器滤波抑制噪声),功耗低(写状态时最大工作电流3 mA),高可靠性(写次数100万次,数据保存100年),支持在线编程等特点.

More Related