第8章-MCS-51单片机的接口技术[103页]课件.ppt

上传人(卖家):三亚风情 文档编号:3526387 上传时间:2022-09-11 格式:PPT 页数:103 大小:4.29MB
下载 相关 举报
第8章-MCS-51单片机的接口技术[103页]课件.ppt_第1页
第1页 / 共103页
第8章-MCS-51单片机的接口技术[103页]课件.ppt_第2页
第2页 / 共103页
第8章-MCS-51单片机的接口技术[103页]课件.ppt_第3页
第3页 / 共103页
第8章-MCS-51单片机的接口技术[103页]课件.ppt_第4页
第4页 / 共103页
第8章-MCS-51单片机的接口技术[103页]课件.ppt_第5页
第5页 / 共103页
点击查看更多>>
资源描述

1、单片机技术及应用单片机技术及应用授课人:庄友谊授课人:庄友谊8.4 单片机与D/A转换器的接口与应用 8.1 键盘接口技术 8.2 LED显示接口技术 8.6 多通道模拟量数据采集系统设计案例 8.3 LCD显示接口技术 8.5 单片机与A/D转换器的接口与应用 8.1.1 按键的特性按键的特性 单片机键盘通常使用机械触点式按键开关,其主要功单片机键盘通常使用机械触点式按键开关,其主要功能是把机械上的通断转换成为电气上的逻辑关系。也就是能是把机械上的通断转换成为电气上的逻辑关系。也就是说,它能提供标准的说,它能提供标准的TTL逻辑电平,以便与通用数字系统逻辑电平,以便与通用数字系统的逻辑电平相

2、一致。的逻辑电平相一致。1、简单的按键识别电路:、简单的按键识别电路:2、键盘开关机械触点的断开、闭合的输出波形图:、键盘开关机械触点的断开、闭合的输出波形图:为了克服按键触点机械抖动所致的检测误判,必须采取去为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较抖动措施。这一点可从硬件、软件两方面予以考虑。在键数较少时,可采用硬件去抖,而当键数较多时,采用软件去抖。少时,可采用硬件去抖,而当键数较多时,采用软件去抖。在硬件上可采用在硬件上可采用在键输出端加基本在键输出端加基本RS构成去抖动电路。构成去抖动电路。3、硬件去抖、硬件去抖去抖动电路

3、波形图:去抖动电路波形图:如果按键较多,常用软件方如果按键较多,常用软件方法去抖动,即检测出键闭合后执法去抖动,即检测出键闭合后执行一个延时程序,产生行一个延时程序,产生510 ms的延时;让前沿抖动消失后,再的延时;让前沿抖动消失后,再一次检测键的状态,如果一次检测键的状态,如果仍保持仍保持闭合状态电平,则确认为真正有闭合状态电平,则确认为真正有键按下。当检测到按键释放后,键按下。当检测到按键释放后,也要给也要给510 ms的延时,待后沿的延时,待后沿抖动消失后,才能转入该键的处抖动消失后,才能转入该键的处理程序。理程序。延时等待延时等待10ms 仍有按键信号?仍有按键信号?Y 有按键信号?

4、有按键信号?NYN键盘处理键盘处理 按键释放?按键释放?NY4、软件去抖、软件去抖8.1.2 独立键盘接口技术独立键盘接口技术键盘可分为两类:独立式键盘和矩阵式键盘。键盘可分为两类:独立式键盘和矩阵式键盘。独立式键盘:独立式键盘:各个键相互独立,每个按键独立地与一根数据输入各个键相互独立,每个按键独立地与一根数据输入线相连接,线相连接,通过通过检测输入线的电平状态检测输入线的电平状态可很容易判断哪可很容易判断哪个键被按下。个键被按下。此接口此接口适于键数较少适于键数较少或或操作速度较高操作速度较高的场合。的场合。可以工作在可以工作在查询方式,查询方式,也可以工作在也可以工作在中断方式。中断方式

5、。例例:以查询方式为例,设:以查询方式为例,设S1闭合将闭合将20H单元的内容清单元的内容清0,S2闭合将闭合将20H单元内容加单元内容加1,S3闭合将闭合将20H单元内容减单元内容减1。KEY:MOV P1,#0FFH ;置;置P1口为输入方式口为输入方式 MOVA,P1 CPLA ANLA,#07H ;屏蔽高;屏蔽高5位位JZKEY ;无键闭合则返回;无键闭合则返回 ACALL D10S ;延时去抖动;延时去抖动MOVA,P1 CPLA ANLA,#07H ;屏蔽高;屏蔽高5位位JZKEY ;无键闭合则返回;无键闭合则返回CJNEA,#01H,KEY1MOV20H,#00H ;S1键闭合,

