第九章 mcs-51 单片机的其他接口

57
第第第 MCS-51 第第第第第第第第 第第第 MCS-51 第第第第第第第第 9.1 LCD 与 MCS-51 与与 与与与与与与与 LCD 与与与 与与与与与与与与与与与与与与与与与与 与与与与与与与与与 与与与 与与与与与与与与与与与与与与与 与与与与与与与与与 与与与与与与与与与与与与与与与与与与与与与与 。:、。 与与与与与与与与 与与与与与与与 与与与与与与与与与与与与与与与与与与与与与与与与 与与与与与与与与与与 、,,。 9.1.1 与与与与与与 LCD 与与与与与 与与与与与与与与与 16 与 1与16 与 2与20 与 2 与与 40 与 2 与与与与与与 与与与与与 与与 LCM 与与与与与与与与与与 与与与与与与与与与与与与与与与 与与与与 ,。 162 与与与 与与与与与与 RT-1602C 与与 与与与与与与与与与与与与与与与与与 ,。 第第第第第第第第第 一. RT-1602C 第第第第第第

Upload: adlai

Post on 28-Jan-2016

72 views

Category:

Documents


0 download

DESCRIPTION

第九章 MCS-51 单片机的其他接口. 9.1 LCD 与 MCS-51 接口. 液晶显示器简称 LCD 显示器。它是利用液晶经过处理后能改变光线的传输方向的特性实现显示信息。液晶显示器按其功能可分为三类:笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果。. 9.1.1 字符型点阵式 LCD 液晶显示器. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口第九章 MCS-51 单片机的其他接口

9.1 LCD 与 MCS-51 接口 液晶显示器简称 LCD 显示器。它是利用液晶经过处理后能改变光线的传输方向的特性实现显示信息。液晶显示器按其功能可分为三类:笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果。

9.1.1 字符型点阵式 LCD 液晶显示器目前市面上常用的有 16 字 1 行、 16 字 2 行、 20 字 2 行和 40字 2 行等的字符液晶显示模块。这些 LCM 虽然显示字数各不相同,但是都具有相同的输入输出界面。本节将以 162 字符型液晶显示模块 RT-1602C 为例,详细介绍字符型液晶显示模块的应用。

一.字符型液晶显示模块 RT-1602C 的外观与引脚

Page 2: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

RT-1602C 采用标准的 16 脚接口,各引脚情况如下:第 1 脚: VSS ,电源地第 2 脚: VDD , +5V 电源第 3 脚: VL ,液晶显示偏压信号第 4 脚: RS ,数据 / 命令选择端,高电平时选择数据寄存器、

低电平时选择指令寄存器。第 5 脚: R/W ,读 / 写选择端,高电平时进行读操作,低电平时进行写操作。当 RS 和 R/W 共同为低电平时可以写入指令或者显示地址,当 RS 为低电平 R/W 为高电平时可以读忙信号,当 RS 为高电平 R/W 为低电平时可以写入数据。

Page 3: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

第 6 脚: E ,端为使能端,当 E 端由高电平跳变成低电平时,液晶模块执行命令。

第 7 ~ 14 脚: D0 ~ D7 ,为 8 位双向数据线。第 15 脚: BLA ,背光源正极第 16 脚: BLK ,背光源负极

二.字符型液晶显示模块 RT-1602C 的内部结构液晶显示模块 RT-C1602C 的内部结构可以分成三部份:一为 LCD控制器,二为 LCD 驱动器,三为 LCD 显示装置,如图所示:

LCD

LCD

LCD

显示装备

VSS

VDD

VO

VS

V/W

E

DB0~DB7

Page 4: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

控制器采用 HD44780 ,驱动器采用 HD44100 。 HD44780 是集控制器,驱动器于一体,专用于字符显示控制驱动集成电路。 HD44100 是作扩展显示字符位的。 HD44780 是字符型液晶显示控制器的代表电路。

HD44780 集成电路的特点:1 、可选择 5×7 或 5×10 点字符。2 、 HD44780 不仅作为控制器而且还具有驱动 40×16 点阵液晶像

素的能力,并且 HD44780 的驱动能力可通过外接驱动器扩展 360 列驱动。

HD44780 可控制的字符高达每行 80 个字,也就是 580=400 点,HD44780 内藏有 16 路行驱动器和 40 路列驱动器,所以 HD44780 本身就具驱动有 16×40 点阵 LCD 的能力(即单行 16 个字符或两行 8 个字符)。如果在外部加一 HD44100 外扩展多 40 路 / 列驱动,则可驱动 16×2LCD 。

3 、 HD44780 的显示缓冲区 DDRAM 、字符发生存储器( ROM )及用户自定义的字符发生器 CGRAM 全部内藏在芯片内。

HD44780 有 80 个字节的显示缓冲区,分两行,地址分别为 00H~27H , 40H~67H ,它下实际显示位置的排列顺序跟 LCD 的型号有关,液晶显示模块 RT-1602C 的显示地址与实际显示位置的关系如图所示。

Page 5: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 …… 27

40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 …… 67

LCD

16 ×字 2行

HD44780 内藏的字符发生存储器( ROM )已经存储了 160 个不同的点阵字符图形,如图所示: 这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。比如数字“ 1” 的代码是 00110001B ( 31H ),又如大写的英文字母“ A” 的代码是 01000001B ( 41H ),可以看出英文字母的代码与 ASCII 编码相同。要显示“ 1” 时,我们只需将 ASCII 码 31H 存入 DDRAM 指定位置,显示模块将在相应的位置把数字“ 1” 的点阵字符图形显示出来,我们就能看到数字“ 1” 了。

