单片机LCD12864显示系统课程设计

合集下载

LCD12864液晶显示系统的设计

LCD12864液晶显示系统的设计
计划设计进程
(按课程设计周计算)
第一周设计任务:(1):明确课题对程序功能及硬件条件;
(2):把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。
(3):存储器资源分配
第二周设计任务:(4):编制程序,根据流程图精心选择合适的指令和寻址方式来编制源程序
(5):对程序进行汇编,调试和修改,直到程序运行结果正确为止。
具有的设计条件
1.PC机一台,教学实验箱一台及编程环境;
计划学生数及任务
3人
(1):明确课题对程序功能及硬件条件;
(2):把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。
(3):存储器资源分配
(4):编制程序,根据流程图精心选择合适的指令和寻址方式来编制源程序
(5):对程序进行汇编,调试和修改,直到程序运行结果正确为止。
自动化专业微机原理课程设计任务书
论文
题目
LCD12864液晶显示系统的设计
设计Байду номын сангаас型
导师姓名
主要内容及目标
要求:①使用12864J液晶显示器,分辩率为128*64,可以显示8*4个(16*16点阵)汉字。
②采用8位数据总线并行输入输出和4条控制线。
③在12864J液晶上显示一段文字,包括:“合肥学院”、“电子系”、“欢迎你”,三行字。
参考文献
《微型计算机原理及接口技术》中国科技大学出版社2009.9周荷琴编著
《16-32位微型计算机技术及应用》清华大学出版社戴梅萼史嘉权编著
<<汇编语言程序设计》南京大学出版社姚君遗编著
《汇编语言程序设计教程》清华大学出版社杨记文编著
《微型计算机原理及接口技术》实验指导书

LCD12864报告

LCD12864报告

引言单片机即微型计算机。

是集成CPU,RAM,ROM,定时器,计数器和多种接口于一体的微控制器,它体积小,成本低,功能强大,广泛应用于智能产品和工业自动化上,而51单片即是各单片机中最为典型的一种。

本次课程设计就是通过对他的学习应用,从而达到学习,设计,开发软、硬件的能力。

LCD液晶显示系统就是基于单片机的最小系统下所构建的一个功能系统,通过软、硬件的结合,实现LCD12864模块对数字,汉字,英文及图片的显示,来实现数据的输出显示和人及对话等高级功能。

1液晶显示系统简介1.1 主要功能本次课程设计能实现的功能如下:1.本电路为液晶显示系统。

2.通过电位器可对液晶的背光进行明暗调节。

3.可以实现对数字,汉字,英文以及图片的显示。

1.2 主要器件及介绍1.2.1主控模块STC89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS产品。

它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。

89C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。

此外,80C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。

在空闲模据,时钟振荡停止,同时停止芯片内其它功能。

如下图所示STC89C52RC实物图(图1-1)和引脚图(图1-2)编辑本段主要功能特性:·标准MCS-51内核和指令系统·片内8kROM(可扩充64kB外部存储器)· 32个双向I/O口· 256x8bit内部RAM(可扩充64kB外部存储器)· 3个16位可编程定时/计数器·时钟频率3.5-12/24/33MHz·向上或向下定时计数器·改进型快速编程脉冲算法· 6个中断源· 5.0V工作电压·全双工串行通信口·布尔处理器—帧错误侦测· 4层优先级中断结构—自动地址识别·兼容TTL和CMOS逻辑电平·空闲和掉电节省模式图1-1 STC89C52RC实物图图1-2 STC89C52RC引脚图1.2.2 LCD12864液晶模块带中文字库的TS128X64(图1-3)是一种具有4位/8位并行、2线或3线串行多种接口方式,引脚功能见图表1-4,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。

实验三 LCD12864液晶显示

实验三  LCD12864液晶显示

