第9章MCS-51单片机的其他接口.ppt

上传人:本田雅阁 文档编号:3135364 上传时间:2019-07-15 格式:PPT 页数:86 大小:942.53KB
返回 下载 相关 举报
第9章MCS-51单片机的其他接口.ppt_第1页
第1页 / 共86页
第9章MCS-51单片机的其他接口.ppt_第2页
第2页 / 共86页
第9章MCS-51单片机的其他接口.ppt_第3页
第3页 / 共86页
第9章MCS-51单片机的其他接口.ppt_第4页
第4页 / 共86页
第9章MCS-51单片机的其他接口.ppt_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《第9章MCS-51单片机的其他接口.ppt》由会员分享,可在线阅读,更多相关《第9章MCS-51单片机的其他接口.ppt(86页珍藏版)》请在三一文库上搜索。

1、第9章 MCS-51单片机的其他接口,9.1 LCD与MCS-51接口,液晶显示器按其功能可分为三类:笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。,9.1.1 字符型点阵式LCD液晶显示器,有16字1行、16字2行、20字2行和40字2行等的字符液晶显示模块。这些LCM虽然显示字数各不相同,但是都具有相同的输入输出界面。本节将以162字符型液晶显示模块RT-1602C为例,详细介绍字符型液晶显示模块的应用。,一字符型液晶显示模块RT-1602C的外观与引脚,RT-1602C采用标准的16脚接口,各引脚情况如下:,第1脚:VSS,电源地 第2脚:VDD,+5V电源 第3脚:VL

2、,液晶显示偏压信号 第4脚:RS,数据/命令选择端,高电平时选择数据寄存器、低电平时选择指令寄存器。,第5脚:R/W,读/写选择端,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。,第6脚:E,端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第714脚:D0D7,为8位双向数据线。 第15脚:BLA,背光源正极 第16脚:BLK,背光源负极,二字符型液晶显示模块RT-1602C的内部结构,液晶显示模块RT-C1602C的内部结构可以分成三部份:一为

3、LCD控制器,二为LCD驱动器,三为LCD显示装置,如图所示:,控制器采用HD44780,驱动器采用HD44100。 HD44780集成电路的特点: 1、可选择57或510点字符。 2、HD44780不仅作为控制器而且还具有驱动4016点阵液晶像素的能力,在外部加一HD44100外扩展多40路/列驱动,则可驱动162LCD。 3、HD44780内藏显示缓冲区DDRAM、字符发生存储器(ROM)及用户自定义的字符发生器CGRAM。 HD44780有80个字节的显示缓冲区,分两行,地址分别为00H27H,40H67H,它下实际显示位置的排列顺序跟LCD的型号有关,液晶显示模块RT-1602C的显示

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

5、/8位CPU相连。 5、HD44780具有简单而功能较强的指令集,可实现字符移动,闪烁等显示功能。,三指令格式与指令功能,LCD控制器HD44780内有多个寄存器,通过RS和R/W引脚共同决定选择哪一个寄存器,选择情况如表,总共有11条指令,它们的格式和功能如下:,1清屏命令 格式:,功能:清除屏幕,将显示缓冲区DDRAM的内容全部写入空格(ASCII20H)。 光标复位,回到显示器的左上角。 地址计数器AC清零。,2光标复位命令 格式:,功能:光标复位,回到显示器的左上角。 地址计数器AC清零。 显示缓冲区DDRAM的内容不变。,3输入方式设置命令 格式:,功能:设定当写入一个字节后,光标的

6、移动方向以及后面的内容是否移动。 当I/D=1时,光标从左向右移动;I/D=0时,光标从右向左移动。 当S=1时,内容移动,S=0时,内容不移动。,4显示开关控制命令 格式:,功能:控制显示的开关,当D=1时显示,D=0时不显示。 控制光标开关,当C=1时光标显示,C=0时光标不显示。 控制字符是否闪烁,当B=1时字符闪烁,B=0时字符不闪烁。,5光标移位置命令 格式:,功能:移动光标或整个显示字幕移位。 当S/C=1时整个显示字幕移位,当S/C=0时只光标移位。 当R/L=1时光标右移,R/L=0时光标左移。,6功能设置命令 格式:,功能:设置数据位数,当DL=1时数据位为8位,DL=0时数