Page 6: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

Page 7: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

4 、 HD44780 具有 8 位数据和 4 位数据传输两种方式,可与 4/8位 CPU 相连。

5 、 HD44780 具有简单而功能较强的指令集,可实现字符移动,闪烁等显示功能。

三.指令格式与指令功能 LCD 控制器 HD44780 内有多个寄存器,通过 RS 和 R/W 引脚共同决定选择哪一个寄存器,选择情况如表

RS R/W 寄存器及操作0 0 指令寄存器写入0 1 忙标志和地址计数器读出1 0 数据寄存器写入1 1 数据寄存器读出

总共有 11条指令,它们的格式和功能如下:

Page 8: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口1 .清屏

命令格式:

RS R/W D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 0 0 0 0 1

功能:清除屏幕,将显示缓冲区 DDRAM 的内容全部写入空格( ASCII20H )。

光标复位,回到显示器的左上角。地址计数器 AC清零。

2 .光标复位命令格式:

功能:设定当写入一个字节后,光标的移动方向以及后面的内容是否移动。

当 I/D=1 时,光标从左向右移动; I/D=0 时,光标从右向左移动。当 S=1 时,内容移动, S=0 时,内容不移动。

RS R/W D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 0 0 0 1 0

Page 9: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

3 .输入方式设置命令格式:

RS R/W D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 0 0 1 I/D S功能:设定当写入一个字节后,光标的移动方向以及后面的

内容是否移动。当 I/D=1 时,光标从左向右移动; I/D=0 时,光标从右向左移

动。当 S=1 时,内容移动, S=0 时,内容不移动。

4 .显示开关控制命令格式:

RS R/W D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 0 1 D C B

功能:控制显示的开关,当 D=1 时显示, D=0 时不显示。控制光标开关,当 C=1 时光标显示, C=0 时光标不显示。控制字符是否闪烁,当 B=1 时字符闪烁, B=0 时字符不闪

烁。

Page 10: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

5 .光标移位置命令格式:

RS R/W D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 0 1 S/C R/L * *

功能:移动光标或整个显示字幕移位。当 S/C=1 时整个显示字幕移位,当 S/C=0 时只光标移

位。当 R/L=1 时光标右移, R/L=0 时光标左移。6 .功能设置

命令格式:RS R/W D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 0 1 DL N F * *

功能:设置数据位数,当 DL=1 时数据位为 8 位, DL=0 时数据位为 4 位。设置显示行数,当 N=1 时双行显示, N=0 时单行显示。设置字形大小,当 F=1 时 5×10 点阵, F=0 时为 5×7 点阵。

Page 11: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

7 .设置字库 CGRAM 地址命令格式:

RS R/W D7 D6 D5 D4 D3 D2 D1 D0

0 0 0 1 CGRAM的地址

功能:设置用户自定义 CGRAM 的地址,对用户自定义 CGRAM访问时,要先设定 CGRAM 的地址,地址范畴 0~63 。

8 .显示缓冲区 DDRAM 地址设置命令格式:

RS R/W D7 D6 D5 D4 D3 D2 D1 D0

0 0 1 DDRAM的地址

功能:设置当前显示缓冲区 DDRAM 的地址,对 DDRAM访问时,要先设定 DDRAM 的地址,地址范畴 0~127 。

Page 12: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

9 .读忙标志及地址计数器 AC 命令格式:

RS R/W D7 D6 D5 D4 D3 D2 D1 D0

0 1 BF AC的值功能:读忙标志及地址计数器 AC ,当 BF=1 时则表示忙,这时不能接收命令和数据; BF=0 时表示不

忙。低 7 位为读出的 AC 的地址,值为 0~127 。10 .写 DDRAM 或 CGRAM

命令格式:

RS R/W D7 D6 D5 D4 D3 D2 D1 D0

1 0 写入的数据

功能:向 DDRAM 或 CGRAM 当前位置中写入数据。对 DDRAM 或CGRAM 写入数据之前须设定 DDRAM 或 CGRAM 的地址。

Page 13: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

11 .读 DDRAM 或 CGRAM命令格式:

RS R/W D7 D6 D5 D4 D3 D2 D1 D0

1 1 读出的数据

功能:从 DDRAM 或 CGRAM 当前位置中读邮数据。当 DDRAM或 CGRAM 读出数据时,先须设定 DDRAM 或 CGRAM 的地址。

四. LCD 显示器的初始化LCD 使用之前须对它进行初始化,初始化可通过复位完成,也

可在复位后完成,初始化过程如下:1.清屏。2.功能设置。3.开 / 关显示设置。4.输入方式设置。

Page 14: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

9 . 1 . 2 LCD 显示器与单片机的接口与应用 下图是 LCD 显示器与 8051 单片机的接口图,图中 RT-1602C的数据线与 8051 的 P1 口相连, RS 与 8051 的 P2.0 相连, R/ W与 8051 的 P2.1 相连, E 端与 8051 的 P2.7 相连。编程在 LCD 显示器的第一行、第一列开始显示“ GOOD” ,第二行、第 6 列开始显示“ BYE” 。

P1.7P2.7P2.1P2.0

P1.0

8051

……

……

DB0

……

DB7E

RSR/W

RT-1602

VL

BLK

BLK

P=10K

OV

OV+5V

R=10 欧姆 1/2W

