




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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的内部结构可以分成三部份:一为LCD控制器,二为LCD驱动器,
3、三为LCD显示装置,如图所示:LCD控制器LCD驱动器LCD显示装备VSSVDDVOVSV/WEDB0DB7控制器采用HD44780,驱动器采用HD44100。HD44780集成电路的特点:1、可选择57或510点字符。2、HD44780不仅作为控制器而且还具有驱动4016点阵液晶像素的能力,在外部加一HD44100外扩展多40路/列驱动,则可驱动162LCD。3、HD44780内藏显示缓冲区DDRAM、字符发生存储器(ROM)及用户自定义的字符发生器CGRAM。HD44780有80个字节的显示缓冲区,分两行,地址分别为00H27H,40H67H,它下实际显示位置的排列顺序跟LCD的型号有关,
4、液晶显示模块RT-1602C的显示地址与实际显示位置的关系如图所示。HD44780内藏的字符发生存储器(ROM)已经存储了160个不同的点阵字符图形,如图所示: 这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。比如数字“1”的代码是00110001B(31H),又如大写的英文字母“A”的代码是01000001B(41H),可以看出英文字母的代码与ASCII编码相同。要显示“1”时,我们只需将ASCII码31H存入DDRAM指定位置,显示模块将在相应的位置把数字“1”的点阵字符图形显示出来,我们就能看到数字“1”了。 00 01 02 03 04
5、 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行 4、HD44780具有8位数据和4位数据传输两种方式,可与4/8位CPU相连。5、HD44780具有简单而功能较强的指令集,可实现字符移动,闪烁等显示功能。三指令格式与指令功能 LCD控制器HD44780内有多个寄存器,通过RS和R/W引脚共同决定选择哪一个寄存器,选择情况如表 RSR/W寄存器及操作00指令寄存器写入01忙标志和地址计数器读出10数据寄存器写入11数据寄存器读出总共有11
6、条指令,它们的格式和功能如下:1清屏命令格式:RSR/WD7D6D5D4D3D2D1D00000000001功能:清除屏幕,将显示缓冲区DDRAM的内容全部写入空格(ASCII20H)。光标复位,回到显示器的左上角。地址计数器AC清零。2光标复位命令格式: RSR/WD7D6D5D4D3D2D1D00000000010功能:光标复位,回到显示器的左上角。 地址计数器AC清零。 显示缓冲区DDRAM的内容不变。 3输入方式设置命令格式: RSR/WD7D6D5D4D3D2D1D000000001I/DS功能:设定当写入一个字节后,光标的移动方向以及后面的内容是否移动。当I/D=1时,光标从左向右
7、移动;I/D=0时,光标从右向左移动。当S=1时,内容移动,S=0时,内容不移动。4显示开关控制命令格式:RSR/WD7D6D5D4D3D2D1D00000001DCB功能:控制显示的开关,当D=1时显示,D=0时不显示。 控制光标开关,当C=1时光标显示,C=0时光标不显示。 控制字符是否闪烁,当B=1时字符闪烁,B=0时字符不闪烁。5光标移位置命令格式:RSR/WD7D6D5D4D3D2D1D0000001S/CR/L*功能:移动光标或整个显示字幕移位。当S/C=1时整个显示字幕移位,当S/C=0时只光标移位。当R/L=1时光标右移,R/L=0时光标左移。6功能设置命令格式:RSR/WD7
8、D6D5D4D3D2D1D000001DLNF*功能:设置数据位数,当DL=1时数据位为8位,DL=0时数据位为4位。设置显示行数,当N=1时双行显示,N=0时单行显示。设置字形大小,当F=1时510点阵,F=0时为57点阵。7设置字库CGRAM地址命令格式:RSR/WD7D6D5D4D3D2D1D00001CGRAM的地址功能:设置用户自定义CGRAM的地址,对用户自定义CGRAM访问时,要先设定CGRAM的地址,地址范畴063。8显示缓冲区DDRAM地址设置命令格式:RSR/WD7D6D5D4D3D2D1D0001DDRAM的地址功能:设置当前显示缓冲区DDRAM的地址,对DDRAM访问时
9、,要先设定DDRAM的地址,地址范畴0127。9读忙标志及地址计数器AC命令格式:RSR/WD7D6D5D4D3D2D1D001BFAC的值功能:读忙标志及地址计数器AC,当BF=1时则表示忙,这时不能接收命令和数据;BF=0时表示不忙。低7位为读出的AC的地址,值为0127。10写DDRAM或CGRAM命令格式:RSR/WD7D6D5D4D3D2D1D010写入的数据功能:向DDRAM或CGRAM当前位置中写入数据。对DDRAM或CGRAM写入数据之前须设定DDRAM或CGRAM的地址。11读DDRAM或CGRAM命令格式:RSR/WD7D6D5D4D3D2D1D011读出的数据功能:从DD
10、RAM或CGRAM当前位置中读邮数据。当DDRAM或CGRAM读出数据时,先须设定DDRAM或CGRAM的地址。四LCD显示器的初始化LCD使用之前须对它进行初始化,初始化可通过复位完成,也可在复位后完成,初始化过程如下:1清屏。2功能设置。3开/关显示设置。4输入方式设置。9、12 LCD显示器与单片机的接口与应用 下图是LCD显示器与8051单片机的接口图,图中RT-1602C的数据线与8051的P1口相连,RS与8051的P2.0相连,R/ W与8051的P2.1相连,E端与8051的P2.7相连。编程在LCD显示器的第一行、第一列开始显示“GOOD”,第二行、第6列开始显示“BYE”。
11、汇编语言程序: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 WC51DDRMOV A,
12、#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 ;显示器开,光标开,字符不闪烁。LCAL
13、L WC51RMOV A,#00000110B ;字符不动,光标自动右移一格。LCALL WC51RRET;检查忙子程序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;写入命令子程序。WC51R:ACALL F_BUSYCLR ECLR RSCLR RWSETB EMOV P1,ACCCLR EACALL DELAYRET;写入数
14、据子程序。WC51DDR:ACALL F_BUSYCLR ESETB RSCLR RWSETB EMOV P1,ACCCLR EACALL DELAYRET;延时子程序。DELAY:MOV R6,#5D1:MOV R7,#248DJNZ R7,$DJNZ R6,D1RETENDC语言编程:#include #define uchar unsigned charsbit RS=P20;sbit RW=P21;sbit E=P27;void delay(void);void init(void);void wc5r(uchar i);void wc51ddr(uchar i);void fbusy
15、(void);/主函数void main()SP=0 x50;init();wc51r(0 x80); /写入显示缓冲区起始地址为第1行第1列wc51ddr(0 x44); /第1行第1列显示字母“G”wc51ddr(0 x4f); /第1行第2列显示字母“O”wc51ddr(0 x4f); /第1行第3列显示字母“O”wc51ddr(0 x47); /第1行第4列显示字母“D”wc51r(0 xc5); /写入显示缓冲区起始地址为第2行第6列wc51ddr(0 x42); /第2行第6列显示字母“B”wc51ddr(0 x59); /第2行第7列显示字母“Y”wc51ddr(0 x45);
16、/第2行第8列显示字母“E”while(1);/初始化函数void init()wc51r(0 x01); /清屏wc51r(0 x38); /使用8位数据,显示两行,使用5*7的字型wc51r(0 x0e); /显示器开,光标开,字符不闪烁wc51r(0 x06); /字符不动,光标自动右移一格/检查忙函数void fbusy()RS=0;RW=1;E=1;E=0;while (P1&0 x80) E=0; E=1; /忙,等待delay();/写命令函数void wc51r(uchar j)fbusy();E=0;RS=0;RW=0;E=1;P1=j;E=0;delay();/写数据函数v
17、oid wc51ddr(uchar j)fbusy();E=0;RS=1;RW=0;E=1;P1=j;E=0;delay();/延时函数void delay()uchar y;for (y=0;y0 xff;y+);9.2 MCS-51单片机与I2C总线芯片接口9.2.1 I2C总线简介一I2C总线的主要特点I2C总线是由PHILIPS公司开发一种简单、双向二线制同步串行总线。它只需要两根线即在连接于总线上的器件之间传送信息。这种总线的主要特点有:1总线只有两根线,即串行时钟线(SCL)和串行数据线(SDA),这在设计中大大减少了硬件接口。2每个连接到总线上的都有一个用于识别的器件地址,器件地
18、址由芯片内部硬件电路和外部地址引脚同时决定,避免了片选线的连接方法,并建立简单的主从关系,每个器件既可以作为发送器,又可以作为接收器。3同步时钟允许器件以不同的波特率进行通信。4同步时钟可以作为停止或重新启动串行口发送的握手信号。5串行的数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。6连接到同一总线的集成电路数只受400pF的最大总线电容的限制。二I2C总线的基本结构三I2C总线信息传送当I2C总线没有进行信息传送时,数据线(SDA)和时钟线(SCL)都为高电平时。当主控制器向某个器件传送信息时,首先应向总线送开始信号,然
19、后才能传送信息,当信息传送结束时应送结束信号,开始信号和结束信号规定如下:开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。开始信号和结束信号之间传送的是信息,信息的字节数没有限制,但每个字节必须为8位,高位在前,低位在后。数据线SDA上每一位信息状态的改变只能发生在时钟线SCL为低电平的期间,因为SCL高电平的期间SDA状态的改变已经被用来表示开始信号和结束信号。每个字节后面必须接收一个应答信号(ACK),ACK是从控制器在接收到8位数据后向主控制器发出的特定的低电平脉冲,用以表示已收到数据。主控制器接
20、收到应答信号(ACK)后,可根据实际情况作出是否继续传递信号的判断。若未收到ACK,则判断为从控制器出现故障。具体情况如图所示:SDASCL开始信号12789应答位12891应答位结束信号主控制器每次传送的信息的第一个字节必须是器件地址码,第二个字节为器件单元地址,用于实现选择所操作的器件的内部单元,从第三个字节开始为传送的数据。其中器件地址码格式如下:D7D6D5D4D3D2D1D0器件类型码片选R/W四I2C总线读、写操作1当前地址读该操作将从所选器件当前地址读,读的字节数不指定,格式如下:S控制码(R/W=1)A数据1A数据2AP2指定单元读该操作将从所选器件指定地址读,读的字节数不指定
21、,格式如下:S控制码(R/W=0)A器件单元地址AS控制码(R/W=1)A数据1A数据2AP3指定单元写该操作将从所选器件指定地址写,写的字节数不指定,格式如下:S控制码(R/W=0)A器件单元地址A数据1A数据2AP其中:S表示开始信号,A表示应答信号,P表示结束信号。 9.2.2 I2C总线EEPROM芯片与单片机接口一串行EEPROM电路CAT24WCXX系列概述 CAT24WCXX系列是美国CATALYST公司出品的,包含1-256K位,支持I2C总线数据传送协议的串行CMOS EEPROM芯片,可用电擦除,可编程自定义写周期,自动擦除时间不超过10ms,典型时间为5ms。CAT24W
22、CXX系列包含CAT24WC01020408163264128256共8种芯片,容量分别为1、2、4、8、16、32、64、128、256KB。串行EEPROM一般具有两种写入方式,一种是字节写入方式,还有另一种页写入方式。允许在一个写周期内同时对1个字节到一页的若干字节的编程写入,一页的大小取决于芯片内页寄存器的大小。其中,CAT24WC01具有8字节数据的页面写能力,CAT24WC02040816具有16字节数据的页面写能力,CAT24WC3264具有32字节数据的页面写能力,CAT24WC128256具有64字节数据的页面写能力。 二CAT24WCXX的引脚CAT24WC01/02/04
23、/08/16/32/64、CAT24WC128、CAT24WC256管脚排列图分别为如图(1)、(2)、(3)所示: 其中:SCL:串行时钟线。这是一个输入管脚,用于形成器件所有数据发送或接收的时钟。 SDA:串行数据/地址线。它是一个双向传输线,用于传送地址和所有数据的发送或接收。它是一个漏极开路端,因此要求接一个上拉电阻到Vcc端(速率为100KHz时电阻为10K,400KHz时为1K)。对于一般的数据传输,仅在SCL为低电平期间SDA才允许变化。SCL为高电平期间,留给开始信号(START)和停止信号(STOP)。A0、A1、A2:器件地址输入端。这些输入端用于多个器件级联时设置器件地址
24、,当这些脚悬空时默认值为0(CAT24WC01除外)。WP:写保护。如果WP管脚连接到VCC,所有的内容都被写保护(只能读)。当WP管脚连接到VSS或悬空,允许对器件进行正常的读/写操作。VCC:电源线。VSS:地线。 三CAT24WCXX的器件地址型号控制码片选读写总线访问的器件CAT24WC011010A2 A1 A01/0最多8个CAT24WC021010A2 A1 A01/0最多8个CAT24WC041010A2 A1 a81/0最多4个CAT24WC081010A2 a9 a81/0最多2个CAT24WC161010a10 a9 a81/0最多1个CAT24WC321010A2 A1
25、 A01/0最多8个CAT24WC641010A2 A1 A01/0最多8个CAT24WC1281010X X X1/0最多1个CAT24WC25610100 A1 A01/0最多4个四CAT24WCXX的写操作1字节写结束应答信号数据数据器件内单元地址应答信号应答信号读写位器件地址开始SDA线信号2页写应答信号数据1器件内单元地址应答信号应答信号读写位器件地址写开始SDA线信号数据n应答信号结束3应答查询 可以利用内部写周期时禁止数据输入这一特性。一旦主器件发送停止位指示主器件操作结束时,CAT24WCXX启动内部写周期,应答查询立即启动,包括发送一个起始信号和进行写操作的从器件地址。 4写
26、保护 写保护操作特性可使用户避免由于不当操作而造成对存储区域内部数据的改写,当WP管脚接高电平时,整个寄存器区全部被保护起来而变为只可读取。 五CAT24WCXX的读操作1当前地址读SDA线信号开始读写位应答信号无应答信号结束数据器件地址2随机地址读读写位器件地址读器件内单元地址应答信号应答信号读写位器件地址写开始SDA线信号应答信号结束器件内单元地址开始应答信号3顺序地址读应答信号数据1应答信号读写位器件地址读SDA线信号数据2应答信号结束数据n无应答信号六CAT24WCXX与单片机的接口与编程下图是8051单片机与串行EEPROM芯片CAT24WCXX的接口电路。图中用的EEPROM芯片为
27、CAT24WC04,其它芯片与单片机的连接与它相同。8051的P1.0、P1.1作为I2C总线与CAT24WC04的SDA和SCL相连,连接时注意I2C总线须通过电阻接电源。P1.3与WP相连。CAT24WC04的地址线A2、A1、A0直接接地。则片选编码为000,CAT24WC04的器件地址码的高7位为1010000。8051P1.0P1.1P1.2VCCSDASCLWPVSSA0A1A2CAT24W04VCC20K20K编程(略) 9.3 MCS-51单片机与时钟日历芯片接口9.3.1 并行日历时钟芯片DS12887与单片机接口一DS12887主要功能(1)内含一个锂电池,断电后运行十年以
28、上不丢失数据。(2)计秒,分,时,天,星期,日,月,年,并有闰年补偿功能。(3)二进制数码或BCD码表示时间,日历和定闹。(4)12小时或24小时制,12小时时钟模式带有PM和AM指示,有夏令时功能。(5)Motorola和Intel总线时序选择。(6)有128个字节RAM单元与软件接口,其中:14个字节作为时钟寄存器和控制寄存器,114字节为通用RAM,所有RAM单元数据都具有掉电保护功能。(7)可编程方波信号输出。(8)中断信号输出(IRQ)和总线兼容,定闹中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。二DS12887基本原理及引脚说明 DS12887内部由振荡
29、电路,分频电路,周期中断/方波选择电路,14字节时钟寄存器和控制寄存器,114字节用户非易失RAM,十进制/二进制累加器,总线接口电路,电源开关写保护单元和内部锂电池等部分组成。DS12887引脚如图所示:Vcc:直流电源+5V电压。当Vcc电压在正常范围内时,数据可读写;当Vcc低于4.25V,读写被禁止,计时功能仍继续;当Vcc下降到3V以下时,RAM和计时器供电被切换到内部锂电池。MOT(模式选择):MOT引脚接到Vcc时,选择MOTOROLA时序,当接到GND时,选择Intel时序。SQW(方波输出信号):SQW引脚能从实时钟内部15级分频器的13个抽头中选择一个作为输出信号,其输出频
30、率可通过对寄存器A编程改变。AD0-AD7(双向地址/数据复用线):总线接口,可与Motorola微机系列和Intel微机系列接口。ALE(地址锁存信号):在ALE的下降沿把AD0AD7输入的地址锁存入DS12887。(数据读信号):低电平有效。 (数据写信号):低电平有效。 (片选信号):在访问DS12887的总线周期内,片选信号必须保持为低。 (中断请求信号):低电平有效,可作微处理的中断输入。没有中断的条件满足时, 处于高阻态。线是漏极开路输入,要求外接上接电阻。 (复位信号):当该脚保持低电平时间大于200ms,保证DS12887有效复位。 三内部寄存器 DS12887的内部有128个
31、存储单元,其中:10字节的存放实时时钟时间、日历和定闹的RAM;4个字节的控制和状态特殊寄存器;114字节的带掉电保护的用户RAM。几乎所有的128个字节都可直接读写。1时间、日历和定闹单元 时间、日历和定时闹钟通过写相应的存储单元字节设置或初始化,当前时间和日历信息通过读相应的存储单元字节来获取,其字节内容可以是二进制或BCD形式。时间可选择12小时制或24小时制,当选择12小时制时,小时字节的高位逻辑“1”代表PM,逻辑“0”代表AM。时间、日历和定闹字节是双缓冲的,总是可访问的。每秒钟这10个字节走时1秒,检查一次定时闹钟条件,如在更新时,读时间和日历可能引起错误。地址功能数范围二进制格
32、式BCD码格式0秒059003BH0059H1秒闹钟059003BH0059H2分059003BH0059H3分闹钟059003BH0059H4小时(12时制)112010CH AM 818CH PM010CH AM 818CH PM小时(24时制)0230017H0023H5时闹钟(12时制)112010CH AM 818CH PM010CH AM 818CH PM时闹钟(24时制)0230017H0023H6星期(星期天=1)170007H0007H7日131011FH0131H8月112010CH0112H9年0990063H0099H2寄存器A寄存器0AH的格式如下:D7D6D5D4D
33、3D2D1D0UIPDV2DV1DV0RS3RS2RS1RS0UIP:更新(UIP)位用来标志芯片是否即将进行更新。当UIP位为1时,更新即将开始,这时不准对时钟、日历和闹钟信息寄存器进行读/写操作;当它为0时,表示在至少44s内芯片不会更新,此时,时钟、日历和闹钟信息可以通过读写相应的字节获得和设置。UIP位为只读位,并且不受复位信号(RESET)的影响。通过把寄存器B中的SET位设置为1,可以禁止更新并将UIP位清0。DV0,DV1,DV2:这3位是用来开关晶体振荡器和复位分频器。当DV0DV1DV2010时,晶体振荡器开启并且保持时钟运行;当DV0DV1DV211X时,晶体振荡器开启,但
34、分频器保持复位状态。 RS3,RS2,RS1,RS0:中断周期和SQW输出频率选择位。4位编码与中断周期和SQW输出频率的对应关系见下表:RS3 RS2 RS1 RS0中断周期SQW输出频率0000-00013.90625ms256Hz00107.8125ms128 Hz0011122.070s8192 Hz0100244.141s4069 Hz0101488.281s2048 Hz0110976.562s1024 Hz01111.953125ms512 Hz10003.90625 ms256 Hz10017.8125 ms128 Hz101015.625 ms64 Hz101131.25 m
35、s32 Hz110062.5 ms16 Hz1101125 ms8 Hz1110250 ms4 Hz1111500 ms2 Hz3寄存器B寄存器0BH的格式如下:D7D6D5D4D3D2D1D0SETPIEAIEUIESQWEDM24/12DSESET:当SET0,芯片更新正常进行;当SET1,芯片更新被禁止。SET位可读写,并不会受复位信号的影响。PIE:当PIE0,禁止周期中断输出到 IRQ;当PIE1,允许周期中断输出到 IRQ.AIE:当AIE0,禁止闹钟中断输出到IRQ ;当AIE1,允许闹钟中断输出到 IRQ.UIE:当UIE0,禁止更新结束中断输出到 IRQ;当UIE1,允许更新
36、结束中断输出到IRQ 。此位在复位或设置SET为高时清0. SQWE:当SQWE0,SQW脚为低;当SQWE1,SQW输出设定频率的方波。DM:DM0,BCD;DM1,二进制,此位不受复位信号影响。24/12:此位为1,24时制;为0,12小时制DSE:夏令时允许标志。在四月的第一个星期日的15959AM,时钟调到30000AM;在十月的最后一个星期日的15959AM,时钟调到10000AM。4寄存器C寄存器0CH的格式如下:D7D6D5D4D3D2D1D0IRQFPFAFUF0000IRQF:当有以下情况中的一种或几种发生时,中断请求标志位(IRQF)置1;PFPIE1或AFAIE1或UFU
37、IE1,既IRQFPFPIE+AFAIE+UFUIE,IRQF旦置1,IRQ脚输出低电平,送出中断请求。所有标志位在读寄存器C或复位后清0。PF:周期中断标志。AF:闹钟中断标志。UF:更新中断标志。第0位到第3位无用,不能写入,只能读出,且读出的值恒为0。 5寄存器D寄存器0DH的格式如下:D7D6D5D4D3D2D1D0VRT0000000VRT:当VRT0时表示内置电池能量耗尽,此时RAM中的数据的正确性就不能保证了。第0位到第6位无用,只能读出,且读出的值恒为0。6用户RAM在DS12887中,114字节带掉电保护RAM不专用一任何特殊功能,它们可被处理器程序用作非易失内存,在更新周期
38、也可访问,它的地址范围为0DH7FH。如果片选地址CS =0F000H,则DS12887内部128个存储单元的地址为0F000H0F07FH。 四DS12887与单片机的接口 下图是8051与DS12887的接口电路,DS12887的片选信号接P2.7,则DS12887的片内128个单元的地址可为7F00H7F7FH。 DS12887的处理过程为:1寄存器B的SET位置1,芯片停止工作。2时间、日历和定闹单元置初值。3读寄存器C,以消除已有的中断标志。4读寄存器D,使片内寄存器和RAM数据有效。5寄存器B的SET位清0,启动DS12887开始工作。DS12887的驱动程序(略)9.3.2 串行
39、日历时钟芯片与单片机接口一DS1302的主要性能指标(1)DS1302实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力。(2)内部含有31个字节静态RAM,可提供用户访问。(3)采用串行数据传送方式,使得管脚数量最少,简单3 线接口。(4)工作电压范围宽:2.05.5V。(5)工作电流:2.0V时,小于300nA。(6)时钟或RAM数据的读/写有两种传送方式:单字节传送和多字节传送方式。(7)采用8脚DIP封装或SOIC封装。(8)与TTL兼容,Vcc=5V。(9)可选工业级温度范围:-40C+85C。(10)具有涓流充电能力。(11)采用主电源和
40、备份电源双电源供应。(12)备份电源可由电池或大容量电容实现。二引脚功能DS1302的引脚如图所示其中:X1、X2:32.768KHz晶振接入引脚。GND:地。 :复位引脚,低电平有效。I/O:数据输入/输出引脚,具有三态功能。SCLK:串行时钟输入引脚。Vcc1:工作电源引脚。Vcc2:备用电源引脚。三DS1302的寄存器及片内RAMDS1302有一个控制寄存器、12个日历、时钟寄存器和31个RAM。1控制寄存器 控制寄存器用于存放DS1302的控制命令字,DS1302的RST引脚回到高电平后写入的第一个字就为控制命令。它用于对DS1302读写过程进行控制,它的格式如下: D7D6D5D4D
41、3D2D1D01RAM/CKA4A3A2A1A0RD/W其中:D7:固定为1D6:RAM/CK位,片内RAM或日历、时钟寄存器选择位。 D5D1:地址位,用于选择进行读写的日历、时钟寄存器或片内RAM。对日历、时钟寄存器或片内RAM的选择见表。寄存器名称D7D6D5D4D3D2D1D01RAM/CKA4A3A2A1A0R/W秒寄存器10000000或1分寄存器10000010或1小时寄存器10000100或1日寄存器10000110或1月寄存器10001000或1星期寄存器10001010或1年寄存器10001100或1写保护寄存器10001110或1慢充电寄存器10010000或1时钟突发模
42、式10111110或1RAM011000000或1110或1RAM3011111100或1RAM突发模式11111110或12日历、时钟寄存器DS1302共有12个寄存器,其中有7个与日历、时钟相关,存放的数据为BCD码形式。日历、时钟寄存器的格式如表。寄存器名称取值范围D7D6D5D4D3D2D1D0秒寄存器0059CH秒的十位秒的个位分寄存器00590分的十位分的个位小时寄存器0112或002312/240A/PHR小时的个位日寄存器013100日的十位日的个位月寄存器01120001或0月的个位星期寄存器01070000星期几年寄存器0199年的十位年的个位写保护寄存器WP0000000
43、慢充电寄存器TCSTCSTCSTCSDSDSRSRS时钟突发寄存器说明:(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位为
44、控制慢充电的选择,当它为1010才能使慢充电工作。DS为二极管选择位。DS为01选择一个二极管,DS为10选择二个二极管,DS为11或00充电器被禁止,与TCS无关。RS用于选择连接在VCC2与VCC1之间的电阻,RS为00,充电器被禁止,与TCS无关,电阻选择情况见表.RS位电阻器阻值00无无01R12K10R24K11R38K3.片内RAMDS1302片内有31个RAM单元,对片内RAM的操作有两种方式:单字节方式和多字节方式。当控制命令字为C0HFDH时为单字节读写方式,命令字中的D5D1用于选择对应的RAM单元,其中奇数为读操作,偶数为写操作。当控制命令字为FEH、FFH时为多字节操作
45、(表9.5中的RAM突发模式),多字节操作可一次把所有的RAM单元内容进行读写。FEH为写操作,FFH为读操作。 DS1302通过RST引脚驱动输入输出过程,当置RST高电平启动输入输出过程,在SCLK时钟的控制下,首先把控制命令字写入DS1302的控制寄存器,其次根据写入的控制命令字,依次读写内部寄存器或片内RAM单元的数据,对于日历、时钟寄存器,根据控制命令字,一次可以读写一个日历、时钟寄存器,也可以一次读写8个字节,对所有的日历、时钟寄存器(表9.5中的时钟突发模式),写的控制命令字为0BEH,读的控制命令字为0BFH;对于片内RAM单元,根据控制命令字,一次可读写一个字节,一次也可读写
46、31个字节。当数据读写完后,RST变为低电平结束输入输出过程。无论是命令字还是数据,一个字节传送时都是低位在前,高位在后,每一位的读写发生在时钟的上升沿。 4DS1302的输入输出过程四、DS1302与单片机的接口 DS1302与单片机的连接仅需要3条线:时钟线SCLK、数据线I/O和复位线 RST。连接图如图。时钟线SCLK与P1.0相连,数据线I/O与P1.1相连,复位线 RST与P1.2相连。 VCC2X1X2GNDVCC1SCLKI/ORST+5V8051P1.0P1.1P1.2+5V图中DS1302的驱动程序。(略)9.4 MCS-51单片机与数字温度传感器的接口9.4.1 DS18
47、B20简介9.4.2 DS18B20的主要特性(1)适应电压范围宽:3.05.5V,在寄生电源方式下可由数据线供电。(2)在使用中不需要任何外围元件。(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)支持多点组网功能,多个DS18B2
48、0可以并联在唯一的三线上,实现组网多点测温;(8)用户可自设定非易失性的报警上下限值。(9)负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。9.4.3 DS18B20的外部结构 1 2 3 DALLAS DS18B20 GND DQ VDD 1 2 3 NC NC NC NC NC VDD DQ GND (a) TO-92封装 (b) SOIC封装 (1) DQ:数字信号输入/输出端。(2) GND:电源地。(3) VDD:外接供电电源输入端(在寄生电源接线方式时接地)。9.4.4 DS18B20的内部结构 DS18B20内部主要由4部分组成:64位光刻ROM、温度传感器、非
49、易失性温度报警触发器TH和TL、配置寄存器等。其内部结构图如图所示。1光刻ROM存储器64位序列号的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码。 2高速暂存存储器字节序号功 能0温度转换后的低字节1温度转换后的高字节2高温度触发器TH3低温度触发器TL4配置寄存器5保留6保留7保留8CRC校验寄存器D7D6D5D4D3D2D1D0LS Byte232221202-12-22-32-4D7D6D5D4D3D2D1D0MS ByteSSSSS262524用符号扩展的二进制补码数表示,S为符号位。上表是12位转化后得到的
50、12位数据,高字节的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘以0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘以0.0625即可得到实际温度。 温度/16位二进制编码十六进制表示1250000 0111 1101 000007D0H850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111
51、1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90HDS18B20部分温度数据表配置寄存器用于确定温度值的数字转换分辨率,该字节各位的意义如下:D7D6D5D4D3D2D1D0TMR1R011111温度值分辨率设置表与转换时间R1R0分辨率/位温度最大转换时间/ms00993.750110187.51011275.001112750.009.4.5 DS18B20的温度转换过程主机控制DS18B20完成温度转换必须经过三个步骤:每
52、一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。 ROM指令表指 令约定代码功 能读ROM33H读DS18B20温度传感器ROM中的编码(即64位地址)匹配 ROM55H发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS18B20 使之作出响应,为下一步对该 DS18B20 的读写作准备搜索 ROM0F0H用于确定挂接在同一总线上 DS18B20 的个数和识别 64 位 ROM 地址。为操作各器件做好准备跳过 ROM0CCH忽略 64 位 ROM 地址,直接向 DS1820 发
53、温度变换命令。适用于单片工作告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才作出响应RAM指令表指 令约定代码功 能温度变换44H启动DS18B20进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中读暂存器0BEH读内部RAM中9字节的内容写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据复制暂存器48H将RAM中第3、4字节的内容复制到EEPROM中重调 EEPROM0B8H将EEPROM中的内容恢复到RAM中的第3、4字节读供电方式0B4H读DS18B20的供电模式。寄生供电时DS1
54、8B20发送“0”,外接电源供电时DS18B20发送“1”9.4.6 DS18B20与单片机的接口进行远距离测温时,无需本地电源;可以在没有常规电源的条件下读取ROM;电路更加简洁,仅用一根I/O口来实现测温。 单片寄生电源供电方式连接 改进的单片寄生电源供电图解决电流供应不足的问题,适合于多点测温应用,缺点就是要多占用一根I/O口线进行强上拉切换。 单片外部电源供电方式 外部供电方式的多点测温电路图 9.4.7 DS18B20使用中的注意事项(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格地保证读
55、写时序,否则将无法读取测温结果。对DS18B20操作最好采用汇编语言实现。 (2) 在DS1820的有关资料中均未提及单总线上所挂DS18B20数量的问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中却并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 (3)连接DS18B20的总线电缆是有长度限制的。普通信号电缆50m,双绞线带屏蔽电缆可达150m. (4) 在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程
56、序读该DS18B20时,将没有返回信号,程序进入死循环。 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转换器,具有低功耗、高精度、转换速
57、度快、体积小、接口简单等优点。2MAX1241的外部特性:关断控制输入端,可实现MAX1241两种工作模式的切换,接低电平,MAX1241工作于待机工作模式,输入电流可减小至10A以下,处于节能模式;接高电平,MAX1241工作于正常工作模式,可实现D/A转换。 REF:基准电压输入端,范围为0VDD。 GND:接地端。 DOUT:数据输出端。 片选端,低电平有效。 SCLK:外部时钟脉冲输入端。 3MAX1241的工作过程(1)在 为高电平的条件下,每次使片选信号 由高电平变为低电平则启动转换,此时时钟脉冲 SCLK必须为低电平。(2)A/D转换启动后,内部控制逻辑切换采样/保持电路为保持状
58、态,并使输出数据线DOUT变低,转换结束时DOUT由低变高。在整个转换期内,SCLK应保持低电平。(3)一次转换结束后,内部控制逻辑将自动把采样/保持电路切换为捕捉状态。在外部时钟脉冲SCLK作用下读出数据,从时序图可以看出每一位数据是在时钟脉冲由高电平变低电平时送到数据输出端DOUT上,并一直保持到时钟脉冲下一次下降沿,因而每一位数据可以在时钟脉冲上升沿读出。在13个时钟脉冲后,数据读取结束,可将片选信号 置为高电平,DOUT端输出高电平。只要使片选信号再次有效,就可以重新开始一轮新的A/D转换和读取过程。 (4)数据读取完成后,如果仍然保持片选信号有效,则DOUT端始终输出低电平。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控制 SHDNEQU P1.0DOUTEQU P1.1CSEQU P1.2SCLKEQU P1.3 ORG 0000H MOV SP,#6
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度浙江省二级造价工程师之建设工程造价管理基础知识通关提分题库(考点梳理)
- 2024年度浙江省二级造价工程师之建设工程造价管理基础知识能力测试试卷A卷附答案
- 2024年度浙江省二级造价工程师之安装工程建设工程计量与计价实务过关检测试卷B卷附答案
- 2025年肿瘤科工作总结
- 个案护理查房模板
- 肿瘤专科护理敏感质量指标的构建与应用
- 幼儿舞蹈完整教学课件
- 高考生物核心考点考前冲刺 生物学基本知识(含解析)
- java网络通信面试题及答案
- 幼儿园小班美术教案郁金香折纸
- 第三次国土调查数字正射影像生产技术设计书
- 汽车类西班牙语词汇
- 独生子女承诺书协议承诺模板样本合同doc
- FZ/T 10025-2022本色布技术要求规范
- GB/T 5097-2005无损检测渗透检测和磁粉检测观察条件
- GB/T 1041-2008塑料压缩性能的测定
- GA/T 527.1-2015道路交通信号控制方式第1部分:通用技术条件
- 物理必修一第一章章末检测卷(一)
- 苏教版六年级科学下册单元测试卷及答案(全册)
- 如何审议预算及其报告新演示文稿
- 融资并购项目财务顾问协议卖方大股东为个人模版
评论
0/150
提交评论