基于Proteus仿真的12864液晶的显示_第1页
基于Proteus仿真的12864液晶的显示_第2页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、Proteus实验报告课程题目:基于Proteus仿真的12864液晶的显示班级:XXX姓名:XXX学号:XXX完成时间:XXX目录一、概述31、1LCD简介31、2LCD引脚说明31、3LCD原理简图41、4LCD主要功能介绍.41、5指令说明.6二、液晶显示原理82.1 汉字和英文显示原理82.2 图形显示9三、软件仿真103.1汉字显示103.2 向上滚动显示113.3PCB图11四、部分实验代码12五、总结18一、概述1、LCD简介在Protues仿真软件中,AMPIRE12864是一种图形点阵液晶显示器。它主要采用动态驱动原理由行驱动控制器和列驱动器两部分组成了128(列)X64(行

2、)的全点阵液晶显示。软件中不提供中文字库,但可完成图形显示,也可以通过汉字取模软件显示8X4个(16X16点阵)汉字。2、LCD引脚说明管脚名称LEVER管脚功能描述3VSS0电源地4VDD+5.0V电源电压5V0液晶显示器驱动电压6D/I(RS)H/LD/I=“H”,表示DB7sDB0为显示数据D/I=“L”,表示DB7sDB0为显示指令数据7R/WH/LR/W二“H”,E=“H”数据被读到DB7sDB0R/W二“L”,E=“HfL”数据被写到IR或DR8EH/LR/W二“L”,E信号下降沿锁存DB7sDB0R/W二“H”,E=“H”DDRAM数据读到DB7DB09DB0H/L数据线10DB

3、1H/L数据线11DB2H/L数据线12DB3H/L数据线13DB4H/L数据线14DB5H/L数据线15DB6H/L数据线16DB7H/L数据线1CS1H/LH:选择芯片(右半屏)信号2CS2H/LH:选择芯片(左半屏)信号17RETH/L复位信号,低电平复位18VOUT10VLCD驱动负电压19LED+LED背光板电源20LED-LED背光板电源3、LCD原理简图4、LCD主要功能介绍按裾总敌据通道A近-孔也显示元第一页恬4爭节炖但-1234S678Q-013FZH3ri-Y地址计数蓋笫八页血芋节刈仗)1)显示数据RAM(DDRAM)DDRAM(64X8X8bits)是存储图形显示数据的。

4、此RAM的每一位数据对应显示面板上一个点的显示(数据为H)与不显示(数据为L)。DDRAM的地址与显示位置关系对照图(见附录一)2)I/O缓冲器(DBODB7)I/O缓冲器为双向三态数据缓冲器。是LCM(液晶显示模块)部总线与MPU总线的结合部。其作用是将两个不同时钟下工作的系统连接起来,实现通讯。I/O缓冲器在片选信号/CS有效状态下,1/O缓冲器开放,实现LCM(液晶显示模块)与MPU之间的数据传递。当片选信号为无效状态时,I/O缓冲器将中断LCM(液晶显示模块)部总线与MPU数据总线的联系,对外总线呈高阻状态,从而不影响MPU的其他数据操作功能。3)输入寄存器输入寄存器用于接收在MPU运

5、行速度下传送给LCM(液晶显示模块)的数据并将其锁存在输入寄存器,其输出将在LCM(液晶显示模块)部工作时钟的运作下将数据写入指令寄存器或显示存储器。4)输出寄存器输出寄存器用于暂存从显示存储器读出的数据,在MPU读操作时,输出寄存器将当前锁存的数据通过I/O缓冲器送入MPU数据总线上。5)指令寄存器指令寄存器用于接收MPU发来的指令代码,通过译码将指令代码置入相关的寄存器或触发器。6)状态字寄存器状态字寄存器是LCM(液晶显示模块)与MPU通讯时唯一的“握手”信号。状态字寄存器向MPU表示了LCM(液晶显示模块)当前的工作状态。尤其是状态字中的“忙”标志位是MPU在每次对LCM(液晶显示模块

6、)访问时必须要读出判别的状态位。当处于“忙”标志位时,I/O缓冲器被封锁,此时MPU对LCM(液晶显示模块)的任何操作(除读状态字操作外)都将是无效的。7)X地址寄存器X地址寄存器是一个三位页地址寄存器,其输出控制着DDRAM中8个页面的选择,也是控制着数据传输通道的八选一选择器。X地址寄存器可以由MPU以指令形式设置。X地址寄存器没有自动修改功能,所以要想转换页面需要重新设置X地址寄存器的容。8)Y地址计数器Y地址计数器是一个6位循环加一计数器。它管理某一页面上的64个单元。Y地址计数器可以由MPU以指令形式设置,它和页地址指针结合唯一选通显示存储器的一个单元,Y地址计数器具有自动加一功能。