实验三 LCD12864液晶显示参赛序号实验题目LCD12864液晶显示实验成组员左虎博杨颂王志鹏指导教师赵勇报告日期2014年7月16日-2014年7月18日摘要:本设计以超低功耗MSP430单片机为微控制器,以4位/8位并行,2线或3线串行多种接口方式的LCD12864为输出显示器。

通过对MSP430单片机进行编程,在LCD12864上显示8×4行16×16点阵的汉字。

关键字:MSP430 LCD12864目录一.方案论证 (4)液晶显示器的论证与选择 (4)二.LCD12864的工作原理 (4)1.引脚功能说明 (4)LCD12864采用20接口,各引脚接口说明如表3所示: (4)2. 指令说明 (5)三.实验框图和电路图 (7)1. 系统框图 (7)2. 电路原理图 (7)四.实验程序设计 (7)五.系统测试 (11)1. 测试方案 (11)2. 测试结果 (11)3. 测试分析与结论 (12)一.方案论证液晶显示器的论证与选择方案一:采用带中文字库的LCD12864。

LCD12864具有4 位/8 位并行、2 线或3 线串行多种接口方式,可以显示8×4 行16×16 点阵的汉字。

也可完成图形显示。

低电压低功耗是其一显著特点。

方案二:采用LCD1602。

LCD1602显示内容为16X2,即可以显示两行,每行16个字符液晶模块,只能显示字符和数字。

通过论证可知LCD12864显示内容多,功能多,低电压低功耗,因此选用方案一。

二.LCD12864的工作原理1.引脚功能说明LCD12864采用20接口,各引脚接口说明如表1所示:表1 引脚说明表管脚号管脚名称电平管脚功能描述1 VSS 0V 电源地2 VCC 3.0+5V 电源正3 V0 - 对比度(亮度)调整4 RS(CS)H/LRS=“H”,表示DB7——DB0为显示数据RS=“L”,表示DB7——DB0为显示指令数据5 R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7——DB0R/W=“L”,E=“H→L”, DB7——DB0的数据被写到IR或DR6 E(SCLK) H/L 使能信号7 DB0 H/L 三态数据线表1 引脚说明表注释1:如在实际应用中仅使用串口通讯模式,可将PSB 接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。

利用lcd12864显示的时间控制器设计

利用lcd12864显示的时间控制器设计

目录第一章概述 (1)1.151单片机简介 (1)1.2 设计要求 (1)第二章系统总体方案流程 (2)第三章软件设计 (3)3.1系统软件设计思想 (3)3.2 系统主程序 (3)第四章Proteus软件仿真 (4)4.1 Proteus软件简介 (4)4.2 Proteus软件仿真 (4)课程设计体会 (7)参考文献 (8)附录1 (9)第一章概述1.1 51单片机简介单片微型计算机简称单片机,即把组成微型计算机的各个功能部件,如中央处理器、随机存储器、只读存储器、I/O接口电路、定时器/计数器以及串行通信接口等集成在一块芯片上,构成一个完整的微型计算机。

由于单片机主要面对的是测控对象,突出的是控制功能,所以它从功能和形态上来说都是应测控功能领域应用的要求而诞生的。

随着单片机技术的发展,它在芯片内集成了许多面对测控对象的接口电路,如ADC、DAC、高速I/O口、脉冲宽度调制器、监视定时器等,这些接口电路已经突破了微型计算机传统的体系结构,所以单片机也成为微型控制。

1.2 设计要求STC12C5A60S2(引脚排序及基本功能同AT89S51)作为主控芯片,设计利用数码管显示时间。

一是扩展DS12C887时钟电路设计;二是利用LCD12864显示当前时间;三是利用单片机I/O口驱动继电器的控制输出电路设计;四是设计出在到达定时时间给出10s的继电器动作信号。

第二章系统总体方案流程图2-1 系统方框图本次设计实现的功能主要有:使用4位七段显示器来显示现在的时间,显示格式为“时分”,由LED小数点闪动作为秒计数表示。

可以设定作息时间,并进行到时提示。

