1、单片机原理及应用技术显示器接口设计与编程Project 83 项目八 显示器接口设计与编程任务一 LED显示器接口设计任务1LED显示器接口设计4 项目八 显示器接口设计与编程任务一 LED显示器接口设计目前LED显示器的种类有很多,可以分为()、()和()。5 项目八 显示器接口设计与编程任务一 LED显示器接口设计米字型数码管按外观来划分,可以分为、等。如图所示为各种不同形状的数码管。七段数码管点阵块6 项目八 显示器接口设计与编程任务一 LED显示器接口设计1数码管的结构及工作原理七段数码管由8个发光二极管(以下简称)构成,如图所示(),通过不同的组合可以显示数字09、字符AF、H、L、
2、P、U、符号“”及小数点“”。数码管基础知识one7 项目八 显示器接口设计与编程任务一 LED显示器接口设计根据,七段数码管可以分为和两种结构。共阴极型数码管如左图所示,所有字段的阴极均连接低电平,因此在。8 项目八 显示器接口设计与编程任务一 LED显示器接口设计2数码管的字形编码在单片机控制系统中要使数码管显示出相应的数字或字符,单片机需要输出相应的字形编码。在项目五中,我们已经介绍了共阳极数码管的数字编码,这里我们介绍,如表所示。引脚引脚P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0码值码值段名称DPGFEDCBA数字0001111113FH数字10000011006
3、H数字2010110115BH数字3010011114FH数字40110011066H段名称DPGFEDCBA9 项目八 显示器接口设计与编程任务一 LED显示器接口设计引脚引脚P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0码值码值数字5011011016DH数字6011111017DH数字70000011107H数字8011111117FH数字9011011116FH字母A0111011177H字母B011111007CH字母C0011100139H字母D010111105EH字母E0111100179H字母F0111000171H续上表10 项目八 显示器接口设计与编程任
4、务一 LED显示器接口设计引脚引脚P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0码值码值字母H0111011076H字母L0011100038H字母P0111001173H字母U001111103EH字符0100000040H字符1000000080H续上表11 项目八 显示器接口设计与编程任务一 LED显示器接口设计LED静态显示方法two1静态显示原理静态显示方式是指。在这种显示方式下,每一个LED数码管显示器都需要一个8位输出口进行控制,如图所示。12 项目八 显示器接口设计与编程任务一 LED显示器接口设计静态显示主要的是,而且(只需在驱动端增加相应的电流调节电阻即可
5、方便地调节LED的亮度)。其是,每个LED数码管需要独占8条输出线,随着显示器位数的增加,需要的I/O口线也将增加。13 项目八 显示器接口设计与编程任务一 LED显示器接口设计2接口设计在实际应用静态显示方式时,通常通过的形式解决输出口数量不足的问题。如图所示,这里通过使用锁存器74LS377将单片机的并行I/O口进行扩展,三个数码管可以在同时显示不同的字符。14 项目八 显示器接口设计与编程任务一 LED显示器接口设计3软件设计将片内存储器中以40H单元为首址的数据区内容输出,经数码管显示(假设数据区的数据最高位没有超过百位)。程序如下ORG0000HLJMPMAINORG0100HMAI
6、N:MOVDPTR,#TAB;将字段编码表首地址送DPTRMOVA,40H;将数据区首址送A15 项目八 显示器接口设计与编程任务一 LED显示器接口设计;MOVB,#100;除数100送BDIVAB;计算显示数据的百位值MOVCA,A+DPTR;将百位值的编码送入A中MOVDPTR,#0DFFFH;将百位数码管地址送DPTRMOVXDPTR,A;显示百位数据;MOVA,B;将计算百位后的余数送AMOVB,#10;除数10送BDIVAB;计算显示数据的十位值MOVDPTR,#TAB;将字段编码表首地址送DPTRMOVCA,A+DPTR;将十位值的编码送入A中16 项目八 显示器接口设计与编程任
7、务一 LED显示器接口设计MOVDPTR,#0BFFFH;将十位数码管地址送DPTRMOVXDPTR,A;显示十位数据;MOVA,B;将计算十位后的余数送AMOVDPTR,#TAB;将字段编码表首地址送DPTRMOVCA,A+DPTR;将个位值的编码送入A中MOVDPTR,#7FFFH;将个位数码管地址送DPTRMOVXDPTR,A;显示个位数据SJMP$;TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND17 项目八 显示器接口设计与编程任务一 LED显示器接口设计既然硬件结构中的数码管是共阴极结构的,为什么软件设计中的字段表需要使用共阳极型的?
8、18 项目八 显示器接口设计与编程任务二 LCD显示器接口设计任务2LCD显示器接口设计19 项目八 显示器接口设计与编程任务二 LCD显示器接口设计LCD显示器基础知识one液晶是在1888年,由奥地利植物学家Reinitzer发现的,一种介于固体与液体之间,具有规则性分子排列的有机化合物。一般最常用的液晶型态为向列型液晶,分子形状为细长棒形,长宽约110nm。在不同电流电场作用下,液晶分子会做规则旋转90度排列,产生透光度的差别。1 LCD显示器的工作原理是的简称,LCD的构造是在两片平行的玻璃当中放置液态的晶体,通过电场来控制杆状水晶分子改变方向,将光线折射出来产生画面。除液晶电脑、液晶
9、电视的显示屏外,我们常见到的手机、计算器的屏幕也都属于液晶产品。20 项目八 显示器接口设计与编程任务二 LCD显示器接口设计2 LCD显示器的种类液晶显示器的分类方法有很多种,可以分为(如计算器屏)、(如仪器的表盘)和(如MP3、手机屏)等;按显示颜色可以分为黑白显示、多灰度、彩色显示等;按照控制方式不同可分为被动矩阵式LCD和主动矩阵式LCD两种。生活中各种常见的LCD显示屏如图所示。电脑液晶屏单片机实验中常用的液晶屏计算器中的液晶显示屏空调遥控器上的液晶显示屏21 项目八 显示器接口设计与编程任务二 LCD显示器接口设计3 LCD显示器的技术参数液晶显示器所标示的可视面积尺寸与实际可以使
10、用的屏幕范围一致。可视面积可视角度是指在观看屏幕不失真的情况下,左右或上下视线之间的夹角。它又分为水平可视角度和垂直可视角度,其中,水平可视角度对称,而垂直可视角度不一定上下对称。目前,一般液晶显示器的水平和垂直可视角度都在160上下。可视角度一般14英寸LCD的可视面积为285.7mm214.3mm,它的最大分辨率为1024768,那么点距就等于:可视宽度/水平像素(或者可视高度/垂直像素),即285.7mm/1024=0.279mm(或214.3mm/768=0.279mm)。点距22 项目八 显示器接口设计与编程任务二 LCD显示器接口设计LCD面板是由多个像素点组成显像的,每个独立的像
11、素点色彩是由红、绿、蓝(R、G、B)三种基本色来控制。大部分液晶显示器的每个基本色(R、G、B)为6位,可表现64(26)种颜色,那么每个独立的像素就有646464=262144种色彩。现在有些厂商使用FRC(Frame Rate Control)技术以仿真方式来表现全彩画面,每个基本色能达到8位,那么每个独立的像素可以达到28282816777216种色彩。色彩度对比值是指最大亮度值(全白)与最小亮度值(全黑)的比值。一般来说,人眼可以接受的对比值约为250:1,而目前LCD显示器的对比值通常高达1000:1。对比值响应时间是指液晶显示器各像素点对输入信号反应的时间。响应时间越小越好。若响应
12、时间太长,液晶显示器在显示动态图像时就有可能出现拖尾现象。一般的液晶显示器的响应时间为2030ms。响应时间23 项目八 显示器接口设计与编程任务二 LCD显示器接口设计基于HD44780的字符型芯片的功能及使用方法three在单片机实验中我们常用到的是,此种类型的模块一般都由字符型液晶显示屏LCD,主控制驱动芯片HD44780及其扩展驱动电路,以及少量阻、容元件和结构件等装配在电路板上而成。如图所示显示了1602型液晶显示模块。1602型LCD显示模块(a)显示模块的前面(b)显示模块的后面24 项目八 显示器接口设计与编程任务二 LCD显示器接口设计是字符型液晶显示模块中至关重要的部件,它
13、拥有的,保存常用字符点阵定义的用于保存自定义特殊字符点阵的,并且自身拥有一组可执行的指令。下面将详细讲述该芯片的功能和使用方法。25 项目八 显示器接口设计与编程任务二 LCD显示器接口设计1HD44780的引脚与时序(1)HD44780的引脚HD44780的外部引脚一般有16个,其中包括8条数据线DB0DB7、3条控制线RS、R/W、E,各引脚功能如表所示。引脚号引脚号引脚名引脚名电平电平状态状态作用作用1Vss0V电源地2VDD5V10%电源(+5V)3V005V液晶驱动电压4RS0/1输入0:输入指令;1:输入数据5R/W0/1输入0:写入指令或数据1:读取数据26 项目八 显示器接口设
14、计与编程任务二 LCD显示器接口设计引脚号引脚号引脚名引脚名电平电平状态状态作用作用6E1,10输入使能信号,1:读取信息10:执行指令7DB00/1三态数据总线8DB10/1三态数据总线9DB20/1三态数据总线10DB30/1三态数据总线11DB40/1三态数据总线12DB50/1三态数据总线13DB60/1三态数据总线14DB70/1三态数据总线15LED+VccLED背光电源正极16LED接地LED背光电源负极续上表27 项目八 显示器接口设计与编程任务二 LCD显示器接口设计(2)HD44780的时序RS、R/W与E信号相互配合,进行HD44780的读写操作,逻辑信号功能如表所示RS
15、R/WEDB7DB0功能功能0010输入将指令代码写入HD44780011输出读忙标志BF及AC值1010输入写数据到DDRAM或CGRAM111输出从DDRAM或CGRAM读数据28 项目八 显示器接口设计与编程任务二 LCD显示器接口设计读、写时序如图所示读操作时序图写操作时序图29 项目八 显示器接口设计与编程任务二 LCD显示器接口设计tR:E上升沿时间tSP1:地址建立时间tHD2:数据保持时间(读操作)tF:E下降沿时间tHD1:地址保持时间tHD2:数据保持时间(写操作)tC:E信号周期tPW:E脉冲宽度tSP2:数据建立时间(写操作)tSP2:数据延迟时间(读操作)读写时序参数
16、说明30 项目八 显示器接口设计与编程任务二 LCD显示器接口设计2、HD44780的可编程结构HD44780内部主要由、及等构成,如图所示。HD44780原理结构图31 项目八 显示器接口设计与编程任务二 LCD显示器接口设计AIR用于单片机向HD44780写入指令码,IR只能写入,不能读出。当RS=0、R/W=0时,数据线DB7DB0上的数据写入指令寄存器IR。指令寄存器(IR)C当RS=0、R/W=1,E=1时,BF信号输出到总线的DB7上。BF=1时表示正在进行内部操作,不能接收外部指令或数据。忙标志(BF)BDR用于寄存数据。当RS=1、R/W=0时,数据线DB7DB0上的数据写入数
17、据寄存器DR,同时DR的数据由内部操作自动写入DDRAM或CGRAM。当RS=1、R/W=1时,内部操作将DDRAM或CGRAM送到DR中,通过DR送到数据总线DB7DB0上。数据寄存器(DR)32 项目八 显示器接口设计与编程任务二 LCD显示器接口设计DDDRAM用于存储显示数据,共有80个字节。显示数据存储器(DDRAM)FCGRAM供用户自造特殊字符时使用,容量为64字节,可自定义8个58点阵或4个511点阵,其编址为003FH。字符发生器RAM(CGRAM)EAC是DDRAM或CGRAM的地址指针。若地址码随指令写入IR,则IR的地址码部分自动装入地址计数器AC之中,同时选择相应的D
18、DRAM或CGRAM单元。另外,AC具有自动加1和自动减1功能。当数据从DR送到DDRAM(或CGRAM)时,AC自动加1。当数据从DDRAM(或CGRAM)送到DR时,AC自动减1。当RS=0、R/W=l、E=1时,AC的内容送到DB7DB0。地址计数器(AC)FCGROM可显示57点阵字符160种和510点阵字符32种。字符发生器ROM(CGROM)33 项目八 显示器接口设计与编程任务二 LCD显示器接口设计3、HD44780的指令集1602字符型液晶模块内部的控制器共有11条控制指令。清屏指令,如表所示指令功能指令编码执行时间/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB
19、0清屏00000000011.64功能:清除液晶显示器,即将DDRAM的内容全部填入“空白”的ASCII码20H;光标归位,即将光标撤回液晶显示屏的左上方;将地址计数器(AC)的值设为0。34 项目八 显示器接口设计与编程任务二 LCD显示器接口设计光标归位指令,如表所示功能:把光标撤回到显示器的左上方;把地址计数器(AC)的值设置为0;保持DDRAM的内容不变。指令功能指令编码执行时间/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0光标归位000000001x1.6435 项目八 显示器接口设计与编程任务二 LCD显示器接口设计输入模式设置指令,如表所示功能:设定每次写数据后光
20、标与画面的移动方式。各参数的意义如下所示:I/D0:写数据后光标左移1:写数据后光标右移S0:写数据后画面不移动1:写数据后画面整体右移1个字符指令功能指令编码执行时间/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0输入模式设置00000001I/DS4036 项目八 显示器接口设计与编程任务二 LCD显示器接口设计显示开关控制指令,如表所示功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。参数的意义如下:D0:显示功能关1:显示功能开C0:无光标1:有光标B0:光标闪烁1:光标不闪烁指令功能指令编码执行时间/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0显示
21、开关控制0000001DCB4037 项目八 显示器接口设计与编程任务二 LCD显示器接口设计画面与光标移动设置指令,如表所示功能:使光标或整个画面移位。参数的意义如下:S/CR/L设定情况00光标左移1格,且AC值减101光标右移1格,且AC值加110画面上字符全部左移一格,但光标不动11画面上字符全部右移一格,但光标不动指令功能指令编码执行时间/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0设定显示屏或光标移动方向000001S/CR/Lxx4038 项目八 显示器接口设计与编程任务二 LCD显示器接口设计功能设定指令,如表所示功能:设定数据总线位数、显示的行数及字型。参数的
22、意义如下:DL0:数据总线为4位1:数据总线为8位N0:显示1行1:显示2行F0:57点阵/每字符1:510点阵/每字符指令功能指令编码执行时间/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0功能设定00001DLNFxx4039 项目八 显示器接口设计与编程任务二 LCD显示器接口设计CGRAM地址设置指令,如表所示功能:设置下一个要存入数据的CGRAM地址,范围为03FH指令功能指令编码执行时间/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0设定CGRAM地址0001CGRAM的地址(6位)4040 项目八 显示器接口设计与编程任务二 LCD显示器接口设计DDR
23、AM地址设置指令,如表所示功能:设置下一个要存入数据的DDRAM地址。(一行显示时地址范围为04FH;两行显示时地址范围为:首行:0027H,次行:4067H。)指令功能指令编码执行时间/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0设定DDRAM地址001DDRAM的地址(7位)4041 项目八 显示器接口设计与编程任务二 LCD显示器接口设计读取BF或AC值指令,如表所示功能:读取BF,BF=1表示HD44780忙,暂时无法接收单片机送来的数据或指令;当BF=0时,HD44780可以 接收单片机送来的数据或指令;读取地址计数器(AC)的内容。指令功能指令编码执行时间/sRSR
24、/WDB7DB6DB5DB4DB3DB2DB1DB0读取忙信号或AC地址01BFAC内容(7位)4042 项目八 显示器接口设计与编程任务二 LCD显示器接口设计数据写入DDRAM或CGRAM指令(取决于最近设置的地址性质),如表所示功能:将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;将使用者自己设计的图形存入CGRAM。指令功能指令编码执行时间/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0数据写入DDRAM或CGRAM10要写入的数据D7D04043 项目八 显示器接口设计与编程任务二 LCD显示器接口设计从DDRAM或CGRAM读出数据指令(取决于最近设置的地址
25、性质)如表所示指令功能指令编码执行时间/sRSR/WDB7DB6DB5DB4DB3DB2DB1DB0数据写入DDRAM或CGRAM11要读出的数据D7D04044 项目八 显示器接口设计与编程任务二 LCD显示器接口设计接口设计three1直接驱动方式又称为,在该方式中,液晶显示模块以存储器或I/O设备的形式连接在系统总线上,如图所示。图中液晶模块的数据总线与单片机的数据总线相连;使能信号E由单片机的读信号和写信号进行逻辑与非后产生,并由地址信号P2.7进行选通控制;R/W、RS信号由单片机的地址线P2.1、P2.0控制。45 项目八 显示器接口设计与编程任务二 LCD显示器接口设计2间接驱动
26、方式又称为,在该方式中,如图所示。图中液晶模块的部分数据总线与单片机的P1口相连;使能信号E、R/W和RS信号与单片机的P3口相连,此时需通过软件方式对液晶模块的读写时序进行控制。46 项目八 显示器接口设计与编程任务二 LCD显示器接口设计软件设计four1直接访问方式下的驱动子程序COMEQU20H;指令寄存器DATEQU21H;数据寄存器CW_AddEQU8000H;指令口写地址CR_AddEQU8200H;指令口读地址DW_AddEQU8100H;数据口写地址DR_AddEQU8300H;数据口读地址47 项目八 显示器接口设计与编程任务二 LCD显示器接口设计(1)读BF和AC值PR
27、0:PUSHDPHPUSHDPLPUSHACCMOVDPTR,#CR_Add;设置指令口读地址MOVXA,DPTR;读BF和AC值MOVCOM,A;存入COM单元POPACCPOPDPLPOPDPHRET48 项目八 显示器接口设计与编程任务二 LCD显示器接口设计(2)写指令代码子程序PR1:PUSHDPHPUSHDPLPUSHACCMOVDPTR,#CR_Add;设置指令口读地址PR11:MOVXA,DPTRJBACC.7,PR11;判断BF=0?若是,则继续MOVA,COMMOVDPTR,#CW_Add;设置指令口写地址MOVXDPTR,A;写指令代码POPACCPOPDPLPOPDPH
28、RET49 项目八 显示器接口设计与编程任务二 LCD显示器接口设计(3)写显示数据子程序PR2:PUSHDPHPUSHDPLPUSHACCMOVDPTR,#CR_Add;设置指令口读地址PR21:MOVXA,DPTRJBACC.7,PR21;判断BF=0?若是,则继续MOVA,DATMOVDPTR,#DW_Add;设置数据口写地址MOVXDPTR,A;写数据POPACCPOPDPLPOPDPHRET50 项目八 显示器接口设计与编程任务二 LCD显示器接口设计(4)读显示数据子程序PR3:PUSHDPHPUSHDPLPUSHACCMOVDPTR,#CR_Add;设置指令口读地址PR31:MO
29、VXA,DPTR JBACC.7,PR31;判断BF=0?若是,则继续MOVDPTR,#DR_Add;设置数据口读地址MOVXA,DPTR;读数据MOVDAT,A;存入DAT单元POPACCPOPDPLPOPDPHRET51 项目八 显示器接口设计与编程任务二 LCD显示器接口设计2间接控制方式下的驱动子程序COMEQU20H;指令寄存器DATEQU21H;数据寄存器RSEQUP3.0;寄存器选择信号R/WEQUP3.1;读/写选择信号EEQUP3.5;使能信号52 项目八 显示器接口设计与编程任务二 LCD显示器接口设计(1)读BF和AC值PR0:PUSHACCMOVP1,#0FFH;P1置
30、位,准备读CLRRS;RS=0SETBR/W;R/W=1SETBE;E=1MOVCOM,P1;读BF和AC46的值CLRE;E=0MOVP1,#0FFH;P1置位,准备读SETBE;E=153 项目八 显示器接口设计与编程任务二 LCD显示器接口设计MOVA,P1;读AC30的值CLRE;E=0SWAPA;转换成8为数据ANLA,#0FHANLCOM,#0F0HORLA,COMMOVCOM,A;送入COM单元POPACCRET54 项目八 显示器接口设计与编程任务二 LCD显示器接口设计(2)写指令代码子程序PR1:PUSHACCCLRRS;RS=0SETBR/W;R/W=1PR11:MOVP
31、1,#0FFH;P1置位,准备读SETBE;E=1MOVA,P1;读BF和AC64的值CLRE;E=0MOVC,ACC.7;BF值存入进位位CSETBE;E=1CLRE;E=055 项目八 显示器接口设计与编程任务二 LCD显示器接口设计JCPR11;判断BF=1?若是,则跳转CLRR/W;R/W=0MOVP1,COM;写入指令代码高4位SETBE;E=1CLRE;E=0 MOVA,COM;写入指令代码低4位SWAPAMOVP1,ASETBE;E=1CLRE;E=0POPACCRET56 项目八 显示器接口设计与编程任务二 LCD显示器接口设计(3)写显示数据子程序PR2:PUSHACCCLR
32、RS;RS=0SETBR/W;R/W=1PR21:MOVP1,#0FFH;P1置位,准备读SETBE;E=1MOVA,P1;读BF和AC64的值CLRE;E=0MOVC,ACC.7;BF值存入进位位CSETBE;E=1CLRE;E=057 项目八 显示器接口设计与编程任务二 LCD显示器接口设计JCPR21;判断BF=1?若是,则跳转SETBRS;RS=1CLRR/W;R/W=0MOVP1,DAT;写入数据高4位SETBE;E=1CLRE;E=0MOVA,DAT;写入数据低4位SWAPAMOVP1,ASETBE;E=1CLRE;E=0POPACCRET58 项目八 显示器接口设计与编程任务二
33、LCD显示器接口设计(4)读显示数据子程序PR3:PUSHACCCLRRS;RS=0SETBR/W;R/W=1PR31:MOVP1,#0FFH;P1置位,准备读SETBE;E=1MOVA,P1;读BF和AC64的值CLRE;E=0MOVC,ACC.7;BF值存入进位位CSETBE;E=1CLRE;E=0JCPR31;判断BF=1?若是,则跳转59 项目八 显示器接口设计与编程任务二 LCD显示器接口设计SETBRS;RS=1SETBR/W;R/W=1MOVP1,#0FFH;P1置位,准备读SETBE;E=1MOVCOM,P1;读数据高4位CLRE;E=0MOVP1,#0FFH;P1置位,准备读SETBE;E=1MOVA,P1;读数据低4位 CLRE;E=0SWAPA;转换成8位ANLA,#0FHANLDAT,#0F0HORLA,DAT MOVDAT,A;数据送入DAT单元POPACCRET60 显示器接口设计与编程项目总结项目总结本项目中介绍了。目前的显示器分为和,其中,任务一详细讲述了,及、和;任务二详细讲述了,目前常见的LCD控制器HD44780的功能及使用方法。61 THANKS FOR WATCHING谢谢收看