7、据位为4位。 设置显示行数,当N=1时双行显示,N=0时单行显示。 设置字形大小,当F=1时510点阵,F=0时为57点阵。,7设置字库CGRAM地址命令,格式:,功能:设置用户自定义CGRAM的地址,对用户自定义CGRAM访问时,要先设定CGRAM的地址,地址范畴063。,8显示缓冲区DDRAM地址设置命令,格式:,功能:设置当前显示缓冲区DDRAM的地址,对DDRAM访问时,要先设定DDRAM的地址,地址范畴0127。,9读忙标志及地址计数器AC命令,格式:,功能:读忙标志及地址计数器AC, 当BF=1时则表示忙,这时不能接收命令和数据;BF=0时表示不忙。 低7位为读出的AC的地址,值为

8、0127。,10写DDRAM或CGRAM命令 格式:,功能:向DDRAM或CGRAM当前位置中写入数据。对DDRAM或CGRAM写入数据之前须设定DDRAM或CGRAM的地址。,11读DDRAM或CGRAM命令 格式:,功能:从DDRAM或CGRAM当前位置中读邮数据。当DDRAM或CGRAM读出数据时,先须设定DDRAM或CGRAM的地址。,四LCD显示器的初始化 LCD使用之前须对它进行初始化,初始化可通过复位完成,也可在复位后完成,初始化过程如下: 1清屏。 2功能设置。 3开/关显示设置。 4输入方式设置。,9、12 LCD显示器与单片机的接口与应用,下图是LCD显示器与8051单片机

9、的接口图,图中RT-1602C的数据线与8051的P1口相连,RS与8051的P2.0相连,R/ W与8051的P2.1相连,E端与8051的P2.7相连。编程在LCD显示器的第一行、第一列开始显示“GOOD”,第二行、第6列开始显示“BYE”。,汇编语言程序: 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列显示字母“

10、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,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

11、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,;检查忙子程序 F_BUSY:PUSH ACC ;保护现场 PUSH DPH PUSH DPL PUSH PSW WAIT:CLR RS SETB RW CLR E S

12、ETB E MOV A,P1 CLR E JB ACC.7,WAIT ;忙,等待 POP PSW ;不忙,恢复现场 POP DPL POP DPH POP ACC ACALL DELAY RET,;写入命令子程序。 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,

13、#5 D1:MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET END,C语言编程: #include #define uchar unsigned char sbit RS=P20; sbit RW=P21; sbit E=P27; 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(

14、0x44); /第1行第1列显示字母“G” wc51ddr(0x4f); /第1行第2列显示字母“O” wc51ddr(0x4f); /第1行第3列显示字母“O” wc51ddr(0x47); /第1行第4列显示字母“D”,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位数

15、据,显示两行,使用5*7的字型 wc51r(0x0e); /显示器开,光标开,字符不闪烁 wc51r(0x06); /字符不动,光标自动右移一格 ,/检查忙函数 void fbusy() RS=0;RW=1; E=1;E=0; while (P1&0x80) E=0; E=1; /忙,等待 delay(); /写命令函数 void wc51r(uchar j) fbusy(); E=0;RS=0;RW=0; E=1; P1=j; E=0; delay(); ,/写数据函数 void wc51ddr(uchar j) fbusy(); E=0;RS=1;RW=0; E=1; P1=j; E=0;

16、 delay(); /延时函数 void delay() uchar y; for (y=0;y0xff;y+); ,9.2 MCS-51单片机与I2C总线芯片接口,9.2.1 I2C总线简介,一I2C总线的主要特点,I2C总线是由PHILIPS公司开发一种简单、双向二线制同步串行总线。它只需要两根线即在连接于总线上的器件之间传送信息。这种总线的主要特点有: 1总线只有两根线,即串行时钟线(SCL)和串行数据线(SDA),这在设计中大大减少了硬件接口。 2每个连接到总线上的都有一个用于识别的器件地址,器件地址由芯片内部硬件电路和外部地址引脚同时决定,避免了片选线的连接方法,并建立简单的主从关系

17、,每个器件既可以作为发送器,又可以作为接收器。 3同步时钟允许器件以不同的波特率进行通信。 4同步时钟可以作为停止或重新启动串行口发送的握手信号。 5串行的数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。 6连接到同一总线的集成电路数只受400pF的最大总线电容的限制。,二I2C总线的基本结构,三I2C总线信息传送,当I2C总线没有进行信息传送时,数据线(SDA)和时钟线(SCL)都为高电平时。当主控制器向某个器件传送信息时,首先应向总线送开始信号,然后才能传送信息,当信息传送结束时应送结束信号,开始信号和结束信号规定如下:

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