6、键闭合,20H单元请单元请0SJMPKEYKEY1:CJNEA,#02H,KEY2INC20H ;S2键闭合,键闭合,20H单元加单元加1SJMPKEYKEY2:CJNEA,#04H,KEYDEC20H ;S3键闭合,键闭合,20H单元减单元减1SJMPKEY END 8.1.3 行列式行列式(矩阵式矩阵式)键盘接口技术键盘接口技术 由由行线和列线组成行线和列线组成,按键位于行、列的交叉点上。,按键位于行、列的交叉点上。按键数目较多的场合,行列式键盘与独立式键盘相比,要按键数目较多的场合,行列式键盘与独立式键盘相比,要节省很多的节省很多的I/O口线。口线。行线行线-扫描线,有上拉电阻扫描线,有

7、上拉电阻列线列线-回读线回读线(1)判别键盘中有无键按下:判别键盘中有无键按下:方法:方法:向向扫描线扫描线(图中水平线图中水平线)输出全扫描字输出全扫描字00H,把全部行,把全部行线置为低电平,然后将线置为低电平,然后将回读线回读线的电平状态读入累加器的电平状态读入累加器A中。中。如果有按键按下如果有按键按下,总会有一根列线电平被拉至低电平,从而,总会有一根列线电平被拉至低电平,从而使列输入不全为使列输入不全为1。(2)判断键盘中哪一个键被按下:判断键盘中哪一个键被按下:方法一:方法一:扫描法扫描法 依次给依次给扫描线扫描线送低电平,然后查所有送低电平,然后查所有回读线回读线状态,称行状态,

8、称行扫描。如果全为扫描。如果全为1,则所按下的键不在此行;如果不全为,则所按下的键不在此行;如果不全为1,则所按下的键必在此行,而且是在与零电平列线相交的交点则所按下的键必在此行,而且是在与零电平列线相交的交点上的那个键。上的那个键。1.行列式键盘接口及工作原理:行列式键盘接口及工作原理:在扫描过程中,当发现某行有键按下,也就是输入的列在扫描过程中,当发现某行有键按下,也就是输入的列线中有一位为线中有一位为0时,便可判别闭合按键所在列的位置,根据时,便可判别闭合按键所在列的位置,根据行线位置和列线位置就能判断按键在矩阵中的位置,知道是行线位置和列线位置就能判断按键在矩阵中的位置,知道是哪一个键

9、按下。哪一个键按下。如何将你知道的第如何将你知道的第i行、第行、第j列按键被按下的信息存放在列按键被按下的信息存放在A中?以什么形式存放?中?以什么形式存放?读图并归纳,得出:读图并归纳,得出:按键的值按键的值=行号行号每行的按键个数每行的按键个数+列号。列号。计数译码法计数译码法第第0行的键值为:行的键值为:0行行4+列号(列号(03)为)为0、1、2、3;第第1行的键值为:行的键值为:1行行4+列号(列号(03)为)为4、5、6、7;第第2行的键值为:行的键值为:2行行4+列号(列号(03)为)为8、9、A、B;第第3行的键值为:行的键值为:3行行4+列号(列号(03)为)为C、D、E、F

10、。44键盘行首键号为键盘行首键号为0、4、8、C,列号为,列号为0,1,2,3。此公式是针对例图,若行、列与扫描线、回读线的对应关系此公式是针对例图,若行、列与扫描线、回读线的对应关系改变了,公式要改变。改变了,公式要改变。行行首首键键号号方法二:方法二:线反转法线反转法 根据键码和键值的对应关系通过查表的方法得到。根据键码和键值的对应关系通过查表的方法得到。例如当键码例如当键码“A”键按下时,先让列线全部输出低电平,键按下时,先让列线全部输出低电平,读行线,读行线,P1.2变低电平,结果为变低电平,结果为00001011;再让行线全;再让行线全部输出低电平,读取列线,部输出低电平,读取列线,

11、P1.6变低电平即变低电平即10110000;将两次读取结果合并成一个字节,得到键值将两次读取结果合并成一个字节,得到键值BBH。键码计算:键码计算:将上面表格中的将上面表格中的16个按键的键值依次放到程序表个按键的键值依次放到程序表格中,并在程序中设置一个计数器,键码通过查表计数的方格中,并在程序中设置一个计数器,键码通过查表计数的方法获取,先将读取的键值与程序表格中的第法获取,先将读取的键值与程序表格中的第1个键值进行比个键值进行比较,如果不相等,则计数器加较,如果不相等,则计数器加1,如果相等则相应的,如果相等则相应的计数器的值就是键码。计数器的值就是键码。2.行列式键盘的软件设计(反转

12、法)行列式键盘的软件设计(反转法)按键识别的工作过程如下:按键识别的工作过程如下:判断键盘中是否有键按下;判断键盘中是否有键按下;若有键按下,则调用延时子程序去抖动,再次读键;若有键按下,则调用延时子程序去抖动,再次读键;确定按键的物理位置并计算码;确定按键的物理位置并计算码;最后等待键的释放。最后等待键的释放。KEY:MOVP1,#0F0H ;置;置P1口低口低4位全位全0,高,高4位输入状态位输入状态 MOVA,P1 ;读取键状态;读取键状态 CJNEA,#0F0H,KEY2 ;是否有键按下;是否有键按下KEY1:AJMPKEYKEY2:ACALL DELAY10 ;延时去抖动;延时去抖动

