第7章80C51单片机常用接口电路设计_第1页
第7章80C51单片机常用接口电路设计_第2页
第7章80C51单片机常用接口电路设计_第3页
第7章80C51单片机常用接口电路设计_第4页
第7章80C51单片机常用接口电路设计_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

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

文档简介

1、2022-7-61第第7 7章章 80C5180C51单片机常用接口电路设计单片机常用接口电路设计显示器接口原理及应用显示器接口原理及应用7.1键盘接口原理及应用键盘接口原理及应用7.280C5180C51单片机的模拟量接口单片机的模拟量接口7.32022-7-62 在单片机应用系统中,显示器是最常用的输出设在单片机应用系统中,显示器是最常用的输出设备。常用的显示器有:备。常用的显示器有: 发光二极管(发光二极管(LED) 液晶显示器液晶显示器(LCD) 。 发光二极管(发光二极管(LED)又分为)又分为七段七段LED显示器(数显示器(数码管)和码管)和LED点阵显示屏。 液晶显示器液晶显示器

2、(LCD)又分为又分为字符液晶与图形液晶。字符液晶与图形液晶。v7.1 7.1 显示器接口原理及应用显示器接口原理及应用2022-7-637.1.1 七段七段LED显示器(数码管)显示器(数码管)v LED的工作原理的工作原理v多位多位LEDLED显示问题的解决显示问题的解决 2022-7-64LEDLED的工作原理的工作原理 七段式七段式LED显示部件显示部件(a)典型的七段式典型的七段式LED器件器件 (b) 共阳极共阳极LED (c) 共阴极共阴极LED2022-7-65 LEDLED的主要部分是七段发光管,分别为的主要部分是七段发光管,分别为a a、b b、c c、d d、e e、f

3、f、g g。有的产品还附带有小数点有的产品还附带有小数点DPDP。通通过发光段的不同组合,可以显示过发光段的不同组合,可以显示0 09 9和和A AF F共共1616个字母数字。个字母数字。 LED LED可分为:可分为:(1 1)共阳级结构)共阳级结构(2 2)共阴极结构)共阴极结构 2022-7-66 共阴极共阴极LED显示器的发光二极管的阴极连在一起,显示器的发光二极管的阴极连在一起,通常此公共阴极接地。当某个发光二极管的阳极通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。为高电平时,发光二极管点亮,相应的段被显示。 共阳极共阳极LED显示器的发光二

4、极管的阳极连在一起,显示器的发光二极管的阳极连在一起,通常此公共阳极接正电压,当某个发光二极管的通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段阴极接低电平时,发光二极管被点亮,相应的段被显示被显示 。2022-7-67数字到段码的译码方法将一个将一个4 4位二进制数据转换为位二进制数据转换为LEDLED的的7 7位位显示代码显示代码(段码段码)的方法有:的方法有: (1)专用芯片译码)专用芯片译码 (2) 软件译码软件译码2022-7-68用专用芯片完成段译码的示意用专用芯片完成段译码的示意(共阳极共阳极)2022-7-69软件译码法软件译码法将将0F(或

5、或09)对应的段码组成一个表,存)对应的段码组成一个表,存在存储器中;在存储器中;查表得段码查表得段码2022-7-610多位多位LEDLED显示问题的解决显示问题的解决 (1 1)问题的提出)问题的提出 实际使用时,往往用几个显示管实现多位显示,实际使用时,往往用几个显示管实现多位显示,如果每一个如果每一个LEDLED占用一个独立的输出端口,则占用一个独立的输出端口,则占用的输出端口就很多占用的输出端口就很多。一个端口一个端口一个端口一个端口一个端口一个端口一个端口一个端口一个端口一个端口2022-7-611(2)(2)问题的解决方法问题的解决方法硬件:采用公用的驱动电路硬件:采用公用的驱动