能够根据预先设定好的作息时间表自动启停控制电路,完成对外部设备的实时控制。

由按键输入控制设置年月日以及当前时间、并可设置闹钟定时,时间到由继电器器发出响声并作出相应动作:二极管闪亮。

第三章软件设计3.1 系统软件设计思想本系软件设计中,利用单片机定时器设计时间计时处理,采用单片机内部的T0定时器溢出中断来实现,工作在T1方式下,定时10秒,则连续中断20次即为一秒,得到了我们所需时间的最小单位该设计用C51编写程序,由于汇编语言的移植性比较差,而C语言则比较灵活。

(完整word版)lcd12864 课程设计

(完整word版)lcd12864 课程设计

LCD 128641.总体设计思路SMG12864一般用于显示汉字,字符,分辨率不高的bmp图像,可用来显示传感器采集到信息,是单片机和人交换信息的窗口,2.方案设计8051Lcd12864单片机3.硬件设计单片机控制12864的管脚来显示想要的字符和图像,P0用来发送必要的指令和数据,P2口协助P1口给12864写数据,1. 指令寄存器(IR)IR 是用于寄存指令码,与数据寄存器数据相对应。

当D/I=0 时,在E 信号下降沿的作用下,指令码写入IR。

2.数据寄存器(DR)DR 是用于寄存数据的,与指令寄存器寄存指令相对应。

当D/I=1 时,在下降沿作用下,图形显示数据写入DR,或在E 信号高电平作用下由DR 读到DB7∽DB0数据总线。

DR 和DDRAM 之间的数据传输是模块内部自动执行的。

3.忙标志:BFBF 标志提供内部工作情况。

BF=1 表示模块在内部操作,此时模块不接受外部指令和数据。

BF=0 时,模块为准备状态,随时可接受外部指令和数据。

利用STATUS READ 指令,可以将BF 读到DB7 总线,从检验模块之工作状态。

4.显示控制触发器DFF此触发器是用于模块屏幕显示开和关的控制。

DFF=1 为开显示(DISPLAY OFF),DDRAM 的内容就显示在屏幕上,DFF=0 为关显示(DISPLAY OFF)。

DDF 的状态是指令DISPLAY ON/OFF 和RST 信号控制的。

5.XY 地址计数器XY 地址计数器是一个9 位计数器。

高3 位是X 地址计数器,低6 位为Y 地址计数器,XY 地址计数器实际上是作为DDRAM 的地址指针,X 地址计数器为DDRAM的页指针,Y 地址计数器为DDRAM 的Y 地址指针。

X 地址计数器是没有记数功能的,只能用指令设置。

Y 地址计数器具有循环记数功能,各显示数据写入后,Y 地址自动加1,Y 地址指针从0 到63。

6.显示数据RAM(DDRAM)DDRAM 是存储图形显示数据的。

课程设计12864LCD液晶显示课程设计

课程设计12864LCD液晶显示课程设计

12864LCD液晶显示课程设计摘要:本次课程设计应用的液晶显示屏。

⑴掌握单片机与液晶显示器之间接口设计与编程。

⑵利用点阵式液晶显示器显示汉字或图形。

编制程序,建立图像代码,在液晶显示器上显示文字与图形。

简介:概述:128X64LCD液晶显示屏是一种带中文字库,具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。

可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。

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

基本特性:(1)、低电源电压(VDD:+3.0--+5.5V)(2)、显示分辨率:128×64点(3)、内置汉字字库,提供8192个16×16点阵汉字(简繁体可选) (4)、内置 128个16×8点阵字符(5)、2MHZ时钟频率(6)、显示方式:STN、半透、正显(7)、驱动方式:1/32DUTY,1/5BIAS (8)、视角方向:6点(9)、背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10 (10)、通讯方式:串行、并口可选(11)、内置DC-DC转换电路,无需外加负压(12)、无需片选信号,简化软件设计(13)、工作温度: 0℃ - +55℃ ,存储温度: -20℃ - +60℃模块接口说明:*注释1:如在实际应用中仅使用串口通讯模式,可将PSB接固定低电平,也可以将模块上的J8和“GND”用焊锡短接。