13、 MOVP1,#0F0H MOVA,P1;再次读取键状态;再次读取键状态 CJNE A,#0F0H,KEY3 AJMPKEY KEY3:ANL A,#0F0H MOVB,A;存列值;存列值 MOVP1,#0FH MOVA,P1;读行值;读行值 ANLA,#0FH ORL A,B MOVB,A;存键码;存键码MOVR1,#10HMOVR2,#0MOVDPTR,#KEYTAB;键码表首地址;键码表首地址KEY4:MOVA,R2MOVC A,A+DPTR;查表比较,计算键值;查表比较,计算键值CJNEA,B,KEY6MOVP1,#0F0H ;等待按键释放;等待按键释放KEY5:MOVA,P1CJNE

14、A,#0F0H,KEY5MOVA,R2RETKEY6:INCR2DJNZR1,KEY4AJMPKEY KEYTAB:DB0EEH,0DEH,0BEH,7EH;键码表;键码表DB0EDH,0DDH,0BDH,7DHDB0EBH,0DBH,0BBH,7BHDB0E7H,0D7H,0B7H,77H END矩阵式键盘按键的处理过程:矩阵式键盘按键的处理过程:(1)键盘处理程序的功能)键盘处理程序的功能 a、首先应判断键盘中有无键按下、首先应判断键盘中有无键按下 b、消除键的抖动、消除键的抖动 c、求键号:、求键号:对对I/O口中的口中的D3D0依次输出下列扫描信号依次输出下列扫描信号:D3 D2 D1

15、 D0第一次第一次 1 1 1 0第二次第二次 1 1 0 1第三次第三次 1 0 1 1 第四次第四次 0 1 1 1 (2)中断扫描方式)中断扫描方式8.1.4 用用8255实现键盘接口:实现键盘接口:1.接口电路逻辑图:接口电路逻辑图:2.判断有无闭合键的子程序:判断有无闭合键的子程序:KS:MOV DPTR,#8000HMOV A,#00H;A口送口送00HMOVX DPTR,AINC DPTRINC DPTR;C口地址口地址MOVX A,DPTR;读读C口口CPL A;对对A求反求反ANL A,#0FH;取低取低4位位RET3.键盘扫描程序:键盘扫描程序:KEY:ACALL KS ;