Page 15: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口汇编语言程序:

RS BIT P2.0RW BIT P2.1E BIT P2.7ORG 00HAJMP STARTORG 50H;主程序START : MOV SP , #50HACALL INITMOV A , #10000000B ;写入显示缓冲区起始地址为第 1 行第 1

列。ACALL WC51RMOV A ,“ G” ;第 1 行第 1 列显示字母“ G” 。ACALL WC51DDRMOV A ,“ O” ;第 1 行第 2 列显示字母“ O” 。ACALL WC51DDRMOV A ,“ O” ;第 1 行第 3 列显示字母“ O” 。ACALL WC51DDRMOV A ,“ D” ;第 1 行第 4 列显示字母“ D” 。ACALL WC51DDR

Page 16: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口MOV A , #11000101B ;写入显示缓冲区起始地址为第 2 行第 6 列。

ACALL WC51RMOV A ,“ B” ;第 2 行第 6 列显示字母“ B” 。ACALL WC51DDRMOV A ,“ Y” ;第 2 行第 7 列显示字母“ Y” 。ACALL WC51DDRMOV A ,“ E” ;第 2 行第 8 列显示字母“ E” 。ACALL WC51DDRLOOP : AJMP LOOP;初始化子程序INIT : MOV A , #00000001H ;清屏ACALL WC51RMOV A , #00111000B ;使用 8 位数据,显示两行,使用 5*7 的字

型。LCALL WC51RMOV A , #00001110B ;显示器开,光标开,字符不闪烁。LCALL WC51RMOV A , #00000110B ;字符不动,光标自动右移一格。LCALL WC51RRET

Page 17: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

;检查忙子程序F_BUSY : PUSH ACC ;保护现场PUSH DPHPUSH DPLPUSH PSWWAIT : CLR RSSETB RWCLR ESETB EMOV A , P1CLR EJB ACC.7 , WAIT ;忙,等待POP PSW ;不忙,恢复现场POP DPLPOP DPHPOP ACCACALL DELAYRET

Page 18: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口;写入命令子程序。

WC51R : ACALL F_BUSYCLR ECLR RSCLR RWSETB EMOV P1 , ACCCLR EACALL DELAYRET;写入数据子程序。WC51DDR : ACALL F_BUSYCLR ESETB RSCLR RWSETB EMOV P1 , ACCCLR EACALL DELAYRET

Page 19: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

;延时子程序。DELAY : MOV R6 ,

#5D1 : MOV R7 , #24

8DJNZ R7 , $DJNZ R6 , D1RETEND

Page 20: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口C语言编程:

#include <reg51.h>#define uchar unsigned charsbit RS=P2^0;sbit RW=P2^1;sbit E=P2^7;void delay(void);void init(void);void wc5r(uchar i);void wc51ddr(uchar i);void fbusy(void);//主函数void main(){SP=0x50;init();wc51r(0x80); // 写入显示缓冲区起始地址为第 1 行第 1

列wc51ddr(0x44); // 第 1 行第 1 列显示字母“ G”wc51ddr(0x4f); // 第 1 行第 2 列显示字母“ O”wc51ddr(0x4f); // 第 1 行第 3 列显示字母“ O”wc51ddr(0x47); // 第 1 行第 4 列显示字母“ D”

Page 21: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

wc51r(0xc5); // 写入显示缓冲区起始地址为第 2 行第 6列wc51ddr(0x42); // 第 2 行第 6 列显示字母“ B”wc51ddr(0x59); // 第 2 行第 7 列显示字母“ Y”wc51ddr(0x45); // 第 2 行第 8 列显示字母“ E”while(1);}//初始化函数void init(){wc51r(0x01); //清屏wc51r(0x38); // 使用 8 位数据,显示两行,使用 5*7 的字型wc51r(0x0e); // 显示器开,光标开,字符不闪烁wc51r(0x06); // 字符不动,光标自动右移一格}

Page 22: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

//检查忙函数void fbusy(){RS=0; RW=1;E=1; E=0;while (P1&0x80); // 忙,等待delay();}// 写命令函数void wc51r(uchar j){fbusy();E=0; RS=0; RW=0;E=1;P1=j;E=0;delay();}

Page 23: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

// 写数据函数void wc51ddr(uchar j){fbusy();E=0; RS=1; RW=0;E=1;P1=j;E=0;delay();}//延时函数void delay(){uchar y;for (y=0; y<0xff; y++){; }}

Page 24: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

9.2 MCS-51 单片机与 I2C 总线芯片接口

9.2.1 I2C 总线简介一. I2C 总线的主要特点

I2C总线是由 PHILIPS公司开发一种简单、双向二线制同步串行总线。它只需要两根线即在连接于总线上的器件之间传送信息。这种总线的主要特点有:

1.总线只有两根线,即串行时钟线( SCL )和串行数据线( SDA ),这在设计中大大减少了硬件接口。

2.每个连接到总线上的都有一个用于识别的器件地址,器件地址由芯片内部硬件电路和外部地址引脚同时决定,避免了片选线的连接方法,并建立简单的主从关系,每个器件既可以作为发送器,又可以作为接收器。

3.同步时钟允许器件以不同的波特率进行通信。4.同步时钟可以作为停止或重新启动串行口发送的握手信号。5.串行的数据传输位速率在标准模式下可达 100kbit/s ,快速模

式下可达 400kbit/s ,高速模式下可达 3.4Mbit/s 。6.连接到同一总线的集成电路数只受 400pF 的最大总线电容的

