单片机显示屏设计_第1页
单片机显示屏设计_第2页
单片机显示屏设计_第3页
单片机显示屏设计_第4页
单片机显示屏设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

单片机显示屏设计引言于电子行业中,越来越多的产品开始重视人机信息交换的输入输出设备。其中高像素液晶屏也越来越广泛的采用。手机、GPS、PDA等电子设备均已使用320*240或更高像素的18采用赌显示电路却是LEDLCD12864液晶显示模块可提供大部分电子产品及电器的显示功能。MCS-51单片机是美国INTE公司于1980培训课件仍和MCS-51单片机作为代表进行理论基础学习。虽然目前51系列单片机已无法满足目前某些功能或环境的要求,可是51系列的单片机仍然是最为成功的单片机芯片,它的影响力壹直延续到当下,以至于被越来越多的人熟悉。而从目前市场价格及普及程度等方面因素考虑,本文采用AT89C51单片机作为显示模块的控制核心。目前众多电子类产品用于显示功能常用数码管LED和液晶LCD。虽然数码管LEDLED常用动态显示,于复杂的系统中十分耗费系统资源,已逐渐被淘汰。而于LCD方面,常见的有LCD12864,LCD12232,LCD12864等。LCD12864能够于LCD显示屏上完整显示32个英文字符和日文等壹些字符适合显示英文文字信息量小的地方。LCD12232也只适合文字量少的场合。而LCD2864的分辨率达到了128*6416*16的字体可显示4行8足大部分设备显示的要求。LCD12864于市场上主要分为俩种,壹种采用st7920控制器,它带有中文库字模,价格略高壹点,另壹种是采用KS0108控制器,它只是点整模式,不带字库。而本文无需专门显示文本且菜单文字比较简单,因此采用常见的KS0108控制器的LCD12864来完成显示模块的设计。1.设计内容和要求本设计是以STC89C52芯片的电路为基础,外部加上时钟振荡电路、上电+按键复位电路以及由LCD12864液晶显示器显示电路组成的。通过编写C语言程序控制硬件电路显示中英文。1.1设计显示屏的意义液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法相比的优点。近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子LCD显示模块和点阵型LCDLCD是壹种用8×16点阵图形来显示字符的液晶显示器。点阵型液晶可显示用户自定义的任意符号和图形,且可卷动显示,它作为便携式单片机系统人机交互界面的重要组成部分被广泛应用于实时检测和显示的仪器仪表中。支持汉字显示的点阵型液晶于现代单片机应用系统中是壹种十分常用的显示设备,汉字BP机、手机上的显示屏就是点阵型LCD。点阵型LCD是现代单片机应用系统中最常用的人机交互界面之壹。1.2设计方案根据设计的要求,以及设计的便捷性,本设计采用单片机和LCD12864且行CAT89C52的P0,P2,口直接对显示模块AMPIRE12864进行操作。2.系统总体结构2.1系统设计框图经过方案论证和比较后,最终确定的系统框图如图1所示,STC89C52单片机、LCD12864以及电源组成。主要系统结构设计框图如图所示。显示器晶振电路图2.1.1系统设计框图LCD128642.2主要设计软件介绍本设计利用KEIL编程软件对频率计源程序进行编程且调试,配合PROTEUS仿真软件对硬件进行仿真调试,俩种软件的简介如下:2.2.1PROTEUS软件简介Proteus软件是英国Labcenterelectronics公司出版的EDA国总代理为风标电子技术XXEDA工具软件的仿真功能,仍能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件)PCBPCB设计软件和虚拟模型仿真软件三合壹的设计平台,其处理器模型支持8051、HC11PIC10/12/16/18/24/30/DsPIC33AVRARM8086和MSP4302010年即将增加Cortex和DSP系列处理器,且持续增加其他系列处理器模型。于编译方面,它也支持IAR、Keil和MPLAB等多种编译器。2.2.2KEIL简介单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU能够执行的机器码有俩种方法,壹种是手工汇编,另壹种是机器汇编,目用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可见出。Keil提供了包括C编译器、宏汇编、连接器、库管理和壹个功能强大的仿真调试器等于内的完整开发方案,通过壹个集成uVision)将这些部份组合于壹起。运行Keil软件需要Pentium或之上的CPU16MB或更多RAM20M之上空闲的硬盘空间、WIN98NTWIN2000WINXP等操作系统。掌握这壹软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前于国C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。于开发大型软件时更能体现高级语言的优势3.系统硬件设计3.1单片机部分硬件设计3.1.1STC89C52简介STC89C52是STCCMOS88K于系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统518位CPU和于系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、8k字节Flash512字节RAM32位I/O口线,见门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,47向量451的5向量2级中断STC89C52可降至0Hz静态逻辑操作,支持2种软件CPURAM/中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机机壹切工作停止,直到下壹个中断或硬件复位为止。最高运作频率35MHz6T/12T可选。本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别和N1的相应功能管脚相连接。单片机正常工作时,均需要有壹个时钟电路和壹个复位电路。本设计中选择了内部时钟方式和按键电平复位电路,来构成单片机的最小电路。如图3.1.1所示图3.1.1STC89C52单片机管脚图3.1.2单片机最小系统设计单片机最小系统是能补足单片机工作的最简单电路,它由单片机、电源、晶体振荡器、复位电路等构成。它是本系统的处理单元也是控制单元,负责处理信号、外设的接口和制,同时它也是所有软件的载体。如图3.1.2图3.1.2单片机最小系统3.1.3时钟振荡电路和复位电路时钟振荡电路STC89C52中有壹个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器和作为反馈元C1、C2接于放大器的反馈回路中构成且联振荡电路。对外接电容C1,C2虽然没有什么严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳30PF±10PF,而如果使用陶瓷振荡器建议选择40PF±10PF。用户也能够采用外部时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到XTAL1时钟发生器的输入端,XTAL2则悬空。由于外部时钟信号是通过壹个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。本设计采用了内部时钟振荡器电路。如图3.2图3.1.3时钟振荡电路复位电路当STC89C52STC89C52单片机的RST引脚加上大于24个时钟周期之上的正脉冲,STC89C52单片机系统即初始复位。初始化后,程序计数器PC指向0000H,P0~P3输出口全部为高电平,堆栈指针写入07HRST0000H地址开始执行程序。单片机的外部复位电路有上电自动复位和按键手动复位俩种。本次设计采用的是上电+按键复位。如图3.2.2为STC89C52单片机的上位+按键复位电路,复位端和正电源接通,迅速放电,使RST引脚为高电平,复位按钮弹起后,电源通过10K电阻对10uf重新充电,RST引脚端出现复位正脉冲。图3.1.4上电+按键复位电路3.2液晶LCD12864显示电路3.2.1LCD12864管脚说明液晶屏上如何显示壹些汉字或图画,这也许是所有LCD12864初学者均最先思考的壹个问题。于数字电路中,所有数据均是由0和1LCD也利用了这壹方法。于点阵LCD上显示的只有俩种颜色,因此可利用0和1来表示这俩种颜色。假设空格是由16*16个0组成的,于显示16*16的字体时,将其中某些点置为1便可于视觉上形成壹个汉字,这些二进制数称为代位码。而这些由0和1转换而成的16进制数据便是字模。不同的汉字有不同的字模,相同的汉字不同的字体也有不同的字模。而将字模设为16*16像素是因为这样基本能够将汉字显示清楚准确,更高像素则更为清楚准确,可是却更多地占用了LCD的面积。和汉字不同的是,壹个字符只需要16*8的像素便即可。如何将这16*16或者16*8个0、1保存下来也是是初学者所需要了解的,假设要于LCD12864屏幕上准确正确的显示出汉字,则需要将16*16的汉字分为俩行,每行由16列组16列每列存82位1688个点,16个16进制数可表示1行,32个16进制数则能表示整个汉字。通过LCD12864,则可将这些字模信息仍原成汉字或图像。LCD12864的管脚共有20个之多,可是连接的电路且不复杂。可是需要注意的是LCD的电源共有2组,壹组是用于驱动LCD显示,另壹组用于背光显示。可将这俩组连于壹起或者背光电源省略。另外有个输入管脚V0需要接入LCD调整电压来调节对比度。通常刚使用液晶时的问题是由此引起的,对比度过高于或过低均会使屏幕无法正常显示。它可接至10K-20K电位器的调整端,电位器俩端分别接至VDD和VEELCD12864的对比度可由单片机操作其寄存器LCD12364的引脚图以及引脚功能表。图3.2.1LCD12864引脚图表3.2LCD12864引脚功能管脚名称VSSLEVER管脚功能描述0+5.0V-电源地VDD电源电压V0液晶显示器驱动电压D/I=“H”,表示DB7∽DB0为显示数据D/I(RS)R/WH/LH/LD/I=“L”,表示DB7∽DB0为显示指令数据R/W=“H”,E=“H”数据被读到DB7∽DB0R/W=“L”,E=“H→L”数据被写到IR或DRR/W=“L”,E信号下降沿锁存DB7∽DB0EH/LH/LH/LH/LH/LH/LH/LH/LH/LH/LH/LH/L-10V-R/W=“H”,E=“H”DDRAM数据读到DB7∽DB0DB0DB1DB2DB3DB4DB5DB6DB7CS1CS2RETVOUTLED+数据线数据线数据线数据线数据线数据线数据线数据线H:选择芯片(右半屏)信号H:选择芯片(左半屏)信号复位信号,低电平复位LCD驱动负电压LED背光板电源LED--LED背光板电源3.2.2LCD12864硬件连接由P0口控制DB0-CB7LCD12864里写入程序或数据。由P2^2、P2^1控制片选口。P2^6控制时能端。当使能端从1-0时实现锁屏显示。P2^3控制复位信号,低电平时复位。P2^5控制R/W口。当R/W=“H”,E=“H”则数据被读到DB7-DB0。当R/W=“L”,E=“H→L”则数据被写到IR或DRP2^4控制D/ID/I=“H”DB7-DB0为显示数据。当D/I=“L”DB7-DB0为显示指令数据。图3.2.2液晶LCD12864显示电路3.2.3电源电路系统硬件电路实现功能如下,如图3.2.3所示1)由PNP三极管和10K电阻构成的放大电路。2)振荡电路为12MHZ晶振频率工作,起振电路中C1、C2均为30PF。3)高电平为5V工作电源,利用变压器将220V交流电源变成5V工作电源。如图3.4.1图3.2.3变压整流电路4.系统软件设计4.1资源分配表表4.1资源分配表I/O口P0作用LCD12864数据接口LCD12864片选C1接口LCD12864片选C2接口LCD12864RST接口LCD12864RW接口LCD12864RS接口P2.1P2.2P2.3P2.4P2.5P2.6LCD12864E接口4.2LCD12864的基本指令1、显示开/关设置CODE:表4-1显示开/关设置R/WLD/1LDB7LDB6LDB5HDB4HDB3HDB2HDB1HDB0H功能:设置屏幕显示开/关。DB0=H,开显示;DB0=L,关显示。不影响显示RAM(DDRAM)中的内容。2、设置显示起始行CODE:表4-2设置显示起始行R/WLD/ILDB7HDB6HDB5DB4DB3DB2DB1DB0行地址(0-63)功能:执行该命令后,所设置的行将显示于屏幕的第壹行。显示起始行是由Z地址计数器控制的,该命令自动将A0-A5位地址送入Z地址计数器,起始地址能够是0-63范围内任意壹行。Z同步,当扫描完壹行后自动加壹。3、设置页地址CODE:表4-3设置页地址R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0LLHLHHH页地址(0-7)功能:执行本指令后,下面的读写操作将于指定页内,直到重新设置。页地址就是DDRAM的行地址,页地址存储于X地址计数器中,A2-A0可表示8页,读写数据对页地址没有影响,除本指令可改变页地址外,复位信号(RST)可把页地址计数器内容清零。4、设置列地址CODE:表4-4设置列地址R/WD/IDB7DB6DB5DB4DB3DB2DB1DB0LLLH列地址(0-63)功能:DDRAM的列地址存储于Y地址计数器中,读写数据对列地址有影响,于对DDRAM进行读写操作后,Y地址自动加壹。5、状态检测CODE:表4-5状态检测R/WD/IDB7BFDB6DB5DB4RETDB3DB2DB1DB0HLLON/OFFLLLL功能:读忙信号标志位(BF)、复位标志位(RST)以及显示状态位(ON/OFF)。BF=H:内部正于执行操作;BF=L:空闲状态。RST=H:正处于复位初始化状态;RST=L:正常状态。ON/OFF=H:表示显示关闭;ON/OFF=L:表示显示开。6、写显示数据CODE:表4-6写显示数据R/WD/IDB7D7DB6D6DB5D5DB4D4DB3D3DB2D2DB1D1DB0D0LH功能:写数据到DDRAM,DDRAM是存储图形显示数据的,写指令执行后Y地址计数器自动加1。D7-D0位数据为1表示显示,数据为0表示不显示。写数据到DDRAM前,要先执行“设置页地址”及“设置列地址”命令。7、读显示数据CODE:表4-7读显示数据R/WD/IDB7D7DB6D6DB5D5DB4D4DB3D3DB2D2DB1D1DB0D0HH功能:从DDRAM读数据,读指令执行后Y地址计数器自动加1。从DDRAM读数据前要先执行“设置页地址”及“设置列地址”命令。4.3字模提取于数字电路中,所有的数据均是以0和1LCD控制器进行不同的数据操作,能够得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要86000DOSASCII表的高128个很少用到的数值以俩个为壹组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。那么,得到了汉字的内码后,仍仅是壹组数字,那又如何于屏幕上去显示呢,这就涉及到文字的字模,字模虽然也是壹组数字,但它的意义却和数字的意义有“你”于字模中的记载如图所示:根据芯片的不同取模的方式不同,有多种取模方式。本系统采用纵向取模,字节正序方式,用LCD点阵汉字生成器生成字模“杨”的C语言代码为:/*--文字:杨--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x08,0x08,0xc8,0xff,0x48,0x88,0x0a,0x42,0x62,0xd2,0x4a,0xd6,0x42,0x40,0x00,0x00,0x04,0x03,0x00,0xff,0x00,0x01,0x08,0x24,0x13,0x08,0x06,0x41,0x80,0x7f,0x40,0x00,4.4主程序流程框图图4.4.1主程序流程图5.系统仿真及调试5.1硬件调试1)硬件制作完成后,测试其效果,LCD显示器无反应。2)用电表检测各引脚电位后,发现STC89C52芯片损坏。3)修改后,调节LCD显示器对比度,正常显示。5.2软件调试1.根据系统的原理结构检查各流程图是否正确,再根据流程图来检查程序是否也正确。2.将所有程序组织起来,于软件环境下运行,检查程序是否正确。通过对硬件和软件系统的认真检查,反复测试,如果没有出现问题即可把源程序编译成HEX文件装载到单片机中,对硬件进行仿真。具体操作为:①利用STC烧录软件,打开应用程序出现以下窗口如图5.1.1图5.2.1②选择对应的HEX文件,选择Download将程序烧录到CPU当中5.3仿真结果图5.3.1仿真结果6、心得和体会通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我仍学会了如何去培养我们的创新精神,从而不断地成为真己的东西。通过这次对LCD液晶显示屏的设计和制作,让我了解了设计电路的程序,也让我了解了关于LCD12864的基本原理和设计理念,要设计壹个电路总要先用仿真仿真成功之后才实际接线的。可是最后的成品却不壹定和仿真时完全壹样,因为,于实际接线中有着各种各样的条件制约着。而且,于仿真中无法成功的电路接法,于实际中因为芯片本身的特性而能够成功。所以,于设计时尽可能应考虑俩者的差异,从中找出最适合的设计方法。此外,仿真时应注意相同元件的不同型号,往往存于差异性。通过这次学习,让我对各种电路均有了大概的了解,所7、参考文献⑴张齐朱宁西.单片机应用系统设计技术——基于C51的Proteus电子工业出版社,2009.1.⑵张齐朱宁西单片机应用系统设计技术——基于C51的Proteus仿真实验和解题指导电子工业出版社,2009.1.⑶常敏王涵单片机应用程序开发和实践,电子工业出版社,2009.3[4]杨凌霄.微软计算机原理及应用.中国矿业大学出版社2004.08[5]何立民.单片机应用技术选编.航空航天大学出版社2000.08[6]万光毅.单片机实验和实践教程.航空航天大学出版社2005.01[7]周航慈.单片机程序设计基础.航空航天大学出版社1991.11[8]黄遵熹.单片机原理接口和应用.西北工业大学出版社1997.05[9].流行单片机实用子程序及应用实例[M].西安电子科技大学出版社2002附录1:元件清单序号名称型号、参数STC89C52DIP-40备注价格4.40.30.60.50.8数量12345CPUDIP40封装11111管座晶振11.0592MHZ2W10492型2A圆桥TO-220整流桥稳压ICLM78056原片电容电解电容电解电容电解电容独石电容按钮30pf0.050.30.20.10.20.12111211111171000uf/16V470uf/16V10uf/16V0.47uf8910111213141516176mm*6mm电阻10K/0.25WA10-103金属膜1/4W0.01排阻直插0.250.3单排排阵自锁开关接线端子LCD12864显示器直插1*408*8自锁开关-6pXH2.54-4P8mm*8mm2.54mm0.30.0445.0011810K可变电阻器11成本总价55.16元附录2:原理图/*****液晶显示器的端口定义*****/#definedata_oraP0/*液晶数据总线*/sbitLCDMcs=P2^1;/*片选1*/sbitLCDScs=P2^2;/*片选2*/sbitRESET=P2^3;/*复位信号*/sbitLCDDi=P2^4;/*数据/指令选择*/sbitLCDRW=P2^5;/*读/写选择*/sbitLCDEnable=P2^6;/*读/写使能*/uchar*tab;uintk=0;ucharcodehz1[]={/*--文字:电--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x00,0x00,0xF8,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0x88,0xF8,0x00,0x00,0x00,0x00,0x00,0x1F,0x08,0x08,0x08,0x08,0x7F,0x88,0x88,0x88,0x88,0x9F,0x80,0xF0,0x00,/*--文字:气--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x00,0x20,0x10,0x8C,0xA7,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0x24,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x30,0x40,0xF0,/*--文字:学--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x40,0x30,0x11,0x96,0x90,0x90,0x91,0x96,0x90,0x90,0x98,0x14,0x13,0x50,0x30,0x00,0x04,0x04,0x04,0x04,0x04,0x44,0x84,0x7E,0x06,0x05,0x04,0x04,0x04,0x04,0x04,0x00,/*--文字:院--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x00,0xFE,0x22,0x5A,0x86,0x10,0x0C,0x24,0x24,0x25,0x26,0x24,0x24,0x14,0x0C,0x00,0x00,0xFF,0x04,0x08,0x07,0x80,0x41,0x31,0x0F,0x01,0x01,0x3F,0x41,0x41,0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*--文字:杨--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x08,0x08,0xc8,0xff,0x48,0x88,0x0a,0x42,0x62,0xd2,0x4a,0xd6,0x42,0x40,0x00,0x00,0x04,0x03,0x00,0xff,0x00,0x01,0x08,0x24,0x13,0x08,0x06,0x41,0x80,0x7f,0x40,0x00,/*--文字:东--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x00,0x04,0x04,0xc4,0xb4,0x8c,0x87,0x84,0xf4,0x84,0x84,0x84,0x84,0x04,0x80,0x00,0x00,0x00,0x20,0x18,0x0e,0x04,0x20,0x40,0xff,0x00,0x02,0x04,0x18,0x30,0x00,0x00,/*--文字:阳--*//*--宋体12;此字体下对应的点阵为:宽x高=16x16--*/0x00,0xfe,0x02,0x22,0x5a,0x86,0x00,0xfe,0x42,0x42,0x42,0x42,0x42,0xfe,0x00,0x00,0x00,0xff,0x04,0x08,0x04,0x07,0x00,0x3f,0x1f,0x1f,0x1f,0x1f,0x1f,0x3f,0x00,0x00,};ucharcodehz2[]={0x00,0x00,0x00,0x00,0x00,0x08,0x04,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x7f,0x40,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x04,0x02,0x02,0x02,0x02,0x02,0x04,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x04,0x02,0x02,0x02,0x02,0x02,0x04,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x04,0x02,0x02,0x02,0x82,0x82,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x44,0x42,0x41,0x41,0x40,0x40,0x40,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x04,0x02,0x02,0x02,0x02,0x02,0x04,0xf8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1f,0x20,0x40,0x40,0x40,0x40,0x40,0x20,0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0x60,0x18,0x0c,0xfe,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x09,0x08,0x08,0x48,0x48,0x7f,0x48,0x48,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x02,0x02,0x02,0x82,0x82,0x42,0x22,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x40,0x40,0x40,0x40,0x40,0x41,0x22,0x1c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x04,0x02,0x02,0x02,0x82,0x82,0x84,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x44,0x42,0x41,0x41,0x40,0x40,0x40,0x70,0x00,0x00,0x00,0x00,};ucharcodehz3[]={0x00,0x00,0xf8,0x28,0x29,0x2e,0x2a,0xf8,0x28,0x2c,0x2b,0x2a,0xf8,0x00,0x00,0x00,0x08,0x08,0x0b,0x09,0x09,0x09,0x09,0xff,0x09,0x09,0x09,0x09,0x0b,0x08,0x80,0x00,0x00,0x00,0x00,0xfe,0x10,0x10,0x10,0x10,0x10,0x1f,0x10,0x10,0x10,0x18,0x10,0x00,0x80,0x40,0x30,0x0f,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0xff,0x00,0x00,0x00,0x00,0x08,0x08,0xc8,0xff,0x48,0x88,0x08,0x00,0xfe,0x02,0x02,0x02,0xfe,0x00,0x00,0x00,0x04,0x03,0x00,0xff,0x00,0x41,0x30,0x0c,0x03,0x00,0x00,0x00,0x3f,0x40,0x78,0x00,0x00,0x00,0x00,0x3e,0x2a,0xea,0x2a,0x2a,0x2a,0xea,0x2a,0x3e,0x00,0x00,0x00,0x00,0x20,0x21,0x22,0x2c,0x20,0x3f,0x20,0x20,0x20,0x3f,0x28,0x24,0x23,0x20,0x20,0x00,0x00,0x20,0x20,0x22,0x22,0x22,0x22,0xe2,0x22,0x22,0x22,0x22,0x22,0x20,0x20,0x00,0x10,0x08,0x04,0x03,0x00,0x40,0x80,0x7f,0x00,0x00,0x01,0x02,0x0c,0x18,0x00,0x00,0x00,0x00,0xff,0x09,0x49,0x59,0xe9,0x49,0x49,0x49,0xe9,0x59,0x49,0x4f,0x00,0x00,0x40,0x30,0x0f,0x82,0x42,0x32,0x0f,0x02,0x02,0x02,0xff,0x02,0x02,0x02,0x02,0x00,0x40,0x41,0xce,0x04,0x00,0x80,0x40,0xbe,0x82,0x82,0x82,0xbe,0xc0,0x40,0x40,0x00,0x00,0x00,0x7f,0x20,0x90,0x80,0x40,0x43,0x2c,0x10,0x10,0x2c,0x43,0xc0,0x40,0x00,0x20,0x21,0x2e,0xe4,0x00,0x00,0x20,0x20,0x20,0x20,0xff,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x7f,0x20,0x10,0x08,0x00,0x00,0x00,0xff,0x00,0x00,0x00,0x00,0x00,};ucharcodehz4[]={0x00,0xf8,0x04,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x84,0x8e,0x80,0x00,0x00,0x00,0x00,0x03,0x03,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x08,0x04,0x02,0x02,0x02,0x02,0x02,0x04,0x08,0xf0,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x08,0x08,0x08,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0xf0,0x08,0x04,0x02,0x02,0x02,0x02,0x02,0x04,0x08,0xf0,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x08,0x08,0x08,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x02,0xfe,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x04,0xf8,0x00,0x00,0x00,0x00,0x08,0x0f,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x04,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x02,0x02,0xfe,0x02,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x20,0x40,0x80,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0x08,0x04,0x02,0x02,0x02,0x02,0x02,0x04,0x08,0xf0,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x08,0x08,0x08,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x02,0xfe,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0xa2,0x1c,0x00,0x00,0x00,0x00,0x00,0x08,0x0f,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x07,0x00,0x00,0x00,0x00,};/********************************************************************函数功能:LCD延时程序入口参数:t出口参数:********************************************************************/voidLCDdelay(ucharx){intd;uchary;for(y=0;y<x;y++)for(d=0;d<10;d++);}/*******************************************************************状态检查,LCD是否忙********************************************************************/voidCheckState(){uchardat,DATA;//状态信息(判断是否忙)LCDDi=0;//数据\指令选择,D/I(RS)="L",表示DB7∽DB0为显示指令数据LCDRW=1;//R/W="H",E="H"数据被读到DB7∽DB0do{DATA=0x00;LCDEnable=1;//EN下降源LCDdelay(1);//延时dat=DATA;LCDEnable=0;dat=0x80&dat;//仅当第7位为0时才可操作(判别busy信号)}while(!(dat==0x00));}/********************************************************************函数功能:写命令到LCD程序,RS(DI)=L,RW=L,EN=H,即来壹个脉冲写壹次入口参数:cmdcode出口参数:********************************************************************/voidwrite_com(ucharcmdcode){CheckState();//检测LCD是否忙LCDDi=0;LCDRW=0;P0=cmdcode;LCDdelay(1);LCDEnable=1;LCDdelay(1);LCDEnable=0;}/********************************************************************函数功能:写数据到LCD程序,RS(DI)=H,RW=L,EN=H,即来壹个脉冲写壹次入口参数:LCDDispdata出口参数:********************************************************************/voidwrite_data(ucharLCDDispdata){CheckState();//检测LCD是否忙LCDDi=1;LCDRW=0;P0=LCDDispdata;LCDdelay(1);LCDEnable=1;LCDdelay(1);LCDEnable=0;}/********************************************************************/********************************************************************函数功能:LCD初始化程序入口参数:出口参数:********************************************************************/voidinit_lcd(){LCDdelay(1);LCDMcs=1;//刚开始关闭俩屏LCDScs=1;LCDdelay(1);write_com(LCDLCDDisp_Off);//写初始化命令write_com(Page_Add+0);write_com(Start_Line+0);write_com(LCDCol_Add+0);write_com(LCDLCDDisp_On);}/********************************************************************函数功能:清除LCD内存程序入口参数:pag,col,hzk出口参数:********************************************************************/voidClr_Scr(){ucharj,k;LCDMcs=0;//左、右屏均开显示LCDScs=0;write_com(Page_Add+0);write_com(LCDCol_Add+0);for(k=0;k<8;

温馨提示

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

评论

0/150

提交评论