单片机课程设计-液晶显示006
液晶显示设计与实现 课程设计
《电气专业核心课综合课程设计报告》题目:液晶显示设计与实现院系:机电与自动化学院专业班级:电气工程及其自动化学生姓名:学生学号:指导教师:徐春燕(课程设计时间:2011 年6 月20 日——2011年7 月8 日)华中科技大学武昌分校目录1.课程设计目的 (3)2.课程设计题目描述和要求 (3)3.课程设计报告内容 (3)3.1元器件选型及总体设计方案描述 (4)3.2硬件连接设计部分 (5)3.3程序设计部分 (9)3.4实验调试与问题 (16)4.总结 (16)参考文献 (17)1.课程设计的目的掌握单片机应用开发全套基本技能,明确单片机应用开发中的要点与难点,掌握电气工程领域的自动化/智能化控制手段(工具),训练技能。
2.课程设计题目描述和要求2.1课程设计题目描述液晶显示设计与实现:要求自制单片机小系统板(或在单片机小系统开发板上),选定具体一款液晶,在液晶上实现显示任意中文、英文、数字或图形;或进一步实现滚屏,翻屏,闪烁,黑白反显,汉字倒转等功能。
2.2课程设计要求(1)根据课题设计内容进行元器件选型、列出元器件清单、自行购买、硬件电路制作与调试(硬件需带串口下载功能),并且使用Protell软件绘制电路原理图;(2)掌握 Keil或HK-51开发仿真系统,进行软件编程与调试;(3)软件编程选择Asm或C51语言均可,要求绘制程序流程图,对所编写的软件进行相应的注释;(4)程序调试成功后,要求烧录(固化)到程序存储器中;(5)完成作品并进行功能验收,完成课程设计说明书(列出元器件清单、Protell软件绘制电路原理3.课程设计报告内容3.1元器件选型及总体设计方案描述(1)元器件选型:武汉恒科电子教仪MCS-51仿真实验开发板;STC89C52单片机RT12232液晶显示器(2)总体设计方案描述本实验系统分为单片机最小系统板和液晶显示两部分。
单片机最小系统负责接收个人计算机所编辑的文本及内容,通过串行接口完成单片机与PC机之间的数据传送,而个人计算机,主要完成显示内容编辑、字模数据的查找、显示程序的发送(烧写)等工作。
单片机综合课程设计液晶屏
《单片机原理及应用A》课程设计报告题目:液晶显示屏的控制设计院(系):机电与自动化学院专业班级:自动化1104班学生姓名:学号:指导教师:段丽娜20 14 年 1 月 6 日至20 14 年 1 月 17 日华中科技大学武昌分校制《单片机原理及应用A》课程设计任务书一、设计(调查报告/论文)题目液晶显示屏的控制设计二、设计(调查报告/论文)主要内容(1)控制要求:本设计要求利用单片机控制液晶屏进行对应字符的显示。
要求每位同学能够控制在屏幕上显示自己的学号(数字)、姓名(中文);(2)设计要求1 设计单片机与液晶屏之间的硬件连接;2 掌握集成开发环境KEIL的使用,用C51语言编程并仿真调试,通过后在试验箱进行硬件验证。
(3)撰写说明书1 含系统硬件设计电路2 含软件设计(程序及必要的说明)3 调试及调试结果,以及在调试过程中出现的问题及解决办法三、原始资料1 122X32LCD液晶屏芯片资料四、要求的设计(调查/论文)成果(1)了解点阵式122X32LCD液晶屏的基本结构、电路特性、接口应用技术等;根据控制要求,完成系统硬件电路设计;(2)在(1)基础上能根据实际工作需要,进行液晶显示界面的任意开发;如:要求每位同学在广告屏上显示自己的学号(数字)、姓名(英文)等;(3)掌握集成开发环境Keil的使用,并能在这个开发环境下利用C51开发液晶屏控制应用程序。
(4)利用实验室设备进行运行调试。
(5)撰写课程设计说明书,课程设计报告内容包括:①设计方案、课程设计过程和设计思想、方法、原理;②控制程序方框图;③参考资料、参考书及参考手册;④其他需要说明的问题,例如操作说明、程序的调试过程、遇到的问题及解决方法、对课程设计的认识和建议等;⑤用电脑编排打印,报告格式按照《华中科技大学武昌分校课程设计管理办法》执行。
课程设计报告要求内容正确完整,图表清晰,叙述简明,语句通顺,字数不得少于2000汉字;⑥课程设计报告按封面、任务书、设计说明书、图纸、实物照片贴页(实物照片贴在A4复印纸上)、成绩评定表的顺序装订。
单片机lcd课程设计
单片机lcd课程设计一、课程目标知识目标:1. 理解单片机的基本原理,掌握LCD显示技术的基本知识。
2. 学习并掌握单片机与LCD的接口方法,了解LCD显示原理及编程方法。
3. 了解LCD显示系统的设计流程,掌握相关电路设计与调试技巧。
技能目标:1. 能够运用所学知识,设计并实现基于单片机的LCD显示程序。
2. 培养学生的动手实践能力,提高学生分析问题和解决问题的能力。
3. 培养学生团队协作能力,学会与他人共同完成项目任务。
情感态度价值观目标:1. 培养学生对单片机及LCD显示技术的兴趣,激发学生的学习热情。
2. 培养学生勇于尝试、积极探究的学习态度,提高学生的自主学习能力。
3. 增强学生的科技意识,培养创新精神和实践能力,使学生在实际操作中体会科技带来的乐趣。
分析课程性质、学生特点和教学要求:本课程为单片机lcd课程设计,旨在让学生掌握单片机与LCD显示技术的基本原理、接口方法及编程技巧。
针对高中年级学生的特点,课程设计注重理论与实践相结合,强调学生的动手实践能力。
在教学过程中,教师需关注学生的个体差异,引导他们通过小组合作、讨论交流等方式,共同完成课程任务。
二、教学内容1. 单片机基本原理与结构:介绍单片机的组成、工作原理及其内部资源,重点讲解CPU、内存、I/O口等部分的作用。
教材章节:第一章 单片机概述2. LCD显示技术:讲解LCD显示原理、显示类型及其驱动方法,分析不同类型LCD的特点及应用场景。
教材章节:第二章 LCD显示技术3. 单片机与LCD接口技术:详细介绍单片机与LCD的接口电路设计、接口方法,包括并行接口和串行接口。
教材章节:第三章 单片机与LCD接口技术4. LCD显示程序设计:讲解如何编写单片机程序,实现LCD显示控制,包括初始化设置、显示字符、图形等。
教材章节:第四章 LCD显示程序设计5. 实践操作与项目实施:分组进行实践操作,完成单片机与LCD显示系统的设计与调试,培养学生动手实践能力。
单片机显示控制课程设计
单片机显示控制课程设计一、课程目标知识目标:1. 让学生理解单片机显示控制的基本原理,掌握显示器件的工作机制;2. 学会使用编程语言对单片机进行编程,实现字符、图形的显示控制;3. 了解单片机显示控制在不同应用场景下的实际运用。
技能目标:1. 培养学生动手操作能力,能够独立完成单片机显示控制电路的搭建;2. 提高学生编程能力,使其能够熟练编写并调试显示控制程序;3. 培养学生分析问题和解决问题的能力,能够针对实际应用场景设计合适的显示控制方案。
情感态度价值观目标:1. 培养学生对单片机技术的兴趣,激发其学习热情;2. 培养学生团队协作精神,使其在合作中共同解决问题;3. 增强学生的创新意识,鼓励其勇于尝试新的显示控制方法。
课程性质:本课程为实践性较强的课程,结合理论知识,注重培养学生的动手操作能力和实际应用能力。
学生特点:学生具备一定的单片机基础知识,对编程和电路搭建有一定了解,但实践经验不足。
教学要求:教师应注重理论与实践相结合,通过讲解、示范、指导等教学手段,帮助学生掌握单片机显示控制技术,并能够将其应用于实际项目中。
同时,关注学生的个体差异,给予个性化的指导和支持。
通过本课程的学习,使学生能够达到上述课程目标,为后续相关课程的学习打下坚实基础。
二、教学内容1. 单片机显示控制原理:讲解显示器件的工作原理,如LED、LCD等,分析单片机与显示器件的接口技术。
- 教材章节:第二章 单片机显示技术基础2. 显示控制编程:介绍单片机编程语言,以C语言为例,讲解显示控制编程方法,实现字符、图形的显示。
- 教材章节:第三章 单片机显示控制编程3. 电路设计与搭建:指导学生进行显示控制电路的设计与搭建,包括硬件连接、调试等。
- 教材章节:第四章 单片机显示控制系统设计4. 实践项目:开展单片机显示控制实践项目,如电子时钟、温度显示等,让学生在实际操作中掌握所学知识。
- 教材章节:第五章 单片机显示控制应用实例5. 创新设计与展示:鼓励学生进行创新设计,将所学知识应用于实际项目中,并进行展示和交流。
单片机液晶显示程序设计
单片机液晶显示程序设计单片机液晶显示程序设计是指使用单片机控制液晶显示屏进行信息显示的程序编写和设计。
液晶显示屏是一种常见的显示设备,广泛应用于各种电子设备中,如计算器、手机、电视等。
在单片机系统中,通过控制液晶显示屏可以实现各种提示、警告、数据显示等功能。
在进行单片机液晶显示程序设计时,需要考虑以下几个方面:1.硬件连接:首先要确保单片机和液晶显示屏之间的连接正常。
一般来说,通过GPIO口来控制液晶显示屏。
液晶显示屏通常需要连接多个引脚,如数据线、使能线、读写线、控制线等。
2.初始化液晶显示屏:在程序开始时,需要对液晶显示屏进行初始化设置。
这包括设置液晶显示屏的工作模式、显示模式、光标位置等。
一般情况下,可以使用液晶显示屏提供的指令集来进行设置。
3.数据显示:单片机通过向液晶显示屏写入数据来实现信息显示。
可以通过调用相关的函数或直接操作寄存器来向液晶显示屏写入数据。
注意,写入数据时需要考虑字节数和显示位置。
5.数据更新:当需要更新液晶显示屏上显示的信息时,需要重新写入新的数据。
可以通过定时器或外部中断来触发数据更新操作。
例如,可以将单片机与其他外部设备连接起来,在外部设备有数据更新时,通过中断触发单片机将新数据写入液晶显示屏。
首先,根据液晶显示屏的型号和引脚连接,来设计硬件连接。
然后,在程序中进行液晶显示屏的初始化设置。
这包括设置液晶显示屏的工作模式、显示模式、光标位置等。
具体的设置可以参考液晶显示屏的技术手册。
接下来,设计字库,将字符的点阵信息保存到单片机中。
然后,根据需要,在液晶显示屏上显示相应的信息。
可以通过调用相关的函数或直接操作寄存器来写入数据。
最后,根据需要进行数据的更新和刷新。
可以通过定时器或外部中断来触发数据更新操作。
需要注意的是,在进行单片机液晶显示程序设计时,需要考虑到硬件和软件之间的配合,以及液晶显示屏的特性和功能。
如果对于液晶显示屏的使用不熟悉,可以参考相关的技术手册和资料,或者查找一些液晶显示屏的驱动库和示例程序来学习和借鉴。
液晶显示(单片机课程设计)
#include "c8051F020.h"#include <intrins.h>/*液晶点阵显示试验-128*64,控制器KS0108试验准备:将拨码开关S1和S2置于ON位置.运行此程序,LCD将交替显示"换代创新后的51-高速SOC美国CYGNAL 8051F""新华龙电子-单片机推广应用急先锋!","汉字".*/#define LCD_DATA P2#define LCD_RS P30#define LCD_RW P31#define LCD_E P32#define LCD_CS1 P33#define LCD_CS2 P34#define LCD_RST P35void Delay1ms(unsigned char);/*-- 宽度x高度=128x64 --*/char code screen[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0xC0,0xC0,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x70,0xF0,0xE1,0x43,0x03,0xC3,0xFA, 0xF8,0x18,0x88,0xE8,0xFC,0x3F,0x0F,0x09,0x08,0xE8,0xF8,0x78,0x08,0x00,0x00,0x00, 0xE0,0xFC,0x7F,0xCF,0xE1,0xF9,0x3F,0x0F,0x83,0xF1,0xFE,0xBF,0x87,0x81,0x81,0x81, 0xC1,0xF9,0xFF,0x1F,0x07,0x00,0x00,0xC0,0xC0,0xC6,0xFE,0xFE,0xFE,0xC6,0xE7,0xFF, 0xFF,0xCE,0xC6,0xE6,0xFC,0x7F,0x4F,0xC1,0xC1,0xC1,0x41,0x41,0x41,0x01,0x00,0x20, 0x60,0x70,0x38,0xFC,0xFE,0x3F,0x2F,0x61,0x60,0xF0,0xF8,0xFF,0x1F,0x0B,0x0C,0x0C, 0x86,0xC7,0xC3,0x03,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x30,0x30,0x30,0xF0,0xF0,0xFC,0xBF,0xF7,0xF1,0x30,0x30,0x3B,0x3F,0x37,0x36,0x30,0x30,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xE0,0xF0,0x78,0x3C,0x0C,0x80,0xC0,0xE0,0x70, 0x38,0xDE,0xFF,0xFF,0x1F,0x03,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0xC0,0xF8,0xFF, 0x7F,0x63,0x60,0x30,0x3F,0x1F,0xE6,0xFC,0xFF,0xCF,0xC1,0xC1,0xC1,0xC1,0xF1,0xFF,0x3F,0x07,0x00,0x00,0x80,0xC0,0xCC,0x7C,0x7C,0xEC,0xFC,0xFF,0x7F,0xFF,0xFC,0x8C, 0xEC,0xF8,0x3F,0x0F,0x83,0xF0,0xFC,0x3F,0x07,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x24,0x27,0x27,0x23,0xA0,0xF0,0xFC,0x3C,0x27,0x23,0x23,0x23,0x23,0x23,0x23, 0x23,0x23,0x01,0x00,0x00,0x00,0x80,0x80,0xC0,0xE0,0x70,0x38,0x1E,0x8F,0x87,0xF1,0xFE,0x7F,0x77,0x38,0x1C,0x0E,0x87,0x83,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x01,0x00,0x04,0x06,0x07,0x03,0x01,0x00,0x00,0x00,0x03,0x03,0x03,0x02,0x02,0x03,0x03,0x01,0x00,0x00,0x00,0x06,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x03,0x00,0x00,0x00,0x00,0x00,0x03,0x03,0x01,0x00,0x00,0x00,0x00,0x01,0x01,0x06,0x06,0x06,0x07,0x03,0x00,0x00,0x06,0x07,0x03,0x01,0x00,0x00,0x04,0x07,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x06,0x07,0x03,0x03,0x01,0x00,0x02,0x03,0x03,0x03,0x07,0x07,0x07,0x06,0x06,0x06,0x06,0x06,0x07,0x03,0x01,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,0x80,0xC0,0x40,0x40,0xC0,0xC0,0x80,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0x80, 0x00,0x00,0x00,0xC0,0xC0,0xC0,0x40,0x00,0x00,0x00,0x80,0x80,0xC0,0x40,0x40,0xC0, 0xC0,0x80,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0, 0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,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,0xC0,0xF8,0xFC,0x3F,0x07,0x01,0x00,0x00,0x80,0x8C,0x8F,0x0F,0x07,0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0x3C,0x1E,0x0F,0x03,0x01,0x00,0xC0,0xF8,0xFE,0x3F,0x07,0x21,0x20,0xE0,0xE0,0xE7, 0x27,0x07,0x00,0xC0,0xF8,0xFF,0x3F,0xFF,0xFF,0xFF,0xC0,0xF8,0xFF,0x3F,0x07,0x00,0x00,0xC0,0xF0,0xF8,0xBE,0x8F,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xC0,0xF8,0xFF, 0x3F,0x07,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,0x0F,0x1F,0x1F,0x10,0x10,0x18,0x1C,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x10,0x1E,0x1F,0x0F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x1F,0x1F,0x10,0x18,0x1C,0x1F,0x1F,0x0F,0x01,0x00,0x10,0x1E,0x1F,0x0F,0x01,0x00,0x03,0x1F,0x1F,0x1F,0x0F,0x01,0x10,0x18,0x1E,0x0F,0x07,0x01,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x00,0x00,0x10,0x1E,0x1F,0x1F,0x11,0x10,0x10,0x10,0x10,0x10,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,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,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*-- 宽度x高度=128x64 --*/char code screen1[]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x5F,0x3F,0x7F,0x7F,0xFF,0x3F,0x7F,0x7F,0xBF,0x9F,0xBF,0xFF,0xFF,0xFF,0xFF,0x7F,0x9F,0xFF,0xFF,0x1F,0xFF,0xFF,0xFF,0x7F,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0xDF,0xBF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0xBF,0x3F,0x9F,0xBF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xDB,0x5A,0xD9,0x03,0x59,0xDA,0xFF,0x00,0xFB, 0xFB,0x03,0xF9,0xFB,0xFF,0x7B,0x7D,0x7E,0x40,0x7F,0x7B,0x1B,0x70,0x6D,0x6E,0x6E,0x6F,0x6F,0x63,0xFF,0xFD,0xFD,0xFD,0x7D,0x9D,0xE0,0xFD,0x7D,0x01,0xDD,0xED,0xF5, 0xFC,0x7D,0xFF,0xFF,0xFF,0x00,0xB6,0xB6,0xB6,0x00,0xB6,0xB6,0xB6,0xB6,0x80,0xFE,0xFF,0xFF,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0x01,0xF5,0xF6,0xF7,0xF7,0xF3,0xF7,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xED,0xEE,0xED,0xEB,0xEC,0xEF,0xEA,0xED,0xEE,0xEF, 0xEF,0xE8,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xE8,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEB,0xED,0xEE,0xEF,0xEF,0xEE,0xEE,0xEF,0xEC,0xEB,0xEB,0xEB, 0xEB,0xE8,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEC,0xEB,0xEB,0xEB,0xEB,0xEB,0xEB, 0xE8,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xED,0xEB,0xEC,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF, 0xEF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xD6,0xD5,0xD7,0x07,0xD7,0xD5,0xD6,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0x6F,0x6F,0x6F,0x6F,0x60,0x6F,0xEF,0xEF,0xE7,0xEF,0xFF,0xEF,0xEF,0x2F,0x00,0xAF,0x6F,0xFF,0x01,0xFD,0xFD,0x00,0xFD,0xFF,0xFF,0xFF,0xF7,0xF7,0x77,0x00,0xB7,0xDF,0x07,0xB0,0xB7,0x06,0xB1,0xB7,0xB7,0xB7,0xFF,0xFF,0xFF,0x03,0xFB,0xFB,0xFB, 0xFA,0xF9,0xFB,0xFB,0xFB,0xFB,0xF9,0xFB,0xFF,0xFF,0xFF,0x03,0xFB,0xBB,0x7B,0xEA, 0xD9,0x3B,0xFB,0xFB,0x7B,0x99,0xFB,0xFF,0xFF,0xFF,0x01,0xED,0xED,0xED,0xED,0x01, 0xED,0xED,0xED,0x00,0xFD,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFB,0xFB,0xFA,0xFA,0xFA,0xFA,0xC0,0xFA,0xFA,0xFA,0xFA,0xFB,0xFB,0xFF,0xFF,0xDF,0xEF,0xF7, 0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD,0xFE,0xFF,0xC0,0xDF,0xEF,0xF7,0xF8,0xFF,0xFF,0xE0,0xDF,0xDF,0xC3,0xFF,0xFE,0xEE,0xDF,0xE0,0xFF,0xFF,0xC0,0xED,0xED,0xE0,0xED,0xED,0xED,0xED,0xFF,0xDF,0xE7,0xF8,0xFF,0xFF,0xFF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xE7,0xF8,0xEF,0xEF,0xEE,0xE9,0xEF,0xEE,0xE7,0xE9,0xEE,0xE7,0xEF,0xFF,0xDF,0xE7,0xF8,0xFE,0xFE,0xFE,0xFE,0xC0,0xFE,0xEE,0xDE,0xE0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xEF,0x57,0x5B,0x59,0x5B,0x5B,0x4B,0x53,0x5F,0x0F,0xDF,0xFF,0xFF,0xFF,0xBF,0xDF,0xE3,0xEF,0xEF,0xEF,0x01,0xEF,0xEF,0xE7,0xEF,0x7F,0xFF,0xFF,0xBF,0x8F,0x31,0xB7,0xB7,0x77,0x6F,0xB7,0xA9,0x5B,0xAB,0xB3,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xDF,0xE5,0xFD,0xC5,0xBD,0xB9,0xA5,0xBD,0xBD,0x8D,0xFC,0xF7,0xCF,0xFF,0xBE,0xBE,0xDE ,0xEE,0xF6,0xF8,0xFE,0xFE,0xC0,0xBE,0xBE,0xBE,0xBE,0x8E,0xFF,0xFD,0xFD,0xC0,0xED, 0xF5,0xED,0xEA,0xEA,0xEA,0x80,0xEA,0xEA,0xEB,0xEF,0xFF,0xFF,0xFF,0xFF,0xCC,0xCF, 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCC,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xCC,0xCF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,};/*-- 宽度x高度=128x64 --*/char code screen2[]={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,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,0x10,0x10,0x10,0xFE,0x90,0xA0,0xD0,0x4E,0x48,0xE8,0x58,0x40,0xC0,0x00,0x00,0x80,0x40,0x20,0xF8,0x06,0x40,0x40,0x40,0xFE,0x20,0x20,0x24,0x38,0x20,0x00,0x40,0x20,0xD0,0x48,0x46,0x44,0xC8,0x10,0x00,0xF0,0x00,0x00,0xFE,0x00,0x00,0x40,0x48,0x58,0x6A,0xCC,0x68,0x58,0x00,0xFC,0x48,0x48,0xC4,0x66,0x44,0x00,0x00,0x00,0xF8,0x28,0x28,0x28,0x28,0x28,0x24,0x24,0x24,0xA6,0x24,0x00,0x00,0x00,0xF0,0x18,0x16,0x10,0xF0,0x40,0x20,0x98,0x16,0x10,0x10,0xF8,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x22,0x41,0x3F,0x40,0x44,0x27,0x14,0x0C,0x07,0x1C,0x24,0x47,0x44,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x03,0x0C,0x10,0x20,0x40,0x78,0x00,0x00,0x00,0x3F,0x40,0x44,0x44,0x43,0x70,0x00,0x07,0x20,0x40,0x3F,0x00,0x00,0x20,0x12,0x2A,0x42,0x3F,0x0A,0x52,0x20,0x1F,0x00,0x00,0x7F,0x00,0x00,0x00,0x40,0x30,0x0F,0x00,0x00,0x7F,0x21,0x21,0x21,0x21,0x21,0x7F,0x01,0x00,0x00,0x00,0x7F,0x21,0x21,0x21,0x7F,0x00,0x00,0x00,0x23,0x40,0x20,0x1F,0x00,0x00,0x00,0x19,0x21,0x20,0x20,0x20,0x1F,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,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,0x82,0x82,0xBA,0xAA,0xAA,0xAB,0xAA, 0xAA,0xBA,0x82,0x82,0x02,0x00,0x20,0x21,0xE6,0x00,0x04,0x74,0x54,0x54,0xFF,0xD4, 0x54,0x74,0x06,0x04,0x00,0x00,0x70,0x88,0x88,0x08,0x08,0x38,0x00,0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0xE0,0x10,0x08,0x08,0x08,0x08,0x38,0x00,0x80,0x84,0x94,0x94,0x95,0x96,0xFC,0x94,0x96,0x95,0x94,0xC4,0x80,0x00,0x00,0x00,0xFE,0x02,0x0A,0x4A,0x4A,0xFA,0x4A,0xCA,0x4A,0x0A,0x02,0xFF,0x02,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,0x3F,0x00,0x00,0x0E,0x0A,0x0A,0x0A,0x0E,0x00,0x20,0x3F,0x00,0x00,0x10,0x08,0x07,0x08,0x10,0x24,0x22,0x21,0x2F,0x20,0x21,0x22,0x24,0x20,0x00,0x00,0x1C,0x10,0x10,0x11,0x11,0x0E,0x00,0x07,0x08,0x10,0x10,0x10,0x08,0x07,0x00,0x07,0x08,0x10,0x10,0x10,0x08,0x04,0x00,0x20,0x22,0x12,0x12,0x0A,0x06,0x03,0x06,0x0A,0x12,0x12,0x22,0x20,0x00,0x00,0x00,0x3F,0x10,0x14,0x14,0x14,0x17,0x14,0x14,0x15,0x14,0x14,0x3F,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,0xF0,0x08,0x04,0x04,0x04,0x04,0x1C,0x00,0x20,0x60,0xA0,0x00,0x00,0xA0,0x60,0x20,0x00,0xC0,0x20,0x20,0x20,0xE0,0x20,0x00,0x20,0xE0,0x40,0x20,0x20,0x20,0xC0,0x00,0x00,0x40,0x20,0xA0,0xA0,0xC0,0x00,0x00,0x00,0x04,0x04,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xC4,0x44,0x44,0xC4,0x38,0x00,0x00,0xF0,0x08,0x04,0x04,0x08,0xF0,0x00,0x00,0x7C,0x44,0x24,0x24,0x24,0xC4,0x00,0x00,0x08,0x08,0xFC,0x00,0x00,0x00,0x00,0x04,0xFC,0x44,0x44,0xF4,0x04,0x08,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,0x04,0x08,0x08,0x08,0x04,0x02,0x00,0x20,0x20,0x23,0x1C,0x06,0x01,0x00,0x00,0x00,0x1A,0x25,0x25,0x25,0x24,0x18,0x00,0x08,0x0F,0x08,0x00,0x00,0x08,0x0F,0x08,0x00,0x06,0x09,0x08,0x08,0x0F,0x08,0x00,0x00,0x08,0x08,0x0F,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x08,0x08,0x08,0x08,0x07,0x00,0x00,0x03,0x04,0x08,0x08,0x04,0x03,0x00,0x00,0x06,0x08,0x08,0x08,0x08,0x07,0x00,0x00,0x08,0x08,0x0F,0x08,0x08,0x00,0x00,0x08,0x0F,0x08,0x00,0x01,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,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, };#define SELECTCS 0void LCD_WaitReady1(void) //判断LCD控制芯片KS0108是否忙{LCD_DATA=0xff;_nop_();LCD_CS2=SELECTCS;LCD_RW=1;LCD_RS=0;LCD_E=1;while (LCD_DA TA&0x80);LCD_CS2=!SELECTCS;}void LCD_WaitReady2(void) //判断LCD控制芯片KS0108是否忙{LCD_DATA=0xff;_nop_();LCD_CS1=SELECTCS;LCD_RW=1;LCD_RS=0;LCD_E=1;while (LCD_DA TA&0x80);LCD_CS1=!SELECTCS;}void LCD_WriteCommand1(char ch) //向LCD控制芯片KS0108发送控制命令{LCD_WaitReady1();LCD_CS2=SELECTCS;LCD_RW=0;LCD_RS=0;LCD_DATA=ch;LCD_E=1;LCD_E=0;LCD_CS2=!SELECTCS;}void LCD_WriteCommand2(char ch) //向LCD控制芯片KS0108发送控制命令{LCD_WaitReady2();LCD_CS1=SELECTCS;LCD_RW=0;LCD_RS=0;LCD_DATA=ch;LCD_E=1;LCD_E=0;LCD_CS1=!SELECTCS;}void LCD_WriteData1(char ch) //向LCD控制芯片KS0108发送数据命令{LCD_WaitReady1();LCD_CS2=SELECTCS;LCD_RW=0;LCD_RS=1;LCD_DATA=ch;LCD_E=1;LCD_E=0;LCD_CS2=!SELECTCS;}void LCD_WriteData2(char ch) //向LCD控制芯片KS0108发送数据命令{LCD_WaitReady2();LCD_CS1=SELECTCS;LCD_RW=0;LCD_RS=1;LCD_DATA=ch;LCD_E=1;LCD_E=0;LCD_CS1=!SELECTCS;}/*-- 文字: 汉--*/char code Han[]={0x00,0x10,0x61,0x06,0xC0,0x30,0x02,0x3E,0xC2,0x02,0x82,0x62,0x1F,0x02,0x00,0x00, 0x00,0x02,0x02,0x3F,0x20,0x20,0x10,0x08,0x05,0x02,0x05,0x08,0x10,0x30,0x10,0x00, };/*-- 文字: 字--*/char code Zi[]={0x00,0x00,0x10,0x0C,0x14,0x14,0x14,0x15,0xD6,0x54,0x34,0x14,0x14,0x8C,0x00,0x00, 0x00,0x01,0x01,0x01,0x01,0x01,0x11,0x21,0x1F,0x01,0x01,0x01,0x01,0x01,0x01,0x00, };void LCD_WriteHZ(char x,char y,char *Dot) //显示16*16点阵汉字{char i;for (i=0;i<32;i++){if ((x+i%16)<64){LCD_WriteCommand1(0xB8+y+i/16);LCD_WriteCommand1(0x40+x+i%16);LCD_WriteData1(Dot[i]);}else{LCD_WriteCommand2(0xB8+y+i/16);LCD_WriteCommand2(0x40+x-64+i%16);LCD_WriteData2(Dot[i]);}}}void InitLCD(void) //初始化LCD{char i,j;LCD_RST=0;Delay1ms(1);LCD_RST=1;LCD_WriteCommand1(0xc0);LCD_WriteCommand2(0xc0);LCD_WriteCommand1(0x3f); //开显示LCD_WriteCommand2(0x3f);for (j=0;j<8;j++) //清屏{LCD_WriteCommand1(0xB8+j); //清左半屏LCD_WriteCommand1(0x40);for (i=0;i<64;i++)LCD_WriteData1(0x00);LCD_WriteCommand2(0xB8+j); //清右半屏LCD_WriteCommand2(0x40);for (i=0;i<64;i++)LCD_WriteData2(0x00);}}void DispBmp(char *buf) //显示一幅位图{int i,j;for (j=0;j<8;j++) //显示位图{LCD_WriteCommand1(0xB8+j);LCD_WriteCommand1(0x40);for (i=0;i<64;i++)LCD_WriteData1(buf[(j*2)*64+i]);LCD_WriteCommand2(0xB8+j);LCD_WriteCommand2(0x40);for (i=0;i<64;i++)LCD_WriteData2(buf[(j*2+1)*64+i]);}}void Delay1s(unsigned char T);void TestLCD(void){char i;InitLCD();DispBmp(screen);for (i=0;i<64;i++){Delay1ms(50);LCD_WriteCommand1(0xc0+i%64); //设置起始行,实现向上滚动LCD_WriteCommand2(0xc0+i%64);}Delay1s(3);for (;;){DispBmp(screen1);Delay1s(5);DispBmp(screen2);Delay1s(6);InitLCD();LCD_WriteHZ(2,1,Han); //显示16*16点阵汉字'汉'Delay1ms(100);LCD_WriteHZ(60,3,Zi); //显示16*16点阵汉字'字'Delay1s(5);}}。
单片机课程设计液晶点阵显示屏程序设计说明书
《单片机原理及应用》课程设计报告书课题名称液晶点阵显示屏程序设计姓名学号专业指导教师机电与控制工程学院年月日填写说明1、正文部分:(1)标题与正文格式定义标准如下:一级标题:1.标题1二级标题:1.1标题2三级标题:1.1.1标题3四级标题:1.1.1.1标题4(2)表格:尽可能采用三线表。
(3)图形:直接插入的插图应有图标、图号,不能直接插入的图应留出插图空位。
图中文字、符号书写要清楚,并与正文一致。
(4)文字表述:要求层次清楚,语言流畅,语句通顺,无语法和逻辑错误,无错字、别字、漏字。
文字的表述应当以科学语言描述研究过程和研究结果,不要以口语化的方式表达,报告中科技术语和名词应符合规定的通用词语,并使用法定计量单位和标准符号。
2、参考文献:(1)数量要求:参考文献只选择最主要的列入,应不低于5种。
(2)种类要求:参考文献的引用,可以是著作[M]、论文[J]、专利文献[P]、会议论文等。
(3)文献著录格式及示例。
参考文献用宋体五号字。
[1] 作者. 书名[M]. 版次. 出版地: 出版者, 出版年: 起止页码(著作图书文献)[2] 作者. 文章名[J]. 学术刊物名称. 年. 卷(期): 起止页码(学术刊物文献)示例:[1]王社国,赵建光。
基于ARM的嵌入式语音识别系统研究 [J]。
微计算机信息,2007,2-2:149-150.3、附录或附件:(可选项)重要的测试结果、图表、设计图纸、源程序代码、大量的公式、符号、照片等不宜放入正文中的可以附录形式出现。
4、如果需要可另行附页粘贴。
任务书1、摘要2、设计目的1).熟练掌握C51系统仿真开发系统的应用。
2).加强单片机的综合运用能力、提高单片机的软件编程和调试能力,为以后的学习和开发工作打下良好基础。
3).掌握的液晶的工作原理以及应用设计。
4).掌握小系统开发设计的流程以及设计思路。
3、设计要求1)从下到上滚动显示:“湖北师范学院机电与控制工程学院”然后交替显示:“年单片机课程设计”“液晶点阵显示屏程序设计”“郑春梅 1004班 2010218210431”2) 改变字库的内容,显示其它汉字。
单片机-液晶显示课程设计
河南理工大学《微机原理与单片机课程设计》报告题目:基于单片机LCD液晶动态显示姓名:***学号:**********专业班级:电气12**指导老师:张宏伟所在学院:电气工程与自动化学院201*年4月14日摘要如今,科技进步给我们的生活带来了很大的变化。
液晶显示设备越来越多,各种各样的液晶显示产品走进我们生活中。
液晶显示器由于具有低压、微功耗、显示信息量大、体积小等特点,在移动通信终端、便携计算机、GPS卫星定位系统等领域有广泛用途,成为使用量最大的显示器件。
液晶显示控制器作为液晶驱动电路的核心部件通常由集成电路组成,通过为液晶显示系统提供时序信号和显示数据来实现液晶显示。
本设计主要是以AT89C51单片机为控制设备,AMPIRE128*64液晶显示器为显示设备,实现的一个可以显示静态汉字、动态字符、图片的液晶显示设计。
引入密码锁功能,通过键盘和密码锁的配合,实现控制显示内容与显示效果。
通过设置字模提取软件的相关参数值,再根据AMPIRE128*64LCD的指令表及程序设计等提取所要用的汉字、字符、图片程序送往液晶显示器显示,并可做一些灵活的动态显示变换,提升显示效果。
并能通过设置密码和键盘控制显示内容和提示语。
其中,时钟电路和复位电路是单片机中最为基础的两个电路。
当键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。
在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。
这样,一个端口就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。
本设计在Keil软件下,采用的是C语言进行软件设计,C语言使用助记符、符号、和数字等来表示指令的程序语言,具有容易理解和记忆且通用性强,设计方便等优点。
此次设计利用Proteus软件进行仿真验证了实验的正确性。
本次课程设计较好的实现在液晶显示器AMPIRE128*64 LCD 显示器上显示汉字、图片等,并且实现密码和键盘控制,具有现实使用价值。
单片机课程设计设计LCD显示屏
《单片机原理及应用》课程设计报告题目:LCD显示设计院(系):机电与自动化学院专业班级:电气自动化技术1101班学生姓名:包文峰学号: 2 0 1 1 2 8 2 2 0 2 3指导教师:雷丹2013年12月 16日至2013年 12 月 27日华中科技大学武昌分校制《单片机原理及应用》课程设计任务书图1 LCD显示电路(3)LCD与单片机的连接(如图2)图2 LCD与单片机的连接图四、要求的设计成果1、根据控制要求,分析LCD显示系统的硬件结构;2、分析LCD引脚功能及地址分配;3、在单片机实验箱上按要求显示汉子并进行实时演示。
4、提交字数不低于2000字的设计说明书一份。
目录1.课程设计题目及要求 (1)1.1课程设计题目 (1)1.2课程设计要求 (1)2.课程设计主要内容 (2)2.1 LCD显示原理 (2)2.2 LCD显示电路 (2)2.3 LCD引脚说明 (3)2.4 SED1520的基本原理 (4)2.5 SED1520的指令系统 (5)2.6 LCD与单片机的连接 (6)2.7 汉字字模的获取 (7)3.软件设计 (9)3.1程序流程 (9)3.2课程设计具体程序 (10)4.课程设计总结 (30)参考文献 (31)1. 课程设计题目及要求1.1课程设计题目LCD显示设计1.2课程设计要求了解122×32A点阵式LCD液晶显示的结构、工作原理、编程方法;SED1250的特性、内部结构、各个管脚的功能,以及获取字模的方法;编写一个完整的程序,按要求在LCD上显示内容。
具体显示效果为:(1)显示汉字:华中科技大学武昌分校自己的姓名。
(2)实现显示内容的翻屏功能。
拓展:实现显示内容的滚动功能。
2. 课程设计主要内容2.1 LCD显示原理液晶是一呈液体状的化学物质,象磁场中的金属一样,当受到外界电场影响时,其分子会产生精确的有序排列。
如果对分子的排列加以适当的控制,液晶分子将会允许光线穿越。
基于单片机的LCD液晶显示
a=0;
for(i=0;i<10;i++)
{
delay1(2000);
}
c=1;
b=0;
a=1;
for(i=0;i<10;i++)
{
delay1(2000);
}
c=1;
b=1;
a=0;
for(i=0;i<10;i++)
{
delay1(2000);
}
c=1;
b=1;
a=1;
for(i=0;i<10;i++)
熟练运用的能力,掌握设计资料、手册、标准和规范以及使用仿真软件、实验设
备进行调试和数据处理等。
二.设计总体要求
本次课程设计题目是基于单片机的温度测量控制系统设计。
要求学生掌握典型温度测量报警电路的基本硬件组成,掌握整个系统的工作
原理,在了解硬件的基础上进行软件编程。
2.1整个硬件系统包括数码管动态显示电路、CPU核心控制部分、流水灯(或
{
rd=0;
if(s1==0)
{
delay(5);
if(s1==0)
{ s1num++;
while(!s1);
if(s1num==1)
{
TR0=0;
write_com(0x80+0x40+10);
write_com(0x0f);
}
}
if(s1num==2)
{
write_com(0x80+0x40+7);
delay(5);
}
write_com(0x80+0x40);
单片机彩屏显示课程设计
单片机彩屏显示课程设计一、课程目标知识目标:1. 理解单片机的基本原理,掌握彩屏显示技术的基本概念;2. 学习并掌握彩屏显示程序编写的基本方法,包括编程语言和开发环境的使用;3. 了解彩屏显示系统中常见的故障及其解决办法。
技能目标:1. 能够独立完成单片机彩屏显示程序的编写,具备实际操作能力;2. 学会运用所学知识,解决实际应用中彩屏显示的相关问题;3. 提高团队协作和沟通能力,通过小组合作完成课程设计任务。
情感态度价值观目标:1. 培养学生对单片机及彩屏显示技术的兴趣,激发学习热情;2. 培养学生严谨的科学态度,养成良好的编程习惯;3. 增强学生的创新意识,鼓励尝试新方法解决问题;4. 培养学生的团队协作精神,提高合作完成项目的能力。
本课程针对高年级学生,结合单片机及彩屏显示技术的实际应用,旨在提高学生的实际操作能力和创新意识。
课程设计注重理论与实践相结合,以学生为主体,充分调动学生的积极性和主动性。
通过本课程的学习,使学生能够掌握单片机彩屏显示技术的基本原理和编程方法,培养实际应用能力,为今后的学习和工作打下坚实基础。
二、教学内容1. 单片机基础理论:介绍单片机的组成、工作原理及编程方法,重点讲解与彩屏显示相关的基础知识。
相关教材章节:第1章 单片机原理与系统结构。
2. 彩屏显示技术:讲解彩屏显示原理、显示控制器及其接口技术,分析不同类型彩屏的特点及应用。
相关教材章节:第2章 彩屏显示技术与显示控制器。
3. 编程语言及开发环境:学习C语言编程基础,熟悉单片机开发环境(如Keil)的使用,掌握彩屏显示程序的编写与调试。
相关教材章节:第3章 单片机编程语言与开发环境。
4. 彩屏显示程序设计:通过实例讲解,使学生掌握彩屏显示程序的设计方法,包括初始化设置、显示控制及图像处理等。
相关教材章节:第4章 彩屏显示程序设计与实践。
5. 课程设计与实践:分组进行课程设计,针对实际应用场景,完成单片机彩屏显示系统的设计与实现。
单片机显示屏设计
单片机显示屏设计简介单片机显示屏是一种用于显示和交互的设备,在嵌入式系统中广泛应用。
本文将介绍单片机显示屏的设计原理和流程,以及常用的单片机显示屏类型和应用场景。
设计原理单片机显示屏主要由单片机、显示模块和驱动电路组成。
单片机负责接收外部输入信号并进行处理,然后发送相应的显示数据给显示模块,显示模块通过驱动电路将数据转换成可视化的图像显示在屏幕上。
设计流程设计单片机显示屏的流程如下:1.确定需求:首先需要明确要显示的内容、显示模块的尺寸和显示方式,以及其他特定的需求。
2.选择单片机:根据需求选择合适的单片机,考虑单片机的处理能力、输入输出接口和低功耗等因素。
3.选择显示模块:根据需求选择合适的显示模块,例如LCD、LED、OLED等,考虑模块的尺寸、分辨率和接口类型等因素。
4.设计驱动电路:根据单片机和显示模块的接口要求设计驱动电路,确保能够正确地将单片机的信号转换成显示模块可以识别的信号。
5.编写程序:使用合适的编程语言编写程序,实现单片机与显示模块之间的数据传输和交互。
6.连接硬件:将单片机、显示模块和驱动电路进行连接,确保信号传输的正确性和稳定性。
7.调试测试:进行调试和测试,检查显示效果和功能是否符合预期,进行必要的调整和修正。
常用显示模块常用的单片机显示模块包括LCD、LED和OLED等。
LCD(Liquid Crystal Display)LCD是一种液晶显示屏,具有低功耗、大面积和高分辨率的特点。
LCD广泛应用于计算机显示器、电视、手机等领域。
LED(Light Emitting Diode)LED是一种发光二极管,具有低功耗、高亮度和长寿命的特点。
LED广泛应用于室内和室外的显示屏、标志和指示灯等。
OLED(Organic Light Emitting Diode)OLED是一种有机发光二极管,具有自发光、高对比度和快速响应的特点。
OLED广泛应用于手机、电子表、车载显示屏等领域。
单片机LCD系统显示课程设计
LCD显示系统的设计 (2)一、课程设计的目的与要求 (2)1、课程设计目的: (2)2、课程设计要求 (2)二、课程设计课题的分析 (2)1、原理说明 (2)2、1602LCD主要技术参数 (3)3、引脚功能说明 (3)4、硬件接口 (3)5、用户命令 (4)6、显示窗口坐标关系 (5)三、课程设计的结果 (8)程序1 (8)程序2: (10)四、课程设计的心得与体会 (13)五、参考文献 (13)LCD显示系统的设计一、课程设计的目的与要求1、课程设计目的:(1)进一步理解和消化书本知识,运用所学知识和技能进行简单的设计。
(2)通过课程设计提高应用能力,分析问题和解决问题的能力。
(3)培养查阅资料的习惯,训练和提高自学,独立思考的能力。
2、课程设计要求(1)理解液晶显示模块的工作原理。
(2)掌握液晶显示模块与单片机的接口方法。
(3)自主设计通过8255驱动LCD显示模块的电路(4)编制程序使LCD显示所要求的汉字(5)实现实时信息板的设计从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:(1)能够正确理解课程设计的题目和意义,全面思考问题。
(2)运用科学合理的方法,认真按时完成。
二、课程设计课题的分析1、原理说明点阵式LCD显示电路是在系统板上外挂点阵式液晶显示模块,模块的数据线、状态、控制线都通过插孔引出。
可直接与系统相连。
1、OCMJ2×8液晶模块介绍及使用说明OCMJ中文模块系列液晶显示器内含 GB 2312 16*16点阵国标一级简体汉字和 ASCII8*8(半高)及8*16(全高)点阵英文字库,用户输入区位码或 ASCII 码即可实现文本显示。
也可用作一般的点阵图形显示器之用。
提供位点阵和字节点阵两种图形显示功能,用户可在指定的屏幕位置上以点为单位或以字节为单位进行图形显示。
完全兼容一般的点阵模块。
OCMJ中文模块系列液晶显示器可以实现汉字、ASCII 码、点阵图形和变化曲线的同屏显示,并可通过字节点阵图形方式造字。
单片机课程设计液晶显示
湖南工学院《单片机技术》课程设计说明书课题名称:液晶显示万年历、时间、星期及温度系部:电气与信息工程系专业:电子信息工程班级:0602设计人:陈凯学号:401060347指导老师:戴日光目录第1章系统电路设计1.1 系统总体设计思路-------------------------------------------------------------------1 1.2 设计方案选择-------------------------------------------------------------------------1 1.3 功能介绍-------------------------------------------------------------------------------1 1.4 工作原理-------------------------------------------------------------------------------2第2章单元电路设计2.1 单片机电路设计----------------------------------------------------------------------3 2.2 时钟电路设计-------------------------------------------------------------------------5 2.3 复位电路设计-------------------------------------------------------------------------6 2.4 温度传感器电路设计----------------------------------------------------------------7 2.5 矩阵式键盘设计----------------------------------------------------------------------8 2.6 显示电路设计-------------------------------------------------------------------------8第3章程序流程图3.1 中断时钟流程图---------------------------------------------------------------------11 3.2 温度子程序流程图------------------------------------------------------------------11 3.3 万年历流程图------------------------------------------------------------------------12第4章操作与调试4.1 KEIL uVision3简介-------------------------------------------------------------------144.1.1 8051开发工具--------------------------------------------------------------------144.1.2 uVision3集成开发环境---------------------------------------------------------144.2 Proteus简介--------------------------------------------------------------------------154.2.1进入Proteus ISIS--------------------------------------------------------------154.2.2工作界面---------------------------------------------------------------------------154.3 软件调试--------------------------------------------------------------------------------16结束语-------------------------------------------------------------------------------------------18附录1 仿真电路图---------------------------------------------------------------------------19附录2 元器件清单---------------------------------------------------------------------------20 附录3 程序清单------------------------------------------------------------------------------21 参考文献----------------------------------------------------------------------------------------40第1章系统电路设计1.1系统总体设计思路此设计即液晶上显示年、月、日、时、分、秒及星期原理框图如图(1.1),电路一般包括以下几个部分:键盘、单片机、温度传感器及显示电路。
单片机液晶显示程序设计
LCD如何显示汉字 LCD如何显示汉字
汉字的显示一般采用图形方式,事先从微机中提 汉字的显示一般采用图形方式 事先从微机中提 取汉字点阵码,每个汉字占32B,分左右两部分。左 取汉字点阵码,每个汉字占 ,分左右两部分。 边为1、3、5等,右边为2、4、6等,根据在LCD上开 边为 、 、 等 右边为 、 、 等 根据在 上开 始显示的行列号及每行的列数可找出显示RAM对应的 始显示的行列号及每行的列数可找出显示 对应的 地址,确定光标位置, 地址,确定光标位置,送上要显示的汉字的第一字节 送第二字节时光标位置加1;换行按列对齐,直到32B 送第二字节时光标位置加 ;换行按列对齐,直到 显示完就可以在LCD上得到一个完整的汉字。 上得到一个完整的汉字。 显示完就可以在 上得到一个完整的汉字
液晶显示原理
液晶显示的原理是利用液晶的物理特性,通过电压 液晶显示的原理是利用液晶的物理特性, 对其显示区域进行控制,有电就显示黑色, 对其显示区域进行控制,有电就显示黑色,这样即可 显示图形。液晶显示器的厚度薄、 显示图形。液晶显示器的厚度薄、适于大规模集成电 路直接驱动、易于实现全彩色显示的特点, 路直接驱动、易于实现全彩色显示的特点,广泛应用 在笔记本电脑、数字音像产品、 在笔记本电脑、数字音像产品、PDA移动通信工具等 移动通信工具等 众多领域。 众多领域。
行列控制型 内藏控制器
LCD如何显示线段 LCD如何显示线段
点阵图形液晶由M 点阵图形液晶由M×N个显示单元构成。假设显 个显示单元构成。 示屏有64 64行 每行有128 128列 列对应1B 8b, 1B的 示屏有64行,每行有128列,每8列对应1B的8b,则 每行由16B 16B, 16×8=128个点组成 屏上64 16个 个点组成, 64× 每行由16B,共16×8=128个点组成,屏上64×16个 显示单元与显示RAM区的1KB对应, 1B的内容与显 RAM区的1KB对应 显示单元与显示RAM区的1KB对应,每1B的内容与显 示屏相应位置的亮暗对应。 示屏相应位置的亮暗对应。例如屏的第一行的亮暗 RAM区的000H-00FH的16B内容决定 区的000H 内容决定, 由RAM区的000H-00FH的16B内容决定,当(000)=FFH 屏的左上角显示一条短亮线,长度为8个点; 时,屏的左上角显示一条短亮线,长度为8个点;当 (3FFH)=FFH时 显示屏右下角显示一条短亮线。 (3FFH)=FFH时,显示屏右下角显示一条短亮线。
单片机课程设计方案汉字液晶显示器显示
题目:液晶显示控制实验学院(系):电气工程学院年级专业: 09自动化仪表3班学号: 0901********学生姓名:苑海川指导教师:张淑清教师职称:教授燕山大学课程设计(论文)任务书院(系):电气工程学院基层教案单位:自动化仪表系说明:此表一式四份,学生、指导教师、基层教案单位、系部各一份。
2012年06 月 29 日目录 (3)摘要 (4)第一章绪论 (5)1.1 硬件环境分析 (5)1.2 实验箱简介 (5)第二章课程设计目的及课题分析 (6)2.1 课程设计目的 (6)2.2课题分析 (6)第三章实现原理 (8)3.1 点阵LCD的显示原理 (8)3.2 取模 (9)3.3功能扩展部分 (11)第四章 Proteus硬件仿真 (12)4.1 硬件模拟软件介绍 (12)4.2程序流程图 (14)第五章主要的源程序及注释 (15)第六章程序调试及结果分析 (24)6.1调试过程 (24)6.2在程序设计和调试过程中,遇到和解决的几个问题: (24)6.3结论 (24)心得体会 (25)参考文献 (26)摘要本文详细介绍了基于单片机和lab2000实验箱的液晶显示实验,并利用伟福仿真软件实现了程序的编译和连接,还利用proteus仿真软件对硬件电路进行了绘制和仿真。
本文系统的从总体设计思路、汉字取模的原理、液晶显示的原理、电路绘制和仿真和最好的上箱实验几个方面介绍了本次液晶显示实验。
基本掌握了电路仿真和绘制的仿真程序,了解了一些简单的硬件知识,对课本所学的理论知识有了更加深入的了解,对以后的学习也更有针对性。
关键字:伟福仿真,lab2000,proteus仿真软件。
第一章绪论1.1 硬件环境分析本设计是设计一个单片机控制的点阵液晶显示屏上显示“南京伟福”字样的设计‘近年来随着科学技术的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统的控制检测日新月异更新。
本实验采用芯片,系统设计所需硬件都已集成于LAB6000实验箱上。
单片机LCD液晶显示
单片机LCD液晶显示单片机是一种高性能、低成本、低功耗的微型计算机系统,广泛应用于各个领域。
其中,液晶显示是一种常见的输出方式之一,可以用来显示各种文字、图像等信息。
本文将介绍单片机的LCD液晶显示原理、应用和优势。
一、LCD液晶显示原理液晶显示器是利用液晶分子的光学特性来显示图像的一种技术。
其中,LCD液晶显示的原理主要包括:1. 液晶分子的定向控制:液晶分子可以通过电场的作用来改变其排列状态,从而改变透光性。
利用这一性质,可以控制液晶显示器的亮度和透明度。
2. 像素的构成:液晶显示器由若干个像素组成,每个像素由一个液晶分子及其周围的电极组成。
通过控制电极之间的电场,可以控制像素的亮度和透明度,从而显示出不同的图像。
3. 背光源的应用:为了使得液晶显示器能够在暗环境下显示清晰的图像,通常会在显示器背后加上一个背光源,来提供光线。
二、单片机对LCD液晶显示的控制单片机可以通过其IO口来控制LCD液晶显示,具体步骤如下:1. 初始化:在使用LCD液晶显示之前,需要对其进行初始化。
包括设置显示模式、清除显示屏幕等操作。
2. 显示数据的写入:单片机可以通过IO口向LCD液晶显示写入数据,包括需要显示的文字、图像等信息。
在写入数据时,需要将数据分为若干个字节,每次只能写入一个字节。
3. 控制信号的发出:在写入数据之前,需要设置一些控制信号,包括读/写信号、使能信号等。
这些信号可以通过IO口来控制。
4. 延时操作:在进行写入数据、设置控制信号等操作时,需要进行一定的延时操作。
这是因为液晶分子的排列状态变化需要一定的时间,延时操作可以确保显示效果的稳定性。
三、LCD液晶显示的应用LCD液晶显示器广泛应用于各个领域,包括家电、通信、工业等。
以下是几个常见的应用示例:1. 手机屏幕:目前,大部分手机都采用LCD液晶显示屏,可以显示丰富多彩的图像和文字。
2. 电视显示器:LCD液晶显示器也是现代电视的主要显示方式之一,可以提供高清、真实的图像效果。
单片机课程设计——字符液晶显示器
目录1课程设计的目的与要求 (1)1.1课程设计目的: (1)1.2课程设计要求: (1)1.3知识点链接 (1)2 系统硬件设计及说明 (3)2.1硬件设计思想 (3)2.2主要元器件介绍 (3)2.3硬件功能电路电路图 (4)2.4 核心芯片 AT89C51的介绍 (5)2.5 MSP430单片机的介绍 (6)3系统软件设计 (6)3.1程序及程序描述 (6)3.2程序流程图 (10)3.3功能演示 (11)4总结 (12)5 参考文献 (12)1课程设计的目的与要求1.1课程设计目的:1巩固和加深对单片机原理和接口技术知识的理解;2培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;3学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;4掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;5能按课程设计的要求编写课程设计报告,能正确反映设计和实验成果,能用计算机绘制电路图和流程图。
1.2课程设计要求:单片机控制LCD1602液晶显示器滚动显示字符1.3功能简介:1、内容:利用LCD1602液晶显示器滚动显示字符' ZHU NI YI SHENG PING AN'2、目标:(1)掌握单片机控制LCD1602液晶显示器显示字符技术,包括程序设计和电路设计,本任务的效果是让LCD1602液晶显示器滚动显示字符' ZHU NI YI SHENG PING AN'。
(2)用PROTEUS进行电路设计和实时仿真3、知识点链接(1)数字符LCD 模块是一种专用显示字符、数字或符号的液晶显示模块。
这种模块每一个符号由5×7、5×8 或5×11 的点阵像素排列组成的,字符间隔为一个点距,行间隔为一个行距,模块本身附有显示驱动控制电路,可以与单片机的I/O 口线直接连接,使用方便。
目前广泛使用的字符LCD 模块其显示驱动控制电路多是HD44780 或兼容品,其接口信号、操作指令相同。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及应用课程设计学院名称:京江学院专业班级:计算机0801学生姓名:郏晓丹学生学号:3081110006指导教师姓名:陈向益完成时间:2011年 6月27日——2011年7月2日点阵式液晶显示屏的显示程序设计一、设计目的1.熟练掌握C51系统仿真开发系统的应用。
2.加强单片机的综合运用能力、提高单片机的软件编程和调试能力,为以后的学习和开发工作打下良好基础。
3.掌握的液晶的工作原理以及应用设计。
4.掌握小系统开发设计的流程以及设计思路。
二、设计方案实验要求:1)从下到上滚动显示:“江苏大学计算机学院”然后交替显示:“单片机课程设计”“液晶点阵显示屏程序设计”“作者姓名、班级、学号”2)能进行正常的模拟量采样值显示(温度、压力、电位)。
3) 改变字库的内容,显示其它汉字。
4) 改变页地址或列地址,使显示的内容改变位置。
5)其它功能(如左、右移,上下卷、显示图片等)。
设计思路:将程序分成三个模块:1.主函数模块main.c2.模数转换模块ADC.c3.液晶显示模块KS0108.c其中主函数模块中做一些初始化和函数调用工作,模数转换模块中编写取温度,压力,电位值并将其转化为数字量的函数,液晶显示模块实现图片,文字,字母的显示。
三、程序流程图:1系统主流程图如下2主函数流程图3 显示模块流程图4 模数转换模块流程图四、主要的源程序及注释①主函数模块:#include "c8051f020.h"#include <intrins.h>//int code q10[17];void LCD_WriteZM(char x,char y,char *Dot);void Delay1us(unsigned char us){while (us){_nop_(); _nop_(); _nop_(); _nop_(); _nop_();--us;}}void SYSCLK_Init (void){int i; // 延时计数器OSCXCN = 0x67; // 延迟counterstart外部振荡器// 18.432MHz晶体for (i=0; i < 256; i++) ; // 等待振荡器。
启动while (!(OSCXCN & 0x80)) ; // 等待晶体振荡器。
解决OSCICN = 0x88; // 选择外部振荡器作为系统时钟源,使时钟丢失}#define PRT0CF P0MDOUT#define PRT1CF P1MDOUT#define PRT2CF P2MDOUTvoid PORT_Init (void){XBR0 = 0x07; // 使能SMBus,SPI0和UART0 XBR1 = 0x00;XBR2 = 0x44; // 允许交叉开关和弱上拉EMI0CF = 0x27;EMI0TC = 0x21;P74OUT = 0xFF;P0MDOUT = 0x15;P1MDOUT |= 0x3C; //P1.2-P1.5推挽输出P1 &= 0xc3; //P1.2-P1.5=0}void SPI0_Init (void){SPI0CFG = 0x07; // 数据采样第一SCK上升沿// 8位数据字SPI0CFG|=0xC0; //CKPOL =1;SPI0CN = 0x03; // 主模式下,SPI使能;标志清除 SPI0CKR = SYSCLK/2/8000000-1; // SPI时钟<= 8MHz (限制// EEPROM规格。
)}unsigned char Count1ms;void Timer0_Init (void){CKCON|=0x8;TMOD|=0x1; //16BitCount1ms=10;TR0 = 0; // 停止定时器TH0 = (-SYSCLK/1000) >> 8; // 设置定时器0溢出在1msTL0 = -SYSCLK/1000;TR0 = 1; // 启动定时器IE|= 0x2;}void Timer0_ISR (void) interrupt 1 //1ms{TH0 = (-SYSCLK/1000) >> 8;TL0 = -SYSCLK/1000;if (Count1ms) Count1ms--;}void Delay1ms(unsigned char T){Count1ms=T;while (Count1ms);}void Delay1s(unsigned char T){while (T){Delay1ms(200);Delay1ms(200);Delay1ms(200);Delay1ms(200);Delay1ms(200);T--;}}char GetKeyValue(void);//void Test7279(bit LoopFlag);void TestLCD(void);void TestLCD1(void);void TestLCD2(void);void TestLCD3(void);void Test7279(bit LoopFlag);void init_adc(void);unsigned int GetADCValue(char No);void DispLED(char *DispBuf,char ShowDot); //ShowDot 显示小数点位void Write_123(char *buf,char ShowDot);void InitLCD(void);//void DispLED(char *buf);void main (void){unsigned int w;char No,i,buf[6],keyvalue;No=1;WDTCN = 0xde;WDTCN = 0xad; //关看门狗SYSCLK_Init (); //初始化时钟Timer0_Init(); //初始化定时器PORT_Init (); //初始化IO 口 SPI0_Init (); //初始化SPI0 init_adc();CPT1CN|=0x80; //使能比较器1REF0CN = 0x07; //使能片内参考电压 DAC0CN |= 0x80; //使能DAC0 DAC0H=0; DAC0L=0;EA=1; //开中断 Test7279(0);TestLCD(); //调用初始动画 TestLCD4(); //显示按键菜单 for(;;) {keyvalue=GetKeyValue(); //取键值 w = GetADCValue(keyvalue);buf[0]= keyvalue;buf[1]= ' ';buf[2]=(w%10000)/1000;buf[3]=(w%1000)/100;buf[4]=(w%100)/10;buf[5]=(w%10);switch (keyvalue) {case 4:TestLCD(); TestLCD4(); break; case 0:TestLCD4(); break; case 1: InitLCD(); TestLCD1(); Write_123(buf,4); break; case 2: InitLCD(); TestLCD2();Write_123(buf,3); w = GetADCValue(2); break; case 3:InitLCD(); TestLCD3();Write_123(buf,4);w = GetADCValue(3);}}}②KS0108模块主要函数部分:显示16*8点阵字母:void LCD_WriteZM(char x,char y,char *Dot) {char i;for (i=0;i<16;i++){if ((x+i%8)<64){LCD_WriteCommand1(0xB8+y+i/8);LCD_WriteCommand1(0x40+x+i%8);LCD_WriteData1(Dot[i]); }else{LCD_WriteCommand2(0xB8+y+i/8);LCD_WriteCommand2(0x40+x-64+i%8);LCD_WriteData2(Dot[i]);}}}显示16*16点阵汉字:void LCD_WriteHZ(char x,char y,char *Dot) //显示16*16点阵汉字{char i;for (i=0;i<32;i++){if ((x+i%16)<64){LCD_WriteCommand1(0xB8+y+i/16);LCD_WriteCommand1(0x40+x+i%16);LCD_WriteData1(Dot[i]);}else{LCD_WriteCommand2(0xB8+y+i/16);LCD_WriteCommand2(0x40+x-64+i%16);LCD_WriteData2(Dot[i]);}}}将内存中的数转换显示到液晶显示屏上:void Write_123(char *buf,char ShowDot){char i,ch;for (i=0;i<6;i++){ch=buf[i];if(i<ShowDot){if(ch!=' ')LCD_WriteZM(2+10*i,4,(char *)q10[ch]);else{if(ch==' ')LCD_WriteZM(2+10*i,4,(char *)q10[11]);}}else{if(i==ShowDot)LCD_WriteZM(2+10*i,4,(char *)q10[10]);if(ch!=' ')LCD_WriteZM(2+10*i+10,4,(char *)q10[ch]);else{if(ch==' ')LCD_WriteZM(2+10*i+10,4,(char *)q10[11]);}}}}显示一幅位图,并上滚void DispBmpUp(char *buf){int i;DispBmp(buf);for (i = 0; i < 64; i++){Delay1ms(50);LCD_WriteCommand1(0xc0 + i % 64); //设置起始行,通过改变页、列值实现上滚LCD_WriteCommand2(0xc0 + i % 64);}}在液晶屏显示动画、文字等效果:void TestLCD(void){char i;InitLCD();DispBmpUp(screen);Delay1s(3);DispBmpLeft(screen1);Delay1s(5);DispBmpRight(screen2);Delay1s(5);DispBmpDown(screen3);Delay1s(5);InitLCD();Delay1ms(50);}void TestLCD1(void){LCD_WriteHZ(2,1,wen); //显示16*16点阵汉字'wen'LCD_WriteHZ(18,1,du); //显示16*16点阵汉字'du'}void TestLCD2(void){LCD_WriteHZ(2,1,dian); //显示16*16点阵汉字'dian'LCD_WriteHZ(18,1,wei); //显示16*16点阵汉字'wei'}void TestLCD3(void){LCD_WriteHZ(2,1,ya); //显示16*16点阵汉字'ya'LCD_WriteHZ(18,1,li); //显示16*16点阵汉字'li'}void TestLCD4(void){DispBmp(screen4);}3、调试过程将main.c,ADC.c,KS0108.c加入到开发工具中,调试程序,并下载到单片机中运行,首先有“江苏大学计算机学院”一行字向上滚动,然后显示“液晶点阵显示屏程序设计,班级,姓名”当这些字显示完毕后,进入按键菜单选择模式,0为返回菜单键,1为显示温度,2为显示电位,3为显示压力,4为显示动画。