限制。

Page 25: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

二. I2C 总线的基本结构

+VCC

RP RP

SCL SDA

SCL

OUT

DATA

OUT

SCLK

I N

DATA

I N

SDA

SCL

SCL SDA

SCL

OUT

DATA

OUT

SCLK

I N

DATA

I N

器件 1# 器件 2#

Page 26: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

三. I2C 总线信息传送 当 I2C总线没有进行信息传送时,数据线( SDA )和时钟线

( SCL )都为高电平时。当主控制器向某个器件传送信息时,首先应向总线送开始信号,然后才能传送信息,当信息传送结束时应送结束信号,开始信号和结束信号规定如下:开始信号: SCL 为高电平时, SDA 由高电平向低电平跳变,开始

传送数据。结束信号: SCL 为高电平时, SDA 由低电平向高电平跳变,结束

传送数据。开始信号和结束信号之间传送的是信息,信息的字节数没有限制,但每个字节必须为 8 位,高位在前,低位在后。数据线 SDA 上每一位信息状态的改变只能发生在时钟线 SCL 为低电平的期间,因为 SCL 高电平的期间 SDA状态的改变已经被用来表示开始信号和结束信号。每个字节后面必须接收一个应答信号( ACK ), ACK 是从控制器在接收到 8 位数据后向主控制器发出的特定的低电平脉冲,用以表示已收到数据。主控制器接收到应答信号( ACK )后,可根据实际情况作出是否继续传递信号的判断。若未收到 ACK ,则判断为从控制器出现故障。具体情况如图所示:

Page 27: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

SDA

SCL

开始信号

1 2 7 8 9

应答位

1 2 8 9 1

应答位

结束信号

主控制器每次传送的信息的第一个字节必须是器件地址码,第二个字节为器件单元地址,用于实现选择所操作的器件的内部单元,从第三个字节开始为传送的数据。其中器件地址码格式如下:

D7 D6 D5 D4 D3 D2 D1 D0

器件类型码 片选 R/W

Page 28: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

四. I2C 总线读、写操作1 .当前地址读该操作将从所选器件当前地址读,读的字节数不指定,格式如

下:

S 控制码( R/W=1) A 数据 1 A 数据 2 A P

2 .指定单元读该操作将从所选器件指定地址读,读的字节数不指定,格式如

下:

S控制码

( R/W=0) A器件单元地址 A S

控制码( R/W=1) A

数据1

A数据

2A P

3 .指定单元写该操作将从所选器件指定地址写,写的字节数不指定,格式如

下:

S控制码( R/W=0)

A器件单元地址 A 数据 1 A 数据 2 A P

其中: S 表示开始信号, A 表示应答信号, P 表示结束信号。

Page 29: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

9.2.2 I2C 总线 EEPROM 芯片与单片机接口

一.串行 EEPROM 电路 CAT24WCXX 系列概述

CAT24WCXX 系列是美国 CATALYST公司出品的,包含 1-256K 位,支持 I2C总线数据传送协议的串行 CMOS EEPROM 芯片,可用电擦除,可编程自定义写周期,自动擦除时间不超过 10ms ,典型时间为 5ms 。CAT24WCXX 系列包含 CAT24WC01/ 02/ 04/ 08/ 16/ 32/ 64/ 128/ 256 共 8 种芯片,容量分别为 1 、 2 、 4 、 8 、 16 、32 、 64 、 128 、 256KB 。串行 EEPROM 一般具有两种写入方式,一种是字节写入方式,还有另一种页写入方式。允许在一个写周期内同时对 1 个字节到一页的若干字节的编程写入,一页的大小取决于芯片内页寄存器的大小。其中, CAT24WC01 具有 8 字节数据的页面写能力, CAT24WC02/ 04/ 08/ 16 具有 16 字节数据的页面写能力, CAT24WC32/ 64 具有 32 字节数据的页面写能力, CAT24WC128/ 256 具有 64 字节数据的页面写能力。

Page 30: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

二. CAT24WCXX 的引脚CAT24WC01/02/04/08/16/32/64 、 CAT24WC128 、 CAT24WC256管脚排列图分别为如图( 1 )、( 2 )、( 3 )所示:

1

2

3

4

8

7

6

5 5

8 1

2

3

4 5

6

7

8 1

2

3

4 5

6

7

8 A0

A1

A2

VSS

VCC

WP

SCL

SDA

(a)

NC

NC

NC

VSS

VCC

WP

SCL

SDA

A0

A1

NC

VSS

VCC

WP

SCL

SDA

(b) (c) 其中:SCL :串行时钟线。这是一个输入管脚,用于形成器件所有数据发

送或接收的时钟。 SDA :串行数据 / 地址线。它是一个双向传输线,用于传送地址和

所有数据的发送或接收。它是一个漏极开路端,因此要求接一个上拉电阻到 Vcc 端(速率为 100KHz 时电阻为 10K , 400KHz 时为 1K )。对于一般的数据传输,仅在 SCL 为低电平期间 SDA才允许变化。 SCL 为高电平期间,留给开始信号( START )和停止信号( STOP )。

Page 31: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口A0 、 A1 、 A2 :器件地址输入端。这些输入端用于多个器件级

联时设置器件地址,当这些脚悬空时默认值为 0 ( CAT24WC01除外)。

WP :写保护。如果 WP管脚连接到 VCC ,所有的内容都被写保护(只能读)。当 WP管脚连接到 VSS 或悬空,允许对器件进行正常的读 / 写操作。

