1 / 54

第 9 章 MCS-51 单片机的其它接口

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

isaac-cox
Download Presentation

第 9 章 MCS-51 单片机的其它接口

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单片机的其它接口 9.1 LCD与MCS-51接口 液晶显示器简称LCD显示器。它是利用液晶经过处理后能改变光线的传输方向的特性实现显示信息。液晶显示器按其功能可分为三类:笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。前两种可显示数字、字符和符号等,而图形点阵式液晶显示器还可以显示汉字和任意图形,达到图文并茂的效果。 9.1.1 字符型点阵式LCD液晶显示器 目前市面上常用的有16字1行、16字2行、20字2行和40字2行等的字符液晶显示模块。这些LCM虽然显示字数各不相同,但是都具有相同的输入输出界面。本节将以162字符型液晶显示模块RT-1602C为例,详细介绍字符型液晶显示模块的应用。

  2. 一.字符型液晶显示模块RT-1602C的外观与引脚 RT-1602C采用标准的16脚接口,各引脚情况如下: 第1脚:VSS为电源地 第2脚:VDD为+5V电源 第3脚:VL为液晶显示偏压信号 第4脚:RS为数据/命令选择端,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:R/W为读/写选择端,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平,R/W为高电平时可以读忙信号,当RS为高电平,R/W为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7,为8位双向数据线。 第15脚:BLA,背光源正极 第16脚:BLK,背光源负极

  3. VSS VDD LCD LCD LCD VL 控制器 驱动器 显示装备 RS R/W E DB0~DB7 二.字符型液晶显示模块RT-1602C的内部结构 液晶显示模块RT-C1602C的内部结构可以分成三部分:一为LCD控制器,二为LCD驱动器,三为LCD显示装置,如图所示: 液晶显示偏压信号 数据命令选择端 HD44100 HD44780 控制器采用HD44780,驱动器采用HD44100。HD44780是集控制器,驱动器于一体,专用于字符显示控制驱动集成电路。HD44100是作扩展显示字符位的。HD44780是字符型液晶显示控制器的代表电路。

  4. HD44780集成电路的特点: 1、可选择5×7或5×10点字符。 2、HD44780不仅作为控制器而且还具有驱动40×16点阵液晶像素的能力,并且HD44780的驱动能力可通过外接驱动器扩展360列驱动。 HD44780可控制的字符高达每行80个字,也就是580=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的显示地址与实际显示位置的关系如图所示。 4、HD44780具有8位数据和4位数据传输两种方式,可与4/8位CPU相连。 5、HD44780具有简单而功能较强的指令集,可实现字符移动,闪烁等显示功能。

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

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

  7. 1.清屏命令格式: 功能:清除屏幕,将显示缓冲区DDRAM的内容全部写入空格(ASCII20H)。 光标复位,回到显示器的左上角。 地址计数器AC清零。 2.光标复位命令格式: 功能:设定当写入一个字节后,光标的移动方向以及后面的内容是否移动。 当I/D=1时,光标从左向右移动;I/D=0时,光标从右向左移动。 当S=1时,内容移动,S=0时,内容不移动。

  8. 3.输入方式设置命令格式: 功能:设定当写入一个字节后,光标的移动方向以及后面的内容是否移动。 当I/D=1时,光标从左向右移动;I/D=0时,光标从右向左移动。 当S=1时,内容移动,S=0时,内容不移动。 4.显示开关控制命令格式: 功能:控制显示的开关,当D=1时显示,D=0时不显示。 控制光标开关,当C=1时光标显示,C=0时光标不显示。 控制字符是否闪烁,当B=1时字符闪烁,B=0时字符不闪烁。

  9. 5.光标移位置命令格式: 功能:移动光标或整个显示字幕移位。 当S/C=1时整个显示字幕移位,当S/C=0时只光标移位。 当R/L=1时光标右移,R/L=0时光标左移。 6.功能设置命令格式: 功能:设置数据位数,当DL=1时数据位为8位,DL=0时数据位为4位。 设置显示行数,当N=1时双行显示,N=0时单行显示。 设置字形大小,当F=1时5×10点阵,F=0时为5×7点阵。

  10. 7.设置字库CGRAM地址命令格式: 功能:设置用户自定义CGRAM的地址,对用户自定义CGRAM访问时,要先设定CGRAM的地址,地址范畴0~63。 8.显示缓冲区DDRAM地址设置命令格式: 功能:设置当前显示缓冲区DDRAM的地址,对DDRAM访问时,要先设定DDRAM的地址,地址范畴0~127。

  11. 9.读忙标志及地址计数器AC命令格式: 功能:读忙标志及地址计数器AC, 当BF=1时则表示忙,这时不能接收命令和数据;BF=0时表示不忙。 低7位为读出的AC的地址,值为0~127。 10.写DDRAM或CGRAM命令格式: 功能:向DDRAM或CGRAM当前位置中写入数据。对DDRAM或CGRAM写入数据之前须设定DDRAM或CGRAM的地址。

  12. 11.读DDRAM或CGRAM命令格式: 功能:从DDRAM或CGRAM当前位置中读邮数据。当DDRAM或CGRAM读出数据时,先须设定DDRAM或CGRAM的地址。 四.LCD显示器的初始化 LCD使用之前须对它进行初始化,初始化可通过复位完成,也可在复位后完成,初始化过程如下: 1.清屏; 2.功能设置; 3.开/关显示设置; 4.输入方式设置。

  13. DB0 P1.0 …… …… …… DB7 P1.7 P2.7 E P2.1 R/W P2.0 RS RT-1602C VL 8051 P=10K OV BLK +5V OV BLA R=10 /2W 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”。

  14. 汇编语言程序: RS BIT P2.0 RW BIT P2.1 E BIT P2.7 ORG 00H AJMP START ORG 50H ;主程序 START:MOV SP,#50H ACALL INIT MOV A,#10000000B ;写入显示缓冲区起始地址为第1行第1列 ACALL WC51R MOV A,“G” ;第1行第1列显示字母“G” ACALL WC51DDR MOV A,“O” ;第1行第2列显示字母“O” ACALL WC51DDR MOV A,“O” ;第1行第3列显示字母“O” ACALL WC51DDR MOV A,“D” ;第1行第4列显示字母“D” ACALL WC51DDR

  15. MOV A,#11000101B ;写入显示缓冲区起始地址为第2行第6列 ACALL WC51R MOV A,“B” ;第2行第6列显示字母“B” ACALL WC51DDR MOV A,“Y” ;第2行第7列显示字母“Y” ACALL WC51DDR MOV A,“E” ;第2行第8列显示字母“E” ACALL WC51DDR LOOP:AJMP LOOP ;初始化子程序 INIT:MOV A,#00000001H ;清屏 ACALL WC51R MOV A,#00111000B ;使用8位数据,显示两行,使用5*7的字型 LCALL WC51R MOV A,#00001110B ;显示器开,光标开,字符不闪烁 LCALL WC51R MOV A,#00000110B ;字符不动,光标自动右移一格 LCALL WC51R RET

  16. ;检查忙子程序 F_BUSY:PUSH ACC ;保护现场 PUSH DPH PUSH DPL PUSH PSW WAIT:CLR RS SETB RW CLR E SETB E MOV A,P1 CLR E JB ACC.7,WAIT ;忙,等待 POP PSW ;不忙,恢复现场 POP DPL POP DPH POP ACC ACALL DELAY RET

  17. ;写入命令子程序 WC51R: ACALL F_BUSY CLR E CLR RS CLR RW SETB E MOV P1,ACC CLR E ACALL DELAY RET ;写入数据子程序 WC51DDR:ACALL F_BUSY CLR E SETB RS CLR RW SETB E MOV P1,ACC CLR E ACALL DELAY RET ;延时子程序 DELAY:MOV R6,#5 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET END

  18. C语言编程: #include <reg51.h> #define uchar unsigned char sbit 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”

  19. 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); //字符不动,光标自动右移一格 }

  20. //检查忙函数 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( ); }

  21. //写数据函数 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++){;} }

  22. 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的最大总线电容的限制。

  23. 二.I2C总线的基本结构

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

  25. SDA 应答位 应答位 2 7 8 9 1 2 8 1 9 1 SCL 结束信号 开始信号 主控制器每次传送的信息的第一个字节必须是器件地址码,第二个字节为器件单元地址,用于实现选择所操作的器件的内部单元,从第三个字节开始为传送的数据。其中器件地址码格式如下:

  26. 四.I2C总线读、写操作 1.当前地址读 该操作将从所选器件当前地址读,读的字节数不指定,格式如下: 2.指定单元读 该操作将从所选器件指定地址读,读的字节数不指定,格式如下: 3.指定单元写 该操作将从所选器件指定地址写,写的字节数不指定,格式如下: 其中:S表示开始信号,A表示应答信号,P表示结束信号。

  27. 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字节数据的页面写能力。

  28. 二.CAT24WCXX的引脚 CAT24WC01/02/04/08/16/32/64、CAT24WC128、CAT24WC256管脚排列图分别为如图(1)、(2)、(3)所示: 其中: SCL:串行时钟线。这是一个输入管脚,用于形成器件所有数据发送或接收的时钟。 SDA:串行数据/地址线。它是一个双向传输线,用于传送地址和所有数据的发送或接收。它是一个漏极开路端,因此要求接一个上拉电阻到Vcc端(速率为100KHz时电阻为10K,400KHz时为1K)。对于一般的数据传输,仅在SCL为低电平期间SDA才允许变化。SCL为高电平期间,留给开始信号(START)和停止信号(STOP)。 A0、A1、A2:器件地址输入端。这些输入端用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0(CAT24WC01除外)。 WP:写保护。如果WP管脚连接到VCC,所有的内容都被写保护(只能读)。当WP管脚连接到VSS或悬空,允许对器件进行正常的读/写操作。 VCC:电源线。 VSS:地线。

  29. 三.CAT24WCXX的器件地址

  30. 器件地址 器件内单元地址 数据 数据 SDA线信号 开始 读写位 应答信号 应答信号 应答信号 结束 器件地址写 器件内单元地址 数据1 数据n SDA线信号 开始 读写位 应答信号 应答信号 应答信号 应答信号 结束 四.CAT24WCXX的写操作 1.字节写 2.页写

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

  32. 器件地址读 数据1 数据2 数据n SDA线信号 读写位 应答信号 应答信号 应答信号 无应答信号 结束 器件地址写 器件内单元地址 器件地址读 器件内单元地址 SDA线信号 开始 读写位 应答信号 应答信号 开始 读写位 应答信号 应答信号 结束 2.随机地址读 3.顺序地址读

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

  34. 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)和总线兼容,定闹中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。

  35. 二.DS12887基本原理及引脚说明 DS12887内部由振荡电路、分频电路、周期中断/方波选择电路、14字节时钟寄存器和控制寄存器、114字节用户非易失RAM、十进制/二进制累加器、总线接口电路、电源开关写保护单元和内部锂电池等部分组成。DS12887引脚如图所示:

  36. Vcc:直流电源+5V电压。当Vcc电压在正常范围内时,数据可读写;当Vcc低于4.25V,读写被禁止,计时功能仍继续;当Vcc下降到3V以下时,RAM和计时器供电被切换到内部锂电池。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。 /RD(数据读信号):低电平有效。 /WR(数据写信号):低电平有效。 /CS(片选信号):在访问DS12887的总线周期内,片选信号必须保持为低。 /IRQ:(中断请求信号):低电平有效,可作微处理的中断输入。没有中断的条件满足时, 它处于高阻态。 /IRQ线是漏极开路输入,要求外接上拉电阻。 /RESET:(复位信号):当该脚保持低电平时间大于200ms,保证DS12887有效复位。

  37. 三.内部寄存器 DS12887的内部有128个存储单元,其中:10字节的存放实时时钟时间、日历和定闹的RAM;4个字节的控制和状态特殊寄存器;114字节的带掉电保护的用户RAM。几乎所有的128个字节都可直接读写。 1.时间、日历和定闹单元 时间、日历和定时闹钟通过写相应的存储单元字节设置或初始化,当前时间和日历信息通过读相应的存储单元字节来获取,其字节内容可以是二进制或BCD形式。时间可选择12小时制或24小时制,当选择12小时制时,小时字节的高位逻辑“1”代表PM,逻辑“0”代表AM。时间、日历和定闹字节是双缓冲的,总是可访问的。每秒钟这10个字节走时1秒,检查一次定时闹钟条件,如在更新时,读时间和日历可能引起错误。 三个字节的定时闹钟字节有两种使用方法。第一种,当定时闹钟时间写入相应时、分、秒定闹单元后,在定时闹钟允许位置“1”的条件下,定时闹钟中断每天准时起动一次。第二种,在三个定时闹钟字节中填入特殊码。特殊码是从C0到FF的任意16进制数。当小时闹钟字节填入特殊码时,定时闹钟为每小时中断一次;当小时和分钟闹钟字节填入特殊码时,定时闹钟为每分钟中断一次;当三个定时闹钟字节都填入特殊码时,每秒中断一次。

  38. 2.寄存器A 寄存器0AH的格式如下: UIP:更新(UIP)位用来标志芯片是否即将进行更新。当UIP位为1时,更新即将开始,这时不准对时钟、日历和闹钟信息寄存器进行读/写操作;当它为0时,表示在至少44µs内芯片不会更新,此时,时钟、日历和闹钟信息可以通过读写相应的字节获得和设置。 UIP位为只读位,并且不受复位信号(RESET)的影响。通过把寄存器B中的SET位设置为1,可以禁止更新并将UIP位清0。 DV0,DV1,DV2:这3位是用来开关晶体振荡器和复位分频器。 当[DV0DV1DV2]=[010]时,晶体振荡器开启并且保持时钟运行; 当[DV0DV1DV2]=[11X]时,晶体振荡器开启,但分频器保持复位状态。 RS3,RS2,RS1,RS0:中断周期和SQW输出频率选择位。4位编码与中断周期和SQW输出频率的对应关系见下表:

  39. 3.寄存器B 寄存器0BH的格式如下: 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小时制 DSE:夏令时允许标志。在四月的第一个星期日的1∶59∶59AM,时钟调到3∶00∶00AM;在十月的最后一个星期日的1∶59∶59AM,时钟调到1∶00∶00AM。

  40. 4.寄存器C 寄存器0CH的格式如下: 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。

  41. 5.寄存器D 寄存器0DH的格式如下: VRT:当VRT=0时表示内置电池能量耗尽,此时RAM中的数据的正确性就不能保证了。 第0位到第6位无用,只能读出,且读出的值恒为0。 6.用户RAM 在DS12887中,114字节带掉电保护RAM不专用一任何特殊功能,它们可被处理器程序用作非易失内存,在更新周期也可访问,它的地址范围为0DH~7FH。如果片选地址/CS=0F000H,则DS12887内部128个存储单元的地址为0F000H~0F07FH。

  42. 四.DS12887与单片机的接口 下图是8051与DS12887的接口电路,DS12887的片选信号接P2.7,则DS12887的片内128个单元的地址可为7F00H~7F7FH。 DS12887的处理过程为: 1.寄存器B的SET位置1,芯片停止工作。 2.时间、日历和定闹单元置初值。 3.读寄存器C,以消除已有的中断标志。 4.读寄存器D,使片内寄存器和RAM数据有效。 5.寄存器B的SET位清0,启动DS12887开始工作。 DS12887的驱动程序(略)

  43. 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)可选工业级温度范围:-40C~+85C。 (10)具有涓流充电能力。 (11)采用主电源和备份电源双电源供应。 (12)备份电源可由电池或大容量电容实现。

  44. 二.引脚功能 DS1302的引脚如图所示: 其中: X1、X2:32.768KHz晶振接入引脚。 GND:地。 /RST:复位引脚,低电平有效。 I/O:数据输入/输出引脚,具有三态功能。 SCLK:串行时钟输入引脚。 VCC1:工作电源引脚。 VCC2:备用电源引脚。

  45. 三.DS1302的寄存器及片内RAM DS1302有一个控制寄存器、12个日历、时钟寄存器和31个RAM。 1.控制寄存器 控制寄存器用于存放DS1302的控制命令字,DS1302的RST引脚回到高电平后写入的第一个字就为控制命令。它用于对DS1302读写过程进行控制,它的格式如下: 其中: D7:固定为1 D6:RAM/CK位,片内RAM或日历、时钟寄存器选择位。 D5~D1:地址位,用于选择进行读写的日历、时钟寄存器或片内RAM。对日历、时钟寄存器或片内RAM的选择见表。

  46. 2.日历、时钟寄存器 DS1302共有12个寄存器,其中有7个与日历、时钟相关,存放的数据为BCD码形式。日历、时钟寄存器的格式如表。

More Related