《单片机原理应用及c51程序设计》第9章-MCS 51单片机的其他接口课件_第1页
《单片机原理应用及c51程序设计》第9章-MCS 51单片机的其他接口课件_第2页
《单片机原理应用及c51程序设计》第9章-MCS 51单片机的其他接口课件_第3页
《单片机原理应用及c51程序设计》第9章-MCS 51单片机的其他接口课件_第4页
《单片机原理应用及c51程序设计》第9章-MCS 51单片机的其他接口课件_第5页
已阅读5页,还剩167页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章MCS-51单片机的其他接口9.1LCD与MCS-51接口液晶显示器按其功能可分为三类:笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。9.1.1字符型点阵式LCD液晶显示器有16字1行、16字2行、20字2行和40字2行等的字符液晶显示模块。这些LCM虽然显示字数各不相同,但是都具有相同的输入输出界面。本节将以162字符型液晶显示模块RT-1602C为例,详细介绍字符型液晶显示模块的应用。一.字符型液晶显示模块RT-1602C的外观与引脚第9章MCS-51单片机的其他接口9.1LCD与MC1RT-1602C采用标准的16脚接口,各引脚情况如下:第1脚:VSS,电源地第2脚:VDD,+5V电源第3脚:VL,液晶显示偏压信号第4脚:RS,数据/命令选择端,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W,读/写选择端,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。RT-1602C采用标准的16脚接口,各引脚情况如下:第1脚2第6脚:E,端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7,为8位双向数据线。第15脚:BLA,背光源正极第16脚:BLK,背光源负极二.字符型液晶显示模块RT-1602C的内部结构液晶显示模块RT-C1602C的内部结构可以分成三部份:一为LCD控制器,二为LCD驱动器,三为LCD显示装置,如图所示:LCD控制器LCD驱动器LCD显示装备VSSVDDVOVSV/WEDB0~DB7第6脚:E,端为使能端,当E端由高电平跳变成低电平时,液晶模3控制器采用HD44780,驱动器采用HD44100。HD44780集成电路的特点:1、可选择5×7或5×10点字符。2、HD44780不仅作为控制器而且还具有驱动40×16点阵液晶像素的能力,在外部加一HD44100外扩展多40路/列驱动,则可驱动16×2LCD。3、HD44780内藏显示缓冲区DDRAM、字符发生存储器(ROM)及用户自定义的字符发生器CGRAM。HD44780有80个字节的显示缓冲区,分两行,地址分别为00H~27H,40H~67H,它下实际显示位置的排列顺序跟LCD的型号有关,液晶显示模块RT-1602C的显示地址与实际显示位置的关系如图所示。控制器采用HD44780,驱动器采用HD44100。4HD44780内藏的字符发生存储器(ROM)已经存储了160个不同的点阵字符图形,如图所示:这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。比如数字“1”的代码是00110001B(31H),又如大写的英文字母“A”的代码是01000001B(41H),可以看出英文字母的代码与ASCII编码相同。要显示“1”时,我们只需将ASCII码31H存入DDRAM指定位置,显示模块将在相应的位置把数字“1”的点阵字符图形显示出来,我们就能看到数字“1”了。

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)已经存储了1605《单片机原理应用及c51程序设计》第9章__MCS51单片机的其他接口课件64、HD44780具有8位数据和4位数据传输两种方式,可与4/8位CPU相连。5、HD44780具有简单而功能较强的指令集,可实现字符移动,闪烁等显示功能。三.指令格式与指令功能LCD控制器HD44780内有多个寄存器,通过RS和R/W引脚共同决定选择哪一个寄存器,选择情况如表RSR/W寄存器及操作00指令寄存器写入01忙标志和地址计数器读出10数据寄存器写入11数据寄存器读出总共有11条指令,它们的格式和功能如下:4、HD44780具有8位数据和4位数据传输两种方式,可与471.清屏命令格式:RSR/WD7D6D5D4D3D2D1D00000000001功能:清除屏幕,将显示缓冲区DDRAM的内容全部写入空格(ASCII20H)。光标复位,回到显示器的左上角。地址计数器AC清零。2.光标复位命令格式:RSR/WD7D6D5D4D3D2D1D00000000010功能:光标复位,回到显示器的左上角。地址计数器AC清零。显示缓冲区DDRAM的内容不变。1.清屏命令RSR/WD7D6D5D4D3D2D1D000083.输入方式设置命令格式:RSR/WD7D6D5D4D3D2D1D000000001I/DS功能:设定当写入一个字节后,光标的移动方向以及后面的内容是否移动。当I/D=1时,光标从左向右移动;I/D=0时,光标从右向左移动。当S=1时,内容移动,S=0时,内容不移动。4.显示开关控制命令格式:RSR/WD7D6D5D4D3D2D1D00000001DCB功能:控制显示的开关,当D=1时显示,D=0时不显示。控制光标开关,当C=1时光标显示,C=0时光标不显示。控制字符是否闪烁,当B=1时字符闪烁,B=0时字符不闪烁。3.输入方式设置命令RSR/WD7D6D5D4D3D2D1D95.光标移位置命令格式:RSR/WD7D6D5D4D3D2D1D0000001S/CR/L**功能:移动光标或整个显示字幕移位。当S/C=1时整个显示字幕移位,当S/C=0时只光标移位。当R/L=1时光标右移,R/L=0时光标左移。6.功能设置命令格式:RSR/WD7D6D5D4D3D2D1D000001DLNF**功能:设置数据位数,当DL=1时数据位为8位,DL=0时数据位为4位。设置显示行数,当N=1时双行显示,N=0时单行显示。设置字形大小,当F=1时5×10点阵,F=0时为5×7点阵。5.光标移位置命令RSR/WD7D6D5D4D3D2D1D0107.设置字库CGRAM地址命令格式:RSR/WD7D6D5D4D3D2D1D00001CGRAM的地址功能:设置用户自定义CGRAM的地址,对用户自定义CGRAM访问时,要先设定CGRAM的地址,地址范畴0~63。8.显示缓冲区DDRAM地址设置命令格式:RSR/WD7D6D5D4D3D2D1D0001DDRAM的地址功能:设置当前显示缓冲区DDRAM的地址,对DDRAM访问时,要先设定DDRAM的地址,地址范畴0~127。7.设置字库CGRAM地址命令格式:RSR/WD7D6D5D119.读忙标志及地址计数器AC命令格式:RSR/WD7D6D5D4D3D2D1D001BFAC的值功能:读忙标志及地址计数器AC,当BF=1时则表示忙,这时不能接收命令和数据;BF=0时表示不忙。低7位为读出的AC的地址,值为0~127。10.写DDRAM或CGRAM命令格式:RSR/WD7D6D5D4D3D2D1D010写入的数据功能:向DDRAM或CGRAM当前位置中写入数据。对DDRAM或CGRAM写入数据之前须设定DDRAM或CGRAM的地址。9.读忙标志及地址计数器AC命令格式:RSR/WD7D6D51211.读DDRAM或CGRAM命令格式:RSR/WD7D6D5D4D3D2D1D011读出的数据功能:从DDRAM或CGRAM当前位置中读邮数据。当DDRAM或CGRAM读出数据时,先须设定DDRAM或CGRAM的地址。四.LCD显示器的初始化LCD使用之前须对它进行初始化,初始化可通过复位完成,也可在复位后完成,初始化过程如下:1.清屏。2.功能设置。3.开/关显示设置。4.输入方式设置。11.读DDRAM或CGRAM命令RSR/WD7D6D5D4139、1.2LCD显示器与单片机的接口与应用下图是LCD显示器与8051单片机的接口图,图中RT-1602C的数据线与8051的P1口相连,RS与8051的P2.0相连,R/W与8051的P2.1相连,E端与8051的P2.7相连。编程在LCD显示器的第一行、第一列开始显示“GOOD”,第二行、第6列开始显示“BYE”。9、1.2LCD显示器与单片机的接口与应用14汇编语言程序:RSBITP2.0RWBITP2.1EBITP2.7ORG00HAJMPSTARTORG50H;主程序START:MOVSP,#50HACALLINITMOVA,#10000000B;写入显示缓冲区起始地址为第1行第1列。ACALLWC51RMOVA,“G”;第1行第1列显示字母“G”。ACALLWC51DDRMOVA,“O”;第1行第2列显示字母“O”。ACALLWC51DDRMOVA,“O”;第1行第3列显示字母“O”。ACALLWC51DDRMOVA,“D”;第1行第4列显示字母“D”。ACALLWC51DDR汇编语言程序:15MOVA,#11000101B;写入显示缓冲区起始地址为第2行第6列。ACALLWC51RMOVA,“B”;第2行第6列显示字母“B”。ACALLWC51DDRMOVA,“Y”;第2行第7列显示字母“Y”。ACALLWC51DDRMOVA,“E”;第2行第8列显示字母“E”。ACALLWC51DDRLOOP:AJMPLOOP;初始化子程序INIT:MOVA,#00000001H;清屏ACALLWC51RMOVA,#00111000B;使用8位数据,显示两行,使用5*7的字型。LCALLWC51RMOVA,#00001110B;显示器开,光标开,字符不闪烁。LCALLWC51RMOVA,#00000110B;字符不动,光标自动右移一格。LCALLWC51RRETMOVA,#11000101B;写入显示缓冲区起16;检查忙子程序F_BUSY:PUSHACC;保护现场PUSHDPHPUSHDPLPUSHPSWWAIT:CLRRSSETBRWCLRESETBEMOVA,P1CLREJBACC.7,WAIT;忙,等待POPPSW;不忙,恢复现场POPDPLPOPDPHPOPACCACALLDELAYRET;检查忙子程序17;写入命令子程序。WC51R:ACALLF_BUSYCLRECLRRSCLRRWSETBEMOVP1,ACCCLREACALLDELAYRET;写入数据子程序。WC51DDR:ACALLF_BUSYCLRESETBRSCLRRWSETBEMOVP1,ACCCLREACALLDELAYRET;写入命令子程序。18;延时子程序。DELAY:MOVR6,#5D1:MOVR7,#248DJNZR7,$DJNZR6,D1RETEND;延时子程序。19C语言编程:#include<reg51.h>#defineucharunsignedcharsbitRS=P2^0;sbitRW=P2^1;sbitE=P2^7;voiddelay(void);voidinit(void);voidwc5r(uchari);voidwc51ddr(uchari);voidfbusy(void);//主函数voidmain(){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”C语言编程:20wc51r(0xc5);//写入显示缓冲区起始地址为第2行第6列wc51ddr(0x42);//第2行第6列显示字母“B”wc51ddr(0x59);//第2行第7列显示字母“Y”wc51ddr(0x45);//第2行第8列显示字母“E”while(1);}//初始化函数voidinit(){wc51r(0x01);//清屏wc51r(0x38);//使用8位数据,显示两行,使用5*7的字型wc51r(0x0e);//显示器开,光标开,字符不闪烁wc51r(0x06);//字符不动,光标自动右移一格}wc51r(0xc5);//写入显示缓21//检查忙函数voidfbusy(){RS=0;RW=1;E=1;E=0;while(P1&0x80){E=0;E=1;}//忙,等待delay();}//写命令函数voidwc51r(ucharj){fbusy();E=0;RS=0;RW=0;E=1;P1=j;E=0;delay();}//检查忙函数22//写数据函数voidwc51ddr(ucharj){fbusy();E=0;RS=1;RW=0;E=1;P1=j;E=0;delay();}//延时函数voiddelay(){uchary;for(y=0;y<0xff;y++){;}}//写数据函数239.2MCS-51单片机与I2C总线芯片接口9.2.1I2C总线简介一.I2C总线的主要特点I2C总线是由PHILIPS公司开发一种简单、双向二线制同步串行总线。它只需要两根线即在连接于总线上的器件之间传送信息。这种总线的主要特点有:1.总线只有两根线,即串行时钟线(SCL)和串行数据线(SDA),这在设计中大大减少了硬件接口。2.每个连接到总线上的都有一个用于识别的器件地址,器件地址由芯片内部硬件电路和外部地址引脚同时决定,避免了片选线的连接方法,并建立简单的主从关系,每个器件既可以作为发送器,又可以作为接收器。3.同步时钟允许器件以不同的波特率进行通信。4.同步时钟可以作为停止或重新启动串行口发送的握手信号。5.串行的数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。6.连接到同一总线的集成电路数只受400pF的最大总线电容的限制。9.2MCS-51单片机与I2C总线芯片接口9.2.124二.I2C总线的基本结构二.I2C总线的基本结构25三.I2C总线信息传送当I2C总线没有进行信息传送时,数据线(SDA)和时钟线(SCL)都为高电平时。当主控制器向某个器件传送信息时,首先应向总线送开始信号,然后才能传送信息,当信息传送结束时应送结束信号,开始信号和结束信号规定如下:开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平时,SDA由低电平向高电平跳变,结束传送数据。开始信号和结束信号之间传送的是信息,信息的字节数没有限制,但每个字节必须为8位,高位在前,低位在后。数据线SDA上每一位信息状态的改变只能发生在时钟线SCL为低电平的期间,因为SCL高电平的期间SDA状态的改变已经被用来表示开始信号和结束信号。每个字节后面必须接收一个应答信号(ACK),ACK是从控制器在接收到8位数据后向主控制器发出的特定的低电平脉冲,用以表示已收到数据。主控制器接收到应答信号(ACK)后,可根据实际情况作出是否继续传递信号的判断。若未收到ACK,则判断为从控制器出现故障。具体情况如图所示:三.I2C总线信息传送当I2C总线没有进行信息传送时,数据线26SDASCL开始信号12789应答位12891应答位结束信号主控制器每次传送的信息的第一个字节必须是器件地址码,第二个字节为器件单元地址,用于实现选择所操作的器件的内部单元,从第三个字节开始为传送的数据。其中器件地址码格式如下:D7D6D5D4D3D2D1D0器件类型码片选R/WSDASCL开始12789应答位12891应答位结束主控制器27四.I2C总线读、写操作1.当前地址读该操作将从所选器件当前地址读,读的字节数不指定,格式如下:S控制码(R/W=1)A数据1A数据2AP2.指定单元读该操作将从所选器件指定地址读,读的字节数不指定,格式如下:S控制码(R/W=0)A器件单元地址AS控制码(R/W=1)A数据1A数据2AP3.指定单元写该操作将从所选器件指定地址写,写的字节数不指定,格式如下:S控制码(R/W=0)A器件单元地址A数据1A数据2AP其中:S表示开始信号,A表示应答信号,P表示结束信号。四.I2C总线读、写操作S控制码(R/W=1)A数据1A数据289.2.2I2C总线EEPROM芯片与单片机接口一.串行EEPROM电路CAT24WCXX系列概述CAT24WCXX系列是美国CATALYST公司出品的,包含1-256K位,支持I2C总线数据传送协议的串行CMOSEEPROM芯片,可用电擦除,可编程自定义写周期,自动擦除时间不超过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字节数据的页面写能力。9.2.2I2C总线EEPROM芯片与单片机接口一.串行29二.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)。二.CAT24WCXX的引脚CAT24WC01/02/04/30A0、A1、A2:器件地址输入端。这些输入端用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0(CAT24WC01除外)。WP:写保护。如果WP管脚连接到VCC,所有的内容都被写保护(只能读)。当WP管脚连接到VSS或悬空,允许对器件进行正常的读/写操作。VCC:电源线。VSS:地线。三.CAT24WCXX的器件地址型号控制码片选读写总线访问的器件CAT24WC011010A2A1A01/0最多8个CAT24WC021010A2A1A01/0最多8个CAT24WC041010A2A1a81/0最多4个CAT24WC081010A2a9a81/0最多2个CAT24WC161010a10a9a81/0最多1个CAT24WC321010A2A1A01/0最多8个CAT24WC641010A2A1A01/0最多8个CAT24WC1281010XXX1/0最多1个CAT24WC25610100A1A01/0最多4个A0、A1、A2:器件地址输入端。这些输入端用于多个器件级联31四.CAT24WCXX的写操作1.字节写结束应答信号数据数据器件内单元地址应答信号应答信号读写位器件地址开始SDA线信号2.页写应答信号数据1器件内单元地址应答信号应答信号读写位器件地址写开始SDA线信号数据n应答信号结束四.CAT24WCXX的写操作1.字节写结束应答信号数据数据323.应答查询可以利用内部写周期时禁止数据输入这一特性。一旦主器件发送停止位指示主器件操作结束时,CAT24WCXX启动内部写周期,应答查询立即启动,包括发送一个起始信号和进行写操作的从器件地址。4.写保护写保护操作特性可使用户避免由于不当操作而造成对存储区域内部数据的改写,当WP管脚接高电平时,整个寄存器区全部被保护起来而变为只可读取。五.CAT24WCXX的读操作1.当前地址读SDA线信号开始读写位应答信号无应答信号结束数据器件地址3.应答查询可以利用内部写周期时禁止数据输入这一332.随机地址读读写位器件地址读器件内单元地址应答信号应答信号读写位器件地址写开始SDA线信号应答信号结束器件内单元地址开始应答信号3.顺序地址读应答信号数据1应答信号读写位器件地址读SDA线信号数据2应答信号结束数据n无应答信号2.随机地址读读写位器件地址读器件内单元地址应答信号应答信号34六.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。8051P1.0P1.1P1.2VCCSDASCLWPVSSA0A1A2CAT24W04VCC20K20K编程(略)六.CAT24WCXX与单片机的接口与编程下图是8051单片359.3MCS-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)和总线兼容,定闹中断、周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。9.3MCS-51单片机与时钟日历芯片接口9.3.136二.DS12887基本原理及引脚说明DS12887内部由振荡电路,分频电路,周期中断/方波选择电路,14字节时钟寄存器和控制寄存器,114字节用户非易失RAM,十进制/二进制累加器,总线接口电路,电源开关写保护单元和内部锂电池等部分组成。DS12887引脚如图所示:二.DS12887基本原理及引脚说明37Vcc:直流电源+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的总线周期内,片选信号必须保持为低。Vcc:直流电源+5V电压。当Vcc电压在正常范围内时,数据38(中断请求信号):低电平有效,可作微处理的中断输入。没有中断的条件满足时,处于高阻态。线是漏极开路输入,要求外接上接电阻。(复位信号):当该脚保持低电平时间大于200ms,保证DS12887有效复位。三.内部寄存器DS12887的内部有128个存储单元,其中:10字节的存放实时时钟时间、日历和定闹的RAM;4个字节的控制和状态特殊寄存器;114字节的带掉电保护的用户RAM。几乎所有的128个字节都可直接读写。1.时间、日历和定闹单元时间、日历和定时闹钟通过写相应的存储单元字节设置或初始化,当前时间和日历信息通过读相应的存储单元字节来获取,其字节内容可以是二进制或BCD形式。时间可选择12小时制或24小时制,当选择12小时制时,小时字节的高位逻辑“1”代表PM,逻辑“0”代表AM。时间、日历和定闹字节是双缓冲的,总是可访问的。每秒钟这10个字节走时1秒,检查一次定时闹钟条件,如在更新时,读时间和日历可能引起错误。(中断请求信号):低电平有效,可作微处理的中断输入。没39地址功能数范围二进制格式BCD码格式0秒0~5900~3BH00~59H1秒闹钟0~5900~3BH00~59H2分0~5900~3BH00~59H3分闹钟0~5900~3BH00~59H4小时(12时制)1~1201~0CHAM81~8CHPM01~0CHAM81~8CHPM小时(24时制)0~2300~17H00~23H5时闹钟(12时制)1~1201~0CHAM81~8CHPM01~0CHAM81~8CHPM时闹钟(24时制)0~2300~17H00~23H6星期(星期天=1)1~700~07H00~07H7日1~3101~1FH01~31H8月1~1201~0CH01~12H9年0~9900~63H00~99H地址功能数范围二进制格式BCD码格式0秒0~5900~3BH402.寄存器A寄存器0AH的格式如下:D7D6D5D4D3D2D1D0UIPDV2DV1DV0RS3RS2RS1RS0UIP:更新(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输出频率的对应关系见下表:2.寄存器AD7D6D5D4D3D2D1D0UIPDV2DV41RS3RS2RS1RS0中断周期SQW输出频率0000--00013.90625ms256Hz00107.8125ms128Hz0011122.070s8192Hz0100244.141s4069Hz0101488.281s2048Hz0110976.562s1024Hz01111.953125ms512Hz10003.90625ms256Hz10017.8125ms128Hz101015.625ms64Hz101131.25ms32Hz110062.5ms16Hz1101125ms8Hz1110250ms4Hz1111500ms2HzRS3RS2RS1RS0中断周期SQW输出频率0000423.寄存器B寄存器0BH的格式如下:D7D6D5D4D3D2D1D0SETPIEAIEUIESQWEDM24/12DSESET:当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小时制3.寄存器B寄存器0BH的格式如下:D7D6D5D4D3D243DSE:夏令时允许标志。在四月的第一个星期日的1∶59∶59AM,时钟调到3∶00∶00AM;在十月的最后一个星期日的1∶59∶59AM,时钟调到1∶00∶00AM。4.寄存器C 寄存器0CH的格式如下:D7D6D5D4D3D2D1D0IRQFPFAFUF0000IRQF:当有以下情况中的一种或几种发生时,中断请求标志位(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。DSE:夏令时允许标志。在四月的第一个星期日的1∶59∶59445.寄存器D寄存器0DH的格式如下:D7D6D5D4D3D2D1D0VRT0000000VRT:当VRT=0时表示内置电池能量耗尽,此时RAM中的数据的正确性就不能保证了。第0位到第6位无用,只能读出,且读出的值恒为0。6.用户RAM在DS12887中,114字节带掉电保护RAM不专用一任何特殊功能,它们可被处理器程序用作非易失内存,在更新周期也可访问,它的地址范围为0DH~7FH。如果片选地址CS=0F000H,则DS12887内部128个存储单元的地址为0F000H~0F07FH。5.寄存器DD7D6D5D4D3D2D1D0VRT0000045四.DS12887与单片机的接口下图是8051与DS12887的接口电路,DS12887的片选信号接P2.7,则DS12887的片内128个单元的地址可为7F00H~7F7FH。四.DS12887与单片机的接口下图是8051与D46DS12887的处理过程为:1.寄存器B的SET位置1,芯片停止工作。2.时间、日历和定闹单元置初值。3.读寄存器C,以消除已有的中断标志。4.读寄存器D,使片内寄存器和RAM数据有效。5.寄存器B的SET位清0,启动DS12887开始工作。DS12887的驱动程序(略)DS12887的处理过程为:479.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)备份电源可由电池或大容量电容实现。9.3.2串行日历时钟芯片与单片机接口一.DS1302的48二.引脚功能DS1302的引脚如图所示其中:X1、X2:32.768KHz晶振接入引脚。GND:地。:复位引脚,低电平有效。I/O:数据输入/输出引脚,具有三态功能。SCLK:串行时钟输入引脚。Vcc1:工作电源引脚。Vcc2:备用电源引脚。二.引脚功能其中:49三.DS1302的寄存器及片内RAMDS1302有一个控制寄存器、12个日历、时钟寄存器和31个RAM。1.控制寄存器控制寄存器用于存放DS1302的控制命令字,DS1302的RST引脚回到高电平后写入的第一个字就为控制命令。它用于对DS1302读写过程进行控制,它的格式如下:D7D6D5D4D3D2D1D01RAM/CKA4A3A2A1A0RD/W其中:D7:固定为1D6:RAM/CK位,片内RAM或日历、时钟寄存器选择位。D5~D1:地址位,用于选择进行读写的日历、时钟寄存器或片内RAM。对日历、时钟寄存器或片内RAM的选择见表。三.DS1302的寄存器及片内RAMDS1302有一个控制寄50寄存器名称D7D6D5D4D3D2D1D01RAM/CKA4A3A2A1A0R/W秒寄存器10000000或1分寄存器10000010或1小时寄存器10000100或1日寄存器10000110或1月寄存器10001000或1星期寄存器10001010或1年寄存器10001100或1写保护寄存器10001110或1慢充电寄存器10010000或1时钟突发模式10111110或1RAM011000000或1110或1RAM3011111100或1RAM突发模式11111110或1寄存器名称D7D6D5D4D3D2D1D01RAM/CKA4512.日历、时钟寄存器DS1302共有12个寄存器,其中有7个与日历、时钟相关,存放的数据为BCD码形式。日历、时钟寄存器的格式如表。寄存器名称取值范围D7D6D5D4D3D2D1D0秒寄存器00~59CH秒的十位秒的个位分寄存器00~590分的十位分的个位小时寄存器01~12或00~2312/240A/PHR小时的个位日寄存器01~3100日的十位日的个位月寄存器01~120001或0月的个位星期寄存器01~070000星期几年寄存器01~99年的十位年的个位写保护寄存器WP0000000慢充电寄存器TCSTCSTCSTCSDSDSRSRS时钟突发寄存器2.日历、时钟寄存器寄存器名称取值范围D7D6D5D4D3D52说明:(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无关,电阻选择情况见表.说明:53RS位电阻器阻值00无无01R12K10R24K11R38K3.片内RAMDS1302片内有31个RAM单元,对片内RAM的操作有两种方式:单字节方式和多字节方式。当控制命令字为C0H~FDH时为单字节读写方式,命令字中的D5~D1用于选择对应的RAM单元,其中奇数为读操作,偶数为写操作。当控制命令字为FEH、FFH时为多字节操作(表9.5中的RAM突发模式),多字节操作可一次把所有的RAM单元内容进行读写。FEH为写操作,FFH为读操作。RS位电阻器阻值00无无01R12K10R24K11R38K54DS1302通过RST引脚驱动输入输出过程,当置RST高电平启动输入输出过程,在SCLK时钟的控制下,首先把控制命令字写入DS1302的控制寄存器,其次根据写入的控制命令字,依次读写内部寄存器或片内RAM单元的数据,对于日历、时钟寄存器,根据控制命令字,一次可以读写一个日历、时钟寄存器,也可以一次读写8个字节,对所有的日历、时钟寄存器(表9.5中的时钟突发模式),写的控制命令字为0BEH,读的控制命令字为0BFH;对于片内RAM单元,根据控制命令字,一次可读写一个字节,一次也可读写31个字节。当数据读写完后,RST变为低电平结束输入输出过程。无论是命令字还是数据,一个字节传送时都是低位在前,高位在后,每一位的读写发生在时钟的上升沿。4.DS1302的输入输出过程DS1302通过RST引脚驱动输入输出过程,当置R55四、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的驱动程序。(略)四、DS1302与单片机的接口DS1302与单片569.4MCS-51单片机与数字温度传感器的接口9.4.1DS18B20简介9.4.2DS18B20的主要特性(1)适应电压范围宽:3.0~5.5V,在寄生电源方式下可由数据线供电。(2)在使用中不需要任何外围元件。(3)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条信号线即可实现微处理器与DS18B20的双向通信。(4)测温范围:-55℃~+125℃,在-10℃~+85℃时精度为±0.5℃。(5)编程可实现分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。(6)在9位分辨率时最多在93.75ms内把温度值转换为数字,12位分辨率时最多在750ms内把温度值转换为数字。(7)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温;(8)用户可自设定非易失性的报警上下限值。(9)负压特性:电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。9.4MCS-51单片机与数字温度传感器的接口9.4.1579.4.3DS18B20的外部结构

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.3DS18B20的外部结构123DALL589.4.4DS18B20的内部结构DS18B20内部主要由4部分组成:64位光刻ROM、温度传感器、非易失性温度报警触发器TH和TL、配置寄存器等。其内部结构图如图所示。9.4.4DS18B20的内部结构DS18B20内部主591.光刻ROM存储器64位序列号的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码。2.高速暂存存储器字节序号功能0温度转换后的低字节1温度转换后的高字节2高温度触发器TH3低温度触发器TL4配置寄存器5保留6保留7保留8CRC校验寄存器1.光刻ROM存储器64位序列号的排列是:开始8位(28H)60D7D6D5D4D3D2D1D0LSByte232221202-12-22-32-4D7D6D5D4D3D2D1D0MSByteSSSSS262524用符号扩展的二进制补码数表示,S为符号位。上表是12位转化后得到的12位数据,高字节的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘以0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘以0.0625即可得到实际温度。D7D6D5D4D3D2D1D0LSByte232221261温度/℃16位二进制编码十六进制表示+125000001111101000007D0H+8500000101010100000550H+25.062500000001100100010191H+10.125000000001010001000A2H+0.500000000000010000008H000000000000000000000H-0.51111111111111000FFF8H-10.1251111111101011110FF5EH-25.06251111111001101111FE6FH-551111110010010000FC90HDS18B20部分温度数据表温度/℃16位二进制编码十六进制表示+125000001162配置寄存器用于确定温度值的数字转换分辨率,该字节各位的意义如下:D7D6D5D4D3D2D1D0TMR1R011111温度值分辨率设置表与转换时间R1R0分辨率/位温度最大转换时间/ms00993.750110187.51011275.001112750.00配置寄存器用于确定温度值的数字转换分辨率,该字节各位的意义如639.4.5DS18B20的温度转换过程主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。ROM指令表指令约定代码功能读ROM33H读DS18B20温度传感器ROM中的编码(即64位地址)匹配ROM55H发出此命令之后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20使之作出响应,为下一步对该DS18B20的读写作准备搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址。为操作各器件做好准备跳过ROM0CCH忽略64位ROM地址,直接向DS1820发温度变换命令。适用于单片工作告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才作出响应9.4.5DS18B20的温度转换过程主机控制DS18B64RAM指令表指令约定代码功能温度变换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的供电模式。寄生供电时DS18B20发送“0”,外接电源供电时DS18B20发送“1”RAM指令表指令约定代码功能温度变换44H启动DS1659.4.6DS18B20与单片机的接口①进行远距离测温时,无需本地电源;②可以在没有常规电源的条件下读取ROM;③电路更加简洁,仅用一根I/O口来实现测温。单片寄生电源供电方式连接9.4.6DS18B20与单片机的接口①进行远距离测温时66改进的单片寄生电源供电图解决电流供应不足的问题,适合于多点测温应用,缺点就是要多占用一根I/O口线进行强上拉切换。改进的单片寄生电源供电图解决电流供应不足的问题,适合于多点测67单片外部电源供电方式单片外部电源供电方式68外部供电方式的多点测温电路图外部供电方式的多点测温电路图699.4.7DS18B20使用中的注意事项(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格地保证读写时序,否则将无法读取测温结果。对DS18B20操作最好采用汇编语言实现。(2)在DS1820的有关资料中均未提及单总线上所挂DS18B20数量的问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中却并非如此。当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。(3)连接DS18B20的总线电缆是有长度限制的。普通信号电缆50m,双绞线带屏蔽电缆可达150m.(4)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。9.4.7DS18B20使用中的注意事项(1)较小的硬件709.5MCS-51单片机与串行A/D、D/A的接口9.5.1MCS-51单片机与串行A/D芯片MAX1241的接口1.MAX1241的功能特点(1) +2.7~+5.25V单电源供电。(2) 12位分辨率。(3) 8脚DIP/SO封装。(4) 低功耗:Pmax=3mW(73KSPS),Pmin=5W(待机工作方式)。(5) 内部提供采样/保持电路。(6) 兼容于SPI/QSPI/MICROWIRE串行三线外设接口。(7) 内部提供转换时钟。MAX1241是MAXIM公司推出的一种单通道12位逐次逼近型串行A/D转换器,具有低功耗、高精度、转换速度快、体积小、接口简单等优点。9.5MCS-51单片机与串行A/D、D/A的接口9.5712.MAX1241的外部特性:关断控制输入端,可实现MAX1241两种工作模式的切换,接低电平,MAX1241工作于待机工作模式,输入电流可减小至10A以下,处于节能模式;接高电平,MAX1241工作于正常工作模式,可实现D/A转换。

REF:基准电压输入端,范围为0~VDD。GND:接地端。DOUT:数据输出端。片选端,低电平有效。SCLK:外部时钟脉冲输入端。2.MAX1241的外部特性:关断控制输入端,可实现MAX1723.MAX1241的工作过程(1)在 为高电平的条件下,每次使片选信号由高电平变为低电平则启动转换,此时时钟脉冲SCLK必须为低电平。(2)A/D转换启动后,内部控制逻辑切换采样/保持电路为保持状态,并使输出数据线DOUT变低,转换结束时DOUT由低变高。在整个转换期内,SCLK应保持低电平。3.MAX1241的工作过程(1)在 为高电平的条件73(3)一次转换结束后,内部控制逻辑将自动把采样/保持电路切换为捕捉状态。在外部时钟脉冲SCLK作用下读出数据,从时序图可以看出每一位数据是在时钟脉冲由高电平变低电平时送到数据输出端DOUT上,并一直保持到时钟脉冲下一次下降沿,因而每一位数据可以在时钟脉冲上升沿读出。在13个时钟脉冲后,数据读取结束,可将片选信号置为高电平,DOUT端输出高电平。只要使片选信号再次有效,就可以重新开始一轮新的A/D转换和读取过程。(4)数据读取完成后,如果仍然保持片选信号有效,则DOUT端始终输出低电平。(3)一次转换结束后,内部控制逻辑将自动把采样/保持电路切换744.MAX1241与单片机的接口MAX1241与8051单片机常见的接口电路如图4.MAX1241与单片机的接口MAX1241与8051单片75汇编语言程序:;功能:本程序主要是读出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.0DOUT EQU P1.1CS EQU P1.2SCLK EQU P1.3ORG 0000HMOV SP,#60HCLR EAMOV 20H,#0MOV 21H,#0LCALL DC ;调A/D转换子程序SJMP $DC:CLR SCLK;A/D转换子程序CLR CSSETB SHDN;使SHDN脚为高电平,MAX1241处于工作模式汇编语言程序:76HERE:JNB DOUT,HERESETB SCLKACALL QUSMOV 0BH,CACALL QUSMOV 0AH,CACALL QUSMOV 09H,CACALL QUSMOV 08H,CACALL QUSMOV 07H,CACALL QUSMOV 06H,CACALL QUSMOV 05H,CACALL QUSMOV 04H,CACALL QUSMOV 03H,CACALL QUSMOV 02H,CACALL QUSMOV 01H,CACALL QUSMOV 00H,CSETB CSCLR SHDN;使SHDN脚为低电平,MAX1241工作于关断模式RETQUS:CLR SCLKNOPSETB SCLKMOV C,DOUTRETENDHERE:JNB DOUT,HEREACALL77C语言程序/****************************************************************//*功能:本程序主要是读入MAX1241芯片的12位A/D转换值放在变量temp1中/*编码变换后所得值在变量volt中*//**************************************************************/#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbit SHDN=P1^0;sbit DOUT=P1^1;sbit CS=P1^2;sbit SCLK=P1^3; uint bdata temp;sbit temp00=temp^0;uint temp1;floatidatavolt;voiddelay1(uintx);uintadc();C语言程序78voidmain() //主程序{SP=0xcf;delay1(1000);EA=0;temp1=adc(); //读出MAX1241芯片的A/D转换值放入变量temp1中volt=(temp1/4096.0)*5.0; //编码转换成电压值while(1);}voiddelay1(uintx) //延时程序{uint j;uchar i;for(j=0;j<x;j++){for(i=0;i<125;i++){;}}}voidmain()79uintadc()//读A/D转换值函数,返回A/D转换的12位编码{ uchar i; temp=0; SCLK=0;CS=0;SHDN=1; while(!DOUT){;} for(i=0;i<13;i++) { temp=temp<<1; SCLK=0;_nop_();SCLK=1; temp00=DOUT; } CS=1;SHDN=0; return(temp);}uintadc()//读A/D转换809.5.2MCS-51单片机与串行D/A芯片MAX517的接口MAX517是美国MAXIM公司生产的8位电压输出型串行D/A芯片。它采用I2C总线接口,允许多个设备之间进行通信。1.MAX517的主要特点(1) 采用单一+5V电源供电。(2) I2C总线接口。(3) 8脚SO/DIP封装。(4) 上电复位所有锁存器。(5) 掉电模式电流:4A。(6) 参考电压最大为输入电压。9.5.2MCS-51单片机与串行D/A芯片MAX517812.MAX517的外部特性OUT0:D/A转换输出端。GND:接地。SCL:时钟线。SDA:数据线。AD1、AD0:通道选择端,用于选择哪个D/A通道的转换输出。由于MAX517只有一个D/A通道,所以使用时,这两个引脚通常接地。VDD:工作电源端。REF0(OUT1):参考电压输入端。2.MAX517的外部特性OUT0:D/A转换输出端。823.MAX517的工作时序MAX517使用I2C总线接口,信息传送只需要两根信号线:数据线SDA和时钟线SCL。在每一次信息的传输过程中,主控制器首先产生开始信号,然后给MAX517发送一个地址位字节,MAX517收到地址字节位后,给主控制器发送一个应答信号;其次,主控制器给MAX517发送一个控制位字节,MAX517收到控制字节位后,再给主控制器发送一个应答信号;最后,主控制器给MAX517发送8位的转换数据。MAX517收到数据后进行转换,再给主控制器发送一个应答信号;主控制器收到后产生结束信号。至此,一次转换过程完成。每个字节的传送都是高位在前低位在后。数据线SDA上每一位信息状态的改变只能发生在时钟线SCL为低电平的期间。3.MAX517的工作时序MAX517使用I2C总线接口,信83地址字节格式如下:BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT001011AD1AD00控制字节格式如下:BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0R2R1R0RSTPDXXA0地址字节格式如下:BIT7BIT6BIT5BIT4BIT3B844.MAX517与单片机的接口MAX517与单片机的常见连接图如图所示程序见书4.MAX517与单片机的接口MAX517与单片机的常见连接85作业习题2、4、7、9、10、11、12作业86第9章MCS-51单片机的其他接口9.1LCD与MCS-51接口液晶显示器按其功能可分为三类:笔段式液晶显示器、字符点阵式液晶显示器和图形点阵式液晶显示器。9.1.1字符型点阵式LCD液晶显示器有16字1行、16字2行、20字2行和40字2行等的字符液晶显示模块。这些LCM虽然显示字数各不相同,但是都具有相同的输入输出界面。本节将以162字符型液晶显示模块RT-1602C为例,详细介绍字符型液晶显示模块的应用。一.字符型液晶显示模块RT-1602C的外观与引脚第9章MCS-51单片机的其他接口9.1LCD与MC87RT-1602C采用标准的16脚接口,各引脚情况如下:第1脚:VSS,电源地第2脚:VDD,+5V电源第3脚:VL,液晶显示偏压信号第4脚:RS,数据/命令选择端,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W,读/写选择端,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。RT-1602C采用标准的16脚接口,各引脚情况如下:第1脚88第6脚:E,端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7,为8位双向数据线。第15脚:BLA,背光源正极第16脚:BLK,背光源负极二.字符型液晶显示模块RT-1602C的内部结构液晶显示模块RT-C1602C的内部结构可以分成三部份:一为LCD控制器,二为LCD驱动器,三为LCD显示装置,如图所示:LCD控制器LCD驱动器LCD显示装备VSSVDDVOVSV/WEDB0~DB7第6脚:E,端为使能端,当E端由高电平跳变成低电平时,液晶模89控制器采用HD44780,驱动器采用HD44100。HD44780集成电路的特点:1、可选择5×7或5×10点字符。2、HD44780不仅作为控制器而且还具有驱动40×16点阵液晶像素的能力,在外部加一HD44100外扩展多40路/列驱动,则可驱动16×2LCD。3、HD44780内藏显示缓冲区DDRAM、字符发生存储器(ROM)及用户自定义的字符发生器CGRAM。HD44780有80个字节的显示缓冲区,分两行,地址分别为00H~27H,40H~67H,它下实际显示位置的排列顺序跟LCD的型号有关,液晶显示模块RT-1602C的显示地址与实际显示位置的关系如图所示。控制器采用HD44780,驱动器采用HD44100。90HD44780内藏的字符发生存储器(ROM)已经存储了160个不同的点阵字符图形,如图所示:这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。比如数字“1”的代码是00110001B(31H),又如大写的英文字母“A”的代码是01000001B(41H),可以看出英文字母的代码与ASCII编码相同。要显示“1”时,我们只需将ASCII码31H存入DDRAM指定位置,显示模块将在相应的位置把数字“1”的点阵字符图形显示出来,我们就能看到数字“1”了。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论