VCC :电源线。VSS :地线。

三. CAT24WCXX 的器件地址型号 控制码 片选 读写 总线访问的器件

CAT24WC01 1010 A2 A1 A0 1/0 最多 8个CAT24WC02 1010 A2 A1 A0 1/0 最多 8个CAT24WC04 1010 A2 A1 a8 1/0 最多 4个CAT24WC08 1010 A2 a9 a8 1/0 最多 2个CAT24WC16 1010 a10 a9 a8 1/0 最多 1个CAT24WC32 1010 A2 A1 A0 1/0 最多 8个CAT24WC64 1010 A2 A1 A0 1/0 最多 8个

CAT24WC128 1010 X X X 1/0 最多 1个CAT24WC256 1010 0 A1 A0 1/0 最多 4个

Page 32: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

四. CAT24WCXX 的写操作

1 .字节写

结束应答信号

数据数据器件内单元地址

应答信号应答信号读写位

器件地址

开始

SDA线信号

2 .页写

应答信号

数据 1器件内单元地址

应答信号应答信号读写位

器件地址写

开始

SDA线信号数据 n

应答信号 结束

Page 33: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

3 .应答查询 可以利用内部写周期时禁止数据输入这一特性。一旦主器件发送停止位指示主器件操作结束时, CAT24WCXX启动内部写周期,应答查询立即启动,包括发送一个起始信号和进行写操作的从器件地址。 4 .写保护 写保护操作特性可使用户避免由于不当操作而造成对存储区域内部数据的改写,当 WP管脚接高电平时,整个寄存器区全部被保护起来而变为只可读取。

五. CAT24WCXX 的读操作1 .当前地址读

SDA 线信号

开始 读写位 应答信号 无应答信号 结束

数据器件地址

Page 34: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

2 .随机地址读

读写位

器件地址读器件内单元地址

应答信号应答信号读写位

器件地址写

开始

SDA线信号

应答信号 结束

器件内单元地址

开始 应答信号

3 .顺序地址读

应答信号

数据 1

应答信号读写位

器件地址读

SDA线信号

数据 2

应答信号 结束

数据 n

无应答信号

Page 35: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

六. CAT24WCXX 与单片机的接口与编程下图是 8051 单片机与串行 EEPROM 芯片 CAT24WCXX 的接口电路。图中用的 EEPROM 芯片为 CAT24WC04 ,其它芯片与单片机的连接与它相同。 8051 的 P1.0 、 P1.1 作为 I2C总线与 CAT24WC04 的 SDA 和 SCL 相连,连接时注意 I2C总线须通过电阻接电源。 P1.3 与WP 相连。 CAT24WC04 的地址线 A2 、 A1 、 A0直接接地。则片选编码为 000 , CAT24WC04 的器件地址码的高 7 位为 1010000 。

8051

P1.0

P1.1

P1.2

VCCSDA

SCL

WP VSSA0

A1

A2

CAT24W04

VCC

20K

20K

编程 (略 )

Page 36: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

9.3 MCS-51 单片机与时钟日历芯片接口9.3.1 并行日历时钟芯片 DS12887 与单片机接口

一. DS12887 主要功能( 1 )内含一个锂电池,断电后运行十年以上不丢失数据。( 2 )计秒,分,时,天,星期,日,月,年,并有闰年补偿功

能。( 3 )二进制数码或 BCD 码表示时间,日历和定闹。( 4 ) 12 小时或 24 小时制, 12 小时时钟模式带有 PM 和 AM

指示,有夏令时功能。( 5 ) Motorola 和 Intel总线时序选择。( 6 )有 128 个字节 RAM 单元与软件接口,其中: 14 个字节

作为时钟寄存器和控制寄存器, 114 字节为通用 RAM ,所有 RAM 单元数据都具有掉电保护功能。

( 7 )可编程方波信号输出。( 8 )中断信号输出( IRQ )和总线兼容,定闹中断、周期性

中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。

Page 37: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

二. DS12887 基本原理及引脚说明 DS12887 内部由振荡电路,分频电路,周期中断 / 方波选择

电路, 14 字节时钟寄存器和控制寄存器, 114 字节用户非易失 RAM ,十进制 / 二进制累加器,总线接口电路,电源开关写保护单元和内部锂电池等部分组成。 DS12887 引脚如图所示:

1 2 3 4 5 6 7 8 9 10 11 12

MOT NC NC AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 GND

24 23 22 21 20 19 18 17 16 15 14 13

VCC SQW NC

NC NC

I RQ RESET RD NC

CS ALE WR

Page 38: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

Vcc :直流电源 +5V 电压。当 Vcc 电压在正常范围内时,数据可读写;当 Vcc 低于 4.25V ,读写被禁止,计时功能仍继续;当 Vcc下降到 3V 以下时, RAM 和计时器供电被切换到内部锂电池。

MOT (模式选择): MOT 引脚接到 Vcc 时,选择 MOTOROLA时序,当接到 GND 时,选择 Intel 时序。

SQW (方波输出信号): SQW 引脚能从实时钟内部 15级分频器的 13 个抽头中选择一个作为输出信号,其输出频率可通过对寄存器 A 编程改变。

AD0-AD7 (双向地址 / 数据复用线):总线接口,可与 Motorola微机系列和 Intel微机系列接口。

ALE (地址锁存信号):在 ALE 的下降沿把 AD0~AD7 输入的地址锁存入 DS12887 。