6、电路 软件:采用扫描方法软件:采用扫描方法 2022-7-6122022-7-613 一个数据通道作为位控制,该端口输出的选择信一个数据通道作为位控制,该端口输出的选择信号使某一位为高电平(共阳极)时,该位对应的号使某一位为高电平(共阳极)时,该位对应的LED便显示数据。便显示数据。 另一个数据通道输出段码,尽管所有的另一个数据通道输出段码,尽管所有的LED均收均收到了段码,但只有被位选择信号选中的那个到了段码,但只有被位选择信号选中的那个LED才显示数据,其他并不发光。才显示数据,其他并不发光。 2022-7-614 在程序中,软件按一定频率循环输出位选择信在程序中,软件按一定频率循环输出位

7、选择信号和对应的显示数据,利用眼睛的视觉惯性,号和对应的显示数据,利用眼睛的视觉惯性,从从LED显示器上便可见到相当稳定的数字显示。显示器上便可见到相当稳定的数字显示。2022-7-615七段七段LED数码管实验数码管实验v硬件连接情况硬件连接情况 在实验学习板中,有在实验学习板中,有8个共阴极的个共阴极的LED,位选信位选信号通过号通过P0口,口,再通过再通过74HC573驱动驱动LED。段段码通过码通过74HC595(串行输入,并行输出,节约(串行输入,并行输出,节约并口)输出至并口)输出至LED.v 实际上为了节约并口资源,实际上为了节约并口资源,P0口连接两个口连接两个74HC573,

8、另一片驱动点阵及交通灯电路。两,另一片驱动点阵及交通灯电路。两个驱动芯片的转换通过一个个驱动芯片的转换通过一个波段开关控制波段开关控制。当开。当开关拨到上边时,点阵驱动电路起作用,相反当拨关拨到上边时,点阵驱动电路起作用,相反当拨到下边时,数码管驱动电路起作用。到下边时,数码管驱动电路起作用。2022-7-616实验实验1v在左边第一个在左边第一个LED上显示数字上显示数字5步骤:步骤:(1)通过)通过74HC595送送5的段码的段码 (2)通过)通过P0口送位选信号口送位选信号2022-7-617include #define uchar unsigned charsbit clk=P27;

9、 /595时钟信号输入管脚时钟信号输入管脚sbit st =P26;/595锁存信号输入管脚锁存信号输入管脚sbit io =P25;/595数据信号输入管脚数据信号输入管脚2022-7-618void wr595(uchar ucdat)uchar i;clk=1;st=1;for(i=8;i0;i-) /循环八次,写一个字节循环八次,写一个字节io=ucdat&0 x01; /发送发送BIT0 位位clk=0;clk=1; /时钟上升沿时钟上升沿 ucdat=ucdat1; /要发送的数据右移,准备发送下一位要发送的数据右移,准备发送下一位st=0;st=1; /锁存数据锁存数据v

10、/名称:名称:wr595()wr595()向向595595发送一个字节的数据发送一个字节的数据v/功能:向功能:向595595发送一个字节的数据(先发低位)发送一个字节的数据(先发低位)2022-7-619Void main()while(1) uchar k=0 xb6; /5的段码的段码 wr595(k); P0=0XFEH;2022-7-620实验实验2 v让让8位数码管显示位数码管显示1、2、3、4、5、6、7、82022-7-621#include #include #define uchar unsigned char#define uint unsigned int#define

11、 SLED_BIT P0 /LED位选信号输入管脚位选信号输入管脚 sbit clk=P27; /595时钟信号输入管脚时钟信号输入管脚sbit st =P26;/595锁存信号输入管脚锁存信号输入管脚sbit io =P25;/595数据信号输入管脚数据信号输入管脚uchar code uc7leds=0 xfc,0 x60,0 xda,0 xf2, 0 x66,0 xb6,0 xbe,0 xe0, 0 xfe; /定义定义0-8段码段码uchar display_7leds8=1,2,3,4,5,6,7,8;2022-7-622/功能:向功能:向595发送一个字节的数据(先发低位)发送一个

