当前位置:文档之家› 基于LCD1602液晶显示系统课程设计

基于LCD1602液晶显示系统课程设计

课程设计(论文)题目名称基于89C51的液晶显示系统设计课程名称单片机原理及应在电气测控学科中的应用学生姓名刘晨学号1141201014系、专业电气工程系电气工程及其自动化专业指导教师朱群峰2013年6月14日邵阳学院课程设计(论文)任务书年级专业11级电气工程及其自动化专业学生姓名刘晨学号1141201014题目名称基于89C51的液晶显示系统设计设计时间2013年6月3日—2013年6月14日课程名称单片机原理及应在电气测控学科中的应用课程编号121200105设计地点数字控制与PLC实验室(305)一、课程设计(论文)目的课程设计是在校学生素质教育的重要环节,是理论与实践相结合的桥梁和纽带。

单片机课程设计,要求学生更多的完成软硬结合的动手实践方案,解决目前学生课程设计过程中普遍存在的缺乏动手能力的现象. 《单片机课程设计》是继《电子技术》、和《单片机原理与应用》课程之后开出的实践环节课程,其目的和任务是训练学生综合运用已学课程“电子技术基础”、“单片机原理及应用”的基本知识,独立进行单片机应用技术和开发工作,掌握单片机程序设计、调试和应用电路设计、分析及调试检测。

二、已知技术参数和条件1、液晶显示功能见第三项“任务和要求”具体参数1、89C51系列单片机;2、KEIL 软件;Wave软件、protuse软件3、THKSCM-1型单片机实验系统。

三、任务和要求利用89C51驱动液晶显示器工作,液晶显示器的型号自己确定(可以用1602或者12864)要求显示出自己的基本信息(英文或者中文,内容自定)。

1、要求设计出硬件系统的电气原理图;2、要求设计出程序流程图和程序;3、要求设计出实物或者仿真调试。

注:1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效;2.此表1式3份,学生、指导教师、教研室各1份。

四、参考资料和现有基础条件(包括实验室、主要仪器设备等)1、单片机课程设计指导,北京航空航天大学出版社,楼然苗等2007年7月2、单片机实验与实践教程,北京航空航天大学出版社,何立民等2004年7月3、THKSCM-1型单片机实验系统实验指导书、KEIL 软件,WAVE 软件4、数字控制与PLC实验室”THKSCM-1型单片机实验系统”。

五、进度安排2013年6月3日-4日:收集和课程设计有关的资料,熟悉课题任务何要求总体方案设计2013年6月5日-8日:硬件电路设计2013年6月9日-11日日:软件设计2013年6月12日:系统调试改进2013年6月33日日:整理书写设计说明书2013年6月14日:答辩并现场考核六、教研室审批意见教研室主任(签名):年月日七|、主管教学主任意见主管主任(签名):年月日八、备注指导教师(签字):学生(签字):邵阳学院课程设计(论文)评阅表学生姓名刘晨学号1141201014系电气工程系专业班级电气工程及其自动化专业11级电本一班题目名称基于89C51的液晶显示系统设计课程名称单片机原理及应在电气测控学科中的应用一、学生自我总结在本次课程设计中,尤其是在软件的编程与调试过程中,我真的是又学到了很多,这对我们以后的学习有很大的帮助。

对于这个液晶显示系统的设计与搭建中深深的体会到软件对于一个系统来说是多么重要,软件可以说是一个系统的灵魂,在工作中指导硬件按照指定的方案运行。

对于刚学汇编的我来说,编制一个完整的系统软件可谓无任何经验可言。

在教学过程中,我们主要学习单个模块的搭建与编程,例如显示子程序,中断子程序等,在这个系统搭建过程中,不但要将这些子模块有机的结合在一起,还要让他们完美协调起来,此次能够设计能够顺利完成,还多亏了老师的悉心指导,在此要好好感谢我们的指导老师。