16、检查是否有键闭合检查是否有键闭合JNZ LK1;A非非0,转移,转移ACALL DIR;驱动显示器(延时驱动显示器(延时6ms)AJMP KEYLK1:ACALL DIR;有键闭合有键闭合2次驱动显示器次驱动显示器ACALL DIR;延时延时6ms,去抖动,去抖动ACALL KS ;再检查是否有键闭合再检查是否有键闭合JNZ KL2;有键闭合,转移有键闭合,转移ACALL DIRAJMP KEY;无键闭合,延时无键闭合,延时6ms后转移后转移LK2:MOV DPTR,#8000H;A口地址口地址MOV A,R2MOVX DPTR,A;扫描初值送;扫描初值送A口,开始扫描口,开始扫描INC DP

17、TRINC DPTR;C口地址口地址MOVX A,DPTR;读读C口口JB ACC.0,LONE;ACC.0=1,第,第0列无键闭合,转移列无键闭合,转移MOV A,#00H;装第装第0列状态码初始值列状态码初始值AJMP LKPLONE:JB ACC.1,LTWO;ACC.1=1,第,第1列无键闭合,转移列无键闭合,转移MOV A,#08H;装第装第1列状态码初始值列状态码初始值AJMP LKPLTWO:JB ACC.2,LTHR;ACC.2=1,第,第2列无键闭合,转移列无键闭合,转移MOV A,#10H;装第装第2列状态码初始值列状态码初始值AJMP LKPLTHR:JB ACC.3,N

18、EXT;ACC.3=1,第,第3列无键闭合,转移列无键闭合,转移MOV A,#18H;装第装第3列状态码初始值列状态码初始值LKP:ADD A,R4;计算键码计算键码PUSH ACC;保存保存LK3:ACALL DIR;延时延时ACALL KS ;查键是否继续闭合查键是否继续闭合JNZ LK3POP ACC;若键不闭合,键码送若键不闭合,键码送ARETNEXT:INC R4;扫描行号扫描行号+1MOV A,R2JNB ACC.7,KND;ACC.7=0,已扫完,转移,已扫完,转移RL A;扫描码左移扫描码左移1位位MOV R2,AAJMP LK4;进行上一行扫描进行上一行扫描KND:AJMP

19、KEY;开始新一轮扫描开始新一轮扫描描述子程序为描述子程序为DECODE的的功能,出、入口参数?功能,出、入口参数?出口:出口:EKEY 键值(键号)在键值(键号)在A中或?中或?KEY:MOV P1,#0F0H;令所有行为低电平;令所有行为低电平MOVA,P1;读列值;读列值ORLA,#0FH;取列值,;取列值,A中有中有0则有键闭合则有键闭合CPLA;A中有中有1则有键按下则有键闭合则有键按下则有键闭合S123:JNZSKEY3;有键按下转;有键按下转SKEY3,无键按下时进行一行扫描,无键按下时进行一行扫描JZ EKEY;无键按下时退出;无键按下时退出LCALL DEL20 ms;延时;

20、延时20 ms去抖动去抖动SKEY:MOV A,#00;下面进行行扫描,;下面进行行扫描,1行行1行扫行扫MOV R0,A;R0作为行计数器,开始为作为行计数器,开始为0 MOV R1,A;R1作为列计数器,开始为作为列计数器,开始为0MOV R3#0FEH;R3为行扫描字暂存,低为行扫描字暂存,低4位为行扫描字位为行扫描字SKEY2:MOV A,R3 MOV P1,A;输出行扫描字,高;输出行扫描字,高4位全位全1MOVA,P1;读列值;读列值MOVR1,A;暂存列值;暂存列值ORLA,#0FH;取列值;取列值CPLA;高电平则有键闭合;高电平则有键闭合MOVA,R3RLAMOVR3,A;形

21、成下一行扫描字;形成下一行扫描字R3INCR0;行计数器加;行计数器加1MOVA,R0CJNEA,#04H,SKEY2;最后一行扫(;最后一行扫(4次)完了吗?次)完了吗?EKEY:RETEKEY是谁的出口?是谁的出口?若有键闭合,则去若有键闭合,则去SKEY3去去SKEY2扫描扫描下一行下一行SKEY3:MOVA,R1 JNBACC.4,SKEY5 JNBACC.5,SKEY6 JNBACC.6,SKEY7 JNBACC.7,SKEY8 AJMP EKEYSKEY5:MOVA,#00H MOVR2,A;存;存0列号列号 AJMP DKEYSKEY6:MOVA,#01H MOVR2,A;存;存

22、1列号列号 AJMP DKEYSKEY7:MOVA,#02H MOVR2,A;存;存2列号列号 AJMP DKEYSKEY8:MOVA,#03H MOVR2,A;存;存3列号列号 AJMP DKEY去去DKEY做什么?做什么?列号译码列号译码;键位置译码;键位置译码DKEY:MOVA,R0;取行号送;取行号送AMOVB,#04H;每一行按键个数;每一行按键个数MULAB;行号;行号按键数按键数ADDA,R2;行号;行号按键数按键数+列号列号=键值,在键值,在A中中AJMPEKEY解读子程序的框架。解读子程序的框架。问:何时调用?问:何时调用?8.2.1 LED显示器概述:显示器概述:发光二极管

23、一般为砷化镓发光二极管一般为砷化镓半导体二极管,在发光二极管半导体二极管,在发光二极管两端加上正向电压,则发光二两端加上正向电压,则发光二极管发光。而数码管极管发光。而数码管LED是由是由若干发光二极管组合而成的,若干发光二极管组合而成的,一般的一般的“8”字型字型LED由由“a,b,c,d,e,f,g,dp”8个发光个发光二极管组成,每个发光二极管二极管组成,每个发光二极管称为一字段。称为一字段。七段七段LED有共阴极和共阳极两种结构形式。有共阴极和共阳极两种结构形式。显示电路一般分为显示电路一般分为静态显示静态显示和和动态显示动态显示两类。两类。8.2.2 LED显示器显示原理显示器显示原

24、理1.段码:段码:段码是为数码管显示提供的字形代码。段码是为数码管显示提供的字形代码。数字数字共阳极段码共阳极段码共阴极段码共阴极段码数字数字共阳极段码共阳极段码共阴极段码共阴极段码0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H灭灭FFH00H880H7FH2、LED显示电路:显示电路:(1)静态显示电路:静态显示电路:LED显示器工作在静态显示时,其公共阳极显示器工作在静态显示时,其公共阳极(或或阴极阴极)接接VCC(或或GND)

25、,一直处于显示有效状态,一直处于显示有效状态,所以每一位的显示内容必须由锁存器加以锁存,显所以每一位的显示内容必须由锁存器加以锁存,显示各位相互独立。示各位相互独立。每位的段码线(每位的段码线(adp)分别)分别与一个与一个8位的锁存器输出位的锁存器输出相连。相连。显示字符一确定,相应锁存器的段码输出将维持显示字符一确定,相应锁存器的段码输出将维持不变,直到送入另一个段码为止。不变,直到送入另一个段码为止。优点:优点:编程简单、编程简单、显示的亮度高显示的亮度高。RXDTXDXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD

26、237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U2AT89C51C11nFC21nFX1CRYSTALC31uFR210kVCCVCC2345678

27、91RP110K+5V (2)动态显示电路:动态显示电路:将所有位的段选线的同名将所有位的段选线的同名端联在一起,由一个端联在一起,由一个8位位I/O口口控制,形成段选线的多位复用。控制,形成段选线的多位复用。而各位的公共阳极或公共阴极而各位的公共阳极或公共阴极则分别由相应的则分别由相应的I/O口线控制,口线控制,实现各位的实现各位的分时选通分时选通,即同一,即同一时刻只有被选通位是能显示相时刻只有被选通位是能显示相应的字符,而其他所有位都是应的字符,而其他所有位都是熄灭的。熄灭的。LED显示器需提供显示器需提供段控段控信号和信号和位控位控信号。信号。因人眼的视觉暂留时间为因人眼的视觉暂留时间

28、为0.1s(100ms),所以每位,所以每位送送显示显示码的码的间隔间隔不能超过不能超过20 ms;段选码、位选码每送入一次后延时段选码、位选码每送入一次后延时1ms,保持延时一段,保持延时一段时间(时间(1ms),以造成视觉暂留效果;,以造成视觉暂留效果;结果:看上去每个数码管总在亮。结果:看上去每个数码管总在亮。静态显示器的亮度较高。这种显示方式编程容易,管理静态显示器的亮度较高。这种显示方式编程容易,管理也较简单,但占用口线资源较多。在显示位数较多也较简单,但占用口线资源较多。在显示位数较多的情况下,一般都采用动态显示方式。的情况下,一般都采用动态显示方式。动态显示器占用口线资源较少,但

29、亮度较低。动态显示器占用口线资源较少,但亮度较低。这种显示方式编程稍复杂,且占用这种显示方式编程稍复杂,且占用CPU的时间多。的时间多。只要有动态显示,则主程序中必须不停的刷新显示。只要有动态显示,则主程序中必须不停的刷新显示。下图为下图为8位位LED动态显示动态显示2003.10.10的过程。的过程。图(图(a)是显示过程,某一时刻,只有一位)是显示过程,某一时刻,只有一位LED被选通显示,被选通显示,其余位则是熄灭的;其余位则是熄灭的;图(图(b)是实际显示结果,人眼看到的是是实际显示结果,人眼看到的是8位位稳定稳定的的“同时同时”显显示的字符。示的字符。关注空间位置与关注空间位置与位选线

30、的关系位选线的关系上图中,上图中,P0口输出口输出段选码段选码,P1口输出口输出位选码位选码,位选码占用,位选码占用输出口的线数决定于显示器位数,比如输出口的线数决定于显示器位数,比如6位就要占位就要占6条。条。硬件描述硬件描述关于驱动能力:关于驱动能力:75452(或或7406)是反相驱动器是反相驱动器(30 V高电压,高电压,OC门门),这是因为,这是因为89C51 P1口正逻辑输出的位控与共阴极口正逻辑输出的位控与共阴极LED要求的低电平点要求的低电平点亮正好相反,即当亮正好相反,即当P1口位控线输出高电平时,点亮一位口位控线输出高电平时,点亮一位LED。7407是同相是同相OC门,作段

31、选码驱动器。门,作段选码驱动器。存储器的规划:存储器的规划:待显示数据存放在待显示数据存放在7EH79H(对应空间位置从右至左)。对应空间位置从右至左)。内部存放的是内部存放的是09(或(或0FH)的数。)的数。事先规划好位选线的形式及产生方法。本题选中的位应输事先规划好位选线的形式及产生方法。本题选中的位应输出高电平。设初值为出高电平。设初值为01H,左移获得。,左移获得。待显示待显示数据数据(79H)(7AH)(7BH)(7CH)(7DH)(7EH)段选码段选码查表获得查表获得位选码位选码20H10H08H04H02H01H逐位轮流点亮各个逐位轮流点亮各个LED,每一位保持,每一位保持1

32、ms,在,在1020 ms之之内再一次点亮,重复不止。这样,利用人的视觉暂留,好内再一次点亮,重复不止。这样,利用人的视觉暂留,好像像6位位LED同时点亮一样。同时点亮一样。软件描述软件描述DIS显示子程序清单如下:显示子程序清单如下:DIS:MOVR0,#7EH;显示缓冲区末地址;显示缓冲区末地址R0MOVR2,#01H;位控字,先点亮最低位(右边);位控字,先点亮最低位(右边)MOVA,R2MOVDPTR,#TAB;字型表头地址;字型表头地址DPTRLP0:MOVP1,AMOVA,R0;取显示数据;取显示数据MOVC A,A+DPTR;取出字形;取出字形MOVP0,A;送出显示;送出显示A

33、CALLD1MS;调延时子程序;调延时子程序DECR0;数据缓冲区地址减;数据缓冲区地址减1MOVA,R2JBACC.5,LP1;扫描到最左面的显示器了吗;扫描到最左面的显示器了吗?RLA;没有到,左移;没有到,左移1位位MOVR2,AAJMPLP0LP1:RETTAB:DB3FH,06H,5BH,4FH,66H,6DHDB7DH,07H,7FH,6FH,77H,7CHDB39H,5EH,79H,71H,40H,00HD1MS:MOVR7,#02H;延时;延时1 ms子程序子程序DL:MOVR6,#0FFHDL1:DJNZR6,DL1DJNZR7,DLRET8.2.3 LED显示器接口显示器接

34、口1.8255实现实现LED显示器接口:显示器接口:2.LED显示驱动程序:显示驱动程序:DIR:MOV R0,#79H;显示缓冲区首址显示缓冲区首址MOV R3,#01H;位码初值位码初值MOV A,R3LD0:MOV DPTR,#8002H;位控口地址位控口地址MOVX DPTR,A;输出位控码输出位控码MOV DPTR,#8000H;段控口地址段控口地址MOV A,R0;取显示数据取显示数据DIR0:ADD A,#0DHMOVC A,A+PC;查字型代码查字型代码DIR1:MOVX DPTR,A;输出段控码输出段控码ACALL DELAY;延时延时INC R0;下一缓冲单元下一缓冲单元M

35、OV A,R3JB ACC.5,LD1;判断是否最高位判断是否最高位,是是,返回返回RL A;不是不是,显示器向高位移动显示器向高位移动MOV R3,A;位控码送位控码送R3保存保存AJMP LD0;继续扫描继续扫描LD1:RETDSEG:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HPage 491、液晶显示原理:、液晶显示原理:液晶显示的原理是利用液晶的物理特性,通过电压对其显示区液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示域进行控制,有电就有显示,这样即可以显示出图形。液晶显

36、示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点。色显示的特点。目前已经被广泛应用在便携式电脑、数字摄像机、目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通移动通信工具等众多领域。信工具等众多领域。8.3.1 LCD1602显示模块简介显示模块简介2、液晶显示器分类:、液晶显示器分类:按显示方式可分为:按显示方式可分为:段式、字符式和点阵式三大类。段式、字符式和点阵式三大类。(1)段式液晶显示器与数码管类似段式液晶显示器与数码管类似(2)字符式液晶显示器只能用于字符和数字的简单显示)字符式液晶显示器只能用于字

37、符和数字的简单显示(3)点阵式液晶显示器则可显示任何信息,如汉字、图形、图表等。)点阵式液晶显示器则可显示任何信息,如汉字、图形、图表等。Page 50LCD1602字符型显示,能够显示字符型显示,能够显示16*2共共32个字符个字符(16列列2行行)目前市场上有:目前市场上有:16字符字符1行、行、16字符字符2行、行、20字符字符2行、行、40字符字符2行等行等3、LCD1602引脚引脚Page 511602采用标准采用标准16脚接口脚接口其中:包括其中:包括8根数据线根数据线 (D0-D7);三根控制线三根控制线 (RS,R/W,E);地、电源、液晶驱动电压引脚地、电源、液晶驱动电压引脚