*注释2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。

LCD12864多级菜单课程设计

LCD12864多级菜单课程设计

LCD12864多级菜单课程设计一、课程目标知识目标:1. 理解LCD12864液晶显示屏的基本工作原理和接口技术。

2. 掌握多级菜单的设计方法,包括菜单结构、界面布局及跳转逻辑。

3. 学会编写程序代码实现LCD12864多级菜单的显示与操作。

技能目标:1. 能够运用所学知识设计出结构清晰、界面友好的多级菜单界面。

2. 熟练使用相关编程语言和开发工具,完成程序编写和调试。

3. 培养学生的动手操作能力和团队协作能力,提高问题解决能力。

情感态度价值观目标:1. 培养学生对电子技术和编程的兴趣,激发学习热情。

2. 培养学生严谨、细心的学习态度,养成良好的编程习惯。

3. 增强学生的创新意识,鼓励学生敢于尝试、勇于实践。

分析课程性质、学生特点和教学要求,本课程目标旨在帮助学生在掌握LCD12864多级菜单设计的基础上,提高实际操作能力,培养学生的创新思维和团队协作精神。

通过本课程的学习,使学生能够在实际项目中运用所学知识,为我国电子信息产业的发展做出贡献。

同时,注重培养学生的情感态度价值观,使学生在学习过程中形成积极向上的人生态度。

二、教学内容1. LCD12864液晶显示屏原理介绍:包括显示原理、接口技术、指令集等基本知识。

- 教材章节:第三章第二节- 内容列举:LCD12864工作原理、接口类型、指令功能。

2. 多级菜单设计方法:- 教材章节:第五章- 内容列举:菜单结构设计、界面布局、跳转逻辑、操作流程。

3. 编程实现LCD12864多级菜单:- 教材章节:第六章- 内容列举:编程环境搭建、代码编写、程序调试、功能实现。

4. 实例分析与操作:- 教材章节:第七章- 内容列举:典型多级菜单实例、操作方法、优化技巧。

5. 动手实践与团队协作:- 教材章节:第八章- 内容列举:实践任务分配、协作流程、成果展示。

根据课程目标,教学内容分为五个部分,确保学生系统掌握LCD12864多级菜单设计的相关知识。

教学大纲明确指出各部分内容的安排和进度,以及教材对应的章节和具体内容。

LCD12864显示电路

LCD12864显示电路

郑州轻工业学院课程设计任务书题目 LCD12864显示电路专业、班级电子信息09-1 学号姓名主要内容、基本要求、主要参考资料等:本课程设计题目要求基于AT89C51单片机,设计一个扩展显示采用LCD12864(带字库)的电路,要求能实现数字、字母、汉字的显示,并实现闪烁、反白、光标等效果。

要求说明对系统功能分析、软硬件设计思路、系统框图、主要电路图,并给出软件控制流程,说明系统完成效果或仿真结果。

主要参考资料:1.《单片机原理与应用》,高教出版社,张毅刚主编2.《51系列单片机原理及设计实例》,北航出版社,楼然苗等主编完成期限:2013,1,4指导教师签名:课程负责人签名:2012年 11 月 27 日一、系统功能分析在单片机的应用实例中,常常需要有显示电路,而带中文字库的TS128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。

可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。

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

二、硬件设计原理图1、AD采集控制设计如图2所示,由于电路简单并且很成熟,所以硬件设计不是很大问题,只要了解12864的管脚定义可以设计原理图。