12、字节的数据(先发低位)void wr595(uchar ucdat)uchar i;clk=1;st=1;for(i=8;i0;i-) /循环八次,写一个字节循环八次,写一个字节io=ucdat&0 x01; /发送发送BIT0 位位clk=0;clk=1; /时钟上升沿时钟上升沿 ucdat=ucdat1;/要发送的数据右移,准备发送下一位要发送的数据右移,准备发送下一位st=0;st=1; /锁存数据锁存数据 2022-7-623延迟程序延迟程序delay(uint dat)while(dat-);2022-7-624/显示显示display_7leds中的数据中的数据void w

13、r7leds(void)uchar i,ch; ch=0 x01; /位选信号初始化位选信号初始化for(i=0;i8;i+) /循环循环8次写次写8个数据个数据wr595(uc7ledsdisplay_7ledsi); /显示数据显示数据SLED_BIT=ch; /送位选信号送位选信号ch=1;/位选信号右移,准备在下一个数码管显示下一个数字位选信号右移,准备在下一个数码管显示下一个数字delay(300); /延时延时2022-7-625Void main()while(1) wr7leds();2022-7-626实验实验3 利用实验系统相关资源,在LED上(左边第1、2两个)显示秒信息

14、(60秒计时),要求左边第一个LED显示秒的高位值、第2个显示秒的低位值。初始值为00。2022-7-627v总体设计思路总体设计思路v设置二个变量存储秒值,初值皆为设置二个变量存储秒值,初值皆为0,设置一计,设置一计数变量进行中断次数计数,初值为数变量进行中断次数计数,初值为0。使用定时。使用定时器器/计数器(工作在方式计数器(工作在方式1)每)每0.025秒秒(25ms)产生一次中断,每次中断时,先中断次数加产生一次中断,每次中断时,先中断次数加1,并判断是否已达并判断是否已达40次,若没有达次,若没有达40次,直接显次,直接显示原秒值,若达示原秒值,若达40次,即,时间已过次,即,时间已

15、过1秒,改变秒,改变秒值,然后显示。秒值,然后显示。2022-7-628#include /包含头文件包含头文件#include #define uchar unsigned char#define uint unsigned intuchar num=0,shijian=0,miao1=0,miao2=0;/74HC595与单片机连接口与单片机连接口sbit clk=P27; /595时钟信号输入管脚时钟信号输入管脚sbit st =P26;/595锁存信号输入管脚锁存信号输入管脚sbit io =P25;/595数据信号输入管脚数据信号输入管脚/定义定义P0口口sbit P00=P00;s

16、bit P01=P01;2022-7-629uchar code uc7leds16=0 xfc,0 x60,0 xda,0 xf2 0 x66,0 xb6,0 xbe,0 xe0, 0 xfe,0 xe6,0 xee,0 x3e, 0 x9c,0 x7a,0 x9e,0 x8E;void time0_init();void wr595(uchar ucdat); void wrleds(void);void delay(uint dat); 2022-7-630void main() /主函数主函数 time0_init(); /调用定时器调用定时器0初始化子函数初始化子函数 while(1

17、); /等待中断等待中断2022-7-631void timer0() interrupt 1 /每中断一次每中断一次num加加1,若,若num到到40,改,改变变miao1,miao2 TH0=(65536-23040)/256; /定时器赋初值定时器赋初值,每每0.025秒中断一次秒中断一次 TL0=(65536-23040)%256;num+; if(num=40) num=0; shijian+; miao1=shijian/10; miao2=shijian%10;if(shijian=60) shijian=0; wrleds(); /显示显示miao1,miao2 2022-7-