(数据读信号):低电平有效。 (数据写信号):低电平有效。 (片选信号):在访问 DS12887 的总线周期内,片选信号必须保持为低。

Page 39: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

(中断请求信号):低电平有效,可作微处理的中断输入。没有中断的条件满足时, 处于高阻态。线是漏极开路输入,要求外接上接电阻。 (复位信号):当该脚保持低电平时间大于 200ms ,保证 DS12887 有效复位。

三.内部寄存器 DS12887 的内部有 128 个存储单元,其中: 10 字节的存放实

时时钟时间、日历和定闹的 RAM; 4 个字节的控制和状态特殊寄存器; 114 字节的带掉电保护的用户 RAM 。几乎所有的 128 个字节都可直接读写。

1 .时间、日历和定闹单元 时间、日历和定时闹钟通过写相应的存储单元字节设置或初始化,

当前时间和日历信息通过读相应的存储单元字节来获取,其字节内容可以是二进制或 BCD 形式。时间可选择 12 小时制或 24 小时制,当选择 12 小时制时,小时字节的高位逻辑“ 1” 代表 PM ,逻辑“ 0” 代表AM 。时间、日历和定闹字节是双缓冲的,总是可访问的。每秒钟这 10 个字节走时 1秒,检查一次定时闹钟条件,如在更新时,读时间和日历可能引起错误。

Page 40: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

三个字节的定时闹钟字节有两种使用方法。第一种,当定时闹钟时间写入相应时、分、秒定闹单元后,在定时闹钟允许位置“ 1” 的条件下,定时闹钟中断每天准时起动一次。第二种,在三个定时闹钟字节中填入特殊码。特殊码是从 C0 到 FF 的任意 16 进制数。当小时闹钟字节填入特殊码时,定时闹钟为每小时中断一次;当小时和分钟闹钟字节填入特殊码时,定时闹钟为每分钟中断一次;当三个定时闹钟字节都填入特殊码时,每秒中断一次。时间、日历和定闹单元的数据格式如表 9.3 所示。

Page 41: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

地址 功能 数范围 二进制格式 BCD码格式0 秒 0~59 00~3BH 00~59H

1 秒闹钟 0~59 00~3BH 00~59H

2 分 0~59 00~3BH 00~59H

3 分闹钟 0~59 00~3BH 00~59H

4小时( 12时制) 1~12 01~0CH AM 81~8CH PM 01~0CH AM 81~8CH PM

小时( 24时制) 0~23 00~17H 00~23H

5时闹钟( 12时制) 1~12 01~0CH AM 81~8CH PM 01~0CH AM 81~8CH PM

时闹钟( 24时制) 0~23 00~17H 00~23H

6 星期(星期天 =1) 1~7 00~07H 00~07H

7 日 1~31 01~1FH 01~31H

8 月 1~12 01~0CH 01~12H

9 年 0~99 00~63H 00~99H

Page 42: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

2 .寄存器 A寄存器 0AH 的格式如

下:D7 D6 D5 D4 D3 D2 D1 D0

UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0

UIP :更新( UIP )位用来标志芯片是否即将进行更新。当 UIP 位为 1 时,更新即将开始,这时不准对时钟、日历和闹钟信息寄存器进行读 / 写操作;当它为 0 时,表示在至少 44μs 内芯片不会更新,此时,时钟、日历和闹钟信息可以通过读写相应的字节获得和设置。

UIP 位为只读位,并且不受复位信号( RESET )的影响。通过把寄存器 B中的 SET 位设置为 1 ,可以禁止更新并将 UIP 位清 0 。

DV0 , DV1 , DV2 :这 3 位是用来开关晶体振荡器和复位分频器。当[ DV0  DV1  DV2]=[ 010]时,晶体振荡器开启并且

保持时钟运行;当[ DV0  DV1  DV2]=[ 11X]时,晶体振荡器开启,但

分频器保持复位状态。 RS3 , RS2 , RS1 , RS0 :中断周期和 SQW 输出频率选择

位。 4 位编码与中断周期和 SQW 输出频率的对应关系见下表:

Page 43: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

RS3 RS2 RS1 RS0 中断周期 SQW输出频率0000 - -

0001 3.90625ms 256Hz

0010 7.8125ms 128 Hz

0011 122.070s 8192 Hz

0100 244.141s 4069 Hz

0101 488.281s 2048 Hz

0110 976.562s 1024 Hz

0111 1.953125ms 512 Hz

1000 3.90625 ms 256 Hz

1001 7.8125 ms 128 Hz

1010 15.625 ms 64 Hz

1011 31.25 ms 32 Hz

1100 62.5 ms 16 Hz

1101 125 ms 8 Hz

1110 250 ms 4 Hz

1111 500 ms 2 Hz

Page 44: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

3 .寄存器 B

寄存器 0BH 的格式如下:

D7 D6 D5 D4 D3 D2 D1 D0

SET PIE AIE UIE SQWE DM 24/12 DSE

SET :当 SET= 0 ,芯片更新正常进行;当 SET= 1 ,芯片更新被禁止。 SET 位可读写,并不会受复位信号的影响。PIE :当 PIE= 0 ,禁止周期中断输出到 IRQ;当 PIE= 1 ,允许周期中断输出到 IRQ.AIE :当 AIE= 0 ,禁止闹钟中断输出到 IRQ ;当 AIE= 1 ,允许闹钟中断输出到 IRQ.