19、若未收到ACK,则判断为从控制器出现故障。具体情况如图所示:,主控制器每次传送的信息的第一个字节必须是器件地址码,第二个字节为器件单元地址,用于实现选择所操作的器件的内部单元,从第三个字节开始为传送的数据。其中器件地址码格式如下:,四I2C总线读、写操作 1当前地址读 该操作将从所选器件当前地址读,读的字节数不指定,格式如下:,2指定单元读 该操作将从所选器件指定地址读,读的字节数不指定,格式如下:,3指定单元写 该操作将从所选器件指定地址写,写的字节数不指定,格式如下:,其中:S表示开始信号,A表示应答信号,P表示结束信号。,9.2.2 I2C总线EEPROM芯片与单片机接口,一串行EEPR

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

21、4WC01具有8字节数据的页面写能力,CAT24WC02040816具有16字节数据的页面写能力,CAT24WC3264具有32字节数据的页面写能力,CAT24WC128256具有64字节数据的页面写能力。,二CAT24WCXX的引脚,CAT24WC01/02/04/08/16/32/64、CAT24WC128、CAT24WC256管脚排列图分别为如图(1)、(2)、(3)所示:,其中: SCL:串行时钟线。这是一个输入管脚,用于形成器件所有数据发送或接收的时钟。 SDA:串行数据/地址线。它是一个双向传输线,用于传送地址和所有数据的发送或接收。它是一个漏极开路端,因此要求接一个上拉电阻到Vc

22、c端(速率为100KHz时电阻为10K,400KHz时为1K)。对于一般的数据传输,仅在SCL为低电平期间SDA才允许变化。SCL为高电平期间,留给开始信号(START)和停止信号(STOP)。,A0、A1、A2:器件地址输入端。这些输入端用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0(CAT24WC01除外)。 WP:写保护。如果WP管脚连接到VCC,所有的内容都被写保护(只能读)。当WP管脚连接到VSS或悬空,允许对器件进行正常的读/写操作。 VCC:电源线。 VSS:地线。,三CAT24WCXX的器件地址,四CAT24WCXX的写操作,1字节写,2页写,3应答查询,可以利用内部

23、写周期时禁止数据输入这一特性。一旦主器件发送停止位指示主器件操作结束时,CAT24WCXX启动内部写周期,应答查询立即启动,包括发送一个起始信号和进行写操作的从器件地址。,4写保护,写保护操作特性可使用户避免由于不当操作而造成对存储区域内部数据的改写,当WP管脚接高电平时,整个寄存器区全部被保护起来而变为只可读取。,五CAT24WCXX的读操作,1当前地址读,2随机地址读,3顺序地址读,六CAT24WCXX与单片机的接口与编程,下图是8051单片机与串行EEPROM芯片CAT24WCXX的接口电路。图中用的EEPROM芯片为CAT24WC04,其它芯片与单片机的连接与它相同。8051的P1.0

24、、P1.1作为I2C总线与CAT24WC04的SDA和SCL相连,连接时注意I2C总线须通过电阻接电源。P1.3与WP相连。CAT24WC04的地址线A2、A1、A0直接接地。则片选编码为000,CAT24WC04的器件地址码的高7位为1010000。,编程(略),9.3 MCS-51单片机与时钟日历芯片接口,9.3.1 并行日历时钟芯片DS12887与单片机接口,一DS12887主要功能 (1)内含一个锂电池,断电后运行十年以上不丢失数据。 (2)计秒,分,时,天,星期,日,月,年,并有闰年补偿功能。 (3)二进制数码或BCD码表示时间,日历和定闹。 (4)12小时或24小时制,12小时时钟

25、模式带有PM和AM指示,有夏令时功能。 (5)Motorola和Intel总线时序选择。 (6)有128个字节RAM单元与软件接口,其中:14个字节作为时钟寄存器和控制寄存器,114字节为通用RAM,所有RAM单元数据都具有掉电保护功能。 (7)可编程方波信号输出。 (8)中断信号输出(IRQ)和总线兼容,定闹中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。,二DS12887基本原理及引脚说明 DS12887内部由振荡电路,分频电路,周期中断/方波选择电路,14字节时钟寄存器和控制寄存器,114字节用户非易失RAM,十进制/二进制累加器,总线接口电路,电源开关写保护单