图2 AD采集控制电路三、软件设计流程图如图4取下一个字符图4 软件流程图四、原程序#include<reg52.h>#define uchar unsigned char#define uint unsigned intsbit RS=P2^4;sbit R_W=P2^3;sbit E=P2^2;sbit CS1=P2^1;sbit CS2=P2^0;uchar code dat[]={/*-- 调入了一幅图像:C:\Documents and Settings\Administrator\桌面\55486830_1.bmp --*/ /*-- 宽度x高度=64x128 --*/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,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,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF0,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xB8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x7E,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x0C,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x01,0xF8,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xE0,0x07,0xC0, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x60,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x02,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,};void delay_1ms(int t) //延时函数延时单位.1ms{int i,j;for(i=0;i<t;i++)for(j=0;j<12;j++);}void write_12864_com_CS1(uint com) //给左半屏写数据的函数{RS=0;R_W=0;CS1=1;CS2=0;delay_1ms(1);E=1;delay_1ms(1);P0=com;delay_1ms(1);E=0;delay_1ms(1);}void write_12864_com_CS2(uchar com) //给右半屏写数据的函数{RS=0;R_W=0;CS1=0;CS2=1;delay_1ms(1);E=1;delay_1ms(1);P0=com;delay_1ms(1);E=0;delay_1ms(1);}void write_12864_dat(uchar dat) //写指令函数{RS=1;R_W=0;delay_1ms(1);E=1;delay_1ms(1);P0=dat;delay_1ms(1);E=0;delay_1ms(1);}/*void control_12864_CS1(){CS1=1;CS2=0;}void control_12864_CS2(){CS1=0;CS2=1;} */void display(uchar page,uchar line) //从第page行开始显示从line列开始显示设置起始地址{uchar a,b,c,d;a=0xb8+(0x07&page);b=0x40+(0x3f&line);for(c=0x00;c<8;c++){for(d=0;d<128;d++){switch(d){case 0:{write_12864_com_CS1(a+7-c);delay_1ms(1);write_12864_com_CS1(b);break;}case 64:{write_12864_com_CS2(b);delay_1ms(1);write_12864_com_CS2(a+7-c);break;}}delay_1ms(1);write_12864_dat(dat[11*d+c]);}write_12864_com_CS1(0xc0);delay_1ms(1);write_12864_com_CS2(0xc0);}}void initinal_12864(){delay_1ms(100);write_12864_com_CS1(0x38);write_12864_com_CS2(0x38);delay_1ms(10);write_12864_com_CS1(0x38);write_12864_com_CS2(0x38);delay_1ms(10);write_12864_com_CS1(0x3f);write_12864_com_CS2(0x3f);delay_1ms(10);write_12864_com_CS1(0x01);write_12864_com_CS2(0x01);delay_1ms(300);write_12864_com_CS1(0x05);write_12864_com_CS2(0x05);delay_1ms(50);}int main(){initinal_12864();while (1) { display(0x00,0x00);}return 0; }五、 仿真结果XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C S 11C S 22G ND 3V C C 4V 05D I 6R /W 7E 8D B 09D B 110D B 211D B 312D B 413D B 514D B 615D B 716R S T 17-V o u t 18LCD?LGM12641BS1R图5 仿真图六、心得体会做完这个设计,确实感触好多。

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

目录一、概述 (2)二、系统总体方案及硬件设计 (2)系统框图 (3)单片机最小系统 (4)显示电路 (6)按键控制电路 (6)]三、系统软件设计 (9)软件设计概述 (9)汉字显示 (10)上下移屏........................................ 错误!未定义书签。

左右移屏....................................... 错误!未定义书签。

四、课程设计体会................................... 错误!未定义书签。

五、参考文献 (13)六、附录 (14)…总电路图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .总程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .%一、概述/随着社会的发展,趣来趣多的地方需要应用显示功能,各种数字显示仪器中的显示、广告牌、数码产品等,传统的数码管显示已经远远不能满足各行各业的需求。