UIE :当 UIE= 0 ,禁止更新结束中断输出到 IRQ;当 UIE= 1 ,允许更新结束中断输出到 IRQ 。此位在复位或设置 SET 为高时清 0.

SQWE :当 SQWE= 0 , SQW 脚为低;当 SQWE= 1 , SQW输出设定频率的方波。

DM : DM= 0 , BCD; DM= 1 ,二进制,此位不受复位信号影响。

24/12 :此位为 1 , 24 时制;为 0 , 12 小时制

Page 45: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

DSE :夏令时允许标志。在四月的第一个星期日的 1 59 59AM∶ ∶ ,时钟调到 3 00 00AM∶ ∶ ;在十月的最后一个星期日的 1 59 59A∶ ∶M ,时钟调到 1 00 00AM∶ ∶ 。

4 .寄存器 C寄存器 0CH 的格式如

下:D7 D6 D5 D4 D3 D2 D1 D0

IRQF PF AF UF 0 0 0 0

IRQF :当有以下情况中的一种或几种发生时,中断请求标志位( IRQF )置 1; PF= PIE= 1 或 AF= AIE= 1 或 UF= UIE= 1 ,既 IRQF= PF·PIE+AF·AIE+UF·UIE , IRQF-旦置 1 , IRQ 脚输出低电平,送出中断请求。所有标志位在读寄存器 C 或复位后清 0 。PF :周期中断标志。AF :闹钟中断标志。UF :更新中断标志。第 0 位到第 3 位无用,不能写入,只能读出,且读出的值恒为 0 。

Page 46: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

5 .寄存器 D寄存器 0DH 的格式如

下:D7 D6 D5 D4 D3 D2 D1 D0

VRT 0 0 0 0 0 0 0

VRT :当 VRT= 0 时表示内置电池能量耗尽,此时 RAM中的数据的正确性就不能保证了。

第 0 位到第 6 位无用,只能读出,且读出的值恒为 0 。6.用户 RAM在 DS12887中, 114 字节带掉电保护 RAM 不专用一任何特殊功

能,它们可被处理器程序用作非易失内存,在更新周期也可访问,它的地址范围为 0DH~7FH 。如果片选地址 CS =0F000H ,则 DS12887 内部 128 个存储单元的地址为 0F000H~0F07FH 。

Page 47: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

四. DS12887 与单片机的接口 下图是 8051 与 DS12887 的接口电路, DS12887 的片选信号接P2.7 ,则 DS12887 的片内 128 个单元的地址可为 7F00H~7F7FH 。

P0. 0

P0. 1

P0. 2

P0. 3

P0. 4

P0. 5

P0. 6

P0. 7

P2. 7

ALE

RD

WR

I NT1

RESET

8051

AD0

AD1

AD2

AD3

AD4

AD5

AD6

AD7

CS

ALE

RD

WR

I RQ

RESET

Page 48: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

DS12887 的处理过程为:1.寄存器 B 的 SET 位置 1 ,芯片停止工作。2.时间、日历和定闹单元置初值。3.读寄存器 C ,以消除已有的中断标志。4.读寄存器 D ,使片内寄存器和 RAM 数据有效。5.寄存器 B 的 SET 位清 0 ,启动 DS12887开始工

作。DS12887 的驱动程序(略)

Page 49: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

9.3.2 串行日历时钟芯片与单片机接口

一. DS1302 的主要性能指标( 1 ) DS1302 实时时钟具有能计算 2100年之前的秒、分、时、

日、日期、星期、月、年的能力,还有闰年调整的能力。( 2 )内部含有 31 个字节静态 RAM ,可提供用户访问。( 3 )采用串行数据传送方式,使得管脚数量最少,简单 3 线接

口。( 4 )工作电压范围宽: 2.0 ~ 5.5V 。( 5 )工作电流: 2.0V 时,小于 300nA 。( 6 )时钟或 RAM 数据的读 / 写有两种传送方式:单字节传送和

多字节传送方式。( 7 )采用 8 脚 DIP封装或 SOIC封装。( 8 )与 TTL兼容, Vcc=5V 。( 9 )可选工业级温度范围: -40C ~ +85C 。( 10 )具有涓流充电能力。( 11 )采用主电源和备份电源双电源 供应。( 12 )备份电源可由电 池或大容量电容实现。

Page 50: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口二.引脚功能

DS1302 的引脚如图所示

1

2

3

4 5

6

7

8 VCC2

X1

X2

GND

VCC1

SCLK

I / O

RST

其中:X1 、 X2 : 32.768KHz 晶振接入引脚。GND :地。 :复位引脚,低电平有效。I/O :数据输入 / 输出引脚,具有三态功

能。SCLK :串行时钟输入引脚。Vcc1 :工作电源引脚。Vcc2 :备用电源引脚。

Page 51: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

三. DS1302 的寄存器及片内 RAM

DS1302 有一个控制寄存器、 12 个日历、时钟寄存器和 31 个 RAM 。1 .控制寄存器 控制寄存器用于存放 DS1302 的控制命令字, DS1302 的 RST 引脚回到高电平后写入的第一个字就为控制命令。它用于对 DS1302 读写过程进行控制,它的格式如下:

D7 D6 D5 D4 D3 D2 D1 D0

1 RAM/CK A4 A3 A2 A1 A0 RD/W

其中:D7 :固定为 1D6 : RAM/CK 位,片内 RAM 或日历、时钟寄存器选择位。 D5~D1 :地址位,用于选择进行读写的日历、时钟寄存器或片