38、 (VSS,VDD,VEE);背光源正极,背光源负极背光源正极,背光源负极 (BLA,BLK)Page 52LCD1602采用采用16脚接口,各引脚接口说明如下:脚接口,各引脚接口说明如下:第第1脚:脚:VSS,地。,地。第第2脚:脚:VCC,正电源,正电源,+5V。第第3脚:脚:VEE(Vo),液晶显示器对比度调整端,接正电源时对比度最),液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高。弱,接地时对比度最高。第第4脚:脚:RS,寄存器选择端,高电平时选择数据寄存器、低电平时选择,寄存器选择端,高电平时选择数据寄存器、低电平时选择指令寄存器。指令寄存器。第第5脚:脚:R/W,读

39、写选择端,高电平时读操作,低电平时写操作。,读写选择端,高电平时读操作,低电平时写操作。第第6脚:脚:E,使能端,当使能端由高电平跳变成低电平时,液晶模块执,使能端,当使能端由高电平跳变成低电平时,液晶模块执行命令。行命令。第第714脚:脚:DB0DB7,8位双向数据总线。位双向数据总线。第第15脚:脚:BLA,背光源正极。,背光源正极。第第16脚:脚:BLK,背光源负极。,背光源负极。Page 53RSR/W操作说明操作说明00写入指令寄存器(清除屏等)或者显示地址写入指令寄存器(清除屏等)或者显示地址01读忙标志(读忙标志(D7),以及读取位址计数器),以及读取位址计数器(D0D6)值)值