26、元和内部锂电池等部分组成。DS12887引脚如图所示:,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(地

27、址锁存信号):在ALE的下降沿把AD0AD7输入的地址锁存入DS12887。,(数据读信号):低电平有效。,(数据写信号):低电平有效。,(片选信号):在访问DS12887的总线周期内,片选信号必须保持为低。,(中断请求信号):低电平有效,可作微处理的中断输入。没有中断的条件满足时, 处于高阻态。线是漏极开路输入,要求外接上接电阻。,(复位信号):当该脚保持低电平时间大于200ms,保证DS12887有效复位。,三内部寄存器 DS12887的内部有128个存储单元,其中:10字节的存放实时时钟时间、日历和定闹的RAM;4个字节的控制和状态特殊寄存器;114字节的带掉电保护的用户RAM。几乎所有

28、的128个字节都可直接读写。 1时间、日历和定闹单元,时间、日历和定时闹钟通过写相应的存储单元字节设置或初始化,当前时间和日历信息通过读相应的存储单元字节来获取,其字节内容可以是二进制或BCD形式。时间可选择12小时制或24小时制,当选择12小时制时,小时字节的高位逻辑“1”代表PM,逻辑“0”代表AM。时间、日历和定闹字节是双缓冲的,总是可访问的。每秒钟这10个字节走时1秒,检查一次定时闹钟条件,如在更新时,读时间和日历可能引起错误。,2寄存器A 寄存器0AH的格式如下:,UIP:更新(UIP)位用来标志芯片是否即将进行更新。当UIP位为1时,更新即将开始,这时不准对时钟、日历和闹钟信息寄存

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

30、格式如下:,SET:当SET0,芯片更新正常进行;当SET1,芯片更新被禁止。SET位可读写,并不会受复位信号的影响。 PIE:当PIE0,禁止周期中断输出到 IRQ;当PIE1,允许周期中断输出到 IRQ.,AIE:当AIE0,禁止闹钟中断输出到IRQ ;当AIE1,允许闹钟中断输出到 IRQ.,UIE:当UIE0,禁止更新结束中断输出到 IRQ;当UIE1,允许更新结束中断输出到IRQ 。此位在复位或设置SET为高时清0.,SQWE:当SQWE0,SQW脚为低;当SQWE1,SQW输出设定频率的方波。 DM:DM0,BCD;DM1,二进制,此位不受复位信号影响。 24/12:此位为1,24

31、时制;为0,12小时制,DSE:夏令时允许标志。在四月的第一个星期日的15959AM,时钟调到30000AM;在十月的最后一个星期日的15959AM,时钟调到10000AM。,4寄存器C 寄存器0CH的格式如下:,IRQF:当有以下情况中的一种或几种发生时,中断请求标志位(IRQF)置1;PFPIE1或AFAIE1或UFUIE1,既IRQFPFPIE+AFAIE+UFUIE,IRQF旦置1,IRQ脚输出低电平,送出中断请求。所有标志位在读寄存器C或复位后清0。 PF:周期中断标志。 AF:闹钟中断标志。 UF:更新中断标志。 第0位到第3位无用,不能写入,只能读出,且读出的值恒为0。,5寄存器

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

33、F7FH。,DS12887的处理过程为: 1寄存器B的SET位置1,芯片停止工作。 2时间、日历和定闹单元置初值。 3读寄存器C,以消除已有的中断标志。 4读寄存器D,使片内寄存器和RAM数据有效。 5寄存器B的SET位清0,启动DS12887开始工作。 DS12887的驱动程序(略),9.3.2 串行日历时钟芯片与单片机接口,一DS1302的主要性能指标,(1)DS1302实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力。 (2)内部含有31个字节静态RAM,可提供用户访问。 (3)采用串行数据传送方式,使得管脚数量最少,简单3 线接口。 (4)