18、632void time0_init() TMOD=0X01;/定时器定时器0方式方式1 TH0=(65536-23040)/256; /定时器赋初值定时器赋初值,每每0.025秒中断一次秒中断一次 TL0=(65536-23040)%256; EA=1;/开总中断开总中断 ET0=1;/开定时器开定时器0中断中断 TR0=1; /启动定时器启动定时器02022-7-633void wr595(uchar ucdat) /写写595函数函数uchar i;clk=1;st=1;for(i=8;i0;i-) /循环八次,写一个字节循环八次,写一个字节io=ucdat&0 x01; /发送

19、发送BIT0 位位clk=0;clk=1; /时钟上升沿时钟上升沿 ucdat=ucdat1;/要发送的数据右移,准备发送下一要发送的数据右移,准备发送下一位位st=0;st=1; /锁存数据锁存数据2022-7-634void wrleds(void)uchar ch1,ch2; ch1=0 xfe;ch2=0 xfd; /位选信号初始化位选信号初始化wr595(uc7ledsmiao1); /传送显示数据传送显示数据P0=ch1; /送位选信号送位选信号delay(500); /延时,(决定亮度,和闪烁)延时,(决定亮度,和闪烁) wr595(uc7ledsmiao2); /传送显示数据传

20、送显示数据P0=ch2; /送位选信号送位选信号 delay(500); /延时,(决定亮度,和闪烁)延时,(决定亮度,和闪烁) void delay(uint dat) while(dat-);2022-7-6357.1.2 LED点阵显示屏点阵显示屏 LED显示屏是一种由半导体显示屏是一种由半导体发光二极管发光二极管构成的构成的显显示点阵示点阵.通过控制每个通过控制每个LED的亮灭实现的亮灭实现图形图形或或字符字符的显示。由于的显示。由于LED显示屏亮度高、视角广、工显示屏亮度高、视角广、工作电压低、功耗小、寿命长、耐冲击、性能稳定作电压低、功耗小、寿命长、耐冲击、性能稳定,因而被广泛应用

21、于机场、商场、医院、宾馆等公因而被广泛应用于机场、商场、医院、宾馆等公共场所。共场所。 根据连接情况,可分为根据连接情况,可分为共阳极共阳极、共阴极共阴极。2022-7-6362022-7-637显示原理显示原理如果采用动态扫描方式如果采用动态扫描方式,扫描电路就可以实现多行发扫描电路就可以实现多行发光二极管共用一套驱动器。动态扫描光二极管共用一套驱动器。动态扫描,简单说就是简单说就是逐行轮流点亮。(逐行轮流点亮。(类似于多位类似于多位LED,可以把,可以把LED点阵显示屏看成是多位点阵显示屏看成是多位LED的特殊形式的特殊形式)。)。具体以具体以88点阵模块为例显示字符点阵模块为例显示字符“

22、B”的过程的过程2022-7-638v即先送出对应于第一行发光二极管亮灭的列数据即先送出对应于第一行发光二极管亮灭的列数据0FFH并锁存并锁存,然后选通第一行然后选通第一行,即送行数据即送行数据80H,延时一段时间后延时一段时间后,送行数据送行数据00H,第一帧显示结束第一帧显示结束;再送第二行的列数据再送第二行的列数据87H并锁存并锁存,然后选通第二然后选通第二行行,即送行数据即送行数据40H,点亮相同时间后点亮相同时间后,送行数据送行数据00H,相应二极管熄灭相应二极管熄灭,第二帧显示结束第二帧显示结束;以此类推以此类推,第第8行显示之后行显示之后,又重新点亮第一行又重新点亮第一行,周而复

23、始。当周而复始。当这样轮回的速度足够快这样轮回的速度足够快(每秒每秒24次以上次以上)时时,就能就能看到显示屏上稳定的字符看到显示屏上稳定的字符B了。了。2022-7-6392022-7-640实验实验1 在在LED点阵上显示点阵上显示52022-7-641#include #include #define uchar unsigned char#define uint unsigned int#define SLED_BIT P0 /LED位选信号输入管脚位选信号输入管脚 sbit clk=P27; /595时钟信号输入管脚时钟信号输入管脚sbit st =P26;/595锁存信号输入管脚锁