7、在显示存储器读/写操作后Y地址计数将自动加一。当计数器加至3FH后循环归零再继续加一。9)Z地址计数器Z地址计数器是一个6位地址计数器,用于确定当前显示行的扫描地址。Z地址计数器具有自动加一功能。它与行驱动器的行扫描输出同步,选择相应的列驱动的数据输出。10)显示起始行寄存器显示起始行寄存器是一个6位寄存器,它规定了显示存储器所对应显示屏上第一行的行号。该行的数据将作为显示屏上第一行显示状态的控制信号。11)显示开/关触发器显示开/关触发器的作用就是控制显示驱动输出的电平以控制显示屏的开关。在触发器输出为“关”电平时,显示数据锁存器的输入被封锁并将输出置“0”,从而使显示驱动输出全部为非选择波

8、形,显示屏呈不显示状态。在触发器输出为“开”电平时,显示数据锁存器被控制,显示驱动输出受显示驱动数据总线上数据控制,显示屏将呈显示状态。12)复位端/RES复位端/RES用于在LCM(液晶显示模块)上电时或需要时实现硬件电路对LCM(液晶显示模块)的复位。该复位功能将实现:A设置显示状态为关显示状态B显示起始寄存器清零。显示RAM第一行对应显示屏上的第一行。C在复位期间状态字中RESET位置1。5、指令说明1.指令表指令名称控制信号控制代码RR|D7D6D5D4D3D2D1D0S/W显示开关设置000011111D显示起始行设置0011L5L4L3L2L1L0页面地址设置0010111P2P1

9、P0列地址设置0001C5C4C3C2C1C0读取状态字01BUS0ONRE0000Y/OSEFFT写显示数据10数据读显示数据11数据详细解释各个指令功能1)读状态字格式IBUSY|0ON/ORESE000011FFT状态字是MPU了解LCM(液晶显示模块)当前状态,或LCM向MPU提供其部状态的唯一的信息渠道。BUSY表示当前LCM接口控制电路运行状态。BUSY=1表示LCM正在处理MPU发过来的指令或数据。此时接口电路被封锁,不能接受除读状态字以外的任何操作。BUSY=0表示LCM接口控制电路已外于“准备好”状态,等待MPU的访问。ON/OFF表示当前的显示状态。ON/OFF=1表示关显

10、示状态,ON/OFF=0表示开显示状态。RESET表示当前LCM的工作状态,即反映/RES端的电平状态。当/RES为低电平状态时,LCM处于复位工作状态,标志位RESET=1。当/REST为高电平状态时,LCM为正常工作状态,标志位RESET=0。在指令设置和数据读写时要注意状态字中的BUSY标志。只有在BUSY=0时,MPU对LCM的操作才能有效。因此MPU在每次对LCM操作之前,都要读出状态字判断BUSY是否为“0”。若不为“0”,则MPU需要等待,直至BUSY=0为止。该指令设置显示开/关触发器的状态,由此控制显示数据锁存器的工作方式,从而控制显示屏上的显示状态。D位为显示开/关的控制位