40、10写入数据寄存器(显示各字型等)写入数据寄存器(显示各字型等)11从数据寄存器读取数据从数据寄存器读取数据4、寄存器选择、寄存器选择Page 548.3.2 LCD1602液晶模块存储器液晶模块存储器 LCD1602有字符发生器有字符发生器CGROM、自定义字符发生器、自定义字符发生器CGRAM、显示缓冲区显示缓冲区DDRAM三种存储器。三种存储器。CGROM保存了厂家生产时固化在保存了厂家生产时固化在LCM中的点阵型显示数据;中的点阵型显示数据;CGRAM是留给用户自己定义点阵型显示数据的;是留给用户自己定义点阵型显示数据的;DDRAM则是和显示屏的内容对应的则是和显示屏的内容对应的。字符

41、发生存储器字符发生存储器CGROM存储有存储有160个不同的点阵字符图形,包括数字、个不同的点阵字符图形,包括数字、英文字母的大小写、常用的符号和日文假名等。每一个字符都有一个固定的英文字母的大小写、常用的符号和日文假名等。每一个字符都有一个固定的代码,比如数字代码,比如数字“0”的代码是的代码是00110000B(30H)。)。显示缓冲区显示缓冲区DDRAM有有80个单元,而显示屏幕上只有个单元,而显示屏幕上只有2行行16列,共列,共32个个单元,所以两者不完全一一对应。单元,所以两者不完全一一对应。DDRAM显示单元地址,屏幕上第一行的内容对应显示单元地址,屏幕上第一行的内容对应DDRAM