24、存信号输入管脚sbit io =P25;/595数据信号输入管脚数据信号输入管脚uchar code uc7leds=0 x00,0 x00,0 x72,0 x51,0 x51,0 x51,0 x4E,0 x00;/5的字模码(共阴极)的字模码(共阴极)2022-7-642/功能:向功能:向595发送一个字节的数据(先发低位)发送一个字节的数据(先发低位)void wr595(uchar ucdat)uchar i;clk=1;st=1;for(i=8;i0;i-) /循环八次,写一个字节循环八次,写一个字节io=ucdat&0 x01; /发送发送BIT0 位位clk=0;clk=1

25、; /时钟上升沿时钟上升沿 ucdat=ucdat1;/要发送的数据右移,准备发送下一位要发送的数据右移,准备发送下一位st=0;st=1; /锁存数据锁存数据 2022-7-643延迟程序延迟程序delay(uint dat)while(dat-);2022-7-644/显示显示display_7leds中的数据中的数据void wr7leds(void)uchar i,ch; ch=0 x01; /位选信号初始化位选信号初始化for(i=0;i8;i+) /循环循环8次写次写8个数据个数据wr595(uc7ledsi); /显示数据显示数据SLED_BIT=ch; /送位选信号送位选信号c

26、h0;i-) /循环八次,写一个字节循环八次,写一个字节io=ucdat&0 x01; /发送发送BIT0 位位clk=0;clk=1; /时钟上升沿时钟上升沿 ucdat=ucdat1; /要发送的数据右移,准备发送下一位要发送的数据右移,准备发送下一位st=0;st=1; /锁存数据锁存数据2022-7-647实验实验2 以以1s间隔循环显示间隔循环显示0-9#include #include #define uchar unsigned char/#管脚定义管脚定义#sbit clk=P27; /595时钟信号输入管脚时钟信号输入管脚sbit st =P26;/595锁存信号输入

27、管脚锁存信号输入管脚sbit io =P25;/595数据信号输入管脚数据信号输入管脚2022-7-648/要显示的数据代码要显示的数据代码uchar code led_88seg80= 0 x00,0 x00,0 x3E,0 x41,0 x41,0 x41,0 x3E,0 x00, /0 0 x00,0 x00,0 x01,0 x21,0 x7F,0 x01,0 x01,0 x00, /1 0 x00,0 x00,0 x27,0 x45,0 x45,0 x45,0 x39,0 x00, /2 0 x00,0 x00,0 x22,0 x49,0 x49,0 x49,0 x36,0 x00, /

28、3 0 x00,0 x00,0 x0C,0 x14,0 x24,0 x7F,0 x04,0 x00, /4 0 x00,0 x00,0 x72,0 x51,0 x51,0 x51,0 x4E,0 x00, /5 0 x00,0 x00,0 x3E,0 x49,0 x49,0 x49,0 x26,0 x00, /6 0 x00,0 x00,0 x40,0 x40,0 x40,0 x4F,0 x70,0 x00, /7 0 x00,0 x00,0 x36,0 x49,0 x49,0 x49,0 x36,0 x00, /8 0 x00,0 x00,0 x32,0 x49,0 x49,0 x49,0

29、x3E,0 x00; /92022-7-649uchar i=0;uchar t=0;/点阵显示函数时间点阵显示函数时间/延时函数延时函数void delay(uchar i) uchar j; for(;i0;i-) for(j=0;j0;i-) /循环八次,写一个字节循环八次,写一个字节io=ucdat&0 x01; /发送发送BIT0 位位clk=0;clk=1; /时钟上升沿时钟上升沿 ucdat=ucdat1; /要发送的数据右移,准备发送要发送的数据右移,准备发送下一位下一位st=0;st=1; /锁存数据锁存数据2022-7-651void time0_init() /T