学生签名:年月日二、指导教师评定评分项目平时成绩论文答辩综合成绩权重30 40 30单项成绩指导教师评语:指导教师(签名):年月日注:1、本表是学生课程设计(论文)成绩评定的依据,装订在设计说明书(或论文)的“任务书”页后面;2、表中的“评分项目”及“权重”根据各系的考核细则和评分标准确定。

一、摘要 (6)二、绪论 (7)2.1课题设计目标 (7)2.2课程设计的主要工作 (7)2.3设计要求 (7)三、硬件设计 (8)3.1系统电路图 (8)3.2 LCD1602 简介 (9)四、软件设计 (13)4.1系统框图 (13)4.2参考程序 (15)五、程序调试 (22)六、课程总结 (23)七、致谢 (24)八、参考文献 (25)液晶显示在中国已有二十余年的历史,几乎已经运用与生产生活的各个领域,液晶显示是集单片机技术、微电子技术、信息处理于一体的新型显示方式。

LED液晶显示器具有低压低功耗、显示信息量大、已于彩色化、无电磁辐射、使用寿命长和无污染等优点,是目前显示器中一个理想的选择。

液晶显示技术发展迅猛,市场预测表明,液晶显示平均年销售呈增长10%~13%,不久的将来有可能取代CRT,成为电子信息产品的主要显示器件,液晶显示器对空间电磁辐射的干扰不敏感,且在紧凑的仪器空间不需要专门的屏蔽保护,因而可大大简化仪器的结构和降低制造成本,在各种便携式仪器,仪表将会越来越广泛的应用。

特别是在电池供电的单片机产品中,液晶显示更是必选的显示器件。

关键字:新型显示方式,LCD液晶显示器,抗干扰,便携2、绪论2.1课题设计目标课程设计是在校学生素质教育的重要环节,是理论与实践相结合的桥梁和纽带。

单片机课程设计,要求学生更多的完成软硬结合的动手实践方案,解决目前学生课程设计过程中普遍存在的缺乏动手能力的现象。

《单片机课程设计》是继《电子技术》、和《单片机原理与应用》课程之后开出的实践环节课程,其目的和任务是训练学生综合运用已学课程“电子技术基础”、“单片机原理及应用”的基本知识,独立进行单片机应用技术和开发工作,掌握单片机程序设计、调试和应用电路设计、分析及调试检测。

2.2课程设计的主要工作(1)对系统的各个模块的各个功能进行深入分析和研究,在对课题所采用的方案进行可行详细的研究后设计具体功能电路。

(2)熟悉所选芯片的功能并完成具体电路设计。

(3)对系统的最终指标进行测试,针对系统的不足,进行分析并提出一些改正方法。

2.3设计要求利用89C51驱动液晶显示器工作,液晶显示器的型号自己确定(可以用1602或者12864)要求显示出自己的基本信息。

1、要求设计出硬件系统的电气原理图;2、要求设计出程序流程图和程序;3、要求设计出实物或者仿真调试。

3、硬件设计3.1系统电路图整个电路系统由外部显示电路系统和最小系统两个部分组成。

液晶显示系统原理图如下所示:液晶显示系统原理图在外部显示电路系统中,由于我们使用的LCD液晶显示屏尺寸较大,所以我们使用了8个10千欧姆的上拉电阻,使LCD液晶显示屏能够驱动;同时我们还使用了10千欧姆的定位器。

最小系统包括晶振电路和复位电路两个部分,复位电路中接入了一个复位按钮。

单片机最小系统图如下所示:单片机最小系统图3.2 LCD1602 简介3.2.1 LCD1602 引脚功能LCD1602引脚如图3.1所示图3.2 LCD1602引脚图引脚图的功能如表3—2所示表3—2引脚功能图3.2.2 LCD1602显示模指令集(1)清屏功能:清DDROM值和AC值(2)归位功能:光标复位,光标返回到地址00H(3)输入方式设置功能:设置光标,画面移动方式。

