hd7279a怎么与怎么知道单片机的位数相连

作者:赵亮,侯国锐 编著
出版社:人民邮电出版社
本书结合目前应用非常广泛的C语言以及Keil C51编译器,详细介绍单片机C语言编程的方法。本书通过大量应用实例对单片机资源及其外围芯片进行详细介绍。
全书分为上、下两篇。上篇侧重于介绍基础知识,主要有C51语言和C语言以及汇编语言的对比,单片机内部资源、扩展资源及其编程等内容;下篇侧重于应用实例,通过实例,读者既可以在工作中进行类比编程,又可以开阔思路,提高实际工作能力。
本书特点是实例新颖,内容齐全、实用性强,可作为单片机爱好者以及单片机开发人员的实用参考书。
第1章 C51程序设计基础
1.1 单片机C语言与汇编语言
1.1.1 单片机汇编语言与C语言程序设计对照
1.1.2 汇编语言和C语言混合编程
1.2 C51对标准C语言的扩展
1.2.1 数据类型
1.2.2 存储类型及存储区
1.2.3 存储器模式
1.2.4 特殊功能寄存器(SFR)
1.2.5 C51指针
1.2.6 函数
1.2.7 重入函数
1.2.8 中断函数
1.2.9 绝对地址访问
1.2.10 动态存储分配
1.2.11 使用C51的技巧
1.3 C51使用规范
第2章 mVision2集成开发环境
2.1 关于开发环境
2.2 菜单条、工具栏和快捷键
2.3 创建项目实例
2.4 mVision2功能
2.5 编写优化代码
2.6 技巧和窍门
第3章 单片机内部资源及其C语言编程
3.1 中断系统
3.1.1 中断系统介绍
3.1.2 C51编写中断服务程序
3.1.3 共用中断
3.1.4 外部中断的扩充
3.2 定时器/计数器
3.2.1 定时器/计数器结构
3.2.2 定时器/计数器控制寄存器
3.2.3 定时器/计数器工作模式
3.2.4 定时器/计数器的初始化
3.2.5 定时器/计数器综合应用
3.3 并行I/O口
3.3.1 并行I/O口简析
3.3.2 编程实例
3.3.3 LED显示电路
3.3.4 键盘控制电路
3.4 串行口及其通信
3.4.1 8051单片机的串行口结构
3.4.2 串行口应用
第4章 单片机资源扩展及其C语言编程
4.1 可编程外围并行接口8255A
4.1.1 8255简介
4.1.2 程序设计实例
4.2 三线制Microware串行总线E2PROM的应用
4.2.1 三线制Microware串行总线简介
4.2.2 三线制Microware总线的E2PROM
4.2.3 在51单片机上的应用
4.2.4 程序设计
4.3 键盘与LED控制芯片HD7279A
4.3.1 简介
4.3.2 控制指令
4.3.3 时序
4.3.4 HD7279A与AT89C51的接口以及程序设计
第5章 液晶显示LCD
5.1 液晶显示简介
5.2 内置HD61202控制驱动器图形液晶显示模块
5.2.1 液晶显示模块的电路特性
5.2.2 液晶显示模块的软件特性
5.2.3 液晶显示模块1的应用
第6章 虚拟I2C接口技术
6.1 I2C总线简介
6.1.1 I2C总线的基本结构
6.1.2 双向传输的接口特性
6.1.3 I2C总线上的时钟信号
6.1.4 数据的传送
6.1.5 总线竞争的仲裁
6.1.6 I2C总线接口器件
6.2 模拟I2C总线的C51程序
6.3 I2C总线在IC卡设计中的应用
6.3.1 简介
6.3.2 硬件特性
6.3.3 AT24C01与单片机接口
6.3.4 程序设计
第7章 红外通信接口
7.1 P87LPC762 单片机简介
7.2 NB9148简介
7.3 接收处理电路
7.4 程序设计
第8章 语音芯片ISD4004及其应用
8.1 ISD4004简介
8.2 引脚功能描述
8.3 工作原理与功能特性
8.4 典型应用
第9章 时钟芯片
9.1 时钟芯片DS1302
9.1.1 DS1302简介
9.1.2 结构与工作原理
9.1.3 DS的连接电路
9.1.4 程序设计
9.2 时钟/日历芯片PCF8563
9.2.1 PCF8563简介
9.2.2 PCF8563与I2C总线
9.2.3 应用概述
9.2.4 程序设计
第10章 数据采集
10.1 A/D转换器ADS7804
10.1.1 ADS7804简介
10.1.2 ADS7804与51单片机的接口
10.1.3 C51语言程序设计
10.2 MAX1247、MAX525与单片机接口
10.2.1 MAX1247和MAX525简介
10.2.2 工作原理
10.2.3 硬件接口及软件编程实例
10.2.4 其他同类产品的应用
第11章 单片机通信
11.1 单片机双机通信
11.1.1 双机通信原理
11.1.2 双机通信协议
11.1.3 双机通信程序设计
11.2 单片机多机通信
11.2.1 多机通信原理
11.2.2 程序设计
第12章 单片机与PC通信
12.1 RS-232C介绍与PC硬件
12.2 通信程序设计
第13章 单片机与网络
13.1 51单片机内置定时器作TDMA控制
13.1.1 TDMA(时分多址)简介
13.1.2 TDMA的单片机实现
13.1.3 保持节点器件同步
13.2 单片机实现载波监听多址接入(CSMA)
13.2.1 载波监听多址访问(CSMA)简介
13.2.2 单片机实现载波监听多址接入CSMA
第14章 51单片机系统应用实例
14.1 语音数据采集、回放和串行数据传输系统
14.1.1 系统功能简介
14.1.2 DS1270接口及51扩展方案
14.1.3 LCM1602 总线方式驱动接口
14.1.4 外围器件
14.1.5 语音处理模拟部分设计
14.1.6 系统原理图
14.1.7 程序设计
14.2 医疗激光器功率控制
14.2.1 系统功能简介
14.2.2 行列式扫描键盘及C51程序设计
14.2.3 数字电位器DS1867驱动
14.2.4 LCM1602 口线方式驱动接口
14.2.5 数字温度计DS1820及1-wire总线
14.2.6 系统原理图
14.2.7 程序设计
资料下载地址 (确认已经开启迅雷或电驴)
相关学习资料
最新资料 &&&& &&&&&&&&&&&&&&&& &&&&&&&&
学习资料库,由广大资源爱好者通过共享互助而共享各种学习资料,大家可以免费下载学习使用,但学习资料库无法保证所共享
& 版权所有 Gzip enabled当前位置: >>
10 串行总线扩展技术
10 串行总线扩展技术本章内容简介: (1)I2C总线扩展技术: I2C总线、 I2C总线 的数据传输、 I2C总线的寻址、MCS-51单片机 模拟I2C总线、 I2C总线的应用。 (2)SPI总线扩展技术:SPI总线、 MCS-51 单片机模拟SPI总线及其应用。1 10串行总线扩展技术采用串行总线扩展技术可以使系统的硬件设计 简化,系统的体积减小,同时,系统的更改和扩充 更为容易。串行扩展总线的应用是单片机目前发展 的一种趋势 常用的串行扩展总线有:I2C(Inter IC BUS) 总线、SPI(Serial Peripheral Interface)总线、 Microwire 总线及单总线(1-Wire BUS)。 MCS-51单片机没有串行总线接口,利用其自身 的通用并行线可以模拟多种串行总线时序信号,因 此可以充分利用各种串行接口芯片资源。2 10.1 I2C总线扩展技术I2C总线是Philips公司开发的一种双向两线串行总 线,以实现集成电路之间的有效控制,这种总线也称 为Inter IC 总线。目前,Philips及其它半导体厂商提供 了大量的含有I2C总线的外围接口芯片,I2C总线已成 为广泛应用的工业标准之一。 标准模式下,基本的I2C总线规范的规定的数据传 输速率为100kb/s。 快速模式下,数据传输速率为400KB/s。 高速模式下,数据传输速率为3.4Mb/s。 I2C总线始终和先进技术保持同步,并保持其向下 兼容性。3 10.1.1 I2C总线(1)I2C总线采用二线制传输,一根是数据线SDA (Serial Data Line),另一根是时钟线SCL(serial clock line),所有I2C器件都连接在SDA和SCL上,每 一个器件具有一个唯一的地址。 (2)I2C总线是一个多主机总线,总线上可以有一个 或多个主机(或称主控制器件),总线运行由主机控 制。 主机是指启动数据的传送(发起始信号)、发出时 钟信号、发出终止信号的器件。通常,主机由单片机 或其它微处理器担任。 被主机访问的器件叫从机(或称从器件),它可 以是其它单片机,或者其他外围芯片,如:A/D、D/A、 LED或LCD驱动、串行存储器芯片。4 10.1.1 I2C总线(3)I2C总线支持多主(multi-mastering)和主从 (master-slave)两种工作方式。 多主方式下,I2C总线上可以有多个主机。I2C总 线需通过硬件和软件仲裁来确定主机对总线的控制权。 主从工作方式时,系统中只有一个主机,总线上 的其它器件均为从机(具有I2C总线接口),只有主机 能对从机进行读写访问,因此,不存在总线的竞争等 问题。在主从方式下,I2C总线的时序可以模拟 ,I2C 总线的使用不受主机是否具有I2C总线接口的制约。 ――MCS-51系列单片机本身不具有I2C总线接口,可 以用其I/O口线模拟I2C总线5 10.1.1 I2C总线UCC LCD 显示器 LCD驱动 控制器 SDA P1.0 P1.1 SDA SCL SRAM SDA SCL E2PROM SDA SCL ADC/DAC SDA I/O SCL SCL SDA KEY 键盘 键盘 芯片 SCL LED 显示器 LED 驱动 控制器 SDA SCL SDA 时钟 时钟 芯片 SCL89C51图10.1 单主机系统I2C总线扩展示意图6 10.1.1 I2C总线采用I2C总线设计系统的优点: (1)功能框图中的功能模块与实际的外围器件对应, 可以使系统设计直接由功能框图快速地过渡到系统样 机。 (2)外围器件直接“挂在”I2C总线上,不需设计总 线接口;增加和删减系统中的外围器件,不会影响总 线和其他器件的工作,便于系统功能的改进和升级。 (3)集成在器件中的寻址和数据传输协议可以使系统 完全由软件来定义。7 10.1.2 I2C总线的数据传输负载能力为400pf 5~10k 双向图10.2 标准模式和快速模式下器件连接到I2C总线的形式8 10.1.2 I2C总线的数据传输(一)数据位的传送I2C总线上主机与从机之间一次传送的数据称为一 帧。由启动信号、若干个数据字节、应答位和停止信 号组成。数据传送的基本单元为一位数据。 时钟线SCL的一个时钟周期只能传输一位数据。在 SCL时钟线为高电平期间内,数据线SDA上的数据必须 稳定。当SCL时钟线变为低电平时,数据线SDA的状态 才能改变。9 10.1.2 I2C总线的数据传输(二)启始和停止状态 。起始和停止状态是由主机发出起始(START)状态:I2C总线传输过程中,当时钟 线SCL为高电平时,数据线SDA出现高电平到低电平跳 变时,标志I2C总线传输数据开始。 停止(STOP)状态:I2C总线传输过程中,当时钟线 SCL为高电平时,数据线SDA出现低电平到高电平跳变 时,标志着I2C总线传输数据结束。10 10.1.2 I2C总线的数据传输(三)传输数据传输到数据线SDA上的每个字节必须为8位每次传输的字节数不受限制。每个字节后必须跟一个 应答(acknowledge)位。数据传输时,首先传送最高 位,如图10.5所示,如果从机暂时不能接收下一个字节 数据,如从机响应内部中断,那么,可以使时钟线SCL 保持为低电平,迫使主机处于等待状态;当从机准备就 绪后,再释放时钟线SCL,使数据传输继续进行。 11 10.1.2 I2C总线的数据传输(四)应答I2C协议规定,在每个字节传送完毕后,必须有一 个应答位。应答位的时钟脉冲由主机产生。在应答时 钟有效期间,发送设备把数据线SDA置为高电平;接 收设备必须把数据线SDA置为低电平,并且在此期间 保持低电平状态,以便产生有效的应答信号。12 10.1.2 I2C总线的数据传输(五)数据传输格式在起始状态S之后,先发送一个7位从机地址,接 着第8位是数据方向位, =1 R/ W R/ W=0表示发送(写), 表示请求数据(读)。一次数据传输总是由主机产生停止 状态P而结束。但是,如果主机还希望在总线上传输数 据,那么,它可以产生另一个起始状态和寻址另一个 从机,不需要先产生一个停止状态。在这种传输方式 中,就可能有读写方式的组合。13 10.1.2 I2C总线的数据传输(五)数据传输格式在I2C总线启动或应答信号后的第1~8个时钟脉冲,对应一 个字节的8位数据传送。高电平期间,数据串行传送;低电平 期间为数据准备,允许总线上数据电平变化。一旦I2C总线启 动,传送的字节数没有限制,只要求每传送一个字节后,对 方回应一个应答位。发送时,最先发送的是数据的最高位。 每次传送开始有起始信号,结束时有停止信号。传送完一个 字节,可以通过对时钟线的控制使传送暂停。14 10.1.2 I2C总线的数据传输(五)数据传输格式 在I2C总线上,传输数据可能的数据格式: (1)主机发送器发送到从机接收器。数据传输的方向 不变化。15 10.1.2 I2C总线的数据传输(五)数据传输格式 在I2C总线上,传输数据可能的数据格式: (2)在第一个字节后主机立即读从机。16 10.1.2 I2C总线的数据传输(五)数据传输格式 在I2C总线上,传输数据可能的数据格式:(3)组合格式17 10.1.3 I2C总线的寻址每个连接在I2C总线的器件,都具有一个唯一确定 的地址。在任何时刻,I2C总线上只能有一个主机对总 线实行控制权,分时地实现点对点的数据传送。 器件(从机)的地址由7位组成,它与1位方向位 构成了I2C总线数据传输时起始状态S之后第1个字节。D7 A6 D6 A5 D5 A4 D4 A3 D3 A2 D2 A1 D1 A0 D0 R/ W从机地址由固定位和可编程位组成。固定位由器件 出厂时给定,用户不能自行设置,它是器件的标识码。18 R/ W10.1.3 I2C总线的寻址当主机发送了第1个字节后,系统中的每个从机 (器件)都在起始状态S之后把高7位与本机的地址比 较,如果与本机地址一样,则该从机被主机选中,是 接收数据还是发送数据由 R/ W确定。从机地址由固定位和可编程位组成。固定位由器 件出厂时给定,用户不能自行设置,它是器件的标识 码。当系统中使用了多个相同器件时,从机地址中的 可编程位,可使这些器件具有不同的地址;这些可编 程位也规定了I2C总线上同类芯片的最大个数。19 10.1.3 I2C总线的寻址表10.1常见I2C器件的标识码类别 静态RAM 型号 PCF8570/71 PCF8570C PCF8582 AT24C02 E2PROM AT24C04 AT24C08 AT24C16 PCF8574 PCF8574A SAA1064 LED/LCD 驱动控制器 ADC/DAC 日历时钟 PCF8576 PCF8578/79 PCF8951 PCF 10 10 11 11 20I/O口 10.1.4 单片机主从系统I2C总线模拟程序MCS-51单片机没有I2C总线接口,只能采用虚拟 I2C总线方式,并且只能用于主从系统。 虚拟I2C总线接口利用MCS-51单片机的I/O口线作 为数据线SDA和时钟线SCL,通过软件延时实现I2C总 线传输数据的时序要求。四种典型信号的时序(1)起始信号(S)(2) 停止信号(P)21 10.1.4 单片机主从系统I2C总线模拟程序MCS-51单片机没有I2C总线接口,只能采用虚拟I2C总 线方式,并且只能用于主从系统。 虚拟I2C总线接口利用MCS-51单片机的I/O口线作为数 据线SDA和时钟线SCL,通过软件延时实现I2C总线传输数 据的时序要求。四种典型信号的时序(3)应答信号( A )(4)无应答信号(A)22 10.1.5 I2C总线应用(一) I2C总线扩展I/O口 PCF8574是一个带有中断输出的8位准双向I/O口的 I2C总线扩展I/O口芯片。A0 A1 A2 P0 P1 P2 P3 VSS 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 VDD SDA SCLPCF8574INTP7 P6 P5 P4A2~A0:地址引脚; P0~P7:8位准双向I/O口; SDA、SCL: I2C总线接口; INT :中断请求输出,低电平有效, 漏极开路输出。输入端P0~P7电平 状态改变时,中断请求输出端出现 低电平。对PCF8574进行一次读/ 写操作后,撤销中断请求,复位为 高电平 。 VDD:电源,+5V;VSS:地23 10.1.5 I2C总线应用(一) I2C总线扩展I/O口 PCF8574数据输入/输出操作格式(1)输出操作S SLAW A I/O DATA A P输出时,R/ W=0,SLAW为A0)0。 (2)输入操作S SLAR A I/O DATA A P输入时,R/ W=1,SLAW为A0)1。24 10.1.5 I2C总线应用(一) I2C总线扩展I/O口例:采用PCF8574扩展的4个按键、4个LED应用电路,其中 P0~P3作为按键输入端,P4~P7作为LED控制信号的输出端。 按键K1控制L1,依此类推,当键按后,相应LED被点亮 。25 10.1.5 I2C总线应用(二)I2C总线扩展E2PROM AT24CXX系列串行E2PROM是Atme1公司生产的 I2C总线接口功能的串行E2PROM器件,具有掉电保护 功能 ,AT24C02容量为256字节。AT24CXX系列的写 入时间一般需要5~10ms。AT240C2A0 A1 A2 GND 1 2 3 4 8 7 6 5 VCC WP SCL SDA26SDA、SCL: I2C总线接口; A2~A0:地址引脚; WP:写保护。当接低电平时, 可进行正常读/写操作;接高 电平时,只能读取数据。 10.1.5 I2C总线应用(二)I2C总线扩展E2PROM 数据读/写操作格式 (1)输出操作(SADR为AT24C02片内地址)S SLAW A SADR A Data1 A data2 A … dataN A PSLAW为A0)0(2)输入操作S SLAR A SADR A P S SLAR A data1 A data2 A … dataN?PSLAW为A0)127 10.1.5 I2C总线应用(二)I2C总线扩展E2PROM MCS-51单片机与AT24C02 的连接电路AT24C02与80C51接口例1:把单片机内部RAM 10H单元开始的8个字节数据写入 AT24C02的50H~57H单元中。 例2 把AT24C02的50H~57H中的8个数据读出,存入单片机内 部的RAM的20H~27H。28 10.2 SPI总线扩展技术SPI(Serial Peripheral Interface)总线是 Motorola公司提出的一种同步串行外设接口, 它可以 使微控制器(MCU)与各种外围设备以串行方式进行 通信以交换信息。外围设备包括FLASHRAM、网络控 制器、LCD显示驱动器、A/ D 转换器和微控制器等。 SPI总线使用同步协议传送数据,接收或发送数据 时由主机产生的时钟信号控制。SPI接口可以连接多个 SPI芯片或装置,主机通过选择它们的片选来分时访问 不同的芯片。29 10.2.1 SPI总线(一)SPI总线构成 MOSI(Master Out Slave In):主机发送从机接收。 MISO(Master In Slave Out):主机接收从机发送 SCLK或SCK(Serial Clock):串行时钟CS (Chip Select for the peripheral):外围器件的片选。 有的微控制器设有专用的SPI接口的片许,称为从机选 择(SS)。 MOSI (SI或SDI)信号由主机产生,接收者为从机;ISO (SO或SDO)信号由从机发出;CLK或SCK由主机发出, 用来同步数据传送;片选信号也由主机产生,用来选 择从机芯片或装置。30 10.2.1 SPI总线(二)SPI总线信号线基本连接关系:SPI 总线系统有以下几种形式:1个主机和多 个从机、多个从机相互连接构成多主机系统(分 布式系统) 、1个主机与1个或几个I/ O设备构成 的系统等。31 10.2.1 SPI总线(三)主从方式SPI总线接口系统的典型结构 (1)在大多数应用场合,可使用1个微控制器作为主 控机来控制数据传送,并向1个或几个外围器件传送数 据。从机只有在主机发命令时才能接收或发送数据 。 (2)当一个主机通过SPI与多个芯片相连时,必须使 用每个芯片的片选,这可通过MCU的I/O端口输出线来 实现。SCK MOSI MISO MCU IO1 IO2 IO3 SO SI SCK SO SI SCK SO SI SCK IC1 IC2 IC3CSCSCS32 10.2.2 SPI总线键盘显示器芯片HD 7279A一 HD7279A功能1 2 3 4 5 6 7 8 9 10 11 12 13 14 VDD VDD NC VSS NC CS CLK DATAKEYRESETSG SF SE SD SCRC CLKO DIG7 DIG6 DIG5 DIG4 DIG3 DIG2 DIG1 DIG0 DP SA SB28 27 26 25 24 23 22 21 20 19 18 17 16 15HD7279A是一种管理键 盘和LED显示器的专用智能控 制芯片。能对8位共阴极LED 显示器或64个LED发光管进 行管理和驱动,同时能对多 达8×8的键盘矩阵的按键情 况进行监视,具有自动消除 键抖动和识别按键代码的功 能。33 10.2.2 SPI总线键盘显示器芯片HD 7279A一 HD7279A功能(1)工作电源 VDD(引脚1、2)――+5V电源 VSS(引脚4)――电源地 (2)片选及控制 CS(引脚6)――片选信号输入端。低电平时,可向 HD7279A发送指令及读取键盘数据。 CLK(引脚7)――数据串行传送的同步时钟输入端。向 HD7279A发送数据和读取键盘数据时,CLK时钟的上 升沿表示数据有效。34 10.2.2 SPI总线键盘显示器芯片HD 7279A一 HD7279A功能 DATA(引脚8)――为串行数据输入/输出端,当 HD7279A接收命令时,DATA为输入;当读取键盘数据时, DATA引脚在“读”命令的最后一个时钟的下降沿变为输 出。当向HD7279A发送数据时,DATA为输入端; RESET(引脚28)――复位端。低电平有效。由低电平 变成高电平并保持25ms即可实现HD7279A的复位。 KEY(引脚9)――按键有效输出端,在无键按下时为高 电平;当有键按下时,变为低电平并且一直保持到键释 放为止。35 10.2.2 SPI总线键盘显示器芯片HD 7279A一 HD7279A功能 (3)键盘和LED数码管连接引脚 DIG0~DIG7(引脚18~25)――LED数码管显示位置驱动 控制端,与LED数码管的公共端相接,也作为键盘的列扫 描线。 SA~SG(引脚10~16)――LED数码管的A段~G段的驱动 输出端。 DP(引脚17)――LED数码管的小数点的驱动输出端。 SA~SG和DP可以作为键盘的行扫描线。HD7279A的芯片 内具有驱动电路,可以直接驱动1英技耙韵碌LED数码 管。DIG0~DIG7和SA~SG及DP还可作为键盘的列扫描线 和行扫描线,完成对键盘的监视、译码和键码的识别。36 10.2.2 SPI总线键盘显示器芯片HD 7279A一 HD7279A功能(4)RC振荡器振荡输入和输出 RC(引脚27)――RC电路的输入端,连接HD7279A的外 接振荡元件,其典型值为R=1.5kΩ, C=15pF。 CLKO(引脚26)――振荡电路的输出端。 另外,引脚3和引脚5没有定义,应用时必须悬空。37 10.2.2 SPI总线键盘显示器芯片HD 7279A二 HD7279A的控制命令 HD7279A有6条不带数据的命令、7条带数据命令 和1条读键盘命令。 (一)不带数据的命令 (1) 复位命令 复位命令的代码为0A4H。当HD7279A接收到该命 令后,把所有的显示清除,包括字符消隐属性和闪烁 属性,芯片的状态与系统上电后的状态相同。 (2) 测试命令 测试命令的代码为0BFH。当HD7279A接收到该命 令后,把所有的LED点亮并闪烁,主要用于测试和自检。38 10.2.2 SPI总线键盘显示器芯片HD 7279A二 HD7279A的控制命令 (3) 左移命令 左移命令的代码为0A1H。当HD7279A接收到该命 令后,把所有的显示左移1位,移位后,最右位空(无 显示),该命令不改变各位所设置的消隐和闪烁属性。 (4) 右移命令 右移命令的代码为0A0H,右移命令功能与左移指 令相似,只是方向相反。当HD7279A接收到该命令后, 把所有的显示右移1位,移位后,最左位空(无显示), 该命令不改变消隐和闪烁属性。39 10.2.2 SPI总线键盘显示器芯片HD 7279A二 HD7279A的控制命令(5) 循环左移命令循环左移命令的代码为0A3H。当HD7279A接收到该命令 后,把所有的显示循环左移1位。移位后,最左位LD7 内容移至最右位LD1,如图10.23所示。该命令不改变 各个显示位的消隐和闪烁属性。 (6) 循环右移命令 循环右移命令的代码为0A2H。循环右移命令的功能与循 环左移命令相似,只是方向相反。40 10.2.2 SPI总线键盘显示器芯片HD 7279A二 HD7279A的控制命令(二) 带数据命令 (1) 按方式0译码的下载命令D7 1 D6 0 D5 0 D4 0 D3 0 D2 a2 D1 a1 D0 a0 D7 DP D6 × D5 × D4 × D3 d3 D2 d2 D1 d1 D0 d0a2、a1、a0用来指出显示位,显示位LD7为最高位。第2字 节为显示内容,其中DP为小数点控制位,当DP=1,显示 小数点;当DP=0,不显示小数点。d3d2d1d0用来指出显 示数据。 LD7 LD6 LD5 LD4 LD3 LD2 LD1 LD041 表 10.3 数据 d3d2d1d0 的方式 0 译码真值表 d3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 d2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 d1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 d0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 十六进制 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 空(不显示) 七段数码管显示42 10.2.2 SPI总线键盘显示器芯片HD 7279A二 HD7279A的控制命令(二) 带数据命令(2)按方式1译码的下载命令D7 1 D6 1 D5 0 D4 0 D3 1 D2 a2 D1 a1 D0 a0 D7 DP D6 × D5 × D4 × D3 d3 D2 d2 D1 d1 D0 d0该命令和按方式0译码下载命令的含义基本相同。 HD7279A收到该命令后,把d3d2d1d0按方式1译码并显示。43 表 10.4 数据 d3d2d1d0 的方式 1 译码真值表 d3 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 d2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 d1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 d0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 十六进制 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH44七段数码管显示 10.2.2 SPI总线键盘显示器芯片HD 7279A二 HD7279A的控制命令(二) 带数据命令(3)不译码的下载命令D7 1 D6 0 D5 0 D4 1 D3 0 D2 a2 D1 a1 D0 a0 D7 dp D6 a D5 b D4 c D3 d D2 e D1 f D0 ga2 a1 a0用来指出显示位,第2 字节为显示内容,其中dp和a~g分 别代表小数点和LED数码管显示器的 7个显示段,数据位为1时,该段点 亮;若数据位为0时,该段不显示。45 10.2.2 SPI总线键盘显示器芯片HD 7279A二 HD7279A的控制命令(二) 带数据命令(4)闪烁控制命令D7 1 D6 0 D5 0 D4 0 D3 1 D2 0 D1 0 D0 0 D7 D7 D6 D6 D5 D5 D4 D4 D3 D3 D2 D2 D1 D1 D0 D0闪烁控制命令规定了每个数码管的闪烁属性。 D0~D7别对应LD0~LD7数码管。如果Di=1,则数码管 闪烁,如果Di=0 ,则数码管不闪烁。系统上电后,缺 省状态为所有数码管均不闪烁。46 10.2.2 SPI总线键盘显示器芯片HD 7279A二 HD7279A的控制命令(二) 带数据命令(5)消隐控制命令D7 1 D6 0 D5 0 D4 1 D3 1 D2 0 D1 0 D0 0 D7 D7 D6 D6 D5 D5 D4 D4 D3 D3 D2 D2 D1 D1 D0 D0消隐控制命令控制各个数码管的消隐属性,D7~D0分别 对应数码管LD7~LD0, Di=0 ,则数码管被消隐,如果Di=1 , 则数码管显示。当某一位被赋予消隐属性后,HD7279A在 扫描时将跳过该位。47 10.2.2 SPI总线键盘显示器芯片HD 7279A二 HD7279A的控制命令(二) 带数据命令(6) 显示段点亮命令D7 1 D6 1 D5 1 D4 0 D3 0 D2 0 D1 0 D0 0 D7 × D6 × D5 D5 D4 D4 D3 D3 D2 D2 D1 D1 D0 D0段点亮命令的功能是点亮数码管中的某一指定的段、或 LED发光管矩阵中的某一指定的LED。命令中D5~D0为数码管 显示段的编号,范围为:00H~3FH。48 表 10.5 显示段编号与显示段的对应关系。 编号 数码管 LD0 LD1 LD2 LD3 LD4 LD5 LD6 LD7 段 g 00 08 10 18 20 28 33 38 f 01 09 11 19 21 29 31 39 e 02 0A 12 1A 22 2A 32 3A d 03 0B 13 1B 23 2B 33 3B c 04 0C 14 1C 24 2C 34 3C b 05 0D 15 1D 25 2D 35 3D a 06 0E 16 1E 26 2E 36 3E dp 07 0F 17 1F 27 2F 37 3F49 10.2.2 SPI总线键盘显示器芯片HD 7279A二 HD7279A的控制命令(二) 带数据命令(7) 显示段关闭命令D7 1 D6 1 D5 0 D4 0 D3 0 D2 0 D1 0 D0 0 D7 × D6 × D5 D5 D4 D4 D3 D3 D2 D2 D1 D1 D0 D0显示段关闭命令的作用是关闭(熄灭)某个数码管中的某一段。50 10.2.2 SPI总线键盘显示器芯片HD 7279A二 HD7279A的控制命令(三)读取键盘数据命令D7 0 D6 0 D5 0 D4 1 D3 0 D2 1 D1 0 D0 1 D7 D7 D6 D6 D5 D5 D4 D4 D3 D3 D2 D2 D1 D1 D0 D0读取键盘命令的作用是读取当前的键盘代码。与其他 带数据的指令不同,该命令的第一个字节是单片 机传送到HD7279A的命令,而第二个字节D7~D0是 HD7279A返回的按键代码。HD7279A的DIG0~DIG7作为键 盘的行扫描,SA~SA和DP作为列扫描线,可以构成一个 8×8的矩阵键盘。当有键按下时其范围是00H~3FH;而无 键按下时代码是FFH。51 表 10.6 按键代码的定义 键 代 列扫 码 描 代 行扫描 DIG0 DIG1 DIG2 DIG3 DIG4 DIG5 DIG6 DIG7 SG 00 08 10 18 20 28 33 38 SF 01 09 11 19 21 29 31 39 SE 02 0A 12 1A 22 2A 32 3A SD 03 0B 13 1B 23 2B 33 3B SC 04 0C 14 1C 24 2C 34 3C SB 05 0D 15 1D 25 2D 35 3D SA 06 0E 16 1E 26 2E 36 3E DP 07 0F 17 1F 27 2F 37 3F52 10.2.2 SPI总线键盘显示器芯片HD 7279A三 HD7279A的时序HD7279A采用串行方式与微处理器通信,串行数据 从DATA引脚送入芯片,由CLK引脚输入的同步时钟同步。 在DATA引脚上的数据在CLK的上升沿被写入HD7279A 的缓冲加寄存器。 不带数据的命令的宽度为8个位,即微处理器需要 发送8个CLK脉冲;带数据的命令的宽度为16个位,即 需要发送8个CLK脉冲;读取键盘数据命令的宽度为16 个位,前8个位为微处理器发送到HD7279A的命令,后 8个位是HD7279A返回的键盘代码数据。在HD7279A执 行读取键盘数据命令时,DATA引脚在第9个CLK脉冲的 上升沿时变为输出状态,在第16个CLK脉冲的下降沿恢 复为输入状态,等待接收下一条命令。 53 (1)不带数据的命令时序(2)带数据的命令时序54 (3)读取键盘数据命令55 10.2.2 SPI总线键盘显示器芯片HD 7279A四 HD7279A与MCS-51单片机的接口LD7 LD6 LD5 LD4 LD3 LD2 LD1 LD0 +5V DIG7 DIG6 DIG5 RESET DIG4 DIG3 DIG2 RC DIG1 DIG0 VSS VDD VDD CLKO DP SA SB SC SD SE SF SG RP1 100k?×8+5VR 1.5k C 15pFRP2 10k?×8 RP2 200?×8 3F 3E 3D 3C 3B 3A 39 38 37 36 35 34 33 32 31 30 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 dp a b c d e f gMCUCS CLK DATAKEYHD7279A的典型应用电路56 10.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口TLC2543为12位开关电容逐次逼近的CMOS A/D转 换器,它是TI公司生产的一种串行A/D转换器,它具有 输入通道多,精度高,速度高,使用灵活和体积小的 优点。REF +14 13REF -AIN0 AIN1 AIN2 AIN3 AIN4 AIN5 AIN6 AIN7 AIN8 AIN9 AIN10 31 2 3 4 5 6 7 8 9 11 12采样/保持12位A/D转换器 (开关电容)1214通道模 拟多路器 4输入寄存 器输出数 据寄存 器12并一串 转换器16DOUT自测电压DIN I/O CLOCKCS17 18 15控制逻辑 及I/O计数 器19EOC57 10.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口由通道选择器、数据(地址和命令字)输入寄 存器、采样/保持电路、12位的模/数转换器,输出 寄存器、并行/串行转换器以及控制逻辑电路等部分 组成。通道选择器根据输入地址寄存器中存放的模 拟输入通道地址,选择输入通道,并将该输入通道 中的模拟信号送到采样/保持电路中;然后,在12位 模/数转换器中,把采样的模拟量进行量化编码,转 换成数字量并存放到输出寄存器中。转换结果经过 并行/串行转换器转换成串行数据,从DOUT引脚输 出。58 10.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(一) TLC2543的引脚功能 (1)AIN0~AIN10(引脚1~9,引 脚11、引脚12):输入,模拟 VCC 20 1 量输入通道,在使用4.1MHz的 EOC 19 2 I/O时钟时,外部输入设备的输 I/O CLOCK 18 3 17 出阻抗应小于或等于30Ω。 DIN 4 16 5 DOUT (2) (引脚15):输入,片选。 CS TLC CS 引脚出现一个从高到低的变化可 14 7 REF+ 以使芯片内部寄存器复位,同时 13 8 REF+ 12 9 使能DIN \DOUT和I/O时钟输入。 AIN10 11 AIN9 10 当引脚出现一个从低到高的变化 时,数据输入、数据输出和I/O 时钟输入无效。59AIN0 AIN1 AIN2 AIN3 AIN4 AIN5 AIN6 AIN7 AIN8 GND 10.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(一) TLC2543的引脚功能(3)DIN(引脚17):输入,串行数据输入端。最先输 入的4位用来选择模拟量输入通道。数据传送时最高位 在前,每一个I/O时钟的上升沿送入一位数据,最先4 位数据输入到地址寄存器后,接下来的4位用来设置 TLC2543的工作方式。 (4)DOUT(引脚16):输出,串行数据输出端,输出 的数据有3种长度可供选择:8位、12位和16位,数据 输出的顺序可以在TLC2543的工作方式中设定。数据 输出引脚DOUT在为高时呈高阻状态,在为低电平时, DOUT引脚输出有效。60 10.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(一) TLC2543的引脚功能 (5)EOC(引脚19):输出,A/D转换结束信号,在命令的 最后一个I/O时钟的下降沿变低,A/D转换结束后,由EOC 由低电平变为高电平。 (6)I/O CLOCK(引脚18):输入,输入/输出同步时钟, 它有4种功能:1)在I/O CLOCK的前8个上升沿,把命令字输入到的数据输入 寄存器,其中前4个是输入通道地址选择。 2)在I/O CLOCK的第4个I/O时钟的下降沿,选中通道的模拟信 号对芯片中电容阵列进行充电,直到最后一个I/O时钟结束。 3)I/O时钟把上次转换结果输出,在最后一个数据输出完后, 开始下一次转换。 4)在最后一个I/O时钟的下降沿,把EOC变为低电平。61 10.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(一) TLC2543的引脚功能(7)参考电源 REF+―― 引脚14,正参考电压。REF- ――引 脚13,负参考电压。最大的输入电压取决于正参考电 压与负参考电压的差值。 (8)芯片工作电源 Vcc――引脚20,电源正极,+5V。GND――引脚 10,电源地。62 10.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(二) TLC2543的时序CSI/O CLOCK DOUT 1CS234567811121地址周期 A9 A8采样周期 A7 A6 A5 前次的转换数据 A4 A1 A0 LSB 高阻态 B11A11 A10 MSBDIN B7 B6 MSB EOC 写入新的8位命令字,同时移出前次的转换值 B5 B4 B3 LSB B2 B1 B0 C7L 转换周期图10.31 使用片选信号高位在前的时序63 10.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(二) TLC2543的时序CSI/O CLOCK DOUT 1 2 3 4 5 6 7 8 11 121地址周期 A11 A10 MSBCS采样周期 A8 A7 A6 A5 前次的转换数据 A4 A1 A0 LSB 低电平 B11A9DIN B7 B6 MSB EOC 写入新的8位命令字,同时移出前次的转换值 B5 B4 B3 LSB B2 B1 B0 C7L 转换周期图10.32 不使用片选信号高位在前的时序64 10.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(三) TCL2543的命令字 TCL2543的每次转换都必须给其写入命令字,以便 确定下一次转换用哪个通道,下次转换结果用多少位 输出,转换结果输出是低位在前还是高位在前。D7 D6 D5 D4 D3 D2 D1 D0其中,高4位D7D6D5D4用于选择模拟量输入通道, D3D2用于选择输出数据的位数,D1用于设定输出数据 的位输出顺序是高位在前还是低位在前,最低位D0用 于选择输出数据的极性。65 10.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(三) TCL2543的命令字(1)高4位(D7~D4)设置,可以实现从11个模 D7 D6 D5 拟量输入通道中选择 1个通道进行转换;或从3个 0 0 0 0 0 0 内部自测电压中选择一个,以对转换器进行校准; 0 0 1 0 0 1 或者选择软件掉电方式。0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1表 10.7 命令字高 4 位设置 模拟量通道选择 D4 模拟量通道 0 AIN0 1 AIN1 0 AIN2 1 AIN3 0 AIN4 1 AIN5 0 AIN6 1 AIN7 0 AIN8 1 AIN9 0 AIN10 校准电压选择 (VREF ? ? VREF ? ) / 2 1 0 1 软件掉电选择 0 软件掉电VREF ? VREF ?66 10.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(三) TCL2543的命令字(2)D3D2位选择A/D转换结果的数据输出位数。 转换器的分辨率为12位,内部转换结果总 是12位长,选择l2位数据长度时,所有的位都 被输出。选择8位数据长度时,低4位被截去。 选择l6位时,在转换结果的低位增加了4个被置 为0的填充位。表 10.8 A/D 转换结果输出位数的设置 D3 × 0 1 D2 0 1 1 输出数据位数 12 位 8位 16 位67 10.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(三) TCL2543的命令字(3)D1位选择输出数据的传送方式,即下一个I/O周期, A/D转换结果的数据以低位在前或高位在前的方式串行 输出。当D1位为0时,A/D转换结果以高位在前的方式 从DOUT脚输出;当D1位为1时,则以低位在前的方式 从DOUT脚输出。 (4)D0位是设置A/D转换结果是以单极性还是双极性二 进制数补码表示。当D0位为0时,A/D转换结果以二进 制数形式表示;当D0位为1时,则以二进制数补码形式 表示68 10.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口(四)TLC2543 与MCS-51单片机的接口程序设计MCS-51P1.0 P1.1 P1.2 P1.3TLC2543IO CLK DIN DOUT CS69 10.2.3 SPI总线多通道串行输出A/D芯片 TLC2543及接口TLC2543 的8位A/D转换及数据传送程序(结果在R2中) TLC_8AD: MOV R4,#04H ;命令字,AIN0,8位数据,高位在前 MOV A,R4 ;(A)中为命令字 CLR P1.3 ;片选有效,选中TLC2543 MSB: MOV R5,#08H ;发送命令字,接收8位结果 LOOP: MOV P1,#04H ;置P1.2为输入 MOV C,P1.2 ;读P1.2,把DOUT位数据读入 RLC A ;结果移入(A),同时写命令字 MOV P1.1,C ;将命令字的一位经DIN移入 SETB P1.0 ;产生一个时钟脉冲 NOP CLR P1.0 DJNZ R5,LOOP MOV R2,A ;A/D转换的数据存于R2中 RET70 10.2.4串行输入D/A芯片TLC5615接口技术TLC5615是具有SPI串行接口的数模(D/A)转换 器,其输出为电压型,最大输出电压是基准电压值的2 倍。TLC5615有以下特点: (1)10位CMOS电压输出; (2)单一5V直流电源供电; (3)与CPU三线串行接口; (4)最大输出电压可达基准电压的2倍; (5)输出电压具有和基准电压相同极性; (6)建立时间12.5μs; (7)内部上电复位,可以把DAC寄存器复位至全零状 态。 (8)低功耗,最大仅1.75mW。71 10.2.4串行输入D/A芯片TLC5615接口技术(一)TLC5615的片内结构和引脚功能72 10.2.4串行输入D/A芯片TLC5615接口技术(一)TLC5615的片内结构和引脚功能TLC5615DIN SCLK 1 2 3 4 8 7 6 5 VDD OUT REFIN AGNDCSDOUT(1)DIN(引脚1):输入,串行数据输入; (2)SCLK(引脚2):输入,串行时钟输入; (3) CS (引脚3):输入,芯片选择,低电平有 效; (4)DOUT(引脚4):输出,用于多个芯片 级联时的串行数据输出; (5)AGND(引脚5):模拟地; (6)REFIN(引脚6):参考电压输入; (7)OUT(引脚7):输出,模拟电压输出; (8)VDD(引脚8):电源。73 10.2.4串行输入D/A芯片TLC5615接口技术(二)TLC5615的时序74 10.2.4串行输入D/A芯片TLC5615接口技术(三)TLC5615与MCS-51单片机的接口及程序设计80C51P3 . 2 P3 . 1 P3 . 0TLC 5615VDD DIN SCLK REFIN CS DOUT AGND OUT R D+5V2k 2.5V75 10.2.4串行输入D/A芯片TLC5615接口技术把待转换的12位数据存放在寄存器 R6和R7中,R6存放高4位,R7存放低8 单片机发送数据到TLC5615的子程序如 下: 位 TLC_DA: CLR P3.0 ;片选有效 WRdata: NOP MOV R2, #04 ;前4位数据位数 LOOP: CLR P3.1 ;SCLK为低电平 MOV A, R6;(R6)为0000XXXX RLC A ;数据送入进位Cy SWAP A ; MOV P3.2, C ;数据移 LCALL WRdata;由DIN输入前4 入TLC5615的DIN 位 MOV R2, #08 ;送入的后8位 SETB P3.1; SCLK为高电平 MOV A, R7 ;取低8位数据 DJNZ R2, LOOP LCALL WR由DIN输入低8 RET 位 CLR P3.1 ;时钟SCLK为低电平 SETB P3.0 ;片选高电平,输入 的12位数据有效 RET76 10.2.5 SPI串行编程E2PROM――X5045X5045是Xicor公司生产的具有SPI总线接口的 E2PROM芯片,它是早期产品X25045的替代品。 X5045把集成了4种功能:上电复位控制、看门狗定时 器、电源监督以及具有块保护功能的串行E2PROM存储 器。另一款芯片X5043与X5045功能相同,二者区别仅 在于输出的复位信号的电平不同,前者为低电平,后 者为高电平。77 10.2.5 SPI串行编程E2PROM――X5045(一)X5045的内部结构和引脚 包括上电复位和低电压检测及控制电路、看门狗 定时器、数据寄存器、命令解码与控制逻辑电路、 E2PROM存储器阵列、块保护逻辑电路、电源阈值复位 逻辑电路等部分组成。78 10.2.5 SPI串行编程E2PROM――X5045(一)X5045的内部结构和引脚X5045CS/WDISO1 2 3 48 7 6 5VCC RESET SCK SIWPVSS(1)CS/WDI(引脚1):输入,芯片 选择/看门狗输入。当为高电平时,芯 片未选中,此时,引脚SO为高阻态。 在高电平时,X5045处于标准的功耗 模式时,写周期开始把拉为低电平, 将使X5045处于选中状态,器件将工 作于工作功耗状态。在上电后,任何 操作之前必须要有一个高电平变低电 平的过程。作为看门狗输入时,在看 门狗定时器超时并产生复位之前,在 WDI引脚上的高电平到低电平的跳变, 将复位看门狗定时器。 79 10.2.5 SPI串行编程E2PROM――X5045(一)X5045的内部结构和引脚 (2)SO(引脚2):输出,串行数据输出。SO是一个推 /拉串行数据输出引脚,在读数据时,数据在SCK脉冲 的下降沿,由SO引脚送出。(3)WP(引脚3): 输入,写保护。当引脚为低电平 时,向X5045中写的操作被禁止,但是其它的功能正常。 当引脚是高电平时,所有操作正常,包括写操作。如果 在CS是低电平时,WP变为低电平,则会中止向X5045 的写操作。但是如果内部写周期已经初始化,WP变为 低电平时对写操作无任何影响。80 10.2.5 SPI串行编程E2PROM――X5045(一)X5045的内部结构和引脚 (4)VSS(引脚4):地。 (5) SI(引脚5):输入,串行数据输入。SI是串行数 据的输入,命令码、地址、数据都是通过SI引脚输入 的。数据输入在SCK的上升沿进行,传送时高位在前。 (6)SCK(引脚6):输入,串行时钟。在串行时钟SCK 的上升沿,通过SI引脚进行数据的输入;在SCK下降沿, 通过SO引脚进行数据的输出。81 10.2.5 SPI串行编程E2PROM――X5045(一)X5045的内部结构和引脚 (7)RESET(引脚7):输出,复位输出。只要电源Vcc 电压下降到小于Vcc最小值时,RESET变为高电平。 RESET会一直保持高电平,直到电压值上升到超过Vcc 最小值的时间大于200ms时,RESET才会变为低电平。 另外,RESET也受看门狗定时器的控制。 (8)VCC(引脚8),电源。82 10.2.5 SPI串行编程E2PROM――X5045(二)X5045的命令集和状态寄存器(1)X5045的命令集表 10.10 X5045 命令及其功能 命令名称 WREN WRDI RSDR WRSR READ WRITE 命令格式 00 01 00 A A8010 操作 允许写操作,置写允许锁存器 禁止写操作,复位写允许锁存器 读状态寄存器 写状态寄存器(看门狗和块所 BlockLock) 由给定的单元地址开始从存储器中读数据 由给定的单元地址开始向存储器中写数据( 1~16 个字节)83 10.2.5 SPI串行编程E2PROM――X5045(二)X5045的命令集和状态寄存器 (2)X5045的状态寄存器 状态寄存器由4个断电不丢失的控制位和2个断电 消失的状态位组成,用于设置看门狗定时器的溢出时 间和存储器区锁定(BlockLock)保护。D7 0 D6 0 D5 WD1 D4 WD0 D3 BL1 D2 BL0 D1 WEL D0 WIPX5045状态寄存器的缺省值为00H84 10.2.5 SPI串行编程E2PROM――X5045(二)X5045的命令集和状态寄存器 (2)X5045的状态寄存器D7 0 D6 0 D5 WD1 D4 WD0 D3 BL1 D2 BL0 D1 WEL D0 WIPWIP(Write-In-Progress)是一个断电消失的只读状态位,用来 指示是否X5045正在处于内部写操作的忙状态。WIP可用RDSR指 令读出。当读出的状态为1,则意味着内部正在进行写操作; 否 则,X5045内部无写操作。 WEL(Write Enable Latch)是一个断电消失的状态位,用来指 示写允许锁存器的状态。 当WEL为1时,锁存器被置1,X5045处 于写允许状态, WEL为0时,锁存器被复位,X5045芯片处于写 禁止状态。 WEL也是一个只读位,WREN命令把WEL置为1,而 WRDS命令则将WEL复位清0。85 10.2.5 SPI串行编程E2PROM――X5045(二)X5045的命令集和状态寄存器 (2)X5045的状态寄存器D7 0 D6 0 D5 WD1 D4 WD0 D3 BL1 D2 BL0 D1 WEL D0 WIP表 10.11 BLO 和 BL1 设置存储器保护的区域 块锁定(Block Lock )位 BLO 和BL1用于设置 BL1 BL0 保护的存储器地址空间 存储空间大小 存储器保护的区域。 BLO 和BL1状态是断电不丢失 0 无 0 的。 BLO 和BL10 位通过WRSR命令来编程, 用户 0 BLO和1 180H~1FFH 1k 可以设置 BL1两位,实现 4K EEPROM存储 1 0 100H~1FFH 2k 器空间中的 1/4区域、 1/2区域、或全部空间处于 1 1 000H~1FFH 4k 写保护状态;然也可以全部都不处于写保护状态。 存储区被锁定保护后只能读出,不能写入,除非 修改BLO和BL1的状态。86 10.2.5 SPI串行编程E2PROM――X5045(二)X5045的命令集和状态寄存器 (2)X5045的状态寄存器D7 0 D6 0 D5 WD1 D4 WD0 D3 BL1 D2 BL0 D1 WEL D0 WIP看门狗定时器控制位 WDO 和WD1用于选择看 WD1 WD0 看门狗定时溢出时间 门狗的定时溢出时间,它们是掉电不丢失的非易 0 0 1.4 s 失位,通过 0 WRSR命令进行编程。 1 600 ms1 1 0 1 200 ms 禁止表10.12 看门狗的定时溢出时间设定87 10.2.5 SPI串行编程E2PROM――X5045(三)X5045的操作时序写允许/禁止锁存器的时序88 10.2.5 SPI串行编程E2PROM――X5045(三)X5045的操作时序读状态寄存器的时序89 10.2.5 SPI串行编程E2PROM――X5045(三)X5045的操作时序写状态寄存器的时序90 10.2.5 SPI串行编程E2PROM――X5045(三)X5045的操作时序读存储单元内容操作的时序91 10.2.5 SPI串行编程E2PROM――X5045(三)X5045的操作时序写存储单元操作的时序92 10.2.5 SPI串行编程E2PROM――X5045(四)X5045与MCS-51单片机接口及程序设计80C51 P1.0 P1.1 P1.2 P1.1 RESET X5045CS WIPSI SCK SOVccRESET93 10.3总结采用串行总线扩展技术可以使系统的硬件设计简 化,系统的体积减小,同时,系统的更改和扩充更为 容易。 I2C总线采用二线制传输,一根是数据线SDA,另 一根是时钟线SCL,所有I2C器件都连接在SDA和SCL上, 每一个器件具有一个唯一的地址。I2C总线支持多主 和主从两种工作方式。在主从方式下,由于I2C总线 的时序可以模拟。MCS-51系列单片机本身不具有I2C 总线接口,可以采用MCS-51单片机的I/O口线模拟I2C 总线扩展外围器件。在这种方式下,应用系统是以 MCS-51单片机为主机、其它外围器件为从机的构成的 单主机系统。94 10.3总结SPI总线使用同步协议传送数据,接收或发送数据 时由主机产生的时钟信号控制。SPI接口可以连接多个 SPI芯片或装置,主机通过选择它们的片选(SS)来分 时访问不同的芯片。 SPI总线由4根信号线构成:MOSI(主机发送从机 接收)、MISO(主机接收从机发送)、SCLK(串行时 钟)、CS(外围器件的片选)。主机和从机都使用移 位寄存器进行数据传送。当主机把数据通过移位寄存 器从MOSI线移出,从机则把数据移入它的移位寄存器。 SPI总线也支持全双工通信模式。MCS-51系列单片机 没有SPI 串行总线接口,可以使用软件来模拟SPI总线 的操作。95 本章内容结束!THANK YOU!96
更多搜索:
All rights reserved Powered by
文档资料库内容来自网络,如有侵犯请联系客服。

我要回帖

更多关于 单片机字模值怎么确认 的文章

 

随机推荐