30、0初始化函数初始化函数 TMOD=0X01;/定时器定时器0方式方式1 TH0=(65536-23040)/256; /定时器赋初值定时器赋初值,每每0.025秒中断一次秒中断一次 TL0=(65536-23040)%256; EA=1;/开总中断开总中断 ET0=1;/开定时器开定时器0中断中断 TR0=1; /启动定时器启动定时器02022-7-652void main(void) uchar j; uchar wx;/位选信号控制位选信号控制 time0_init(); while(1) wx=0 x01; for(j=i;ji+8;j+) wr595(led_88segj); P0=w

31、x; delay(2); wx=1; 2022-7-653/定时器中断定时器中断0服务子函数服务子函数void timer0() interrupt 1 TH0=(65536-23040)/256; TL0=(65536-23040)%256;/定时器赋初值定时器赋初值,每每0.025秒秒中断一次中断一次 t+; if(t=40) t=0; i+=8;/显示下一列的段码值显示下一列的段码值 if(i=80) i=0; 2022-7-654汉字字模的生成汉字字模的生成 由于要显示内容的不确定性由于要显示内容的不确定性,汉字字模的生成仅靠汉字字模的生成仅靠 用户自己构建是不可能的。如果依靠单片机完

32、成用户自己构建是不可能的。如果依靠单片机完成字模的创建和显示控制字模的创建和显示控制,则由于单片机运算能力有则由于单片机运算能力有限限,是无法实现汉字的选定和实时显示。为此利用是无法实现汉字的选定和实时显示。为此利用PC机和相关软件机和相关软件,预先生成所要显示汉字的字模。预先生成所要显示汉字的字模。 通常可以利用通常可以利用UCDOS的汉字库构造需要显示的的汉字库构造需要显示的 字模。字模。2022-7-655 在在UCDOS汉字库中汉字均以行字模的形式存储汉字库中汉字均以行字模的形式存储,只要确只要确定了汉字在字库中的位置和字模的长度定了汉字在字库中的位置和字模的长度,就可以将需要汉就可以

33、将需要汉字的行字模读出。字的行字模读出。 汉字在字库中的位置可以通过汉字的机内码根据如下公式汉字在字库中的位置可以通过汉字的机内码根据如下公式加以确定加以确定: Offset = (94m_H+m_L)32 式中式中:m_H代表以代表以16进制表示的汉字机内码的高进制表示的汉字机内码的高8位位,m_L代表机内码的低代表机内码的低8位。位。 字模的长度则是由显示所用的点阵决定的字模的长度则是由显示所用的点阵决定的,以常用的以常用的1616点阵字模为例一个汉字字模需要点阵字模为例一个汉字字模需要16168=32 B。因此从字模的开始依次读取。因此从字模的开始依次读取32个。个。2022-7-656

34、v采用采用PCtoLCD 2002字模软件字模软件,可以方便地生成可以方便地生成字模数据字模数据,如图如图3所示。将生成的字模数据复制到所示。将生成的字模数据复制到系统源系统源.2022-7-6572022-7-658 液晶显示器是单片机应用系统中一种常用的人机液晶显示器是单片机应用系统中一种常用的人机接口形式。接口形式。 液晶显示器(液晶显示器(LCD),的主要原理是以电流刺激),的主要原理是以电流刺激液晶分子产生点、线、面并配合背部灯管构成画液晶分子产生点、线、面并配合背部灯管构成画面。面。 各种型号的液晶通常是按显示字符的行数或液晶各种型号的液晶通常是按显示字符的行数或液晶点阵的行、列数

35、来命名。如点阵的行、列数来命名。如1602:每行:每行16个字个字符,可以显示符,可以显示2行。类似的命名有行。类似的命名有0802、1601 7.1.3 LCD16022022-7-659v如如12232液晶属于图形液晶,该液晶由液晶属于图形液晶,该液晶由122X32个点来显示各种图形。可以通过程序控个点来显示各种图形。可以通过程序控制每个点显示或不显示。类似的命名有:制每个点显示或不显示。类似的命名有:12864,根据客户需要,厂家可以设计出任意数组合的点根据客户需要,厂家可以设计出任意数组合的点阵显示。阵显示。v液晶显示器具有液晶显示器具有体积小、重量轻、功耗低、显示体积小、重量轻、功耗

