基于单片机的12864LCD液晶显示

合集下载

基于12864液晶显示单片机音乐播放器的设计

基于12864液晶显示单片机音乐播放器的设计

存档编号赣南师范学院学士学位论文基于12864液晶显示的单片机音乐播放器教学学院物理与电子信息学院届别 2012届专业电子科学与技术学号 080803030姓名周谟龙指导教师袁寿财完成日期 2012年5月目录摘要: (1)关键词: (1)Abstract: (1)Keywords: (2)1.绪论 (3)1.1 前言 (3)1.2 设计任务与要求 (3)2. 12864液晶概述 (4)2.1名称含义 (4)2.2基本参数 (4)2.3电气特性 (5)2.4液晶模组接口 (6)2.5基本用途: (6)2.6应用举例 (7)3. AT89S51 单片机概述 (8)3.1 AT89S51 单片机的结构 (8)3.1.1 管脚说明 (11)3.1.2 主要特性 (14)3.1.3 振荡器特性 (15)3.2 AT89S51 单片机的工作周期 (16)3.3 AT89S51 单片机的工作过程和工作方式 (17)3.4 STC12C5616AD (22)4.方案设计 (22)4.1 系统概述 (22)4.2 总体设计 (24)4.3 系统硬件选择 (24)4.4 硬件电路实现 (25)4.5 软件的程序实现 (26)5.结论 (33)5.1 主要结论 (33)参考文献 (35)致谢 (36)附录A:主函数和部分函数程序清单 (37)A.1 主函数代码 (37)A.2 播放音乐部分函数代码 (39)A.3 LCD显示部分函数代码 (42)A.4 音乐播放部分指令代码 (49)A.5 部分头文件中包含的代码 (51)A.5.1 延时函数头文件 (51)A.5.2 音乐指令头文件代码 (51)A.5.3 LCD12864液晶头文件代码 (52)摘要:本次课程设计是基于STC12C5616AD系列的51单片机LCD12864液晶显示的音乐播放器。

通过单片机音乐播放器系统设计和研究,对于切实掌握单片机相关知识具有重要的理论和实际意义。

电子信息工程专业毕业设计--基于51单片机的12864液晶显示器的设计和研究

电子信息工程专业毕业设计--基于51单片机的12864液晶显示器的设计和研究

目录设计总说明 (I)INTRODUCTION (II)1 绪论 (1)1.1课题背景及研究意义 (1)1.2课题研究的主要内容 (1)1.3国内外发展状况与存在问题 (1)2 总体方案设计与论述 (2)2.1 系统需求分析 (2)2.2 系统总体方案设计 (2)2.2.1 设计方案论证 (2)2.2.2总体结构框图 (3)3系统单元模块设计 (3)3.1系统硬件示意图 (3)3.2主控芯片(STC89C52模块)[5] (4)3.3 时钟控制模块[13] (6)3.3.1 DS1302简介 (6)3.3.2引脚及功能表 (7)3.3.3工作原理 (7)3.3.4 DS1302电路设计图[9] (8)3.4 温度控制模块 (8)3.5 12864接口电路模块 (9)3.6 按键电路模块 (9)3.7 电源电路模块 (10)3.8 印制电路板[9] (10)4系统整体调试与结果分析 (11)4.1 系统总体程序流程介绍 (11)4.2 按键程序设计 (13)4.3 12864驱动程序设计[15] (14)4.3.1 ST7920芯片介绍[14] (14)4.3.2 ST7920驱动程序设计 (17)4.4 12864应用程序设计 (20)4.4.1 文字显示程序设计 (20)4.4.2 点、线显示程序设计 (22)4.4.3 图形、图片显示程序设计 (23)4.5 菜单程序设计 (26)5设计调试及进一步研究 (28)5.1 系统测试 (28)5.1.1 软件调试 (28)5.1.2 硬件调试 (29)5.2 进一步研究的工作 (30)6总结 (30)鸣谢................................................................................................................................ 错误!未定义书签。

毕业设计—基于单片机的12864时钟显示

毕业设计—基于单片机的12864时钟显示

学士学位毕业论文(设计)题目:基于单片机的12864时钟显示摘要电子时钟是一种非常广泛日常计时工具,给人们的带来了很大的方便,在社会上越来越流行。

它可以对年、月、日、星期、时、分、秒进行计时,采用直观的数字显示,可以同时显示年月日时分秒等信息,还有时间校准等功能。

该电子时钟主要采用STC89C52单片机作为主控核心,用DS1302时钟芯片作为时钟、液晶12864显示屏显示。

STC89C52单片机是由深圳宏晶科技公司推出的,功耗小,电压可选用4~6V电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的12864液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒等信息。

此外,该电子时钟还具有时间校准等功能。

