1、项目10、单片机LCD液晶显示器实验测试教学容:任务 1: 1602 液晶显示器的原理及电路设计任务 2: 程序设计与仿真调试教学目的:一、了解LCD夜晶显示器的工作原理。二、掌握LCD夜晶显示器的编程控制方法。任务 1: 1602 液晶显示器的原理及电路设计LCD是 Liquid Crystal Display的简称是一种利用液晶的扭曲 / 向列制成的新型显示器。一、LCD勺特点:(1) 显示质量咼,由于液晶显示器每一个点在收到信号后就一直保持那 种色彩和亮度,恒定发光,而不像阴极射线管显示器( CRT那样需要不断刷新 亮点,因此,液晶显示器画质量咼且不会闪烁。(2) 数字式接口 液晶显示器
2、都是数字式的,与单片机系统的接口更加喜欢简单可靠,操作更加方便。(3) 体积小、重量轻 液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同的显示面积的传统显示器要轻的多。(4)、功耗低相对而言,液晶显示器的功耗主要消耗在其部的电极和驱动 IC 上,因而耗 电量比其他显示要少得多。二、液晶显示器原理 液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制, 有电就有显示,这样就可以显示出图形,液晶显示器具有厚度薄、适用于大规 模集成电路直接驱动和易于实现全彩色显示的特点,目前已经被广泛应用在便 携式电脑、数字摄像机和PDA移动通信工具等众多领域。三、LCD的分
3、类1、显示方式:(1)段式(2)字符式(3)点阵式(1)段式的应用:计算器、电子表、数字万用表等;显示类型与数码管类似,靠 7 个字段拼凑数字显示;一般只能显示09, AF16种字符;驱动简单,耗电量小;在仅需要显示数字的场合应用较多; 也用来在便携式应用的场合来代替数码管 。(2)、点阵字符式:有 192 种置字符,包括数字、字母、常用标点符号等。另外用户也可以自定义 5*7 点阵的字符等。( 3)、点阵图形式:除可以显示字符外,还可显示各种图形信息、汉字等。区别:(1)点阵型 Lcd 就是整个 Lcd 由若干个点构成,如 240128就是 240*128 个点,可以显示图形和汉字、字母、符
4、号等,要显示的容大小可以自己定义(2)字符型 Lcd 固定每行显示多少个字符,每个字符显示的位置固定。(3) 段式一般没有专门的控制器,显示的东西都是相对固定的,一般把显 示的容直接开模做。有专门的多段码液晶驱动控制芯片。(4) 字符型、图形式的液晶则有控制器(要翻译MCI送来的控制命令)。不 同的控制器指令不一样。而具体的液晶结构,也需要不同的控制器。主要是点 阵结构、扫描模式。2、色彩度( 1 )黑白( 2 )多灰度( 3 )彩色显示3、驱动方式:( 1 )主动矩阵驱动优点:. 广阔的视角LCD是被动显示技术,需要强的背景光线穿过液晶层来形成图像。LCD勺特性决定不会产生视觉疲劳的优良性能
5、,同时用为它需要定向的背景光限制了可 视角度。LUXEON LC采用的A-si主动矩阵技术结合其原创的 SuperviewTM技 术从两个方面有效解决了可视角的难题:a. 显示屏漫射增益技术 : 利用菲涅尔透镜原理,显示屏对特殊的处理,以 增大漫反射;在扩大视角的同时可提升显示对比度和亮度均匀性。需要极高的 工艺水准。b. 液晶微单元技术:将每个液晶单元分割成大量微小的部分,事先将这些 微小子单元以不同的方向倾斜,这就使得传播光线在到达这些微小面板的时候 向各个方向散射,从而增大可视角度。. 丰富色域表现,可以真正达到 16.7M 色液晶本身没有颜色,每个LCD的子像素显示的颜色取决于色彩过滤
6、器。LCD Panel的数字信号控制器控制滤色片产生各种颜色。主动矩阵LCD采用8位控制 器,可以产生256级灰度。每个子像素能够表现256级,那么你就能够得到256X3 种色彩,每个像素能够表现 16,777,216 种颜色。由于人的眼睛对亮度的感觉并 不是线性变化的,人眼对低亮度的变化更加敏感,所以普通的 24 位的色度并不 能完全达到理想要求。框架速率控制(FRC:通常只应用于高端专业产品;通过时间控制在显示 每屏图像时多次刷新像素;与高频振动中将灰度的混合用空间来显示不同色彩 过渡层。如果显示一幅画面需要的时间分为很多帧 , 像素就可以在帧的切换当中 造成一种灰度的过渡态,四帧就可以造
7、成三个过渡态。可以不降低图像的分辨 率,实现完美的色彩表现。( 2)静态驱动静态驱动法是指在像素前后电极士几施加驱动电压时呈显示状态,不施加 驱动电压时则呈非显示状态的一种直接驭动方法从前面叙述可知,液晶显示器 不宜施加直流电压 . 故静态驱动法施加到电极上的电压信号为交变信号,也就是 说静态驱动方法的基本思想是在相对应的一对电极间连续外加电场或不外加电 场。3)单纯矩阵驱动4、采光方式LCD可公为带背光源和不带背光源两类不带背光源LCD是靠显示器背面的反射膜将射入的自然光从下面反射出来完成的。大部分设备的LCD是用自然光的光源,可选用不带背光的 LCD若产品工作在弱光或黑暗条件下时,则选择带
8、背光的LCD。在电子工业中,背光是一种照明的形式,常被用于LCD显示上。背光式和前光式不同之处在于背光是从侧边或是背后照射,而前光顾名思义则从前方照 射。他们被用来增加在低光源环境中的照明度和电脑显示器、液晶荧幕上的亮 度,以和CRT显示类似的方式产生出光。其光源可能是白炽灯泡、电光面板(ELP)、发光二极管(LED)、冷阴极管(CCFL) 等。电光面板提供整个表面均匀的光,而其他的背光模组则使用散光器从不均 匀的光源中来提供均匀的光线。背光可以是任何一种颜色,单色液晶通常有黄、绿、蓝、白等背光。而彩 色显示采用白色白光,因其涵盖最多色光。LED背光被用在小巧、廉价的LCD面板上。他的光通常是
9、有颜色的,虽然白 色背光已经愈来愈普遍了。电光面板经常被使用在大型显示上,这时均匀的背 光是很重要的。电光面板需要经由高压的交流电来驱动,这部份由反用换流器 回路来提供。冷阴极管被用在像是电脑显示器上,颜色上通常是白色的,这同 样也需要反用换流器和散光器。白炽背光则在需要高亮度时被使用,但是其缺 点则是白炽灯泡的寿命相当有限,而且会产生相当多的热量。LED背光可增进LCD显示的色彩表现。LED光是经由三个各别的LED所产生 出来,提供相当吻合LCD像点滤色器自身的色光谱。四、图形显示的原理1、线段:点阵图形式液晶由M*N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节
10、的8位,即每行由16字节,共16*8=128个点组成,16字节恰位/字节二128个位64行64* 16字节二1024个显示单元屏上64*16个显示单元与显示 RAMK 1024字节相对应,每一字节的容和显示屏上相应位置的亮暗对应。例如:屏的第一行的亮暗由 RAMaq的000100FH的16字节的容决定,当(000H =(FFH)时,则屏幕左上角显示一条短亮线。(1024)10=(400)16000H3FFH2、字符的显示:用LCD显示一个字符时比较复杂,因为一个字符由6*8或8*8点阵组成,既要找到屏幕上某几个位置对应的显示 RAM区的8字节,还有使每字节的不同 位为“ 1”,其他的为“0”。
11、这样就组成了某个字符,但对于带字符发生器的控 制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在 LCD 上开始显示的行列号及每行的列数找出显示器RAM对应的地址,设立光标,在此送上该字符对应的代码即可。P0OOOOOOOPOOOOOO011101000110001100011111110001100013、显示汉字(1)汉字编码汉字的输入法:音码、形码、区位码 区位码:1980年,为了使每一个汉字有一个全国统一的代码,我国颁布了第一个汉 字编码 的国家标准:GB2312-80信息交换用汉字编码字符集。将其中的汉字和 其他符号按照一定的规则排列成为一个大的表格,在这个个表格中,
12、第一(横) 行称为一个“区”,每一(竖)列称为一个“位”,整个表格共有94区,每区有94位,并将“区”和“位”用十进制数字进行编号:即区号为01-94,位号为01-94。第01-09区:分别存放了 682个标点符号运算符号制表付号数字序号英文字母俄文字母日文假名希腊字母汉语拼音字母汉语注音字母等第10-15区有待扩展的空白区第16-55区:(最常用的汉字)按照汉语拼音的顺序依次存放了3755个一级汉字第56-87区:(次常用的汉字)按照部首顺序依次存放了 3008个二级汉字第88区以后有待扩展的空白区例如:保:区位码:十进制: 1703D 十六进制: 1103H为了去除ASCII表里的前30(
13、20H个控制符,在区位码的基础上加上2020H 形成国标码。国标码是 3123H。但ASCII码表里:西文字符“ T和“ #”的ASCII也为31H和23H所以就产生了二义性。计算机在RAM卖取时,无法判断。决定把最高位置1, 这样保的机码就形成了: B1A3H最终的公式:区位码 H + 2020H = 国标码 + 8080 H= 机码或:区位码+A0A0H机码得出以下两个结论:结论1:汉字机码的每个字节都大于128( FFH),这就解决了与西文字符的 ASCII 码冲突的问题结论 2:汉字机码一个汉字占两个字节 ANSI为使计算机支持更多语言,通常使用 0x800xFF 围的 2 个字节来表
14、示 1 个字符。比如:汉字 中 在 ANSI 编码中文操作系统中, 使用 0xD6,0xD0 这 两个字节存储。不同的国家和地区制定了不同的标准,由此产生了GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下, ANSI 编码代表 GB2312 编码,在日 文操作系统下, ANSI 编码代表 JIS 编码。不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种 语言的文字,存储在同一段 ANSI 编码的文本中。当然对于 ANSI 编码而言, 0x000x7F之间的字符,依旧是1个字
15、节代表1个字符。这一点是ASNI编码与 Unicode 编码之间最大也最明显的区别。举例:在桌面上新建一文本文档。容为:联通,如果按照 ANSI方式存盘将会出现什么问题? Unicode编码(具体容学生可下去自已了解)Unicode 是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳 1114112个字 符,或者说有 1114112个码位。码位就是可以分配给字符的数字。 UTF-8、UTF-16、 UTF-32都是将数字转换到程序数据的编码方案。通用字符集(Universal Character Set ,UCS 是
16、由 ISO制定的 ISO 10646(或称ISO/IEC 10646)标准所定义的标准字符集。UCS-2用两个字节编码,UCS-4 用 4个字节编码。历史上存在两个独立的尝试创立单一字符集的组织,即国际标准化组织(ISO)和多语言软件制造商组成的统一码联盟。前者开发的ISO/IEC 10646项 目,后者开发的统一码项目。因此最初制定了不同的标准。1991 年前后,两个项目的参与者都认识到,世界不需要两个不兼容的字符 集。于是,它们开始合并双方的工作成果,并为创立一个单一编码表而协同工 作。从 Unicode 2.0 开始, Unicode 采用了与 ISO 10646-1 相同的字库和字码;
17、ISO也承诺,ISO 10646将不会替超出U+10FFFF勺UCS-4编码赋值,以使得两 者保持一致。两个项目仍都存在,并独立地公布各自的标准。但统一码联盟和 ISO/IEC JTC1/SC2 都同意保持两者标准勺码表兼容,并紧密地共同调整任何未 来勺扩展。在发布勺时候, Unicode 一般都会采用有关字码最常见勺字型,但 ISO 10646 一般都尽可能采用 Century 字型。UCS-4根据最高位为0的最高字节分成2八7=128个group。每个group再根 据次高字节分为 256 个平面( plane )。每个平面根据第 3 个字节分为 256 行(row),每行有256个码位(
18、cell )。group 0的平面0被称作 BMP( Basic Multilingual Plane)。将UCS-4的BMP去掉前面的两个零字节就得到了 UCS-2 每个平面有 2八16=65536个码位。Uni code计划使用了 17个平面,一共有 17*65536=1114112个码位。在 Unicode 5.0.0 版本中,已定义的码位只有 238605 个,分布在平面 0、平面 1、平面 2、平面 14、平面 15、平面 16。其中平面 15 和平面 1 6上只是定义了两个各占 65534个码位的专用区( Private Use Area ), 分别是0xF0000-0xFFFFD
19、和0x100000-0x10FFFD所谓专用区,就是保留给大家 放自定义字符的区域,可以简写为 PUA。平面 0也有一个专用区: 0xE000-0xF8FF,有 6400个码位。平面 0的 0xD800-0xDFFF共2048个码位,是一个被称作代理区(Surrogate )的特殊区 域。代理区的目的用两个 UTF-16字符表示BMP以外的字符。在介绍 UTF-16编 码时会介绍。如前所述在 Unicode 5.0.0 版本中, 238605-65534*2-6400-2408=99089 。 余下的 99089个已定义码位分布在平面 0、平面 1、平面 2 和平面 14 上,它们 对应着 U
20、nicode 目前定义的 99089个字符,其中包括 71226个汉字。平面 0、平面1 平面2和平面14上分别定义了 52080、3419、43253和337个字符。平面2的43253个字符都是汉字。平面 0上定义了 27973个汉字(2)汉字显示64*64点阵 LCD上多米用16*16点阵0x40,0x40, 0x20,0x20,0x27,0xFE,0x84,0x04,0x40,0x38,0x01,0xC0,0x11,0x00,0x11,0xFC, 0x21,0x10,0x21,0x10,0xC7,0xFE,0x40,0x00,0x40,0x10,0x41,0x08,0x42,0x04,0
21、x4C,0x04,64*128点阵的LCD可以显示的字符个数的计算64*128点阵=8192个点64*128 点阵=8192个点 /16*16 点阵=3216个字符 *2 行=32 显示汉字要取汉字的字模。 可以自己手工操作,也可以网上下载共享软件。 要了解汉字取模的方式。并要掌握字节表示的含义。任务2:程序设计与仿真一、教学目标:1、制作一个用LCD显示字符的单片机系统。2、制作一个用LCD显示汉字的单片机系统。3、掌握单片机的LCD显示接口电路工作原理及其应用。4、初步掌握单片机应用系统分析和软硬件设计的基本方法,建立单片机系 统设计的基本概念。二、1602字符型简介1、1602字符型技术
22、参数:显示容量:16*2个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95*4.35mm指令:11种2、引脚功能:1602字符型LCD采用标准的14脚或16脚接口,各引脚接口说明如下表:编号符号引脚说明编号符号引脚说明1VSs电源地9D2数据2Vdd电源正极10D3数据3Vl液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7DO数据15BLA背光源正极8D1数据16BLK背光源负极第1脚:Vss为地电源。第2脚:Vdd接5V正电源。第3脚:V-为液晶显示器对比度调整端,接正
23、电源时对比度最弱,接地时 对比度最高,对比度过高时会产生“鬼影“,使用时可通过一个10K殴的电位器调整对比度。第4脚:RS为数据/命令选择线,高电平时选择数据寄存器,低电平时选择 指令寄存器。第5脚:R/W为读写选择线,高电平时进行读操作,低电平时进行写操作, 当RS和R/W共同为低电平时可以写入指令或显示地址,当RS为低电平时而R/W为高电平时可以读忙信号,当 RS为高电平而R/W为低电平时可以写 入数据。第6脚:Eumc为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令第7 14脚:D0-D7为8位数据线第15脚:背光源正极第16脚:背光源负极3、指令说明:齢喀加控制信号4运嗣间25
24、0KHZQ功紗SET DE6 DBS PB4 DBS DB2 DEI 脱0 0 ) 0 0 0 0 1VvAWV*YXrW1.伽押蓿DDFM和AC的值2!日他QQ伽00 J 00&1WWVsrWWL &tn 抻AC=O光标i画页回HOJfE位门献方式役昏00J001 I/D S*3VtArVr4(际谟诙,画瞬方龙Q Q 2 Q L D c 肝40lls+设証示,光标戲烁刊知光林画面位铁C000 J 1 S/C R/L *40u光标,Sffi移动忑瓢加&训功能设昏001 DL n F *w40u工伽锻f械化龄2c(丸址设味Of0 1 AB A4 AS A2 Al 妙40us设負CCM地址EDRA
25、M地址设苣*OP1 AE A5 A4 A3 A2 A1 340us设貫DDRAI地址PH谨BF及M值*2LQBF AC AC5 叔 AC3 AC2 AXC1 ACO-Ous+JittBF值地址才数器曲值写数据2数据门数据写入DDF鑼/CGRilH读数据J1+3数据小dQus*DDm/CGRO 娠融I/D=h数据读周攝作后+ AC自勾増1S/C=1:S1面平移一个宇符位N=l:两M显不*I/D=0:敎据读勇撓作后,AC自动减1S/C=O!?C标平移一个字符位一行见示心51:数捋谨/写操作,倒面平移对匸上右移*上5*10点阵字符心5=0:数据读得操作,阻面不动R/t=O;左移F=0: &*?点库字
26、符QD:显示开关,T 一开旷一关ILFi 8位数捱接口BF=li It*-Q光标开关一开0” 一关EL=O:. 4位敢挺接口BF=O:邃备好Q1缶闪酹关-开;S” 一关Q 清屏指令:使DDRA的容全部被清除,屏幕光标回原位,地址计数器AC=0 运行时间 (250KHz): 1.64ms。 归位指令:使光标和光标所在位的字符回原点 ( 屏幕的左上角 ) 。但 DDRAM 单元容不变。地址计数器 AC=Q运行时间(250KHz): 1.64ms。 输入方式设置。该指令设置光标、画面的移动方式。l/D=l:数据读写操作后,AC自动增1;l/D=Q :数据读写操作后,AC自动减l ;S=1:当数据写入
27、DDRAJM显示将全部左移(I/D=1)或全部右移(I/D=Q),此时光标看上去未动,仅仅是显示容移动,但从 DDRAM中读取数据时,显 示不移动;S = Q:显示不移动,光标左移(I/D=1)或右移(I/D=Q)。 显示开关控制。该指令设置显示、光标及闪烁开、关。D :显示控制,D=1,开显示(Display ON), D=Q 关显示(Display OFF);C :光标控制,C=1,开光标显示,C=Q,关光标显示;B :闪烁控制,B=1,光标所指的字符同光标一起以Q.4s交变闪烁,B=Q, 不闪烁。运行时间(25QKHz): 4Q s。 光标或画面移位。该指令使光标或画面在没有对 DDRA
28、M进行读写操作时被左移或右移, 不影响DDRAM S/C=Q、R/L = 1,光标左移一个字符位,AC自动减1; S/C=Q、 R/L=1,光标右移一个字符位, AC自动加1; S/C=1、R/L=Q,光标和画面一 起左移一个字符位;S/C=I、R/L = 1,光标和画面一起右移一个字符位。运 行时间(250KHZ): 40 卩 s。 功能设置。该指令为工作方式设置命令(初始化命令)。对HD44780初始化时,需 要设置数据接口位数DL(4位或8位)、显示行数N、点阵模式F(5 X 7或5 x 10)。DL:设置数据接口位数,DL=1, 8位数据总线 DB7- DBQ DL=0, 4位数据总线
29、DB&DB4而DB3-DB0不用,在此方式下数据操作需两次完成;N :设置显示行数,N=1, 2行显示;N=0, 1行显示。F :设置点阵模式,F=0, 5X 7点阵,F=1, 5X 10点阵。运行时间(250KHz): 40卩s。 CGRAM地址设置。该指令设置CGRAI地址指针。A5A0=00000011 1111。地址码A5A0 被送入AC中,在此后,就可以将用户自定义的显示字符数据写入 CGRAI或 从CGRAI中读出。运行时间(250KHz): 40 s。 DDRAM地址设置。该指令设置DDRA地址指针。若是一行显示,地址码A6A0= 004FH 有效;若是二行显示,首行址码 A6A
30、0= 0027H有效,次行址码 A6A0 =4067H有效。在此后,就可以将显示字符码写入 DDRAI或从 DDRA中读 出。运行时间(250KHz): 40卩s。 读忙标志BF和AC值,该指令读取BF及AC BF为部操作忙标志,BF=1, 忙,BF=Q不忙。AC4AC0为地址计数器 AC的值。当BF=0时,送到DB DB0的数据(AC6AC0)有效。写数据到DDRA或CGRA,该指令根据最近设置的地址性质,将数据写入DDRA或 CGRA中。实际上,数据被直接写入 DR再由部操作写入地址指针所指的DDRAI或 CGRAM运行时间(250KHz): 4卩s。11读DDRA或CGRA数据,该指令根
31、据最近设置的地址性质,从 DDRA或CGRA读数据到总线 DB7- DBO上。运行时间(250KHz): 40卩s。读操作时序:OBO-DB?tRbtDH/a I id DatatH011C -写操作时序:D30-DB71FValid Data1c应用举例:例1:;在第二行显示联系:在LCD1602字符型液晶第一行显示名:.binhai.0532 82228222。电路图如下图:-CD1 JuOJflL T)C15XTA11RBTbKU怦1 RC劲口 PCMdrai/oRWHIMPI血KBI町阿4LEP沏J3F:.H 町肿5F1Dpa.ijROF1.1PJ.ITOJP12P3113PiuWF1
32、4科4T)F1.5阳泗PH砂F1?rartarAT却匸汨4 37程序流程图:4、l J: Or开始H I1显示第1行内容1LCD初馳Fo设第2行显示位置1 fr延时显示第2行内容1设第1行显示位置广TL软件代码:#in elude #in elude vintrin s.hsbit rs=P2A0;sbit rw=P2A1;sbit ep=P2A2;un sig ned char code dis1=.b in haiy.;un sig ned char code dis2=02;void delay (un sig ned char ms)un sig ned char i;while (m
33、s-)for(i=0;i250;i+)_nop_();_nop_();_nop_();_nop_();bit lcd_bz()bit result;rs=0;rw=1;ep=1;_nop_();_nop_();_nop_();_nop_();result=(bit)(P0&0x80);ep=0;return result;void lcd_wcmd(unsigned char cmd)while(lcd_bz();rs=0;rw=0;ep=0;_nop_();_nop_();P0=cmd;_nop_();_nop_();_nop_();_nop_();ep=1;_nop_();_nop_();
34、_nop_();_nop_();ep=0;void lcd_pos(unsigned char pos)lcd_wcmd(pos|0x80);void lcd_wdat(unsigned char dat)while(lcd_bz();rs=1;rw=0;ep=0;P0=dat;_nop_();_nop_();_nop_();_nop_();ep=1;_nop_();_nop_();_nop_();_nop_();ep=0;void lcd_init()lcd_wcmd(0x38); delay(1); lcd_wcmd(0x0c); delay(1);lcd_wcmd(0x06);delay
35、(1); lcd_wcmd(0x01);delay(1);void main(void)unsigned char i;lcd_init();delay(10); lcd_pos(0x01);i=0; while(dis1i!=0) lcd_wdat(dis1i);i+; lcd_pos(0x42);i=0;while (dis2i!=0)lcd_wdat(dis2i);i+;while(1);例2: 显示汉字:电路图如下图:po n/annPD/D1Ffi nPOJ/aCORO知心PO5/M)5PO町肝P0-7/ZD?pj. hwP22/A1DFSEHP2.3/A1 1oP2.4/A12EA
36、P2.5/A13P2P 2.7/Al 5piP?” 用9PAP1.2ro .nriilJF1 JR3 /irfTIP1 EF1 .SPJ.3-T1n .tPOFl ,7F3.7fS:OA_L121415RP1 RFSPnLJCD1i=aP3REI3BXn47EMT程序代码:#i nclude #in elude vintrin s.h#defi ne uchar un sig ned char#defi ne uint un sig ned int#defi ne LCD_databus P0 LCD8位数据口uchar num;sbit RS=P2A2; /RS 为 0 命令,1 数据sbi
37、t RW=P2A1;RW 为 1 写,0-读sbit CS1=P2A4; /sbit CS2=P2A3; /sbit EN=P2A0; / 使能端片选1低电平有效,控制左半屏片选1低电平有效,控制右半屏char code0, 0x10,0x08,0x05,0x02,0x05,0x20,0x10,0x0C,0x03,0x04,0x08,0x10,0x30,0x20,0x20,0x00,; char code ying=0x40,0x40,0x44,0xC8,0x00,0xF8,0x08,0x84,0x06,0xF0,0x08,0x88,0xF8,0x00,0x00,0x00, 0x08,0x08
38、,0x09,0x0E,0x08,0x09,0x09,0x08,0x10,0x17,0x10,0x30,0x30,0x10,0x10,0x00,; char code fang=0x40,0x40,0x20,0xE2,0x04,0x00,0x20,0x20,0x22,0xE2,0x94,0x90,0x10,0x10,0x10,0x00, 0x00,0x00,0x00,0x0F,0x14,0x0A,0x04,0x02,0x11,0x20,0x18,0x07,0x00,0x00,0x00,0x00,;char code wen=0x40,0x40,0x20,0xE2,0x04,0x00,0x20,0
39、x20,0x22,0xE2,0x94,0x90,0x10,0x10,0x10,0x00J0x00,0x00,0x00,0x0F,0x14,0x0A,0x04,0x02,0x11,0x20,0x18,0x07,0x00,0x00,0x00,0x00,; char codeshan=0x40,0x40,0x20,0xE2,0x04,0x00,0x20,0x20,0x22,0xE2,0x94,0x90,0x10,0x10,0x10,0x0 0,0x00,0x00,0x00,0x0F,0x14,0x0A,0x04,0x02,0x11,0x20,0x18,0x07,0x00,0x00,0x00,0x00
40、,; char codedong=0x40,0x40,0x20,0xE2,0x04,0x00,0x20,0x20,0x22,0xE2,0x94,0x90,0x10,0x10,0x10,0x0 0,0x00,0x00,0x00,0x0F,0x14,0x0A,0x04,0x02,0x11,0x20,0x18,0x07,0x00,0x00,0x00,0x00,; char codeqing=0x40,0x40,0x20,0xE2,0x04,0x00,0x20,0x20,0x22,0xE2,0x94,0x90,0x10,0x10,0x10,0x0 0,0x00,0x00,0x00,0x0F,0x14,
41、0x0A,0x04,0x02,0x11,0x20,0x18,0x07,0x00,0x00,0x00,0x00,; char codedao=0x40,0x40,0x20,0xE2,0x04,0x00,0x20,0x20,0x22,0xE2,0x94,0x90,0x10,0x10,0x10,0x00J0x00,0x00,0x00,0x0F,0x14,0x0A,0x04,0x02,0x11,0x20,0x18,0x07,0x00,0x00,0x00,0x00,; char codebin=0x40,0x40,0x20,0xE2,0x04,0x00,0x20,0x20,0x22,0xE2,0x94,
42、0x90,0x10,0x10,0x10,0x00J0x00,0x00,0x00,0x0F,0x14,0x0A,0x04,0x02,0x11,0x20,0x18,0x07,0x00,0x00,0x00,0x00,; char codehai=0x40,0x40,0x20,0xE2,0x04,0x00,0x20,0x20,0x22,0xE2,0x94,0x90,0x10,0x10,0x10,0x00J0x00,0x00,0x00,0x0F,0x14,0x0A,0x04,0x02,0x11,0x20,0x18,0x07,0x00,0x00,0x00,0x00,; char codexue=0x00,
43、0xC0,0x70,0x22,0x24,0xA0,0x52,0x54,0xD0,0x58,0x17,0x10,0x30,0x10,0x00,0x00J0x00,0x04,0x04,0x04,0x04,0x04,0x24,0x43,0x3E,0x02,0x02,0x02,0x02,0x00,0x00,0x00,; char codeyuan=0x00,0xFC,0x44,0xB4,0xCC,0x20,0x18,0x50,0x4A,0xAC,0xA8,0x88,0x18,0x00,0x00,0x00,0x00,0x3F,0x00,0x20,0x10,0x08,0x05,0x03,0x01,0x1F,0x20,0x20,0x20,0x1C,0x00,0x00,; void delay(uint i)while(-i);void Read_busy() / 读“忙”函数 数据最高位 DB71 则忙P0=0x00;RS=0;RW=1;
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。