其中:I/D=1:数据读写操作后,AC 自加一;I/D=0:数据读写操作后,AC 自减一;S=1:数据读写操作,画面平移;S=0:数据读写操作,画面不动;(4)显示开关控制功能:设置显示、光标和闪烁开关。

其中:D 表示显示开关,D=1 为开,D=0 为关;C表示光标开关,C=1 为开,C=0 为关;B表示闪烁开关,B=1 为开,B=0 为关。

(5)光标、画面位移功能:光标、画面移动。

其中:S/C=1 画面移动一个字符位;S/C=0 光标移动一个字符位;R/L=1:右移;R/L=0 左移。

(6)功能设置功能:工作方式设置(初始化指令)。

其中:DL=1,8 位数据接口;DL=0,4 位数据接口;N=1,两行显示;N=0,一行显示;F=1,5*10 点阵显示;F=0,5*7 点阵显示。

(7)CGRAM 地址设置功能:设置CGRAM 地址,A5~A0=0~3FH。

(8)DDRAM 地址设置功能:设置DDRAM 地址。

其中:N=0,一行显示A6~A0=0~4FH;N=1 两行显示,首行A6~A0=0~2FH,次行A6~A0=40~67H。

(9)读BF 及AC 值功能:读忙BF 和地址计数器AC 的值。

其中:BF=1:忙,BF=0:准备好。

此时AC 值意义为最近一次地址设置(CGRAM 或DDRAM)定义。

(10)写数据功能:根据最近设置的地址性质,数据写入CGRAM或DDRAM中。

(11)读数据功能:根据最近设置的地址性质,从CGRAM或DDRAM数据读出。

4、软件设计4.1系统框图本课题的程序设计是在C语言的基础之上的,可分为两大模块,分别是:(1)IIC协议;(2)LCD显示。

(3)程序总体框图如图4.1所示:图4.1总程序框图(4)LCD 显示程序框图如图4.2 所示:程序编写的基本思路:开始→初始化→延时程序→写入指令→写入地址→读取地址→写入数据→读取数据→返回图4.2LCD显示程序框图4.2 参考程序#include <reg51.h>#include <intrins.h>typedef unsigned char BYTE;typedef bit BOOL;sbit LCD_RS = P2^6; //定义引脚功能sbit LCD_RW = P2^5;sbit LCD_EP = P2^7;BYTE code dis1[] = {" Welcome to "};BYTE code dis2[] = {"Shaoyang College"};BYTE code dis3[] = {" This is my "};BYTE code dis4[] = {"project design"};BYTE code dis5[] = {" Liu Chen "};BYTE code dis6[] = {" 1992 10 08 "};void delay(int ms){int i;while(ms--) //延时{for(i = 0; i< 250; i++){_nop_();_nop_();_nop_();_nop_();}}}BOOL lcd_bz(){BOOL result;LCD_RS = 0;LCD_RW = 1;LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();result = (BOOL)(P0 & 0x80);//判断状态字最高位STA7,确保STA7为0 LCD_EP = 0;return result;}void lcd_wcmd(BYTE cmd) // 写入指令数据到LCD{while(lcd_bz()); //为1不能进行读写操作LCD_RS = 0; //写指令LCD_RW = 0;LCD_EP = 0;_nop_();_nop_();P0 = cmd; //将指令写到P0口_nop_();_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0; //产生下降沿,将指令写入LCD}void lcd_pos(BYTE pos){lcd_wcmd(pos | 0x80); //LCD数据指针格式80H+地址}void lcd_wdat(BYTE dat){while(lcd_bz()); //LCD忙检测,为1不能进行读写,为0可以读写LCD_RS = 1;LCD_RW = 0;LCD_EP = 0;P0 = dat; //数据送入P0口_nop_();_nop_();_nop_();_nop_();LCD_EP = 1; //使能端拉高。

相关主题