42、中中00H到到0FH的内容,第二行的内容对应的内容,第二行的内容对应DDRAM中中40H到到4FH的内容。的内容。Page 55实际光标定位实际光标定位=DDRAM地址地址+80H 因为在向数据总线写数据的时候,命令字的最高位总因为在向数据总线写数据的时候,命令字的最高位总是为是为1。因此如果想要在第二行第一个位置显示一个字符,。因此如果想要在第二行第一个位置显示一个字符,那么它的单元地址就是那么它的单元地址就是40H。但是要将光标定位在第二行。但是要将光标定位在第二行第一个位置,实际写入的地址应是第一个位置,实际写入的地址应是40H+80H=C0H,而不,而不是是40H。屏幕显示:屏幕显示:

43、DDRAM显示单元存放的是要显示字符的显示单元存放的是要显示字符的编码,要显示字符时要先输入显示字符的单元地址,如要编码,要显示字符时要先输入显示字符的单元地址,如要显示显示“0”,则其编码为,则其编码为30H,以该编码为索引,到,以该编码为索引,到CGROM或或CGRAM中取点阵字形送屏幕显示。中取点阵字形送屏幕显示。Page 56序号序号 指令指令RSR/WD7D6D5 D4 D3D2D1D01清显示清显示00000000012光标返回光标返回000000001*3输入模式设置输入模式设置00000001I/DS4显示开显示开/关控制关控制0000001DCB5光标或字符移位光标或字符移位

44、000001S/CR/L*6功能设置功能设置00001DLNF*7字符发生存贮器地址设置字符发生存贮器地址设置0001字符发生存贮器地址字符发生存贮器地址8数据存贮器地址设置数据存贮器地址设置001显示数据存贮器地址显示数据存贮器地址9读忙标志或计数器地址设置读忙标志或计数器地址设置01BF计数器地址计数器地址10写写CGRAM或或DDRAM10要写的数据要写的数据11读读CGRAM或或DDRAM11读出的数据读出的数据8.3.3 LCD1602液晶模块指令液晶模块指令指令举例如下:指令举例如下:38H:0011 1000显示模式初始化,设置显示模式初始化,设置162显示,显示,57点阵,点阵