34、工作电压范围宽:2.05.5V。 (5)工作电流:2.0V时,小于300nA。 (6)时钟或RAM数据的读/写有两种传送方式:单字节传送和多字节传送方式。 (7)采用8脚DIP封装或SOIC封装。 (8)与TTL兼容,Vcc=5V。 (9)可选工业级温度范围:-40C+85C。 (10)具有涓流充电能力。 (11)采用主电源和备份电源双电源供应。 (12)备份电源可由电池或大容量电容实现。,二引脚功能 DS1302的引脚如图所示,其中: X1、X2:32.768KHz晶振接入引脚。 GND:地。 :复位引脚,低电平有效。 I/O:数据输入/输出引脚,具有三态功能。 SCLK:串行时钟输入引脚。

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

36、钟相关,存放的数据为BCD码形式。日历、时钟寄存器的格式如表。,说明: (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)慢充电寄存器的T

37、CS位为控制慢充电的选择,当它为1010才能使慢充电工作。DS为二极管选择位。DS为01选择一个二极管,DS为10选择二个二极管,DS为11或00充电器被禁止,与TCS无关。RS用于选择连接在VCC2与VCC1之间的电阻,RS为00,充电器被禁止,与TCS无关,电阻选择情况见表.,3.片内RAM DS1302片内有31个RAM单元,对片内RAM的操作有两种方式:单字节方式和多字节方式。当控制命令字为C0HFDH时为单字节读写方式,命令字中的D5D1用于选择对应的RAM单元,其中奇数为读操作,偶数为写操作。当控制命令字为FEH、FFH时为多字节操作(表9.5中的RAM突发模式),多字节操作可一次

38、把所有的RAM单元内容进行读写。FEH为写操作,FFH为读操作。,DS1302通过RST引脚驱动输入输出过程,当置RST高电平启动输入输出过程,在SCLK时钟的控制下,首先把控制命令字写入DS1302的控制寄存器,其次根据写入的控制命令字,依次读写内部寄存器或片内RAM单元的数据,对于日历、时钟寄存器,根据控制命令字,一次可以读写一个日历、时钟寄存器,也可以一次读写8个字节,对所有的日历、时钟寄存器(表9.5中的时钟突发模式),写的控制命令字为0BEH,读的控制命令字为0BFH;对于片内RAM单元,根据控制命令字,一次可读写一个字节,一次也可读写31个字节。当数据读写完后,RST变为低电平结束

39、输入输出过程。无论是命令字还是数据,一个字节传送时都是低位在前,高位在后,每一位的读写发生在时钟的上升沿。,4DS1302的输入输出过程,四、DS1302与单片机的接口,DS1302与单片机的连接仅需要3条线:时钟线SCLK、数据线I/O和复位线 RST。连接图如图。时钟线SCLK与P1.0相连,数据线I/O与P1.1相连,复位线 RST与P1.2相连。,图中DS1302的驱动程序。(略),9.4 MCS-51单片机与数字温度传感器的接口,9.4.1 DS18B20简介,9.4.2 DS18B20的主要特性,(1)适应电压范围宽:3.05.5V,在寄生电源方式下可由数据线供电。 (2)在使用中

40、不需要任何外围元件。 (3)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条信号线即可实现微处理器与DS18B20的双向通信。 (4)测温范围:-55+125,在-10+85时精度为0.5。 (5)编程可实现分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温。 (6)在9位分辨率时最多在93.75ms内把温度值转换为数字,12位分辨率时最多在750ms内把温度值转换为数字。 (7)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温; (8)用户可自设定非易失性的报警上下限值。 (9)负压特性:电源极性接反时

41、,温度计不会因发热而烧毁,但不能正常工作。,9.4.3 DS18B20的外部结构,(1) DQ:数字信号输入/输出端。 (2) GND:电源地。 (3) VDD:外接供电电源输入端(在寄生电源接线方式时接地)。,9.4.4 DS18B20的内部结构,DS18B20内部主要由4部分组成:64位光刻ROM、温度传感器、非易失性温度报警触发器TH和TL、配置寄存器等。其内部结构图如图所示。,1光刻ROM存储器,64位序列号的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码。,2高速暂存存储器,用符号扩展的二进制补码数表示,S为

42、符号位。上表是12位转化后得到的12位数据,高字节的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘以0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘以0.0625即可得到实际温度。,DS18B20部分温度数据表,配置寄存器用于确定温度值的数字转换分辨率,该字节各位的意义如下:,温度值分辨率设置表与转换时间,9.4.5 DS18B20的温度转换过程,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。,R