基于单片机的LCD显示是一种用单片机来控制的一种显示系统,它不仅能显示种各数字、字母、还能显示各种字体的汉字以及一些简单的图象,使用起来极为方便,只要通过对单片机写入一定的程序来控制LCD 的显示即可完成,根据程序的不同而产生不同不效果以满足各种不同需求。

本文围绕设计以单片机作为LCD液晶显示系统控制器为主线,基于单片机AT89S51,采用的液晶显示控制器的芯片是SED1520,主要实现由按键控制的中文显示、图片显示、滚屏以及左右移动功能。

同时也对部分芯片和外围电路进行了介绍和设计,并附以系统结构框图加以说明,着重介绍了本系统应用的各硬件接口技术和各个接口模块的功能及工作过程,并详细阐述了程序的各个模块。

本系统是以单片机的C语言来进行软件设计,指令的执行速度快,可读性强。

为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。

使硬件在软件的控制下协调运作。

其次阐述了部分程序的流程图和实现过程。

本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。

最后对我所开发的用单片机实现LCD液晶显示器控制原理的设计思想和软、硬件调试作了详细的论述。

二、系统总体方案及硬件设计系统框图本系统由电源部分、单片机最小系统部分、LCD12864显示电路部分、按键控制部分组成。

其中,单片机最小系统部分包括晶振电路、复位电路。

单片机最小系统`、AT89S52单片机89S51各引脚功能介绍:1.VCC:2.89S51 电源正端输入,接+5V。

3.VSS:4.电源地端。

5.XTAL1:6.单芯片系统时钟的反相放大器输入端。

7.`8.XTAL2:9.系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。

10.RESET:11.89S51的重置引脚,高电平动作,当要对晶A T89S51片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。

12.EA/Vpp:13."EA"为英文"External Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。

因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。

如果是使用 8751 内部程序空间时,此引脚要接成高电平。

此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。

14.ALE/PROG:15.端口3的管脚设置:16.17.:RXD,串行通信输入。

18.:TXD,串行通信输出。

19.:INT0,外部中断0输入。

20.:INT1,外部中断1输入。

21.:T0,计时计数器0输入。

22.:T1,计时计数器1输入。

23.:WR:外部数据存储器的写入信号。

24.:RD,外部数据存储器的读取信号。

、复位电路电路图如下:上电自动复位是通过外部复位电路的电容充电来实现的。

只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。

图单片机复位电路、时钟电路时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。

因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。

常用的时钟电路有两种方式:一种是内部时钟方式,另一种为外部时钟方式。