45、,8位数据接口;位数据接口;01H:显示清屏,光标被移到屏幕左上角位置,地址计数器设置为:显示清屏,光标被移到屏幕左上角位置,地址计数器设置为00H。08H:显示关闭;:显示关闭;06H:显示光标移动设置;:显示光标移动设置;0CH:显示开及光标设置:显示开及光标设置共共11条指令:条指令:(1)清屏指令清屏指令 指令功能指令功能指令编码指令编码执行时间执行时间RSR/WDB7DB6DB5DB4DB3DB2DB1DB0ms清屏00000000011.64功能:功能:清除液晶显示器,即将清除液晶显示器,即将DDRAM的内容全部填入的内容全部填入“空白空白”的的ASCII码码20H;光标归位,即将

46、光标撤回液晶显示屏的左上方;光标归位,即将光标撤回液晶显示屏的左上方;将地址计数器将地址计数器(AC)的值设为的值设为00H。(2)光标归位指令光标归位指令功能:功能:把光标撤回到显示器的左上方;把光标撤回到显示器的左上方;把地址计数器把地址计数器(AC)的值设置为的值设置为0;保持保持DDRAM的内容不变。的内容不变。(3)进入模式设置指令进入模式设置指令 指令功能指令功能指令编码指令编码执行时间执行时间RSR/WDB7DB6DB5DB4DB3DB2DB1DB0ms光标归位000000001x1.64指令功能指令功能指令编码指令编码执行时间执行时间RSR/WDB7DB6DB5DB4DB3DB

47、2DB1DB0ms进入模式设置00000001I/Ds40功能:功能:设定每次写入设定每次写入1位数据后光标的移位方向,并且设定每次写入的一个字符是否位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。参数设定的情况如下所示:移动。参数设定的情况如下所示:位名位名设置设置 I/D0=写入新数据后光标左移写入新数据后光标左移 1=写入新数据后光标右移写入新数据后光标右移 S0=写入新数据后显示屏不移动写入新数据后显示屏不移动 1=写入新数据后显示屏整体右移写入新数据后显示屏整体右移1个字个字(4)显示开关控制指令显示开关控制指令指令功能指令功能指令编码指令编码执行时间执行时间RSR/WD

48、B7DB6DB5DB4DB3DB2DB1DB0ms显示开关控制0000001DCB40功能:功能:控制显示器开控制显示器开/关、光标显示关、光标显示/关闭以及光标是否闪烁。参关闭以及光标是否闪烁。参数设定的情况如下:数设定的情况如下:位名位名设置设置 D0=显示功能关显示功能关 1=显示功能开显示功能开 C0=无光标无光标 1=有光标有光标 B0=光标闪烁光标闪烁 1=光标不闪烁光标不闪烁(5)设定显示屏或光标移动方向指令设定显示屏或光标移动方向指令指令功能指令功能指令编码指令编码执行时间执行时间RSR/WDB7DB6DB5DB4DB3DB2DB1DB0ms设定显示屏或光标移动方向000001

49、S/CR/Lxx40功能:功能:使光标移位或使整个显示屏幕移位。参数设定的情况如下:使光标移位或使整个显示屏幕移位。参数设定的情况如下:S/C R/L 设定情况设定情况 0 0光标左移光标左移1格,且格,且AC值减值减1 0 1光标右移光标右移1格,且格,且AC值加值加1 1 0显示器上字符全部左移一格,但光标不动显示器上字符全部左移一格,但光标不动 1 1显示器上字符全部右移一格,但光标不动显示器上字符全部右移一格,但光标不动(6)功能设定指令功能设定指令指令功能指令功能指令编码指令编码执行时间执行时间RSR/WDB7DB6DB5DB4DB3DB2DB1DB0ms功能设定00001D/LNF

50、xx40功能:设定数据总线位数、显示的行数及字型。参数设定的情况如下:功能:设定数据总线位数、显示的行数及字型。参数设定的情况如下:位名位名 设置设置 DL0=数据总线为数据总线为4位位 1=数据总线为数据总线为8位位 N0=显示显示1行行 1=显示显示2行行 F0=57点阵点阵/每字符每字符 1=510点阵点阵/每字符每字符(7)设定设定CGRAM地址指令地址指令功能:设定下一个要存入数据的功能:设定下一个要存入数据的CGRAM的地址。的地址。DB5DB4DB3 为字符号,也就是显示该字符时要用到的字符地址。为字符号,也就是显示该字符时要用到的字符地址。(000111)(能定义八个字符)。(

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第8章-MCS-51单片机的接口技术[103页]课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|