36、低、显示操作简单操作简单等特点。等特点。2022-7-660v弱点:温度范围窄。通用型液晶正常工作温度为弱点:温度范围窄。通用型液晶正常工作温度为0+55 ,存储温度范围:,存储温度范围:-20 +60 v宽温级液晶,正常工作温度为宽温级液晶,正常工作温度为-20+70 ,存储温度范围:存储温度范围:-30 +80 2022-7-661 液晶显示器可分为三类:液晶显示器可分为三类:字段式字段式、字符点阵式和字符点阵式和点阵图形式点阵图形式液晶显示器。液晶显示器。 v字符点阵式:字符点阵式:LCD1602(单片机应用系统中广泛单片机应用系统中广泛使用)使用)2022-7-662LCD1602LC

37、D1602模块的外形与引脚模块的外形与引脚 共共1616根引脚,根引脚,引脚引脚0101:VSSVSS,接地引脚,接地引脚引脚引脚0202:VDDVDD,接,接+5V+5V电源电源引脚引脚0303:VLVL,对比度调整端,对比度调整端引脚引脚0404:RS,RS,数据数据/ /命令寄存器选择端,命令寄存器选择端,1 1:数据;:数据;0 0:命令:命令引脚引脚0505:RWRW,读,读/ /写选择端,写选择端,1 1:读;:读;0 0:写:写引脚引脚0606:E E,使能端,高电平跳变成低电平时,液晶模块执行,使能端,高电平跳变成低电平时,液晶模块执行命令命令引脚引脚07071414:D0D0

38、D7D7,8 8位双向数据总线位双向数据总线引脚引脚1515:BLABLA,背光正极,背光正极引脚引脚1616:BLKBLK,背光负极,背光负极 2022-7-663v结构框图结构框图 LCD1602LCD1602模块的组成模块的组成 HD44780HD44780是典型的液晶显示控制器,集控制与驱动于是典型的液晶显示控制器,集控制与驱动于一体,一体,本身可以驱动本身可以驱动单行单行1616字符字符或或2 2行行8 8字符,字符,对于对于2 2行行1616字符字符的显示的显示要增加要增加HD44100HD44100驱动器驱动器 2022-7-664vHD44780 由字符发生器由字符发生器CGR

39、CGRO OM M、自定义字符发生器、自定义字符发生器CGRCGRA AM M和显示和显示缓冲区缓冲区DDRAMDDRAM组成。组成。 v CGROMCGROM存储了不同的点阵字符图形(包括数字,英文字母存储了不同的点阵字符图形(包括数字,英文字母的大小写,常用的符号等),每一个字符都有一个的大小写,常用的符号等),每一个字符都有一个固定的固定的代码代码(数字,英文字母的大小写为其(数字,英文字母的大小写为其ASCIIASCII码)。码)。 2022-7-665v DDRAMDDRAM有有8080个单元,但第个单元,但第1 1行仅用行仅用00H00H0FH0FH单元,第单元,第2 2行仅用行仅

40、用40H40H4FH4FH单元单元 。DDRAMDDRAM单元存放的是要单元存放的是要显示字符的编码显示字符的编码(ASCIIASCII码),控制器码),控制器HD44780HD44780以该编码为以该编码为索引索引,到,到CGROMCGROM(或(或CGRAM)CGRAM)中中取取点阵字形点阵字形送液晶板显示。送液晶板显示。 2022-7-666 LCD1602 LCD1602模块的命令模块的命令 序号序号指令指令RSR/WD7D6D5D4D3D2D1D01清屏清屏00000000012光标归位光标归位000000001*3输入模式设置输入模式设置00000001I/DS4显示与不显示设置显