关键词:STC89C51单片机,DS1302时钟芯片,液晶12864AbstractElectronic clock is a very extensive daily timing tool, to the people has brought great convenience, more and more popular in the community. It can be the year, month, date, day, hour, minute, second for a time, using intuitive digital display, can display information such as year, month, day, hour, and time alignment functions. The electronic clock is used mainly as a master STC89C52 microcontroller core, with theDS1302 clock chip as a clock, LCD display12864. STC89C52 SCM is a Shenzhen Hong Crystal Technology has introduced, power consumption, voltage can be selected 4 ~ 6V voltage power supply; DS1302 clock chip is American DALLAS company launched with a fine current charging low-power real-time clock chip, it can year, month, date, day, hour, minute, second for a time, also has a leap year compensation and other functions, DS1302 and long life, small error; 12864 LCD digital display isused to display that can display year, month, date, day, hour, minute, second and so on. In addition, the electronic clock also has a time calibration function.Key Words:STC89C51 microcontroller, DS1302 clock chip, LCD 12864目录1绪论 (3)1.1时钟发展史 (3)1.2 目前的研究现状 (4)1.3研究目的及意义 (4)2 总体方案设计 (5)2.1 方案的选择 (5)2.1.1设计要求 (5)2.1.2方案的选择 (5)2.2总体方案组成框图 (6)3系统硬件设计 (6)3. 1主芯片模块 (6)3.1.1 中断系统 (8)3.1.2常用寄存器 (8)3.2晶振和复位电路 (10)3.2.1晶振电路 (10)3.2.2复位电路 (11)3.3 DS1302时钟芯片电路 (11)3.3.1 DS1302引脚图 (11)3.3.2 DS1302寄存器 (12)3.3.3 DS1302外围电路 (13)3.4 LCD12864显示模块 (13)3.4.1 LCD12864引脚功能 (13)3.4.2 LCD12864指令说明 (14)3.4.3 LCD12864电路接线 (15)3.5 红外遥控模块 (16)4 系统软件设计 (17)4.1 主程序设计 (17)4.2 LCD12864驱动程序 (19)4.3 DS1302驱动程序 (21)4.4 红外遥控程序 (24)5 调试结果 (25)5.1 正常显示日期时间画面 (26)5.2 进入调整时间日期画面 (26)5.3图片显示画面 (26)6总结 (27)致谢 (28)参考文献 (29)附录一 (31)附录二 (32)1绪论1.1时钟发展史很早以前,人类主要是利用天文现象和流动物质的连续运动来计时。

单片机原理及应用 课程设计 12864点阵LCD的显示

单片机原理及应用 课程设计 12864点阵LCD的显示

《单片机原理及应用》课程设计题目128*64点阵LCD的显示院系信息学院专业通信工程姓名XXX学号XXXXX指导老师XXX报告日期2009.09.101.题目:128*64点阵LCD的显示2.原理简述12864点阵液晶显示模块(LCM)就是由128*64个液晶显示点组成的一个128列*64行的阵列。

每个显示点对应一位二进制数,1表示亮,0表示灭。

存储这些点阵信息的RAM称为显示数据存储器。

要显示某个图形或汉字就是将相应的点阵信息写入到相应的存储单元中。

图形或汉字的点阵信息当然由自己设计,问题的关键就是显示点在液晶屏上的位置(行和列)与其在存储器中的地址之间的关系。

由于多数液晶显示模块的驱动电路是由一片行驱动器和两片列驱动器构成,所以12864液晶屏实际上是由左右两块独立的64*64液晶屏拼接而成,每半屏有一个512*8 bits显示数据RAM。

左右半屏驱动电路及存储器分别由片选信号CS1和CS2选择。

(少数厂商为了简化用户设计,在模块中增加译码电路,使得128*64液晶屏就是一个整屏,只需一个片选信号。

)显示点在64*64液晶屏上的位置由行号(line,0~63)与列号(column,0~63)确定。

512*8 bits RAM中某个存储单元的地址由页地址(Xpage,0~7)和列地址(Yaddress,0~63)确定。

每个存储单元存储8个液晶点的显示信息。

为了使液晶点位置信息与存储地址的对应关系更直观关,将64*64液晶屏从上至下8等分为8个显示块,每块包括8行*64列个点阵。

每列中的8行点阵信息构成一个8bits二进制数,存储在一个存储单元中。

(需要注意:二进制的高低有效位顺序与行号对应关系因不同商家而不同)存放一个显示块的RAM区称为存储页。

即64*64液晶屏的点阵信息存储在8个存储页中,每页64个字节,每个字节存储一列(8行)点阵信息。

因此存储单元地址包括页地址(Xpage,0~7)和列地址(Yaddress,0~63)。

基于51单片机的12864液晶画点程序