本文用的是内部时钟方式。

)电路图如下:图晶振电路显示电路管脚名称及功能:管脚号管脚名称电平】管脚功能描述1VSS0V电源地2VCC~+5V/电源正3V0-对比度(亮度)调整4RS(CS)H/L !RS=“H”,表示DB7——DB0为显示数据RS=“L”,表示DB7——DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7——DB0R/W=“L”,E=“H→L”, DB7——DB0的数据被写到IR或DR6(E(SCLK)H/L使能信号7DB0H/L三态数据线8@DB1H/L三态数据线9DB2H/L三态数据线基本指令系统:模块控制芯片提供两套控制命令,基本指令和扩充指令如下:指|指令码功能令RSR/WD7D6D5'D4D3D2D1D清除显示0/0000000《1将DDRAM填满"20H",并且设定DDRAM的地址计数器(AC)到"00H"地址归位00000,001X设定DDRAM的地址计数器(AC)到"00H",并且将游标移到开头原点位置;这个指令不改变DDRAM 的内容显示状态开/关0\00001D C、BD=1: 整体显示 ONC=1: 游标ON B=1:游标位置反白允许进入点设定00000\01I/DS指定在数据的读取与写入时,设定游标的移动方向及指定显示的移位游标或显示移位控制0|0001S/CR/LX!X设定游标的移动与显示的移位控制位;这个指令不改变DDRAM 的内容、按键控制电路电路由三个独立按键开关组成,分别与单片机的I/O相连,控制调整电路的加、减以及确定。

按键的开关状态通过一定的电路转换为高、低电平状态。

按键闭合过程在相应的I/O端口形成一个负脉冲。

闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。

抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。

为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。

本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。

口表示下移功能键,当开关闭合时,控制显示屏内容整体向下滚动。

(口表示上移功能键,当开关闭合时,控制显示屏内容整体向上滚动。

口表示右移功能键,当开关闭合时,控制显示屏内容整体向右移动。

口表示左移功能键,当开关闭合时,控制显示屏内容整体向左移动。

按键控制电路三、软件部分、软件系统概论此设计是由单片机控制的LCD显示系统,外设四个按钮来控制显示的方式。

对于按钮的工作方式可以是中断也可以是查询,在此设计中所选用的顺序结构。

用单片机的 P3口的低4来作为LCD的显示控制端,即控制LCD使能端、读写控制揣、数据指令选择端及两个选屏端。

对于此设计课题,因为要求是用128×64的显示器来显示汉字,而汉字及字符(如空格等)是需要显示代码的。

所以,首先是通过一定的软件如ZIMO等来获取你想要显示的汉字的编码代码。

有了这款软件,就方便多了,只在要软件中打入你想要显示的汉字或是字符,它就会自动生成代码,使用起来非常方便,而不需要人工去编写相应的代码。

}开始——显示图形——检测按键——显示相应内容。

、汉字显示对于此设计课题,因为要求是用128×64的显示器来显示汉字,而汉字及字符(如空格等)是需要显示代码的。

所以,首先是通过一定的软件如ZIMO等来获取你想要显示的汉字的编码代码。

有了这款软件,就方便多了,只在要软件中打入你想要显示的汉字或是字符,它就会自动生成代码,使用起来非常方便,而不需要人工去编写相应的代码。

由于此LCD的显示屏是被分为了两部分的,即左半屏和右半屏,分别由CS1和 CS2来控制,两个半屏的内存都分别由X和Y两个地址来确定,X地址共64位,而Y地址两边各64位,一共128位,所以有的时候就称其为12864显示器。

X地址共有8个值,从0到7,即每个值有8位,每显示一个字符要2个X值,而Y共128个值,分为两块即左右两块,分别从0到63,即每个值一位。

每显示一个汉字要16个Y值,每显示一个字符要8个Y值。

所以应该对两半屏分别编程取显示地址。

同时还得用一个显示子程序来显示显示地址中保存的显示代码(汉字代码)。

由此LCD的显示时序图可知,在显示过程中还需要一定的延时(不同的型号,延时时间是不同的)并且在显示前需将一些特定的控制端置相应的电平,比如说还所有输入之关需先把LCD总使能端打开,即置E端为高电平,然后应再输入指令代码,对其进行相关的设置。

所以还需要一个适当的延时子程序以及输入数据前的准备程序。

除了这些外,还应写一个初始化程序,用来对中断等一些程序所需要的端口进行初始。

对于开中断,应打开总中断EA以及相应的低级中断EX0和 EX1。

再者就是两个中断程序,对于这两个中断程序比较简单,只需对要执行相关控制(即常规显示和滚动显示)所需要的每件进行满足即可。

最后就是主函数,它的主要功能就是判断中断是否来临,来临了,然后判断是外部中断0还是外部中断1,然后根据是0还是1来执行相应的程序,选择相应的显示方式。

当四行全显示完了后,中断失效,即不管你是否还按键,都不再会对显示造成影响。

显示出来的内容将一直保持。

、图片显示显示图片和显示汉字类似,都是先通过字模软件先取模,然后再显示。

、上下移动~由此可见12864的显示起始行为0xc0,有规律的改变起始行的位置,就可以改实现上下移的效果。

代码如下左右移动在本设计中,通过循环改变汉字字符在单片机上显示的左右半屏以及在左右半屏上显示的列位,行位不变,达到了左右移屏的效果。

相关文档
最新文档