41、示与不显示设置0000001DCB5光标或屏幕内容移位光标或屏幕内容移位选择选择000001S/CR/L*6功能设置功能设置00001DLNF*7CGRAM地址设置地址设置0001CGRAM地址地址8DDRAM地址设置地址设置001DDRAM地址地址9读忙标志和计数器地读忙标志和计数器地址设置址设置01BF计数器地址计数器地址10写写DDRAM或或CGROM10 要写的数据要写的数据11读读DDRAM或或CGROM11 读出的数据读出的数据2022-7-667v命令说明命令说明命令命令1:清屏(:清屏(DDRAM全写空格)。光标回到屏全写空格)。光标回到屏幕左上角,地址计数器设置为幕左上角,地

42、址计数器设置为0命令命令2:光标回到屏幕左上角:光标回到屏幕左上角.命令命令3:输入模式设置,设置每写入一个数据字节:输入模式设置,设置每写入一个数据字节后,光标的移动方向及字符是否移动。后,光标的移动方向及字符是否移动。I/D=1,S=0,光标右移一格且计数器加光标右移一格且计数器加1(常用)(常用)2022-7-668v命令命令4:显示与不显示设置。:显示与不显示设置。D=1,开显示;开显示;D=0,关显示。关显示。C=1,有光标;有光标;C=0,无光标。,无光标。vB=1,光标闪烁,光标闪烁,B=0光标不闪烁。光标不闪烁。v命令命令5:光标或屏幕内容移位选择。:光标或屏幕内容移位选择。S

43、/C=1,移,移动屏幕内容,动屏幕内容,S/C=0,移动光标。,移动光标。R/L=1,右右移,移,R/L=0,左移。左移。v命令命令6:功能设置。:功能设置。DL=0:4位数据接口,位数据接口,DL=1:8位数据接口。位数据接口。N=0,单行显示,单行显示,N=1,双行显示。双行显示。F=0:5x7点阵,点阵,F=1:5X10点阵点阵2022-7-669v命令命令7:CGRAM地址设置地址设置v命令命令8:DDRAM地址设置地址设置v命令命令9:读忙标志和计数器地址:读忙标志和计数器地址,BF=1,忙,此时忙,此时模块不能接收命令或数据。模块不能接收命令或数据。BF=0,不忙不忙(理论上,在向

44、模块写命令或数据时,先要检测为(理论上,在向模块写命令或数据时,先要检测为不忙状态。实际中,可通过适当延迟,而不需检不忙状态。实际中,可通过适当延迟,而不需检测)测)命令命令10:写:写DDRAM或或CGROM.要配合地址设置要配合地址设置命令。命令。命令命令11:读:读DDRAM或或CGROM.要配合地址设置要配合地址设置命令。命令。2022-7-670LCD1602的初始化的初始化vLCD1602在使用前先进初始化:在使用前先进初始化:1、清屏、清屏2、功能设置、功能设置3、显示与不显示设置、显示与不显示设置4、输入模式设置、输入模式设置2022-7-671v接口电路接口电路 LCD160

45、2LCD1602模块的接口示例模块的接口示例 2022-7-672实验实验1 LCD1602显示显示#include#define uchar unsigned char#define uint unsigned intsbit rs=P27;sbit lcden=P25;sbit lcdrw=P26;uchar table1=I am a student;uchar table2=I like studying;2022-7-673/延迟程序延迟程序void delay(uint x)uint a,b;for(a=x;a0;a-)for(b=10;b0;b-); 2022-7-674/写命令至写命令至LCD1602void write_com(uchar com)P0=com;rs=0;lcden=0;delay(10);lcden=1;delay(10);lcden=0;2022-7-675/写数据至写数据至DDRAMvoid write_date(uchar date)P0=date;rs=1;lcden=0;delay(10);lcden=1;delay(10);

温馨提示

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

评论

0/150

提交评论