43、OM指令表,RAM指令表,9.4.6 DS18B20与单片机的接口,进行远距离测温时,无需本地电源;可以在没有常规电源的条件下读取ROM;电路更加简洁,仅用一根I/O口来实现测温。,单片寄生电源供电方式连接,改进的单片寄生电源供电图,解决电流供应不足的问题,适合于多点测温应用,缺点就是要多占用一根I/O口线进行强上拉切换。,单片外部电源供电方式,外部供电方式的多点测温电路图,9.4.7 DS18B20使用中的注意事项,(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格地保证读写时序,否则将无法读取测温

44、结果。对DS18B20操作最好采用汇编语言实现。,(2) 在DS1820的有关资料中均未提及单总线上所挂DS18B20数量的问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中却并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。,(3)连接DS18B20的总线电缆是有长度限制的。普通信号电缆50m,双绞线带屏蔽电缆可达150m.,(4) 在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将

45、没有返回信号,程序进入死循环。,9.5 MCS-51单片机与串行A/D、D/A的接口,9.5.1 MCS-51单片机与串行A/D芯片MAX1241的接口,1MAX1241的功能特点 (1) +2.7+5.25 V单电源供电。 (2) 12位分辨率。 (3) 8脚DIP/SO封装。 (4) 低功耗:Pmax=3mW(73 KSPS),Pmin=5W(待机工作方式)。 (5) 内部提供采样/保持电路。 (6) 兼容于SPI/QSPI/MICROWIRE 串行三线外设接口。 (7) 内部提供转换时钟。,MAX1241是MAXIM公司推出的一种单通道12位逐次逼近型串行A/D转换器,具有低功耗、高精度

46、、转换速度快、体积小、接口简单等优点。,2MAX1241的外部特性,:关断控制输入端,可实现MAX1241两种工作模式的切换,,接低电平,MAX1241工作于待机工作模式,输入电流可减小至10A以下,处于节能模式;,接高电平,MAX1241工作于正常工作模式,可实现D/A转换。,REF:基准电压输入端,范围为0VDD。,GND:接地端。 DOUT:数据输出端。,片选端,低电平有效。,SCLK:外部时钟脉冲输入端。,3MAX1241的工作过程,(1)在 为高电平的条件下,每次使片选信号 由高电平变为低电平则启动转换,此时时钟脉冲 SCLK必须为低电平。,(2)A/D转换启动后,内部控制逻辑切换采

47、样/保持电路为保持状态,并使输出数据线DOUT变低,转换结束时DOUT由低变高。在整个转换期内,SCLK应保持低电平。,(3)一次转换结束后,内部控制逻辑将自动把采样/保持电路切换为捕捉状态。在外部时钟脉冲SCLK作用下读出数据,从时序图可以看出每一位数据是在时钟脉冲由高电平变低电平时送到数据输出端DOUT上,并一直保持到时钟脉冲下一次下降沿,因而每一位数据可以在时钟脉冲上升沿读出。在13个时钟脉冲后,数据读取结束,可将片选信号 置为高电平,DOUT端输出高电平。只要使片选信号再次有效,就可以重新开始一轮新的A/D转换和读取过程。,(4)数据读取完成后,如果仍然保持片选信号有效,则DOUT端始

48、终输出低电平。,4MAX1241与单片机的接口,MAX1241与8051单片机常见的接口电路如图,汇编语言程序: ;功能:本程序主要是读出MAX1241芯片的A/D转换值。A/D转换值放在地址20H和21H两单元中,高位在21H中,低位在20H中。MAX1241的DOUT数据输出端、 CS片选控制端和SCLK时钟输入端分别由8051的P1.1、P1.2和P1.3控制,而MAX1241的SHDN由P1.0控制 SHDN EQU P1.0 DOUT EQU P1.1 CS EQU P1.2 SCLK EQU P1.3 ORG 0000H MOV SP,#60H CLR EA MOV 20H,#0 MOV 21H,#0 LCALL DC ;调A/D转换子程序 SJMP $ DC: CLR SCLK ;A/D转换子程序 CLR CS SETB SHDN ;使SHDN脚为高电平,MAX1241处于工作模式,HERE: JNB DOUT,HERE SETB SCLK ACALL QUS MOV 0BH,C ACALL QUS MOV 0AH,C ACALL QUS MOV 09H,C ACALL

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1