11、。当D=1为开显示设置,显示数据锁存器正常工作,显示屏上呈现所需的显示效果。此时在状态字中ON/OFF=0。当D=0为关显示设置,显示数据锁存器被置零,显示屏呈不显示状态,但显示存储器并没有被破坏,在状态字中ON/OFF=1。11L5L4L3L2L1L0该指令设置了显示起始行寄存器的容°LCM通过/CS的选择分别具有64行显示的管理能力,该指令中L5L0为显示起始行的地址,取值在03FH(164行)围,它规定了显示屏上最顶一行所对应的显示存储器的行地址。如果定时间隔地等间距地修改(如加一或减一)显示起始行寄存器的容,则显示屏将呈现显示容向上或向下平滑滚动的显示效果。10111P2P1

12、P0该指令设置了页面地址一X地址寄存器的容。LCM将显示存储器分成8页,指令代码中P2P0就是要确定当前所要选择的页面地址,取值围为07H,代表第18页。该指令规定了以后的读/写操作将在哪一个页面上进行。01C5C4C3C2C1C0该指令设置了Y地址数计数器的容,LCM通过/CS的选择分别具有64列显示的管理能力,C5C0二03FH(164)代表某一页面上的某一单元地址,随后的一次读或写数据将在这个单元上进行。Y地址计数器具有自动加一功能,在每一次读/写数据后它将自动加一,所以在连续进行读/写数据时,Y地址计数器不必每次都设置一次。页面地址的设置和列地址的设置将显示存储器单元唯一地确定下来,为

13、后来的显示数据的读/写作了地址的选通。6)写显示数据格式数据该操作将8位数据写入先前已确定的显示存储器的单元。操作完成后列地址计数器自动加一。7)读显示数据格式数据该操作将LCM接口部的输出寄存器容读出,然后列地址计数器自动加一。二、液晶显示原理1汉字和英文显示原理在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,于是我们的DOS前辈想了一个办法,就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的码。而剩下的低128位则留

14、给英文字符使用,即英文的码。那么,得到了汉字的码后,还仅是一组数字,那又如何在屏幕上去显示呢?这就涉及到文字的字模,字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如英文的'A'在字模的记载方式如图1所示:英文字模位代码字模信息_uOn-O_uO_uO-U-U-U_uO_uO-U-U1I-U_uO1I一I-U-Un-D-UOkOOOkOOOkIO0k3B0k6c0kc6OxctiOsfc0kc6OsctiOkcCOkcOkQCOkOO0x00OkOO图1“A”字模图而中文的“你”在字模中的记载却如图2所示:ihJE.Dk

15、MOk54,Os200x1D,DstOOzlD,DksSOz0,Che31Ozll<Ds西0H12,fe22ChdLI,fe20OkIDjQkSQOkIDjOMaflOx1D.Dz-4QDDDDuu0u0000oooo00图2“你”字模图根据芯片的不同取模的方式不同,有多种取模方式:单色点阵液晶字模,横向取模,字节正序,单色点阵液晶字模,横向取模,字节倒序,单色点阵液晶字模,纵向取模,字节正序,单色点阵液晶字模,纵向取模,字节倒序等等。而PROTUES中的AMPIRE12684为纵向取模,字节倒序液晶。2.2图形显示先设页地址再设列地址页地址围0xb80xbf列平地址围0x400x7f绘

16、图RAM的地址计数器(AC)只对列地址自动加一,当列地址=0x7F时会重新设为0DDRAM的坐标地址与资料排列顺序如下图:1您-D&S2-Dr-D.62悶0162曾DBpDB0DSPDRQDSQ卿DRQOBQBQORQD11IIIIII1IIDB7DB7STDB7DQ7CB7DB7DB7DB7UB77DBDOBDDBDDBDDBDDBDDHDDBDBDDHDS111III1II1IIDH7DB737DH7DB7CB7DH70B7B7DH755K-7DBJDB0DBQDBODBQDBQDBUBBQ砧11III1II1IID87DB7S7DB7D87087D870S7B7087三、软件仿真