基于51单片机的12864液晶画点程序
{
unsigned char largex,largey,smallx,smally; //将两点横纵坐标按大小存储
unsigned char i;
if(x1 > x2)
{
largex = x1;
smallx = x2;
}
else
{
largex = x2;
smallx = x1;
}
if(y1 > y2)
}else{
DL |= (0x01 << (7 - (k % 8))); //修改该点同时保持其他位不变
}
break;
case 2:
if(k < 8){
DH ^= (0x01 << (7 - k)); //修改该点同时保持其他位不变
}else{
DL ^= (0x01 << (7 - (k % 8))); //修改该点同时保持其他位不变
DH &= ~(0x01 << (7 - k)); //修改该点同时保持其他位不变
}else{ //点在低字节
DL &= ~(0x01 << (7 - (k % 8))); //修改该点同时保持其他位不变
}
break;
case 1:
if(k < 8){
DH |= (0x01 << (7 - k)); //修改该点同时保持其他位不变
com(0x34); //在写GDRAM的地址之前一定要打开扩充指令集
//否则地址写不进去!!
for( j = 0 ; j < 32 ; j++ )
{
com(0x80 + j) ; //写Y坐标

基于51单片机的12864液晶图文显示研究

基于51单片机的12864液晶图文显示研究
日 × i i ( / ) = / X n n 。
以通 过增 加或 减少 叶轮 个 数来 达到 设计 参 数 。 实践 证 明 , 该方 法 用
可 以高效 、 成 本 、 靠地 设 计 出符 合 要 求 的给 水 泵 , 方法 在 我 低 可 该
厂 已得 到广 泛 的应 用 。 [ 参考文献 ]
允许 R M 、 A 定时器 / 数器 、 口、 计 串 中断 继续 工作 。掉 电保 护 口 电路设 计 。采用 Poe 9 E软件 对硬 件 电 路进 行 相 关 设计 , rt 9 1 S 包 工作 , 方 式下 , AM 内容被 保存 , R 振荡 器被 冻结 , 片机 一 切工 作停止 , 单 直 括设计 各器 件之 间 的接 口 电路 ,并对每 个 器件 的管 脚 功能 作 了详 细的说 明 。 分析 系统硬 件 电路各 个 模块 功 能之后 , 制系 统硬 件 到 下一个 中断 或硬件 复位 为止 。 在 绘 . L (2 6 流程 图。最 后通过 硬件 流程 图, 采用 汇编 语 言编 制相 应 的程 序 , 并 22 液 晶显 示器 (CD) 1 8 4) ( C ) 1 8 4 具有 功耗 低 、 积 小 、 L D (2 6 ) 体 重量 轻 、 薄等 许 多其 他 超 且 绘制 软件 流程 图 , 后对 所编 辑 的程 序进 行上 机调 试 , 最 将预 先 设
图 2 系统 软 件功 能 与 流 程 图
本 次设 计系 统 的硬件 和软 件 都达 到预 期 目标 ,能正 常进 行文
和控 制 器) 都包 含 在 集成 电路 芯片 里 , 因此 , 只要 一 个最 基 本 的微 字 、 何 图片 的显示 。 设 计实现 了文 字 与 图形、 几 本 图片 的显示 , 并添 处 理 系 统 就 可 以通 过 S 7 2 T 9 0芯 片 来 控 制 其 他 的芯 片 。S 7 2 加 了菜 单功 能 , 了方便 系统 扩展 , T 90 为 各模 块之 间 的连接 采用 接插 式 L D驱动 器 由 3 C 2个 普 通 驱 动 器 ( m n 及 6 c mo ) o 4个 段 驱 动 器 结构 。设计 的硬 件 系 统 主 要 由单 片 机 和 液 晶 组成 :软 件主 要 有 sg e t e m n 组成 ,段驱 动器 的扩充 可根 据需 要 由 S 7 2 的 段驱 动器 184驱动 模 块 、 单 功 能模 块 、 T91 26 菜 按键 模 块 ; 写 一个 软 件 一般 都 编 来提供, 一个 S 7 2 T 9 0可 以显 示 一行 8 字 或两 行 4个 字 , 是配 要 进 行相应 的规 划 , 以及 实现 的 相应 算法 。本系 统 软件 是先 实现 个 或 合 S 72 T 9 l来 显 示 两 行 1 6个 字 。 S 7 2 T 9 0有 2种 结 构 形 式 : 184的驱动 程 序 ,保证 液 晶模 块 能够 正常 工 作 。再 编写 按键 程 26 S 7 2 — A 和 S 7 2 - B 前 者 内置 B ( 5码 , 于 显 示 繁 体 中 T 900 T 90 0 , I 卜 用 序 , 验证 其能 正常 工作 。 后通 过编 写 简单 的菜 单软件 来控 制软 并 最 文 字 型: 后者 内置 G 而 B码 , 于显 示简 体中文 字 型 。 用

基于51单片机测频计的设计12864显示

基于51单片机测频计的设计12864显示
/*==============================================================
/*################################################################*/
void init_chushihua()
void delay(uint i) //1us延时函数
{
while(--i);
}
/*=============================================================*/
void delay1(uint z)//1ms
{
uint x,y;
time=0;
}
}
void exter0() interrupt 0 //外部中断0,每中断一次计数一次
{
time++;
}
/*==================================================================*/
uchar code table4[]="测量精度 % ";
sbit LCD_RS=P3^7;
sbit LCD_EN=P3^5;
sbit LCD_RW=P3^6;
/*=============================================================*/
write_lcd_command(0x30);//功能设定:八位数据、基本指令操作
delay(100); //等待时间>100us

毕业设计—基于单片机的12864时钟显示

毕业设计—基于单片机的12864时钟显示

学士学位毕业论文(设计)题目:基于单片机的12864时钟显示摘要电子时钟是一种非常广泛日常计时工具,给人们的带来了很大的方便,在社会上越来越流行。

它可以对年、月、日、星期、时、分、秒进行计时,采用直观的数字显示,可以同时显示年月日时分秒等信息,还有时间校准等功能。

该电子时钟主要采用STC89C52单片机作为主控核心,用DS1302时钟芯片作为时钟、液晶12864显示屏显示。

STC89C52单片机是由深圳宏晶科技公司推出的,功耗小,电压可选用4~6V电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的12864液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒等信息。

此外,该电子时钟还具有时间校准等功能。

关键词:STC89C51单片机,DS1302时钟芯片,液晶12864AbstractElectronic clock is a very extensive daily timing tool, to the people has brought great convenience, more and more popular in the community. It can be the year, month, date, day, hour, minute, second for a time, using intuitive digital display, can display information such as year, month, day, hour, and time alignment functions. The electronic clock is used mainly as a master STC89C52 microcontroller core, with theDS1302 clock chip as a clock, LCD display12864. STC89C52 SCM is a Shenzhen Hong Crystal Technology has introduced, power consumption, voltage can be selected 4 ~ 6V voltage power supply; DS1302 clock chip is American DALLAS company launched with a fine current charging low-power real-time clock chip, it can year, month, date, day, hour, minute, second for a time, also has a leap year compensation and other functions, DS1302 and long life, small error; 12864 LCD digital display isused to display that can display year, month, date, day, hour, minute, second and so on. In addition, the electronic clock also has a time calibration function.Key Words:STC89C51 microcontroller, DS1302 clock chip, LCD 12864目录1绪论 (3)1.1时钟发展史 (3)1.2 目前的研究现状 (4)1.3研究目的及意义 (4)2 总体方案设计 (5)2.1 方案的选择 (5)2.1.1设计要求 (5)2.1.2方案的选择 (5)2.2总体方案组成框图 (6)3系统硬件设计 (6)3. 1主芯片模块 (6)3.1.1 中断系统 (8)3.1.2常用寄存器 (8)3.2晶振和复位电路 (10)3.2.1晶振电路 (10)3.2.2复位电路 (11)3.3 DS1302时钟芯片电路 (11)3.3.1 DS1302引脚图 (11)3.3.2 DS1302寄存器 (12)3.3.3 DS1302外围电路 (13)3.4 LCD12864显示模块 (13)3.4.1 LCD12864引脚功能 (13)3.4.2 LCD12864指令说明 (14)3.4.3 LCD12864电路接线 (15)3.5 红外遥控模块 (16)4 系统软件设计 (17)4.1 主程序设计 (17)4.2 LCD12864驱动程序 (19)4.3 DS1302驱动程序 (21)4.4 红外遥控程序 (24)5 调试结果 (25)5.1 正常显示日期时间画面 (26)5.2 进入调整时间日期画面 (26)5.3图片显示画面 (26)6总结 (27)致谢 (28)参考文献 (29)附录一 (31)附录二 (32)1绪论1.1时钟发展史很早以前,人类主要是利用天文现象和流动物质的连续运动来计时。

基于51单片机的12864液晶显示的万年历

基于51单片机的12864液晶显示的万年历

附录程序
/*****************说明*********************************** 基于 51 单片机的 12864 液晶显示的万年历
版权所有,如需转载请通知本人,不得用于商业用途 ,仅限学习交流之用
*****************************************************************/
3
图-1 主控制系统
2.3.2 时钟电路模块的设计 DS1302 是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、
时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进 行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一 个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容, 但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
//延时 1MS/次
unsigned char
{
sec,min,hour,day,month,year,cen,week,
unsigned char i;
next,aa,bb,cc,dd,mm,temp0,LunarMonth,
while(--a)
LunarDay,LunarYear;
{
int temp;
9三三系统的软件设计系统的软件设计3131程序流程框图程序流程框图图图aa主程序流程图主程序流程图10图b计算阳历程序流程图计算阳历程序流程图1112图图cc时间调整程序流程图时间调整程序流程图yynnyynnyy图图dd设置温度报警闹钟的数据保存到设置温度报警闹钟的数据保存到at24c02at24c02中中是否进入温度报警上下限温度设置设置是否进入设置闹钟时间设置报警温度上下限开始设置闹钟的时间开始报警闹钟的开关是否开起at24c02存设置的功能保蜂鸣器开启闹钟报警功能开启结束设置13五五作品功能实现作品功能实现通过硬件的焊接与程序的编写本电子万年历终于完成了实现的功能如下

基于STM8的12864LCD点阵字库显示

基于STM8的12864LCD点阵字库显示

基于STM8/32的128*64LCD点阵字库显示
本方案主控采用STM8S207C8T6,1.7寸128*64LCD显示屏,LCD驱动芯片采用UC1701(可兼容ST7565),字库显示采用高通GT20L16S1Y字库芯片,以实现LCD界面上的显示。

详细资料及代码可查看附件。

以下分别是STM8S207C8T6,UC1701和GT20L16S1Y在原理图中的模块电路。

原理图是依据datasheet中的阐述所绘制,其中主控电路是使用了stm8s207c8t6芯片绘制的最小系统,显示屏部分是根据设置BM0和BM1来选择总线模式绘制的电路。

这里我使用了SPI总线模式。

而字库芯片本身就是SPI总线模式通信,直接根据规格书的电路例子使用即可。

完成了电路部分,知道了总线模式,再结合数据手册就可以对改设备编写程序代码了。

首先是LCD液晶屏的驱动,要液晶屏显示你想要的数据,主要是LCD初始化成功,下面是LCD初始化程序,根据指令列表编写的程序代码:
初始化显示屏之前必须对引脚的模式进行相对应的配置
显示驱动成功后则接着是对字库芯片的文字数据获取进行编程调试,以下是获取GB2312文字的函数代码。

PCB实物图
实际效果图
以下有三个界面,分别是行驶记录仪、门禁显示和一个图形页面。

文字显示采用GT20L16S1Y字库芯片,这款芯片包含最常用的GB2312汉字,字型符合国家标准。

门禁界面中的数字采用字库芯片内的24点阵不等宽时钟体字库。

图形LOGO可存储至字库芯片中的64K可擦写空间。

附件1:/s/1jG6dte2 附件2:/s/1sjEC4Kt 附件3:/s/1gdhgXSv。

基于AT89S52单片机实现12864液晶屏显示

基于AT89S52单片机实现12864液晶屏显示
本文由假装坚强赟贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机 查看。 滁州学院本科学年设计 学 年 设 计 报 告 设计题目基于AT89S52单片机实现128*64液晶屏显示 设计题目 作者姓名 所学专 业 指导教师 网络工程 赵亮 2010年 2010年 9 月 12 日 滁州学院本科学年设计 学年设计任务书 学年设计题目 组长 组别 组员 王赟馨 第二组 基于AT89S52单片机实现128*64 液晶屏显示 学号 专业 2009211039 网络工程 班级 2班 戚芳芳 2009211023 王萍 2009211038 吴开珺 2009211040 赵亮 学习并掌握基 于C语言的单片机编程原理 Microsoft Windows XP、Proteus软件 实现基于单片机对 于128*64液晶屏的控制,以及文字显示 学年设计工作进度计划 指导教师 学年设计目的 学年设计所需环境 学年设计任务要求 序号 1 起止日期 2010-7-2  ̄ 2010-7-5 2010-7-6  ̄ 2010-9-5 2010-9-5  ̄ 2010-12 2 010-9-12 工 作 内 容 商讨问题的解决路径和初 步实施方案。 分工情况 本小组组员根据个人所学情况, 对问题 认真分析,想出自己特色的 实施方案, 为下次会议的方案选择做准备 小组人员对课程设计进行具体的分析 2 暑期时间个成员在家对课 程设计进行分析。 。 对个人工作进行分析并对 最后 的进行检验 对已经完成的实验在实验 室中老师进行知道分析 3 小组成员对最后程序进行研究、 检验并 发表自己的见解 小组成员根据老师的 指导, 进行实验报 告的完成。 4 教研室审核意见: 教研室主任签字: 年 月 日 滁州学院本科学年设计 目 录 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单片机实现128*64 摘要:本文介绍以AT89S52单片机为控制核心,利用四位按键输入,以128*64液 晶作为屏幕的 显示模块。该模块硬件结构结单、功能齐全,工作稳定,可完成目前绝大部分设 备的显示。 关键词:AT89S52单片机;液晶;中文显示

基于单片机的12864液晶显示时钟汇编程序

基于单片机的12864液晶显示时钟汇编程序

;**********此程序用于12864(lgm12641bs1r)液晶显示汉字(没有字库)********* ;****************2011.3.30**************lcm equ p1cs1 bit p2.4 ;cs1片选左屏cs2 bit p2.3 ;cs2片选右屏di bit p2.2rw bit p2.1e bit p2.0rst bit p2.7x equ 30hy equ 31hdd equ 32hxx equ 33hyy equ 34hhz equ 35horg 0000hljmp mainorg 0030hmain: ;lcall lcd_init;mov r5,#0ffh;lcall delaymov xx,#00hmov yy,#00h;mov hz,hz1mov dptr,#tab1lcall disp_hz;lcall delaymov xx,#0hmov yy,#02hmov dptr,#tab2lcall disp_hzmov xx,#1hmov yy,#00hmov dptr,#tab1lcall disp_hzljmp $;************设定起始行子程序********************set_startline:;此处由a值进入add a,#0c0hsetb cs1setb cs2lCALL w_coderet;******************写指令到lcm中******************w_code: ;调用此子程序之前须设定片选,数据由a进入lcall lcd_busyclr di ;低电平选中指令输入端clr rw;lcall lcd_busymov lcm,asetb eclr eret;******************写数据到lcm中******************w_data: ;调用此子程序之前须设定片选,数据由a进入lcall lcd_busysetb di;高电平选中数据输入端clr rwmov lcm,asetb eclr eret;**************设定x,y坐标,数据并由x,y传入*****set_xy:mov a,xadd a,#40hsetb cs1setb cs2lcall w_codemov a,yadd a,#0b8hsetb cs1setb cs2lcall w_coderet;***********开关屏数据由a传入,0为关,1为开*************** dison_off:add a,#3ehsetb cs1setb cs2lcall w_coderet;************复位程序************************************** reset: clr rstmov r5,#20 ;延时20mslcall delaysetb rstmov r5,#20lcall delayret;************初始化lcd**********************************lcd_init:lcall resetmov a,#00hlcall dison_off ;关显示mov y,#00hxx2: mov x,#0mov dd,#00hxx1: lcall lwinc xmov a,xcjne a,#128,xx1inc ymov a,ycjne a,#8,xx2;djnz x,xx1;djnz y,xx2mov a,#01hlcall dison_off ;开显示mov a,#00h ; 起始行为0lcall set_startlineret;************写数据到lcm指定位置**********************;************此子程序由x,y,dd导入数据***************lw: mov a,xcjne a,#64,x1x1: jc x2;mov a,xclr csubb a,#64mov x,alcall set_xyclr cs1setb cs2mov a,ddlcall w_dataljmp fanhuix2: lcall set_xysetb cs1clr cs2mov a,ddlcall w_datafanhui: ret;***************显示一个汉字子程序*****************;**********此程序由xx(表示该行第xx个字),yy(表示第yy行),hz(要写入的汉字)导入数据**********disp_hz:;mov dptr,#tab1mov r7,#0 ;ixx0:mov a,r7mov b,#2mul abinc amov 7fh,adec amovc a,@a+dptrmov dd,amov a,xxmov b,#16mul abadd a,r7mov x,amov y,yylcall lwmov a,7fhmovc a,@a+dptrmov dd,ainc ylcall lwinc r7cjne r7,#16,xx0retdelay: ;1msd3: mov r3,#090hd1: mov r4,#2hd2: djnz r4,d2djnz r3,d1djnz r5,d3retlcd_busy: ;判忙clr disetb rwrettab3: DB 80h,80h,40h,20h,50h,48h,44h,0C3h,44h,48h,50h,20h,40h,80h,80h,00h DB 40h,40h,42h,4Ah,72h,42h,42h,7Fh,42h,42h,62h,5Ah,42h,40h,40h,00htab1:db 40h,40h,40h,40h,20h,42h,20h,42h,50h,4Ah,48h,72h,44h,42h,0C3h,7Fh,db 44h,42h,48h,62h,50h,5Ah,50h,42h,20h,42h,60h,40h,20h,40h,00h,00htab2:DB 00h,80h,60h,0F8h,07h,00h,0FCh,44h,44h,44h,44h,44h,44h,0FCh,00h,00hDB 01h,00h,00h,0FFh,00h,40h,4Fh,44h,44h,44h,44h,44h,44h,4Fh,40h,00h end。

51单片机控制LCD12864液晶屏显示图形菜单

51单片机控制LCD12864液晶屏显示图形菜单

51单片机控制LCD12864液晶屏显示图形菜单想了很久,每次做菜单都受限于12864字符模式的各种限制,比如字体大小,不能显示图标等等,没有任何效果,这次就来个彻底的解脱,写一个单函数就能完成所有功能的函数,只需要2个图片就能完成任意菜单内容的菜单,可以有2的8次方=256个选择结果,应该能满足所有的要求了吧?菜单的内容就是图片的内容,因此可以显示任意大小的图形文字混合的菜单条目,比如使用字符模式,一屏只能显示4行菜单(64/16=4),且只能显示汉字和字符等,显示位置等等的都受限,而这个方法可以显示比如12*12(64/12=5行)的字符,8*8(64/8=8行)的字符,甚至不是字符,可以是图标+文字+任意其他的图像,只要是图片能显示的,都可以。

哈哈,比较复杂,现在只写了一少半,预期能够提供多种显示效果,希望我能完成。

void Lcd_Draw_BmpMenu(UINT8 *pMenu,UINT8*pTitleBmp,UINT8 *pMenuBmp){/*使用2张图片作为纯图形菜单来选择和操作,返回被选择的项,pMenu是一个指向菜单的各种参数的结构体的指针,pTitleBmp指向作为菜单标题的一张图片,pMenuBmp指向作为菜单内容的图片(液晶的控制芯片是ST7920)yx-->;>;|\|/*/xdata struct { //除非另有说明x坐标均为大列的坐标,一个大列是16个像素,一行共有8大列数据//========= 以下是入参基本参数,一旦确定,最好不要随意更改 ======UINT8 Title_x;//标题图片在屏幕上的显示起始位置X UINT8 Title_y;//标题图片在屏幕上的显示起始位置Y UINT8 Title_Len_x;//标题图片的宽UINT8 Title_Len_y;//标题图片的高UINT8 Menu_x;//菜单在屏幕上的显示起始位置XUINT8 Menu_y;//菜单在屏幕上的显示起始位置YUINT8 Menu_End_y;//菜单在屏幕上的显示结束位置Y UINT8 Menu_Bmp_x;//菜单图片的宽UINT8 Menu_Bmp_y;//菜单图片的高UINT8 Menu_Item_Height;//每一菜单项的高度(像素为单位)UINT8 Line_x;//最后下划线的起始坐标xUINT8 Line_y;//最后下划线的起始坐标YUINT8 Line_Len;//最后下划线的长度,如果为0,则表示不画出这条线(像素为单位)//====== 以下是菜单的风格设置 ========UINT8 Scroll_Speed;//菜单滚动的速度,0~9个级别,越低越快,越高越慢(液晶屏显示速度有快有慢,调整这个参数用于适用不同的液晶屏UINT8 Continue_Scroll;//指定菜单是否可以形成一个连续滚动选择的效果;0不连续,背景和反白位置都会根据实际情况滚动 1菜单连续滚动,反白位置不动UINT8 RePaint;//=0不重画菜单,=1重画整个菜单的图像,一般都是首次调用本函数的时候置1,用于画出整个菜单,以后调用置0就可以了UINT8 MenuEffect;//菜单运动的效果;0没有任何效果,只是最普通的菜单形态,1平滑滚动,2平滑滚动,具有惯性效果,3具有减速效果,没有惯性效果,4具有减速和惯性效果//====== 以下用于控制菜单的选择参数 =======UINT8 Last_Select_Item;//上次执行本函数后,所选择的菜单项UINT8 Select_Item;//本次执行本函数,要选择的菜单项}M;//============== 以下是变量定义 =============== UINT8 xdata Menu_Item_Count;//总共有几个菜单项UINT8 xdata Menu_Screen_Count;//当前一屏最多可以显示几个菜单项UINT8 xdataMenu_Box_x,Menu_Box_y,Menu_Box_End_x,Menu_Box_End _y;//需要刷新的区域的坐标UINT8 *pMenu_Box_Bmp;//需要显示的菜单项的指针StructCopy(&M.Title_x,pMenu,19);//把参数复制到本函数内,便于操作Menu_Item_Count=M.Menu_Bmp_y/M.Menu_Item_Height;/ /总共有几个菜单项Menu_Screen_Count=(M.Menu_End_y-M.Menu_y)/M.Menu_ Item_Height;//一屏最多可以显示多少项菜单//---------------------------------------------------------------------------if(M.RePaint==1)//如果需要重画整个菜单图像{Lcd_Draw_BMP(M.Title_x,M.Title_y,M.Title_x+M.Title_Len_x,M.Title_y+M.Title_Len_y,pTitleBmp);//画出标题的图片if(M.Line_Len!=0)Lcd_DrawRowLine(M.Line_x,M.Line_y,M.Line_Len,1);/ /画出最下面的线}//---------------------------------------------------------------------------//-----------需要刷新的图像的区域Menu_Box_x=M.Menu_x;Menu_Box_y=M.Menu_y;Menu_Box_End_x=M.Menu_x+M.Menu_Bmp_x;Menu_Box_End_y=M.Menu_End_y;。

LCD12864液晶显示电子钟设计

LCD12864液晶显示电子钟设计

LCD12864液晶显示电子钟设计
介绍:
设计目标:
设计一个能够实时显示时间和日期的电子钟,能够精确地获取当前的时间,并对用户的操作作出相应的响应。

设计原理:
该电子钟设计采用了单片机ATmega16作为核心,配合RTC(实时时钟)模块,通过控制液晶显示屏来显示时间和日期。

硬件设计:
1.电源电路:使用直流电源电压为5V,通过稳压芯片将输入电压稳定在5V。

2.单片机电路:将ATmega16与晶振、复位电路、电源电路等连接起来。

3.RTC电路:通过连接RTC芯片和单片机,实现对实时时钟的读取和控制功能。

4.液晶显示屏电路:将液晶显示屏与单片机进行连接,通过单片机控制液晶显示屏的显示。

软件设计:
1.初始化:对单片机和RTC进行初始化设置。

2.获取时间:从RTC读取当前时间和日期。

3.显示时间:将获取到的时间和日期分别显示在液晶显示屏的相应位置。

4.操作功能:通过按键控制,实现对时间和日期的调整和设置功能。

设计步骤:
1.确定电路设计需求和所需元器件。

2.搭建硬件电路,完成电路连接。

3.使用相关软件进行单片机和RTC的编程设置。

4.测试整个电路是否能够正确工作,如对时间进行调整并观察液晶显示屏的显示是否准确。

5.根据需求进行适当的优化和完善设计。

总结:。

单片机18 单片机控制12864液晶显示

单片机18   单片机控制12864液晶显示
(2) 设置Y 地址(列地址)
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 1 A5 A4 A3 A2 A1 A0
功能:列首地址为0x40,A5~A0为Y地址(列地址) 取值范围(共1~64列),作为寄存器的Y地址指针。 在对寄存器进行读写操作后,Y地址指针自动加1, 指向下一个寄存器单元。
单片机控制12864液晶显示
单片机控制12864液晶显示
任务单 原理图绘制 程序编写及讲解 总结
任务单
任务
通过本任务的学习,学会使用单片机控制
描述 12864液晶显示
任务 P0口为数据输出端直接连接液晶屏的数据端口 要求 DB0~DB7,P2.3~P2.7连接液晶屏的控制端。
利用Proteus仿真运行,使用单片机控制12864液 实现 晶显示,并验证其使用方法
(3)读数据:E=1,RS=1,R/W=1,数据输 出到DB0~DB7得到。
12864LCD液晶显示器显示控制指令描述
(1)显示开关控制命令
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
00 0 0 1 1 1 1 1 D
功能:D=1(即DB7~DB0=0x3F):开显示。 D=0(即DB7~DB0=0x3E):关显示。
方法
单片机控制12864液晶显示
电路中单片机的P0口输出端直接连接液晶屏的数 据端DB0~DB7。P2.3、P2.4接CS2和CS1端控制 右半屏和左半屏。P2.5接E使能端,P2.6接RW读 写使能端,P2.7接RS读写数据使能端,控制方法 可看程序说明。可变电阻RV1接V0用于调显示屏 对比度,RP1为P0口的上拉电阻。
字符、汉字等的取模方式

基于51单片机的12864LCD显示驱动

基于51单片机的12864LCD显示驱动

基于51单片机的12864LCD显示驱动摘要:利用51单片机对12864LCD显示屏进行驱动,并令其显示动态及静态图像。

可使用4位/8位并行、2线或3线串行多种接口方式,拥有多种字库的点阵图形液晶显示模块;接口方式灵活,操作指令简单、方便,可构成全中文人机交互图形界面。

可以显示汉字,也可完成图形显示;电压、功耗较低;硬件电路结构与显示程序都要简洁,同时价格也略低于相同点阵的图形液晶模块。

关键词:51单片机12864LCD 显示屏动态静态图像引言带中文字库的TS128X64(图1)具有4位/8位并行、2线或3线串行多种接口方式,引脚功能见图2。

其内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。

图1 TS12864液晶实物图该模块接口方式灵活和操作指令简单、方便,可构成全中文人机交互图形界面。

可以显示8×4行16×16点阵的汉字。

也可完成图形显示,有低电压低功耗的特点。

由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构还是显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。

本设计讲采用STC89C52对TS128X64进行驱动,设计并制作LCD驱动电路,使其可通过按键切换LCD的显示内容,并且实现对数字,汉字,英文以及图片的显示,滚屏,以及动画功能。

1.硬件设备STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。

STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、设计目的在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才允许操作。

2、写指令写指令子程序(PRM)PRM: LCALL BUSY ;写指令之前判忙CLR RS ;RS为0设置写指令操作CLR RW ;RW清0MOV DATAES,COM ;COM中存放指令,DATAES为某一端口SETB ECLR E ;E下降沿液晶模块从数据总线上写入指令RET3、写数据写数据子程序(PRD)PRD: LCALL BUSY ;写指令之前判忙SETB RS ;RS置1设置为写数据操作CLR RW ;RW清0SETB EMOV DATAES,DA T ;DAT中存放写入的数据CLR E ;E下降沿液晶模块从数据总线上读入指令RET操作每完成一个列地址计数器自动加1。

四、程序1、程序流程图:2、程序如下:ORG 0000HLJMP MAINCSA EQU P2.4CSB EQU P2.3RS EQU P2.2RW EQU P2.1E EQU P2.0DA TAES EQU P0COM EQU 21HDAT EQU 22HYM EQU 23HLM EQU 24HCODES EQU 25HORG 0030H MAIN: LCALL INTLCALL LEFTMOV YM,#3MOV LM,#16MOV CODES,#4LCALL CHINEMOV YM,#3MOV LM,#32MOV CODES,#0LCALL CHINEMOV YM,#3MOV LM,#48MOV CODES,#1LCALL CHINELCALL RIGHTMOV YM,#3MOV LM,#0LCALL CHINEMOV YM,#3MOV LM,#16MOV CODES,#3LCALL CHINEMOV YM,#3MOV LM,#32MOV CODES,#4LCALL CHINEDDD: LJMP DDDINT: LCALL LEFTMOV COM,#3FHLCALL PRMLCALL RIGHTMOV COM,#3FHLCALL PRM CLEARL: LCALL LEFTMOV R4,#00HCLEAR0: MOV COM,R4LCALL PAGEFIRSTMOV COM,#00HLCALL LIEFIRSTMOV R3,#64CLEAR1: MOV DA T,#00H LCALL PRDDJNZ R3,CLEAR1INC R4CJNE R4,#08H,CLEAR0 CLEARR: LCALL RIGHTCLEAR2: MOV COM,R4LCALL PAGEFIRSTMOV COM,#00HLCALL LIEFIRSTMOV R3,#64CLEAR3: MOV DA T,#00HLCALL PRDDJNZ R3,CLEAR3INC R4CJNE R4,#08H,CLEAR2RETBUSY: CLR RSSETB RWPRR01: MOV DATAES,#0FFH SETB EMOV A,DATAESCLR EJB ACC.7,PRR01RETLEFT: CLR CSASETB CSBRETRIGHT: SETB CSACLR CSBRETPRM: LCALL BUSYCLR RSCLR RWMOV DATAES,COMSETB ECLR ERETPRD: LCALL BUSYSETB RSCLR RWSETB EMOV DATAES,DA TCLR ERET PAGEFIRST:MOV A,COM ORL A,#0B8HMOV COM,ALCALL PRMRETLIEFIRST:MOV A,COMORL A,#40HMOV COM,ALCALL PRMRETCHINE: MOV DPTR,#TAB MOV A,CODESMOV B,#32MUL ABADD A,DPLMOV DPL,AMOV A,BADDC A,DPHMOV DPH,AMOV COM,YMLCALL PAGEFIRSTMOV COM,LMLCALL LIEFIRSTMOV R0,#00HRETURN0:MOV A,R0MOVC A,@A+DPTRMOV DAT,ALCALL PRDINC R0CJNE R0,#16,RETURN0MOV A,YMINC AMOV COM,ALCALL PAGEFIRSTMOV COM,LMLCALL LIEFIRSTRETURN1:MOV A,R0MOVC A,@A+DPTRMOV DAT,ALCALL PRDINC R0CJNE R0,#32,RETURN1RETTAB:DB 80h, 40h, 20h, 0F8h, 07h, 10h, 10h, 10h DB 0F1h,96h, 90h, 90h, 0D0h, 98h, 10h, 00hDB 00h, 00h, 00h, 0FFh, 00h, 80h, 40h, 30hDB 0Fh, 40h, 80h, 40h, 3Fh, 00h, 00h, 00h; "仿"DB 00h, 04h, 04h, 0F4h, 54h, 54h, 54h, 5FhDB 54h, 54h, 54h, 0FCh, 16h, 04h, 00h, 00hDB 10h, 10h, 90h, 5Fh, 35h, 15h, 15h, 15hDB 15h, 15h, 35h, 5Fh, 0D0h, 18h, 10h, 00h; “真”DB 10h, 0Ch, 04h, 44h, 8Ch, 94h, 35h, 06hDB 0F4h,04h, 04h, 04h, 04h, 14h, 0Ch, 00hDB 02h, 82h, 82h, 42h, 42h, 23h, 12h, 0EhDB 03h, 0Ah, 12h, 22h, 42h, 0C3h, 02h, 00h; "实"DB 40h, 20h,0F8h, 07h, 84h, 64h, 3Ch, 24hDB 24h,0E6h, 04h,0F0h, 00h, 0FFh, 00h, 00hDB 00h, 00h,0FFh, 01h, 20h, 11h, 0Ah, 04hDB 03h, 00h, 00h, 47h, 80h, 7Fh, 00h, 00h; "例"DB 00h, 20h, 60h,0E0h, 0E0h,0E0h,0F0h,0FChDB 0FFh,0FCh,0F0h,0E0h,0E0h,0E0h, 60h, 20hDB 00h, 00h, 40h, 30h, 3Dh, 1Fh, 1Fh, 0FhDB 07h, 0Fh, 1Fh, 1Fh, 3Dh, 30h, 40h, 00h; "*"END五、电路图六、仿真结果如图所示:七、结束语通过本次课程设计,我掌握了单片机与液晶显示屏接口程序设计,学习了液晶显示模块与单片机接口技术,了解了12864液晶显示模块的引脚功能及其取码方式。

此外,熟悉回顾了proteus软件的使用和单片机基本汇编语言指令。

八、参考书目《单片机原理及应用》江世明黄同成编著中国铁道出版社《单片机原理及应用实验指导书》赵琳编西南交大峨眉校区电气系。

相关文档
最新文档