《单片机原理、应用及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页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

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=0 x50; init(); wc51r(0 x80); /写入显示缓冲区起始地址为第1行第1列 wc51dd

14、r(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); /第2行第8列显示字母“E” while(1); /初始化函数 void init() wc51r(0 x01); /清屏 wc51r(0

15、x38); /使用8位数据,显示两行,使用5*7的字型 wc51r(0 x0e); /显示器开,光标开,字符不闪烁 wc51r(0 x06); /字符不动,光标自动右移一格 ,/检查忙函数 void fbusy() RS=0;RW=1; E=1;E=0; while (P1调A/D转换子程序 SJMP $ DC: CLR SCLK ;A/D转换子程序 CLR CS SETB SHDN ;使SHDN脚为高电平,MAX1241处于工作模式,HERE: JNB DOUT,HERE SETBSCLK ACALL QUS MOV 0BH,C ACALL QUS MOV 0AH,C ACALL QUS M

16、OV 09H,C ACALL QUS MOV 08H,C ACALLQUS MOV 07H,C ACALL QUS MOV 06H,C ACALL QUS MOV 05H,C ACALL QUS MOV 04H,C,ACALL QUS MOV 03H,C ACALL QUS MOV 02H,C ACALL QUS MOV 01H,C ACALL QUS MOV 00H,C SETB CS CLR SHDN ;使SHDN脚为低电平,MAX1241工作于关断模式 RET QUS: CLR SCLK NOP SETB SCLK MOV C,DOUT RET END,C语言程序 /*/ /* 功能:本

17、程序主要是读入MAX1241芯片的12位A/D转换值放在变量temp1中 /* 编码变换后所得值在变量volt中*/ /*/ #include #include #define uchar unsigned char #define uint unsigned int sbitSHDN=P10; sbitDOUT=P11; sbitCS=P12; sbitSCLK=P13; uintbdatatemp; sbittemp00=temp0; uinttemp1; float idata volt; void delay1(uint x); uint adc( );,void main() /主程

18、序 SP=0 xcf; delay1(1000); EA=0; temp1=adc(); /读出MAX1241芯片的A/D转换值放入变量temp1中 volt=(temp1/4096.0)*5.0;/编码转换成电压值 while(1); void delay1(uint x) /延时程序 uint j; uchar i; for (j=0;jx;j+) for (i=0;i125;i+); ,uint adc( ) /读A/D转换值函数, 返回A/D转换的12位编码 uchar i; temp=0; SCLK=0;CS=0;SHDN=1; while(!DOUT); for (i=0;i13;i+) temp=temp1; SCLK=0;_nop_();SCLK=1; temp00=DOUT; CS=1;SHDN=0; return(temp); ,9.5.2 MCS-51单片机与串行D/A芯片MAX517的接口,MAX517是美国MAXIM公司生产的8位电压输出型串行D/A芯片。它采用I2C总线接口,允许多个设备之间进行通信。,1MAX517的主要特点 (1)采用单一5V电源供电。 (2)

温馨提示

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

评论

0/150

提交评论