17、1汉字显示在Protues软件中选择所需元件,搭建的电路图如图1所示。jKFftllKFftlZJUSTar.&EP口3切FD2MHFQJIfia.勰卜FDAAUrDJafniFD.1W1ndiTzrrry匕T*sS:znp心蚀runiiP3.-hMrE壮"0T2S£MFO.VDJpszumiraaHWR.$raridPXpiTiTT将编写的代码烧写到单片机里,运行液晶显示正常LCD1-'''.WmEiSSi-仁6-1DC2X1::.TOISElixr/12DT&:.7>PDIVrdapn.i>*M-ipnzrzPD3AU

18、CIpd则5rDJSfe吨帧PZii畑.侶P23W-IF*Z.4pi£P2AVM3rESAjRPZTlWSP3JFOIIP3.I/TM-FHTnrsarnrj.kniP31PJJnTTjPlViTEH日口z'bjsdl-3d£*3i-hTj-日彳;”羽£尹'frT”2向上滚动显示LCDT.fiJUPIP.E1S-&'上T&dI-;®FE.IsloLCD11hjjpm.ei-&-STE=:-学班-E.H17宀i大1竞“新o陈c.Ill11r韦西偉3S0E.=-?a:1BlslmAAfc丁gn-lIJLPgHt

19、r-MaIJIH 口G二口曰口 口占 mB MBl!J占匸更LECfl.AjjpmEis&!:TF=:T:11111111111|nXUJ_艺丄養陈竟虚埶cu西科技丈学.41r-i1口I工lay00S-<s山EBQ目】*maSENmfflo£=EHaaaa口匚二“工工豈苗Oo咼w-口二flClG39aa3、PCB图四、部分实验代码(向上滚动显示/*片选1*/*片选2*/*复位信号*/*数据/指令/*读/写选6;/*读/写#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint#define

20、LCDLCDDisp_Off0x3e#defineLCDLCDDisp_On0x3f#definePage_Add0xb8/页地址#defineLCDCol_Add0x40/列地址#defineStart_Line0xC0/行地址/*液晶显示器的端口定义*/#definedata_oraP0/*液晶数据总线*/sbitLCDMcs二P2J;sbitLCDScs=P2"2;sbitRESET二P2飞;sbitLCDDi=P2"4;选择*/sbitLCDRW=P2"5;择*/sbitLCDEnable二P2"使能*/ucharcodeHz_guang=/*-

21、文字:广-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x00,0x00,0xF8,0x08,0x08,0x08,0x08,0x09,0x0E,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x80,0x60,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;ucharcodeHz_xi=/*-文字:西-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x02,0x02,0xE2,0x22,0x22,0xFE,0x22,0x22,0x22,0xF

22、E,0x22,0x22,0xE2,0x02,0x02,0x00,0x00,0x00,0xFF,0x48,0x44,0x43,0x40,0x40,0x40,0x43,0x44,0x44,0xFF,0x00,0x00,0x00;ucharcodeHz_ke=/*-文字:科-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x24,0x24,0xA4,0xFE,0xA3,0x22,0x00,0x22,0xCC,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x08,0x06,0x01,0xFF,0x00,0x01,0x04,0x04,0x04,0x04,0x0

23、4,0xFF,0x02,0x02,0x02,0x00;ucharcodeHz_ji=/*-文字:技-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x10,0x10,0x10,0xFF,0x10,0x90,0x08,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x08,0x00,0x04,0x44,0x82,0x7F,0x01,0x80,0x80,0x40,0x43,0x2C,0x10,0x28,0x46,0x81,0x80,0x00;ucharcodeHz_da=/*-文字:大-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x2

24、0,0x20,0x20,0x20,0x20,0x20,0x20,0xFF,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x80,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x80,0x00;0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00;ucharcodeHz_chen=/*-文字:-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x00,0x

25、FE,0x22,0x5A,0x86,0x08,0x88,0x68,0x18,0x0F,0xE8,0x08,0x08,0x08,0x08,0x00,0x00,0xFF,0x04,0x08,0x07,0x20,0x11,0x0D,0x41,0x81,0x7F,0x01,0x05,0x09,0x30,0x00;ucharcodeHz_jing=/*-文字:竞-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x20,0x20,0x24,0xA4,0xAC,0xB4,0xA5,0xA6,0xA4,0xB4,0xAC,0xA4,0x24,0x20,0x20,0x00,0x80,0x80,

26、0x40,0x47,0x24,0x1C,0x04,0x04,0x04,0x7C,0x84,0x87,0x80,0x80,0xE0,0x00;ucharcodeHz_xiong=/*-文字:雄-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x00,0x08,0xC8,0x38,0x8F,0x08,0x28,0x10,0xFC,0x4B,0x48,0xF9,0x4A,0x48,0x08,0x00,0x04,0x23,0x70,0x2C,0x23,0x28,0x70,0x00,0xFF,0x22,0x22,0x3F,0x22,0x22,0x20,0x00;0x80,0x40,0x

27、3F,0x40,0x80,0xFF,0x89,0x89,0x89,0xBF,0x89,0xA9,0xC9,0xBF,0x80,0x00;ucharcodeHz_xin=/*-文字:信-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x00,0x80,0x60,0xF8,0x07,0x00,0x04,0x24,0x24,0x25,0x26,0x24,0x24,0x24,0x04,0x00,0x01,0x00,0x00,0xFF,0x00,0x00,0x00,0xF9,0x49,0x49,0x49,0x49,0x49,0xF9,0x00,0x00;ucharcodeHz_1=/*

28、-文字:1-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;ucharcodeHz_0=/*-文字:0-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0

29、0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;ucharcodeHz_ban=/*-文字:班-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x84,0x84,0xFC,0x84,0x84,0x00,0xF8,0x00,0xFF,0x00,0x84,0x84,0xFC,0x84,0x84,0x00,ucharcodeHz_tong=/*-文字:通-*/*-宋体12;此字体下对应的点阵为:宽x高=16x

30、16-*/0x40,0x42,0xCC,0x00,0x00,0xE2,0x22,0x2A,0x2A,0xF2,0x2A,0x26,0x22,0xE0,0x00,0x00,0x10,0x30,0x1F,0x08,0x88,0x42,0x21,0x18,0x07,0x00,0x20,0x20,0x3F,0x20,0x20,0x00;ucharcodeHz_wo=/*-文字:我-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0,0x20,0x00,

31、0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00;ucharcodeHz_ai=/*-文字:爱-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x80,0x64,0x2C,0x34,0x24,0x24,0xEC,0x32,0x22,0x22,0x32,0x2E,0x23,0xA2,0x60,0x00,0x00,0x41,0x21,0x91,0x89,0x87,0x4D,0x55,0x25,0x25,0x55,0x4D,0x81,0x80,0x80,0x00;uchar

32、codeHz_m=/*-文字:M-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;ucharcodeHz

33、_u=/*-文字:U-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;/函数功能:LCD延时程序入口参数:t出口参数:/voidLCDdelay(unsignedintt)unsignedinti,j;for(i=0;i<t;i+);for(j=0;j<

34、;10;j+);/状态检查,LCD是否忙/voidCheckState()unsignedchardat,DATA;/状态信息(判断是否忙)ucharcodeHz_c=/*-文字:C-*/*-宋体12;此字体下对应的点阵为:宽x高=16x16-*/0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,LCDDi=0;/数据指令选择,D/I(RS)="L",表示DB7sDB0为显示指令数据LCDRW=1;/R/W="H",E="H"

35、数据被读到DB7sDB0doDATA=0x00;LCDEnable=l;/EN下降源LCDdelay(2);/延时dat=DATA;LCDEnable=0;dat=0x80&dat;/仅当第7位为0时才可操作(判别busy信号)while(!(dat=0x00);/函数功能:写命令到LCD程序,RS(DI)=L,RW=L,EN=H,即来一个脉冲写一次入口参数:cmdcode出口参数:/voidwrite_(unsignedcharcmdcode)CheckState();/检测LCD是否忙LCDDi=0;LCDRW=0;P0=cmdcode;LCDdelay(2);LCDEnable=

36、1;LCDdelay(2);LCDEnable=0;/函数功能:LCD初始化程序入口参数:出口参数:/voidinit_lcd()LCDdelay(100);LCDMcs=l;/刚开始关闭两屏LCDScs=1;LCDdelay(100);write_(LCDLCDDisp_Off);/写初始化命令write_(Page_Add+0);write_(Start_Line+0);write_(LCDCol_Add+0);write_(LCDLCDDisp_On);/函数功能:写数据到LCD程序,RS(DI)=H,RW=L,EN=H,即来一个脉冲写一次入口参数:LCDDispdata出口参数:/vo

37、idwrite_data(unsignedcharLCDDispdata)CheckState();/检测LCD是否忙LCDDi=1;LCDRW=0;P0=LCDDispdata;LCDdelay(2);LCDEnable=1;LCDdelay(2);LCDEnable=0;/函数功能:清除LCD存程序入口参数:pag,col,hzk出口参数:/voidClr_Scr()unsignedcharj,k;LCDMcs=0;/左、右屏均开显示LCDScs=0;write_(Page_Add+0);write_(LCDCol_Add+0);for(k=0;k8;k+)/控制页数0-7,共8页writ

38、e_(Page_Add+k);/每页每页进行写for(j=0;j<64;j+)/每页最多可写32个中文文字或64个ASCII字符write_(LCDCol_Add+j);write_data(0x00);/控制列数0-63,共64列,写点容,列地址自动加1/函数功能:指定位置显示汉字16*16程序入口参数:page,column,hzk出口参数:/voidhz_LCDDisp16(unsignedcharpage,unsignedcharcolumn,unsignedcharcode*hzk)unsignedcharj=0,i=0;for(j=0;j<2;j+)write_(Pag

39、e_Add+page+j);write_(LCDCol_Add+column);for(i=0;i<16;i+)write_data(hzk16*j+i);voiddis_gxkjdx()LCDMcs=0;/左屏开显示LCDScs=1;hz_LCDDisp16(0,16,Hz_guang);/Hz_Wo为某个汉字的首地址hz_LCDDisp16(0,32,Hz_xi);hz_LCDDisp16(0,48,Hz_ke);LCDMcs=1;/右屏开显示LCDScs=0;hz_LCDDisp16(0,0,Hz_ji);hz_LCDDisp16(0,16,Hz_da);hz_LCDDisp16(

40、0,32,Hz_xue);voiddis_txb()LCDMcs=0;/左屏开显示LCDScs=1;hz_LCDDisp16(2,16,Hz_tong);/Hz_Wo为某个汉字的首地址hz_LCDDisp16(2,32,Hz_xin);hz_LCDDisp16(2,48,Hz_1);LCDMcs=1;/右屏开显示LCDScs=0;hz_LCDDisp16(2,0,Hz_0);hz_LCDDisp16(2,16,Hz_1);hz_LCDDisp16(2,32,Hz_ban);dis_wa_mcu();while(1)总结voiddis_cjx()LCDMcs=0;/左屏开显示LCDScs=1;h

41、z_LCDDisp16(4,16,Hz_chen);/Hz_Wo为某个汉字的首地址hz_LCDDisp16(4,48,Hz_jing);LCDMcs=1;/右屏开显示LCDScs=0;hz_LCDDisp16(4,16,Hz_xiong);voiddis_wa_mcu()LCDMcs=0;/左屏开显示LCDScs=1;hz_LCDDisp16(6,16,Hz_wo);/Hz_Wo为某个汉字的首地址hz_LCDDisp16(6,32,Hz_ai);hz_LCDDisp16(6,48,Hz_m);LCDMcs=1;/右屏开显示LCDScs=0;hz_LCDDisp16(6,0,Hz_c);hz_LCDDisp16(6,16,Hz_u);voidmain()init_lcd();C

温馨提示

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

评论

0/150

提交评论