内 RAM 。对日历、时钟寄存器或片内 RAM 的选择见表。

Page 52: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

寄存器名称D7 D6 D5 D4 D3 D2 D1 D0

1 RAM/CK A4 A3 A2 A1 A0 R/W

秒寄存器 1 0 0 0 0 0 0 0或 1

分寄存器 1 0 0 0 0 0 1 0或 1

小时寄存器 1 0 0 0 0 1 0 0或 1

日寄存器 1 0 0 0 0 1 1 0或 1

月寄存器 1 0 0 0 1 0 0 0或 1

星期寄存器 1 0 0 0 1 0 1 0或 1

年寄存器 1 0 0 0 1 1 0 0或 1

写保护寄存器 1 0 0 0 1 1 1 0或 1

慢充电寄存器 1 0 0 1 0 0 0 0或 1

时钟突发模式 1 0 1 1 1 1 1 0或 1

RAM0 1 1 0 0 0 0 0 0或 1

1 1 0或 1

RAM30 1 1 1 1 1 1 0 0或 1

RAM突发模式 1 1 1 1 1 1 1 0或 1

Page 53: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

2 .日历、时钟寄存器DS1302 共有 12 个寄存器,其中有 7 个与日历、时钟相关,存放

的数据为 BCD 码形式。日历、时钟寄存器的格式如表。

寄存器名称 取值范围 D7 D6 D5 D4 D3

D2

D1

D0

秒寄存器 00~59 CH 秒的十位 秒的个位分寄存器 00~59 0 分的十位 分的个位

小时寄存器 01~12或 00~23

12/24

0 A/P HR 小时的个位

日寄存器 01~31 0 0 日的十位 日的个位

月寄存器 01~12 0 0 0 1或0

月的个位

星期寄存器 01~07 0 0 0 0 星期几年寄存器 01~99 年的十位 年的个位写保护寄存器 WP 0 0 0 0 0 0 0

慢充电寄存器 TCS TCS

TCS

TCS DS

DS

RS RS

时钟突发寄存器

Page 54: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

说明:( 1 )数据都以 BCD 码形式。( 2 )小时寄存器的 D7 位为 12 小时制 /24 小时制的选择位,当

为 1 时选 12 小时制,当为 0 时选 24 小时制。当 12 小时制时, D5位为 1 是上午, D5 位为 0 是下午, D4 为小时的十位。当 24 小时制时, D5 、 D4 位为小时的十位。

( 3 )秒寄存器中的 CH 位为时钟暂停位,当为 1 时钟暂停,为0 时钟开始启动。

( 4 )写保护寄存器中的 WP 为写保护位,当 WP=1 ,写保护,当 WP=0未写保护,当对日历、时钟寄存器或片内 RAM 进行写时WP 应清零,当对日历、时钟寄存器或片内 RAM 进行读时 WP 一般置 1 。

( 5 )慢充电寄存器的 TCS 位为控制慢充电的选择,当它为 1010才能使慢充电工作。 DS 为二极管选择位。 DS 为 01 选择一个二极管, DS 为 10 选择二个二极管, DS 为 11 或 00充电器被禁止,与 TCS无关。 RS 用于选择连接在 VCC2 与 VCC1之间的电阻,RS 为 00 ,充电器被禁止,与 TCS无关,电阻选择情况见表 .

Page 55: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

RS位 电阻器 阻值00 无 无01 R1 2K

10 R2 4K

11 R3 8K

3. 片内 RAMDS1302 片内有 31 个 RAM 单元,对片内 RAM 的操作有两种方式:单字节方式和多字节方式。当控制命令字为 C0H~FDH 时为单字节读写方式,命令字中的 D5~D1 用于选择对应的 RAM 单元,其中奇数为读操作,偶数为写操作。当控制命令字为 FEH 、 FFH 时为多字节操作(表 9.5中的 RAM突发模式),多字节操作可一次把所有的 RAM 单元内容进行读写。 FEH 为写操作, FFH 为读操作。

Page 56: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

DS1302 通过 RST 引脚驱动输入输出过程,当置 RST 高电平启动输入输出过程,在 SCLK 时钟的控制下,首先把控制命令字写入DS1302 的控制寄存器,其次根据写入的控制命令字,依次读写内部寄存器或片内 RAM 单元的数据,对于日历、时钟寄存器,根据控制命令字,一次可以读写一个日历、时钟寄存器,也可以一次读写 8 个字节,对所有的日历、时钟寄存器(表 9.5中的时钟突发模式),写的控制命令字为 0BEH ,读的控制命令字为 0BFH;对于片内 RAM 单元,根据控制命令字,一次可读写一个字节,一次也可读写 31 个字节。当数据读写完后, RST 变为低电平结束输入输出过程。无论是命令字还是数据,一个字节传送时都是低位在前,高位在后,每一位的读写发生在时钟的上升沿。

4 . DS1302 的输入输出过程

Page 57: 第九章   MCS-51 单片机的其他接口

第九章 MCS-51 单片机的其他接口

四、 DS1302 与单片机的接口

DS1302 与单片机的连接仅需要 3条线:时钟线 SCLK 、数据线 I/O 和复位线 RST 。连接图如图 9.18 。时钟线 SCLK 与 P1.0 相连,数据线 I/O 与 P1.1 相连,复位线 RST 与 P1.2 相连。

VCC2X1

X2GND

VCC1SCLKI/O

RST

+5V

8051P1.0P1.2P1.3

+5V

图中 DS1302 的驱动程序。 (略 )