基于AT89S52单片机实现12864液晶屏显示
基于单片机的12864LCD液晶显示
一、设计目的在12864液晶显示屏中央显示“★仿真实例★”字样。
二、原理介绍12864LCD:带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。
1、引脚功能:GND 电源地VCC 电源正+5V0 液晶显示驱动电源0~5V RS H:数据输入L:指令码输入R/W H:数据读入L:数据写入E 使能信号。
由H到L完成使能。
DB0~DB7 数据线CS1 CS1=1芯片选择左边64*64点CS2 CS2=1芯片选择右边64*64点RST 复位-V out LCD驱动负电源A 背光电源〔+〕K 背光电源〔-〕2、取码方法:DDRAM是12864内部的存储器,屏幕显示内容与存储单元建立一一对应关系,模块内部自带扫描与驱动,用户只需要将要显示内容写入到12864对应的存储器中,就能实现内容的显示。
12864液晶屏横向有128个点,纵向有64个点。
显示屏分为左半屏和右半屏。
取码时,按照从上到下,从左到右的原则进行取码,每个字都有32个字节与之对应。
编程时,也按照从上到下,从左到右的原则取数送到相应的DDRAM中。
RESPACK8:排阻。
接在51单片机的P0口,因为P0口内部没有上拉电阻,不能输出高电平,所以要接上拉电阻。
排阻就是好多电阻连载一起,他们有一个公共端1端为公共端接VCC或地。
三、液晶显示控制方法1、读状态判忙子程序BUSY: CLR RS ;RS清0SETB RW ;RW置1PRR01: MOV DATAES,#0FFH ;将端口置1,准备读数据总线SETB E ;E置1,液晶模块将当前状态送到数据总线MOV A,DATAES ;读数据总线CLR E ;将E清零,为下次读做准备JB ACC.7,PRR01 ;ACC.7为1,表示液晶模块处于忙状态,为0返回主程序RET如果读到的BUSY=1,表示系统忙,不能操作;只有BUSY=1才允许操作。
基于单片机和MGLS12864显示模块的液晶显示系统设计
基于单片机和MGLS12864显示模块的液晶显示系统设计远飞
【期刊名称】《电子元器件应用》
【年(卷),期】2009(11)1
【摘要】MGLS12864是一种点阵式LCD显示模块,可用于现代工业控制和智能化仪器仪表之中显示字符、汉字和图形.文中介绍了基于AT89S52单片机控制,而由MGLS12864进行各种显示的显示系统软硬件设计方法.
【总页数】3页(P22-24)
【作者】远飞
【作者单位】无锡商业职业技术学院,江苏,无锡,214153
【正文语种】中文
【中图分类】TP3
【相关文献】
1.80C196单片机与MGLS12864液晶显示模块的接口应用 [J], 苟欣璞;吴言荪;梁帅奇
2.基于SPCE061A单片机的MGLS12864液晶显示模块的应用设计 [J], 白云;石岩
3.基于单片机的液晶显示模块的控制设计与实现 [J], 管琼;李建阳
4.基于单片机点阵型液晶显示模块的应用 [J], 谢祖蓉
5.80C196单片机与MGLS12864液晶显示模块的接口 [J], 苟欣璞;吴言荪;梁帅奇因版权原因,仅展示原文概要,查看原文内容请购买。
基于AT89S52单片机LED电子显示屏设计
存档编号赣南师范大学学士学位论文基于STC89C52的LED电子显示屏设计教学学院物理与电子信息学院届别2016届专业电子科学与技术学号120803022姓名廖云华指导老师武华完成日期2016年5月10日作者声明本毕业论文(设计)是在导师的指导下由本人独立撰写完成的,没有剽窃、抄袭、造假等违反道德、学术规范和其他侵权行为。
对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
因本毕业论文(设计)引起的法律结果完全由本人承担。
毕业论文(设计)成果归赣南师范大学所有。
特此声明。
作者专业:电子科学与技术作者学号:120803022作者签名:年月日基于STC89C52的LED电子显示屏设计廖云华LED electronic display screen design based on STC89C52Liao Yun hua2016 年5 月10 日摘要该论文介绍了一款以STC89C52为微处理器的LED点阵点子显示屏幕显示的设计。
为了使显示屏上显示的字更加清晰,该设计采用论4块8 * 8点阵模块来构成一个16* 16的LED点阵显示屏,可以用来实现汉字和数字的显示及其动态显示效果。
以STC89C52芯片作该核心控制器件,三极管和驱动继电器作为驱动电路器件,串并转换器和锁存器作为译码电路的器件,通过级连的方式来扩大显示屏幕的尺寸来增加显示的内容。
STC89C52单片机处理控制命令和显示代码,通过IO口串行输出将显示内容和控制完成字符串并将并行输出译码电路,最后由显示器驱动电路模块,LED点阵显示屏扫描显示。
概括来说本设计选取AT89S52作为微处理器件,74HC595和74HC154构成译码电路,三极管9012和电阻做行和列驱动。
关键词:STC89C52;LED点阵点子显示屏;串并转换器;驱动电路AbstractThe paper introduces a microprocessor STC89C52 as the LED dot matrix display screen design idea. In order to make the words more clearly shown on the display, the design adopts the theory of four 8 * 8 dot matrix module to form a 16 * 16 LED dot matrix display screen, can be used to implement the Chinese characters and digital display and dynamic display effect. STC89C52 single chip microcomputer as the core control device, string and converter and latch as decoding circuit of the device, the transistor and relay as driving circuit devices, level through even a way to expand the size of the display screen to display the content of the increase. STC89C52 single chip control command and display code, will display the contents of the serial output and control through the I/O port decoding circuit completion string and convert parallel output, finally through the display drive circuit module drive LED dot matrix display screen scan display. In general the design selection STC89C52 devices as the microprocessor,the 74HC595 are needed and 74 hc154 decoding circuit, a transistor 9012 rows and columns.Key words:STC89C52; LED lattice display; String and converter; Driver circuit.目录摘要 (I)关键词 (I)Abstract (I)Key words (I)第1章绪论................................................................................................................... - 1 -1.1 课题的研究背景 ............................................................................................. - 1 -1.2 MCS-51系统单片机简介 .............................................................................. - 2 -1.3 论文主要内容 ................................................................................................. - 2 -第2章总体设计 ......................................................................................................... - 4 -2.1 系统概述 ......................................................................................................... - 4 -第3章硬件电路设计................................................................................................ - 5 -3.1 整体设计框图 ................................................................................................... - 5 -3.2 主控电路 ........................................................................................................... - 5 -3.3 LED点阵显示电路 ........................................................................................... - 8 -3.4整体电路图如图 .............................................................................................. - 12 -3.5实物图 .............................................................................................................. - 14 -第4章软件实现 ....................................................................................................... - 15 -4.1 概述 ................................................................................................................. - 15 -4.2系统程序方案设计 .......................................................................................... - 15 -第5章测试结果 ....................................................................................................... - 21 -总结............................................................................................................................... - 22 -参考文献 ..................................................................................................................... - 23 -附录一:LED点阵显示源程序.......................................................................... - 24 -附录二:元件清单................................................................................................... - 30 -致谢............................................................................................................................... - 31 -第1章绪论1.1 课题的研究背景在现如今科技飞速发展的时代,信息传播速度极快。
基于AT89S52单片机的LED点阵显示屏控制系统的设计
第10卷 第3期 漳州职业技术学院学报 Vol.10 No. 32008年7月 Journal of Zhangzhou Technical Institute July 2008基于AT89S52单片机的LED 点阵显示屏控制系统的设计侯丽玲(漳州职业技术学院 电子工程系,福建 漳州 363000)摘 要:以单片机系统组成的点阵LED 显示屏开发过程。
系统采用上—下位机的结构构建,上位机PC 可通过串行通信接口实现对下位机LED 显示系统显示参数的设定,下位机以LED 屏的显示电路和单片机控制电路为核心,实现点阵LED 屏以多样化的方式显示各种信息的功能。
该屏具有运行可靠、安全、节能、成本低、使用方便的特点。
关键词:LED ;显示屏;单片机;控制中图分类号:TM762.3 文献标识码: A 文章编号:1673-1417(2008)03-0070-041引言在车站、机场、商场、证券交易所及其他一些公共场所,经常需要发布多变的实时信息或进行广告宣传,传统的黑板和纸张等媒介手段已不能满足其多变性和实时性。
而LED (发光二极管)电子显示屏以其修改方便、实时显示、美观整洁等特点应运而生。
构成LED 电子显示系统的方法很多,它们的基本原理相同,都是采用点阵的形式显示汉字、字符等。
本文介绍一种简易的控制系统设计,其最主要特点是经济、简单。
2系统硬件设计除单片机AT89S52[1]外,显示屏控制器的硬件电路部分由两个部分组成:外部数据存储器的扩展、串行通信接口。
控制器的组成框图如图1所示,采用AT89S52作为中央控制器,完成与PC 机的通信,实现对显示屏显示数据的控制。
数据存储器使用一片FLASH 存储器W29EE011。
W29EE011容量较大,可以用于存储汉字的点阵库。
控制器与计算机的连接根据通信距离的远近选用RS-232标准总线接口。
2.1数据存储器的扩展W29EE011有17条地址线(A0~A16),最高一位(A16)由P1.7作为地址送出,低八位(A0~A7)由P0口作为地址送出,通过74LS373锁存器进行锁存。
基于AT89S52单片机的LED点阵显示屏设计
-170-科学技术创新2019.02基于AT89S52单片机的LED点阵显示屏设计徐泽鹏吕思曼(武汉工程大学,湖北武汉430073)摘要:本中将硬件的汉字库技术与RS485相结合运用到LED点阵的显示屏设计中。
本文中的设计主要分为两大类硬件部分与软件部分。
硬件部分可以分为两大模块驱动部分与控制部分;软件部分可以分为三部分串口中断响应程序、LED显示子程序以及系统主程序。
文章的开头简述了LED显示系统的构成,然后进一步的介绍了硬件系统中的驱动程序的设计,并在文中给出了相应的软件流程图。
关键词:LED显示屏;RS485;MCS-51;硬件汉字库中图分类号:TP391文献标识码:A对于一个LED的图文显示屏而言并没有一个明确的规定,本文中所使用的LED图文显示屏并不能控制到相关LED灯的亮度,主要的功能是通过控制LED点阵中各个发亮灯器件的发亮与暗灭从而显示出相应的信息。
LED器件的颜色并没有规定,可以是任意的颜色,LED图文显示屏的也可以做成横屏或者竖屏,横屏与竖屏都是按照-定的长宽比例进行制作而成的矩形平面图文显示屏。
总而言之,横屏相比于竖屏就是高度远远小于宽度的显示屏;这两者在显示屏的基本控制和原理层面上与显示上没有任何区别,在本文中就以横屏为例开展说明。
1显示系统本文的显示系统由上位计算机以及多块图文显示屏构成。
不同的显示屏之间使用的是RS485总线相连接,应用该标准的数字通信网络可以实现在远距离的田间下甚至有电子噪声干扰的情况下进行信号的有效传输。
低廉的本地网络和多之路的通信链路的应用配置因为RS485的出现而逐渐实现。
RS485一般有两种接线方式四线制或者两线制,若使用四线制则整个通信网络中只能实现点对点的通信,现在这种通信方式早已被淘汰。
目前在实际的使用中两线制的这种接线方式使用十分广泛,两线制的这类接线方式就是总线式的拓扑结构,在同一个总线的网络下最多可以连接三是二个节点。
而在我们的设备中不同显示屏的位置都是分开的,不同的显示屏之间可以距离几十米也可以远至上千米;上位计算机为了方便安装以及工作人员的使用以及调试,通常建议放置在办公区域内。
51单片机 12864液晶显示程序
/*========================LCD12864液晶并行驱动程序==========================程序名称:12864液晶驱动程序(并行模式)================================================= ===========================*/#include <at89x52.h>#define uchar unsigned char#define uint unsigned intuchar t,p;/********************************引脚定义***********************************/#define RS P1_0 //RS=0为执行指令;RS=1为执行数据;#define RW P1_1 //读写#define E P1_2 //使能#define PSB P1_3 //低电平(串口驱动);高电平(并口驱动)#define RST P1_4 //LCD复位/********************************定义数组***********************************/uchar code title[] = {"LCD 并行接口测试"}; uchar code website[]={"qwertyuioopplkjh"}; uchar code dig[]={"0123456789"};uchar code dig2[]={0,1,2,3,':'}; ///*******************************相关子程序**********************************/void Init_lcd(); //初始化液晶void lcd_busy(); //忙标志查询void delay100us(); //100us延时程序void write(uchar x,uchar Data); //写单字节函数void Show(uchar address,uchar L,uchar STR1[]); void Show_dig(uchar address,uint number);/*******************************延时子程序**********************************/void delay100(int n){unsigned char i;while(n--)for(i=0;i<100;i++);}/*******************************LCD 忙标志查询******************************/void lcd_busy(void){uchar busy;P0=0xff;RS=0;RW=1;do{E=1;busy=P0;E=0;}while(busy>0x7f);}/*****************************写指令或数据**********************************/void write(uchar x,uchar Data){lcd_busy(); //忙查询if(x==0){RS=0;RW=0; //写单字节命令字}else if(x==1){RS=1;RW=0; //写单字节数据}E=1;P0=Data;E=0;P0=0xff;}/*******************************初始化LCD **********************************/void Init_lcd(void){delay100(20); //启动等待,等LCM讲入工作状态PSB=1; //并口驱动模式RST=0;delay100(4);RST=1; // 复位LCDwrite(0,0x30); //8 位介面,基本指令集write(0,0x0c); //显示打开,光标关,反白关write(0,0x01); //清屏,将DDRAM的地址计数器归零}/*******汉字和字符显示,参数入口:Show(地址,显示宽度,汉字数组)************/void Show(uchar address,uchar L,uchar STR1[]) {uchar i;write(0,address);for(i=0;i<L;i++)write(1,STR1[i]);}/************纯阿拉伯数字显示,参数入口:Show_dig (地址,数字)**************/void Show_dig(uchar address,uint number){uchar shi,ge;shi=number/10;ge=number%10;write(0,address);delay100(20);write(1,dig[shi]);delay100(20);write(1,dig[ge]);}/************************************主程序**********************************/void main(void){Init_lcd();TMOD=0X01;TH0=0xdc;TL0=0x00;ET0=1;TR0=1;EA=1;P3_6=0;delay100(30);Show(0x83,4,"梁浩"); //写数组里的容write(0,0x0d);delay100(30);Show(0x90,16,"电子科技协会会长"); delay100(30);Show(0x88,16,"TEL "); //写英文delay100(30);while(1){Show_dig(0x99,p); //写实时数组}}void exter() interrupt 1{TH0=0xdc;TL0=0x00;t++;if(t==20){t=0;p++;}if(p==60)p=0;}/***************************************end****** *****************************/。
单片机的LCD12864液晶显示
1.1模块硬件
MCS-51单片机是美国INTE公司于1980年推出的产品,各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。虽然目前51系列单片机已无法满足目前某些功能或环境的要求,但是51系列的单片机仍然是最为成功的单片机芯片,它的影响力仍然延续到现再,以致于被越来越多的人所熟悉。而从目前市场价格及普及程度等多方面因素考虑,本文采用AT89S52单片机作为显示模块的控制核心。
(1)数值微分法。设过端点P0(x0 y0)、P1(x1 y1)的直线段为L(P0 P1),则直线段L的斜率为k=(y1-y0)/(x1-x0)。要再显示器显示L,必须确定最佳逼近L的像素集合。我们从L的起点P0的横坐标x0向L的终点P1的横坐标x1步进,取步长=1(个象素),用L的直线方程y=kx+b计算相应的y坐标,并取象素点(xround(y))作为当前点的坐标。
break;
case 3: //异或显示
TempData ^= TempBit;
break;
default:
TempData |= TempBit; //显示黑点
}
LCD_WriteData(TempData); //写入带有点的数据
另外同样重要的还有液晶的指令系统与时序。只有了解了指令系统才能正确的设置读与写操作,才能正确的设置行地址、列地址以艰顺地址。而时序的设置直接决定了显示能否成功。不同的晶振需要不同的延时来保证时序的正确(本文采用24M晶振)。相关的指令代码与时序图这里不再展开。用户可参照使用说明书。
3显示模块函数的设计
LCD_ReadData();
TempData = LCD_ReadData(); //读取数据两次保证正确性
基于STC89C52的LCD12864液晶串并行显示设计
基于STC89C52的LCD12864液晶串并行显示设计葛耿育【摘要】LCD12864显示屏作为单片机教学和实验中的经典模块,可以显示字符、数字、符号、汉字和图形等内容,为了能在教学中阐述清楚串行和并行两种操作显示屏的方法,作者以带字库的12864液晶显示屏为例,使用C语言编程STC89C52单片机控制串并行操作实现文字显示,结果表明,两者之间存在原理和实现的区别.【期刊名称】《遵义师范学院学报》【年(卷),期】2016(018)005【总页数】4页(P98-101)【关键词】LCD12864;串行;并行;单片机【作者】葛耿育【作者单位】遵义师范学院信息工程学院,贵州遵义,563002【正文语种】中文【中图分类】TP368单片机的显示模块主要有LED灯、数码管、点阵、1602液晶屏、12232液晶屏和12864液晶屏等,其中功能多、显示效果好的是12864液晶屏。
本文采用串、并行两种方式实现了LCD12864显示屏的字符显示,用以辅助单片机的教学。
液晶是一种高分子材料,因其特殊的物理、化学、光学特性,20世纪中叶开始被广泛应用在轻薄型显示器上。
液晶显示器的主要原理是电流刺激液晶分子产生点、线、面并配合背部灯管构成画面。
12864液晶屏是由128列64行液晶显示点组成的128*64阵列,可以通过程序控制这些点的亮灭。
本文选用QC12864B液晶显示模块,该模块正面实物图如图1所示,背面实物图如图2所示。
该液晶模块采用ST7920控制器,5V电压驱动,带背光,带中文字库,内置8192个16*16点阵、128个8*16字符点阵以及64*256点阵显示RAM。
该模块的引脚接口信号说明如表1所示,其中第4、第5、第6和第15引脚是复用型,当PSB引脚为高电平时,选择并行方式,当PSB为低电平时,则选择串行方式。
目前常用的8位单片机有经典的51系列、PIC系列和AVR系列,国内大多采用基于51内核易于学习和开发使用的南通国芯微电子有限公司的宏晶(STC)芯片。
12864篮球比赛记分牌课程设计报告
长沙学院《单片机原理及应用》课程设计说明书题目篮球比分计分牌系(部) 电子与通信工程系专业(班级) 光电信息工程二班姓名龙敏学号2010041213指导教师刘辉、王新辉起止日期2012/12/10-2012/12/21《单片机原理及应用》课程设计任务书9系(部):电信系专业:2010级光电信息工程指导教师:王新辉、刘辉长沙学院课程设计鉴定表目录1. 课程设计任务书 (6)2. 系统总体方案选择与说明 (6)3. 系统结构框图与工作原理 (7)4. 各单元硬件设计说明及计算方法 (7)(1) 12864显示器 (7)(2)八位独立按键模块 (8)(3)51单片机定时器及初值计算方法 (8)5. 软件设计与说明(包括流程图) (8)6. 调试结果与必要的调试说明 (9)(1)实物图 (9)7. 使用说明 (10)8. 程序清单 (10)(1)比分倒计时子程序 (10)(2)加减分子程序 (11)9. 课程设计体会 (12)10. 参考文献。
(13)1. 课程设计任务书设计一个基于AT89S52单片机的篮球比赛记分牌,用12864液晶屏显示信息。
课题要求: (1)、启动时12864液晶屏第一行显示的内容是:比赛双方的队名。
第二行显示的内容是:比分为000:000。
第三行显示的内容是:本节剩余时间、进攻24秒倒计时。
第四行显示的内容是:设计者的姓名、班级和学号。
(2)设置如下按功能键,实现相应控制功能2. 系统总体方案选择与说明采用单片机和12864液晶显示电路实现该方案以单片机为核心,作为控制模块,并以12864液晶为显示模块,由单片机自带的时钟电路和定时器来实现计时,由于篮球比赛的规则较多,故以独立按键来输入需要控制的对象,由单片机的P1口来接键盘,液晶的数据线接在P0口相应的口线上。
如图2—1。
单片机实现系统框图2—13.系统模块层次结构图3—1 4. 各单元硬件设计说明及计算方法 (1) 12864显示器12864液晶显示模块是128×64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM (GDRAM )。
基于单片机的温度控制及报警系统的设计
摘要温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型单总线式数字温度传感器实现对温度的测试与控制得到更快的开发,本文设计了一种基于AT89S52的温度检测及报警系统。
该系统将单总线温度传感器DS18B20并接在控制器的一个端口上,对传感器温度进行循环采集,将采集到的温度值与设定值进行比较,当超出设定的上限温度时,通过电路给出报警信号。
用AT89S52单片机设计的温度检测电路是本次设计的主要内容,是整个单片机温度控制系统设计中不可缺少的一部分,该系统对温度进行了实时采集与检测。
文中给出了系统实现的硬件原理图及程序设计。
经实验测试表明,该系统测量精度高、抗干扰能力强、报警及时准确,具有一定的参考价值。
该系统设计和布线简单,结构紧凑,体积小,重量轻,抗干扰能力强,性价比高,扩展方便。
关键词:数字温度传感器;单总线;单片机AT89S52;时钟液晶显示;报警信号ABSTRACTTemperature detection and control of industrial production process, one of the more typical applications, with sensors in production and life is more widely used, using a new single-bus digital temperature sensor to achieve the test and control the temperature more rapidly development, this paper is designed based on AT89S52 temperature detection and alarm systems. The system will be a single-bus temperature sensor DS18B20 and connected to a port on the controller, the temperature sensors on loop collection, the temperature will be collected to compare with the set value, when the temperature exceeds the upper limit set , through the circuit gives alarm signal. The main content of this design is temperature testing circuit that uses AT89S52 single-chip microcomputer .It is a part of the whole design that cannot be lacked. The system is used to collect and control temperature in real time.In this paper, it gives the system implementation of hardware and program designing. The experimental tests show that this high accuracy, strong anti-interference ability, alarm timely and accurate, with a certain reference value. The system design and layout simple and compact structure, small size, light weight, anti-jamming capability, cost-effective to expand convenience.Key Words:Digital temperature sensor; Single bus; Monolithic Integrated AT89S52; Lcd clock;Alarm signal目录1绪论 (1)1.1课题的背景与意义 (1)1.2温度检测及国内外报警系统的近况 (1)1.3温度参数、温度检测、报警系统 (3)1.3.1温度范围 (3)1.3.2温度测量 (3)1.3.3报警系统 (3)2系统总体设计方案 (4)3液晶显示电路和时钟电路的设计 (6)3.1液晶显示模块的设计 (6)3.1.1TS12864液晶显示器简述 (6)3.1.2TS12864-3主要特性及各引脚功能 (6)3.1.3 TS12864-3液晶显示器工作原理 (7)3.2时钟电路的设计 (7)3.2.1时钟电路的简述 (7)3.2.2时钟电路的引脚功能及结构 (8)3.2.3时钟电路工作原理 (8)4报警系统硬件设计和单片机温度控制 (10)4.1温度控制系统硬件设计 (10)4.1.1主控制单片机 (10)4.1.2AT89S52的特点 (10)4.1.3AT89S52主要功能及特性 (10)4.1.4单片机最小系统模块 (12)4.2报警系统的设计 (13)4.2.1报警系统蜂鸣器的特性 (13)4.2.2报警系统工作原理 (14)4.3 DS18B20芯片简介 (15)4.3.1温度传感器的历史及简介 (15)4.3.2DS18B20性能特点及内部结构 (15)4.3.3DS18B20工作时序 (19)4.3.4DS18B20的操作协议 (21)4.3.5DS18B20序列号编码 (23)4.3.6DS18B20的测温原理 (23)4.3.8DS18B20在测温系统中的应用 (24)4.3.9注意事项 (24)4.4温度检测模块的设计 (25)4.5温度控制系统的设计 (26)5系统调试 (27)5.1硬件调试方法 (27)5.1.1常见的硬件故障 (27)5.2软件调试 (27)5.3误差分析 (28)结论 (29)参考文献 (30)附录1:英文资料 (31)附录2:中文资料 (36)附录3:程序 (40)附录4:总原理图 (56)致谢............................................. 错误!未定义书签。
基于AT89S52的12864LCD万年历制作全过程
基于AT89S52的128*64LCD万年历制作全过程,(很多张图片)型号:DY12864LCC版本:V2.1V2.1版主要特点:1.显示当前年、月、日、星期、小时、分钟、秒、温度和节日信息2.整点报时(早8点至晚21点)3.时钟调整4.128*64LED显示,亮度高,一目了然5.备用电池,长久走时6.温度显示,00.0度高精度(0~99度)7.国际、国内公历重要节日提醒8.将原有的蜂鸣器改成了可以发出音乐的扬声器将液晶屏从串口改为了并口通信方式9.采用了无需要任何外围元器件的高集成液晶屏模块10.增加了单片机对LCD背光的控制功能(将在V3.0版中体现)11.修正了程序中的几处可能会导致显示乱码的BUG感谢杜洋老师为大家提供的程序,下载地址:/works/DY12864LCC/index.html原理图非常漂亮从硬件连接开始,这台电子钟由三大部分组成:控制板,主板和显示板。
由于刚开始是做串口通信的,但是没有成功后来改成并口通信,所以板上比电路图上多了一只LED。
控制板通过排针与主板连接为了加固,主板用了两张万能板叠在一起,因为是做串口通信时拍的,所以还有一些痕迹。
比如蜂鸣器(在V2.1版本中都用小喇叭了)。
还有就是那两根天线,可不是用来接收信号的哦,先卖一下关子,看到后面你就明白了。
焊接中的主板长度太长的走线就用跳线,节约锡丝。
主板快要焊接完毕了主板与控制板组合在一起了图中两个2P的插座分加是接喇叭和后备电池的。
主板制作完毕显示板开工了,同样使用了两张万能板。
你要问那八只铜柱是做什么用的啊,接着往下看。
显示板背后的走线128*64液晶屏,内置汉字库。
显示板通过排线与主板连接整机图,这下知道那两根天线和八只铜柱是用来干什么用的了吧。
从这边看看再从后面看看折叠起来了效果图把程序烧录进AT89S52后试机,刚开始只有背光灯亮,按按键喇叭有相应的声音发出,说明程序正常运行了,判断是显示板的问题。
后来尝试把液晶屏的V0端接上5V的高电平后显示正常了。
单片机控制12864液晶的应用
单片机控制12864液晶的应用1. 液晶控制电路和方案 (5)1.1相关硬件和软件介绍 (5)1.1.1 STC89C52 (5)1.1.2 带字库的12864液晶 (5)1.1.3 不带字库的12864液晶 (7)1.1.4 取模软件 (8)1.2液晶显示控制设计电路 (8)1.2.1系统的总体设计思路和框图 (9)1.2.2系统方案选择 (10)1.2.3系统功能图和流程图 (11)1.2.4系统电路原理图 (13)2. 程序的设计和调试 (15)2.1带字库的12864指令 (15)2.2不带字库的12864指令 (19)2.3程序调试 (21)2.3.1工程的建立和程序编译 (21)2.3.2硬件调试 (23)3. 液晶设计结果显示 (23)3.1带字库液晶显示结果 (23)3.2不带字库液晶显示结果 (23)4. 设计总结 (24)4.1设计中遇到的问题 (24)4.2设计心得 (25)5. 参考文献 (26)附录 (26)附录1:带字库12864程序源代码 (26)附录2:不带字库12864程序源代码 (44)单片机控制12864液晶的应用摘要:汉字的使用很广泛,显示汉字始终是计算机在我国应用普及的一个障碍。
随着单片机和显示技术的发展,加上人们不满足单片机系统采用LED数码管的简单显示,利用单片机控制液晶显示成为当前显示系统的主流。
本文主要介绍了89C51单片机为控制设备,12864液晶显示器为显示设备。
实现的一个可以显示汉字、字符和动态显示汉字的液晶显示器设备。
通过按键控制可以实现显示的汉字显示和左右移动。
利用液晶显示器显示汉字操作灵活,汉字显示果可以大大提高。
Abstact:The use of Chinese charactersis very wide,display Chinese characters is always an obstacle in the popularization of computer application in our country.With the development of MCU and display technology,and people don't satisfy SCM system using simple LED digital display tube,control the use of single-chip LCD display system now become the main stream.This paper mainly introduces the 89C51 microcontroller as the control equipment, 12864LCD as display equipment.An implementation can display Chinese characters,characters and dynamic displayof liquid crystal display Chinese characters.Through the button control can display the Chinese characters display and move e LCD display Chinese characters of flexible operation,display of Chinesecharacters can be greatly improved.1.液晶控制电路和方案1.1相关硬件和软件介绍1.1.1 STC89C5289C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
电子密码锁报告
基于单片机控制的电子密码锁设计者:张雪贵指导老师:李峥淮北煤炭师范学院物理与电子信息学院 06电子信息工程2009年6月v1.0 可编辑可修改基于单片机的电子密码锁一设计任务设计一个利用AT89S52单片机控制的电子密码锁,该电子密码功能包括16个密码输入,密码输入过程中清除输入,密码正确和错误分别用蜂鸣器提示,输入错误密码超次锁定,密码修改,12864LCD 显示菜单实现多功能等等。
二总体方案设计与实现电子密码锁系统核心用AT89S52单片机控制,密码输入按键为4*4矩阵键盘16个按键实现密码输入,外加独立按键实现清除,确定和液晶反白控制。
密码存储电路利用AT24C02芯片,该芯片可以实现掉电存储,而且数据可保留时间长,与单片机连接简单。
报警电路利用三极管驱动小型蜂鸣器实现,通过给蜂鸣器送不同频率的电平信号实现不同声音报警。
LCD用12864字符型液晶实现,通过单行反白实现菜单,加强液晶显示内容及添加系统功能。
另外,电磁锁电路暂时利用发光二极管代替,用发光二极管的亮灭和蜂鸣器的响声来指示电磁锁的开关。
图1 系统原理框图图2系统总体原理电路图三硬件电路的功能单元设计(一)单片机最小系统其原理图如图1所示图3 单片机最小系统模块单片机采用AT89S52单片机, AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器,与工业80C51产品指令各引脚完全兼容。
单片机最小系统主要有两块组成,其一为晶振起振电路,其二为复位电路。
在此,我们采用按键手动复位,相对来讲,这种复位方式更加方便人性化,不必要切断电源即可对系统进行复位。
(二)开锁电路通过单片机送给开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。
其原理如图2 所示。
图4 开锁电路原理当用户输入的密码正确单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。
在此为节省成本考虑,我们用二极管代替电磁锁,将一切在LCD上面显示,并且利用蜂鸣器和二极管声光指示。
基于12864液晶显示图片
1、摘要本次课程设计基于AT89C52为核心控制器,FYD12864液晶为显示器设计的液晶显示电路。
该电路可通过调用FYD12864液晶内部自带的字库(包含8192个标准中文汉字)显示16×16点的中文汉字、16×8的数字及英文字符,该过程只需要像DDRAM中写入要显示的字符的ASCII码,当事先指定显示数据的位置,即可将所需显示的字符显示在液晶的指定位置。
使用KNY12864液晶的绘图功能,将所需显示图片或字符的字模数据写入到CGRAM中,开图片显示,即可将该图片或字符同时显示在液晶上。
本次设计的扩展功能为用红外遥控控制图像移动,红外遥控的1、2、3、4、5、6、7、8八个按键分别控制图像的上移、下移、左移、右移、静止、继续、初始界面、重新设置等八项功能。
为实现图像的移动,可通过数据指针改变写入CGRAM的数据,使得输出的图像数据相对于原来在行或者列上按着一定的规律在变化即可,移动速度的快慢可由刷新的频率或者每次移动的行或者列数来决定。
至于在液晶上显示动画,为了有更好的动画效果,需要每秒刷新10幅图像,而在该12864液晶上,每幅图像需要1K的ROM空间,而52的ROM空间有限,所以在实现动画上有点困难,故本设计中不实现该功能。
2、软件简介2.1 Proteus简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA 工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、A VR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
LCD12864显示程序
本例程为通过用A T89C52芯片操作LCD12864显示的程序,使用的晶振为12M。
/**********************************************************程序说明:LCD12864显示主程序程序调试员:莫剑辉调试时间:2010-6-7**********************************************************/#include<reg52.h>#include"12864.c"void main(){Ini_Lcd(); //液晶初始化子程序Disp(1,0,6,"莫剑辉"); //显示数据到LCD12864子程序while(1);}这里我们通过调用下面的头文件就可以了,这样的做法方便我们以后要用到LCD12864的程序的调用。
/**********************************************************程序说明:LCD12864显示头文件程序调试员:莫剑辉调试时间:2010-6-7**********************************************************///#include<reg52.h>#define uchar unsigned char#define uint unsigned int#define DATA P2 //数据输出端0~7sbit RS=P0^0; //LCD12864 RS端sbit RW=P0^1; //LCD12864 RW端sbit E =P0^2; //LCD12864 E 端sbit PSB =P0^3;/*********************************************延时子程序*********************************************/void Delay_1ms(uint x){uint j,i;for(j=0;j<x;j++){for(i=0;i<120;i++); //延时X乘以120}}/*********************************************LCD12864液晶测忙子程序(读状态)*********************************************/void Busy(){uchar busy;do{E = 0; //0为关闭使能端,1为打开使能端RS = 0; //1为指令,0为数据RW = 1; //1为读,0为写Delay_1ms(20); //延时20乘以120时间E = 1; //0为关闭使能端,1为打开使能端busy=P1; //读取P2状态Delay_1ms(20); //延时20乘以120时间E = 0; //0为关闭使能端,1为打开使能端}while(busy&0x80); //判断BUSY位是否工作:1为内部在工作,0为正常状态}/*********************************************LCD12864液晶数据写入子程序*********************************************/void Write_Data(uchar k){Busy(); //测忙E =1; //0为关闭使能端,1为打开使能端RS=1; //1为指令,0为数据RW=0; //1为读,0为写DA TA=k; //输入数据K到DA TADelay_1ms(20); //延时20乘以120时间E =0; //0为关闭使能端,1为打开使能端Delay_1ms(20); //延时20乘以120时间}/*********************************************LCD12864液晶命令写入子程序*********************************************/void Write_Cmd(uchar cmd){Busy(); //测忙E=1; //0为关闭使能端,1为打开使能端RS=0; //1为指令,0为数据RW=0; //1为读,0为写DA TA=cmd; //输入命令cmd到DATADelay_1ms(20); //延时20乘以120时间E=0; //0为关闭使能端,1为打开使能端Delay_1ms(20); //延时20乘以120时间}/*********************************************LCD12864液晶数据显示子程序*********************************************/void Disp(uchar y,uchar x,uchar i,uchar *z){uchar Address;if(y==1){Address=0x80+x;} //Y判断第几行,X判断第几列,0x80为液晶行初始地址if(y==2){Address=0x90+x;}if(y==3){Address=0x88+x;}if(y==4){Address=0x98+x;}Write_Cmd(Address); //写入地址命令到LCD12864while(i) //写入显示数据的大小{Write_Data(*(z++)); //写入显示数据到LCD12864i--;}}/*********************************************LCD12864液晶初始化子程序*********************************************/void Ini_Lcd(void){PSB=1;Delay_1ms(20);Write_Cmd(0x30); //基本指令集Delay_1ms(20);Write_Cmd(0x02); // 地址归位Delay_1ms(20);Write_Cmd(0x0c); //整体显示打开,游标关闭Delay_1ms(20);Write_Cmd(0x06); //游标右移Delay_1ms(20);Write_Cmd(0x80); //设定显示的起始地址Delay_1ms(20);Write_Cmd(0x01); //清除显示}。
LCD12864液晶显示电子钟设计
《单片机原理及应用》课程设计说明书题目LCD12864 液晶显示电子钟设计系(部)专业(班级)姓名学号指导教师起止日期课程设计任务书系(部):专业:课题名称LCD12864 液晶显示电子钟设计设计要求设计一种基于AT89S52 单片机的液晶显示电子时钟,要求如下:(1)、能正确显示时间、日期和星期显示格式为:时间:XX 小时:XX 分:XX 秒;日期:XX 年:XX 月:XX 日;星期:X。
(2)、时间能够由按键调整,误差小于1S。
(3)、闹钟功能:时间运行到与闹钟设定时间时,闹钟响(持续响3 秒)。
(4)、报时功能:时间运行到正点时间时,闹钟响,几点钟就响几声(每声持续响 2 秒,每两声之间时间间隔 1 秒)。
液晶显示器第一行显示“数字电子钟”;第二行显示“当前时间”;第三行显示日期和星期;第四行显示最近一个闹钟的设定时间。
2、要求:完成该系统的硬件和软件的设计,在Proteus 软件上仿真通过,并提交一篇课程设计说明书。
设计工作量1、汇编或C51 语言程序设计;2、程序调试;3、在Proteus 上进行仿真成功,进行实验板下载调试;4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序分析、仿真分析、调试过程,参考文献、设计总结等。
工作计划起止日期工作内容第一天课题绍,答疑,收集材料,C51介绍第二天设计方案论证,练习编写C51 程序第三天~第六天程序设计第六天~第八天程序调试、仿真第九天~第十天系统测试并编写设计说明书教研室意见年月日系(部)主管领导意见年月日目录一、12864液晶的工作原理 (4)二、方案设计 (4)2.1 实物硬件设计 (4)2.2 系统硬件设计 (5)2.2.1 主芯片模块 (5)2.2.2 晶振和复位模块 (5)2.2.3 按钮模块 (6)2.3 系统软件设计 (6)2.3.1 主程序设计 (6)三、仿真和分析 (7)四、总结体会 (7)参考文献 (33)一、12864液晶的工作原理液晶显示屏中的业态光电显示材料,利用液晶的电光效应把电信号转换成数字符、图像等可见信号。
51单片机带字库12864液晶动态汉字显示C语言源程序
51单片机带字库12864液晶动态汉字显示C语言源程序2009-10-17 19:36实验芯片为:AT89S52,带字库液晶屏:12864,实现的目的:动态一个汉字一个汉字显示。
其实和显示汉字的程序一样,只是稍做一下修改即可。
C语言源程序如下:#include <stdio.h>#include <math.h>#include <reg52.h>#include <string.h>sbit RS=P2^4;sbit WRD=P2^5;sbit E=P2^6;sbit PSB=P2^1;sbit RES=P2^3;void TransferData(char data1,bit DI);void delayms(unsigned int n);void delay(unsigned int m);void lcd_mesg003(unsigned char code *addr1);unsigned char code IC_DAT[]={"我是一个中国人啊"};void initinal(void){delay(40);PSB=1; //并口工作模式delay(1);RES=0; //复位delay(1);RES=1; //复位置高delay(10);TransferData(0x30,0);delay(100);TransferData(0x30,0);delay(37);TransferData(0x08,0);delay(100);TransferData(0x10,0);delay(100);TransferData(0x0C,0);delay(100);TransferData(0x01,0);delay(10);TransferData(0x06,0);delay(100);}void main(void){while(1){initinal();//调用LCD字库初始化程序delay(100);lcd_mesg003(IC_DAT);}}void lcd_mesg003(unsigned char code *addr1){unsigned char i;//第一行TransferData(0x80,0);delay(100);for(i=0;i<16;i++){TransferData(*addr1,1);addr1++;delayms(50);}}void TransferData(char data1,bit DI) //传送数据或是命令,当DI=0时,传送命令,当DI=1时,传送数据{WRD=0;RS=DI;delay(1);P0=data1;E=1;delay(1);E=0;}void delayms(unsigned int n){unsigned int i,j;for(i=0;i<n;i++)for(j=0;j<2000;j++);}void delay(unsigned int m){unsigned int i,j;for(i=0;i<m;i++)for(j=0;j<10;j++);}原理就是在显示每个汉字的时候加了一个延时程序,当然可以用定时器来实现,这样的话,不占用CPU处理时间。
基于AT89C52的液晶显示的实现
基于AT89C52的液晶显示的实现1 引言随着单片机应用领域的不断扩大,用单片机控制汉字显示已成为一种单片机发展的必然趋势。
以前那种将汉字点阵编码存入ROM ,在显示时再调用的方法已经不能适应当前的需求。
好的应用所能显示的决不能仅仅局限于显示事先定义好的个别汉字,而应该提供直接使用至少包含国家标准的一、二级汉字字库的功能。
2 芯片器件介绍2.1 AT89C52单片机AT89C52单片机是EPROM型单片机,可寻址64KB字节的程序存储器和64KB字节的外部数据存储器。
以单片机为核心,配以一定的外围电路和软件,实现某些功能,就组成了单片机应用系统。
2.2 液晶显示模块我们选用北京精电蓬远公司的VPG12864T液晶显示模块,内置T6963C控制器,实现了T6963C与行、列驱动器及显示缓冲区RAM的接口,带有LED边光/底光,温度范围较广,属宽温型,无须外部提供液晶驱动电压,点阵数为128×64,支持图形、文本以及图文合成方式的三显示方式,且T6963C带有内部字符集。
液晶模块与微处理器MPU的接口电路有两种方式:一是直接访问方式,将AT89C52数据口P0直接与液晶模块的数据口连接;二是采用间接控制方式,MPU通过I/O并行接口,模拟液晶模块的时序,间接实现对液晶显示模块的控制。
本文讨论的实现方法采用第一种方式。
2.3 字库芯片字库芯片采用具有256K空间的可编程ROM芯片都可以,我们采用了A TMEL公司的AT27C020芯片,其中烧录含有国家标准的一、二级汉字的16×16点阵字库。
汉字点阵在字库中的首地址由如下公式计算:起始地址=[(区号-1)×94+(位号-1)]×32自此起始地址起的后续32个字节就是该汉字的字模数据。
从字库芯片中的32个字节的字模数据按下表排列构成汉字:其中,汉字由两字节ASCII码组成,分别减去0xA0即得到该汉字的区号和位号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学年设计报告设计题目基于AT89S52单片机实现128*64液晶屏显示作者姓名所学专业网络工程指导教师2010年9 月12 日学年设计任务书目录1绪论 (1)1.1 研究背景 (1)1.2主要工作 (1)1.3本文结构 (1)2硬件的设计 (1)2.1要求 (1)2.2电路的设计 (2)2.2.1平台搭建 (2)2.2.2模块设计 (2)2.3单片机的选择 (2)2.4 LCD模块的结构 (3)2.4.1模块接口引脚 (3)3 软件设计 (5)3.1字符的显示 (5)3.2显示模块函数的设计 (6)3.2.1 LCD底层接口驱动程序 (6)3.2.2 用户接口驱动程序 (6)4. 系统测试与调试 (7)5.致谢 (8)6.学年设计总结与体会 (8)7.结束语 (8)基于AT89S52单片机实现128*64液晶屏显示摘要:本文介绍以AT89S52单片机为控制核心,利用四位按键输入,以128*64液晶作为屏幕的显示模块。
该模块硬件结构结单、功能齐全,工作稳定,可完成目前绝大部分设备的显示。
关键词:AT89S52单片机;液晶;中文显示1绪论1.1 研究背景液晶是现在电子产品中使用越来越多的一种显示器件。
我们经常会在各种各样的电子产品和仪器上看到液晶显示器的存在。
这些液晶品种繁多,功能不一。
有的是字符型,有的是点阵型。
常常用来显示各种参数。
包括电压、电流、温度及各种电气参数和一些特定信息。
液晶不但用来显示各种文字还可以被设计成各种图案、通过改变里面特定显示RAM的内容。
还还可以动态的显示各种图案及画面。
液晶的使用打破了以往单一的声光显示功能,为人们提供了更多丰富多彩的显示信息。
许多学校研究了基于128×64点阵液晶显示的智能温度控制器的设计与实现及相关研究。
本次设计就是基于A T89S52单片机实现128*64液晶屏显示。
1.2主要工作首先是每个成员通过看书和上网找资料以便对AT89S52单片机有所了解,然后再开始进行设计。
在用AT89S52单片机实现128*64液晶屏菜单显示时主要用的方法是C语言单片机原理,及数字逻辑的相关知识。
进行实验时先进行平台搭建,之后在电脑上先仿真设计,成功后再实际进行电路的连接。
1.3本文结构本文的第一部分主要是对题目和该实现目标的分析,以及本文的主要大意,第二部分是对设计步骤的描述和有关的需求分析,第三部分则是对该程序的详细设计。
该系统在认真分析可行性的基础上,提出了功能模块的构想,通过各个功能模块的有机结合,在单片机的有效调用下,实现128*64液晶屏的显示。
2硬件的设计2.1要求深入理解液晶屏显示原理及字符显示原理实现基于AT89S52的单片机对于128*64液晶屏的控制,实现中文显示。
2.2电路的设计2.2.1平台搭建整个设计首先是在protues软件中进行硬件的搭建及仿真的。
因为通过protues软件能仿真模拟电路、数字电路、数模混合电路;能绘制原理图、PCB图;几乎包括实际中所有使用的仪器等。
而其最大的优点在还是于能够对单片机进行实物级的仿真,可自行设计电路从程序的编写,编译到调试,目标版的仿真一应俱全。
支持汇编语言和C语言的编程。
还可配合Keil C实现程序的联合调试,将Proteus中绘制的原理图作为实际中的目标板,而用Keil C集成环境实现对目标板的控制,与实际中通过硬件仿真器对目标板的调试几乎完全相同,并且支持多显示器的调试,即Proteus运行在一台计算机上,而Keil C运行在另一台计算机上,通过网络连接实现远程的调试。
因此,本次设计选择在protues软件中进行仿真设计。
2.2.2模块设计整个设计的核心部件是A T89S52单片机、128*64的液晶屏及周边的晶振和按键等原件。
2.3单片机的选择本设计选用AT89S52系列单片机是因为其管脚排列如图1。
AT89S52,8位单片机是MSC-51系列产品的升级版,有世界著名半导体公司ATMEL在购买MSC-51设计结构后,利用自身优势技术(掉电不丢数据)闪存生产技术对旧技术进行改进和扩展,同时使用新的半导体生产工艺,最终得到成型产品。
与此同时,世界上其他的著名公司也通过基本的51内核,结合公司自身技术进行改进生产[1]。
AT89S52片内集成256字节程序运行空间、8K字节Flash存储空间,支持最大64K外部存储扩展。
根据不同的运行速度和功耗的要求,时钟频率可以设置在0-33M之间。
片内资源有4组I/O 控制端口、3个定时器、8个中断、软件设置低能耗模式和断电保护。
可以在4V到5.5V宽电压范围内正常工作。
不断发展的半导体工艺也让该单片机的功耗不断降低。
同时,该单片机支持计算机并口下载,简单的数字芯片就可以制成下载线,仅仅几块钱的价格让该型号单片机畅销10年不衰。
根据不同场合的要求,这款单片机提供了多种封装,本次设计根据最小系统有时需要更换单片机的具体情况,使用双列直插DIP-40的封装。
图1 AT89S52引脚排列图2.4 LCD模块的结构通常所见的LCD 模块分为:LCM(玻璃)、背光、PCB 板;而背光和PCB板部分其实是可有可无的,视具体的LCD 模块而定。
点阵的LCD 模块按照驱动控制器的集成方式,大可分为两种:COB 和COG.。
MzL02-12864 为一块128*64 点阵的LCD 显示模块,模块上的LCM 采用COG 技术将控制(包括显存)、驱动器集成在LCM 的玻璃上,[2]接口简单、操作方便;为方便用户的使用,在LCM 的基础上设计了MzL02-12864 模块,将模块所必需的外围电容电阻集成到模块上,并引出多种形式的引线接口方便用户使用。
MzL02-12864 模块与各种MCU 均可进行方便简单的接口操作。
2.4.1模块接口引脚图2.1 LCD接口引脚其具体功能如下表2.1序号接口引脚名说明1LEDK背光负极输入2NC空3C86并行接口选择:高电平:6800 总线低电平:8080 总线4PS串行/并行接口选择,高电平:并行总线接口低电平:串行接口5EP6800 系列MPU 的时钟信号使能脚(EP),当选择总线接口为8080 时,该线为RD 信号6 WR6800 系列MPU 的读/写控制信号(R/W);8080 系列MPU 总线的写使能信号7 A0数据命令选择脚8 Reset(RST)复位脚(低电平复位)9 CS片选(低电平有效)10 LEDA背光正极输入11 GND地12-19DB7~DB8位数据总线2.5连接方式在实际应用中,液晶模块与单片机的连接方式很多,从占用I/O口线的多少来分有串行方式和并行方式,其中串行方式速度较慢,占用的口较少,并行方式分为4线和8线,速度较快,占用的I/O口多,实际应用中以并行方式居多。
LCD12864的管脚共有20个之多,但是连接的电路并不复杂。
但是需要注意的是LCD的电源共有2组,一组是用于驱动LCD显示,另一组用于背光显示。
可将这两组连再一起或者背光电源省略。
[3]另外有个输入管脚V0需要接入LCD调整电压来调节对比度。
通常刚使用液晶时的问题是由此引起的,对比度过高于或过低均会使屏幕无法正常显示。
它可接至10K-20K电位器的调整端,电位器两端分别接至VDD与VEE。
目前市场上某些LCD12864的对比度可由单片机操作其寄存器调节,可根据不同的条件进行选择。
其余的端口均连接至单片机。
本文将IO口DB0-DB7连接至P2口,RS、RW、E、CS1、CS2、RET分别连接至P1.0至P1.5。
[4]其他硬件部分,四位按键分别连接P3.2-P3.5,由于四位按键已能完成基本功能,操作简单,使用方便,分别设置为左右选择键,上下选择键,且节省单片机IO口,因此不采用矩阵键盘目前51系列单片机是国内外应用最广泛的一类单片机的P0口和P3口的部份引脚与DMC20261型液晶显示连接电路如图2.2所示[5]图2.2 单片机与液晶屏的连接3 软件设计3.1字符的显示在数字电路中,所有数据都是由0和1保存的,同样LCD也利用了这一方法。
在点阵LCD上显示的只有两种颜色,因此可利用0和1来表示这两种颜色。
假设空格是由16*16个0组成的,再显示16*16的字体时,将其中某些点置为1便可再视觉上形成一个汉字,这些二进制数称为代位码。
而这些由0和1转换而成的16进制数据便是字模。
不同的汉字有不同的字模,相同的汉字不同的字体也有不同的字模。
而将字模设为16*16像素是因为这样基本可以将汉字显示清楚准确,更高像素则更为清楚准确,但是却更多地占用了LCD的面积。
与汉字不同的是,一个字符只需要16*8的像素便即可。
假设要在LCD12864屏幕上准确正确的显示出汉字,则需要将16*16的汉字分为两行,每行由16列组成,这16列每列存再8个点,用2位16进制数(8位二进制数)表示这8个点,16个16进制数可表示1行,32个16进制数则能表示整个汉字。
通过LCD12864,则可将这些字模信息还原成汉字或图像。
[6]MzL02-12864 液晶显示模块的显示器(玻璃)上的显示点与驱动控制芯片中的显示缓存RAM是一一对应的;驱动控制芯片当中共有65(8 Page x 8 bit+1)X 132 个位的显示RAM 区。
而显示器的显示点阵大小为64X128 点,所以实际上在液晶显示模块中有用的显示RAM 区为128*64个位;按byte 为单位划分,共分为8 个Page,每个Page 为8 行,而每一行为128 个位(即128 列)驱动控制芯片的显示RAM 区每个byte 的数据对应屏上的点的排列方式为:纵向排列,低位在上高位在下。
3.2显示模块函数的设计3.2.1 LCD底层接口驱动程序首先是LCD的初始化,包含对LCD的复位与关开显示。
利用LCD的初始化函数void LCD_Init(void),其中对液晶操作的延时为两个_nop_();语句以确保时序的正确性。
初始化完毕后执行写命令函数void LCD_WriteCmd(uchar CmdCode)和写数据函数void LCD_WriteData(uchar Data)。
空闲状态检测时利用读状态函数uchar LCD_ReadStatus(void)读入的状态BUSY与RST位均为0时即检测到LCD空闲,跳出while循环,将E置0后跳出函数。
对于液晶的读写均用到空闲状态检测以保证液晶的正常显示 [7]。
3.2.2 用户接口驱动程序为了方便对LCD的使用,本设计提供了多个对LCD操作的子函数。
使模块功能提升,方便屏幕显示界面的美化。
清屏函数void LCD_Clear(void),其原理为将DDRAM中所有数据置0,则屏幕上所有显示内容被清除。
图像显示函数void LCD_Writeimage(uchar x,uchar y,uchar m,uchar n, uchar code *image)。