液晶显示屏LCD显示设计课程设计
- 格式:doc
- 大小:1.22 MB
- 文档页数:19
lcd显示系统课程设计一、课程目标知识目标:1. 让学生理解LCD显示系统的基本原理,掌握其组成部分及工作流程。
2. 使学生掌握LCD显示系统的设计方法和步骤,了解不同类型的LCD显示技术。
3. 帮助学生了解LCD显示系统在现实生活中的应用,认识到科技与生活的紧密联系。
技能目标:1. 培养学生运用所学知识进行LCD显示系统设计的能力,包括电路搭建、程序编写和系统调试。
2. 提高学生动手实践能力,培养团队合作精神,提高问题分析和解决能力。
3. 培养学生运用现代技术工具进行资料查询、方案设计和成果展示的能力。
情感态度价值观目标:1. 培养学生对电子科技的兴趣和爱好,激发他们学习科学技术的热情。
2. 培养学生严谨、务实的科学态度,提高他们面对挫折和挑战的勇气。
3. 引导学生关注社会发展,认识到科技创新对国家和社会的重要性,培养他们的责任感和使命感。
本课程针对高年级学生,具有较强的理论性和实践性。
结合学生的认知水平和兴趣特点,课程目标注重知识、技能和情感态度的有机统一。
通过本课程的学习,期望学生能够掌握LCD显示系统的基本原理和设计方法,培养实际操作能力,同时提升对电子科技的热情和责任感。
为实现课程目标,教学过程中应注重理论与实践相结合,鼓励学生积极参与讨论和实践活动,充分调动他们的主观能动性。
二、教学内容1. LCD显示原理:讲解LCD的基本结构、工作原理及显示特性,包括液晶材料、偏振片、驱动电路等关键知识点。
参考教材章节:第三章“液晶显示原理”2. LCD显示系统设计:介绍LCD显示系统设计流程,包括需求分析、电路设计、程序编写、系统调试等环节。
参考教材章节:第四章“液晶显示系统设计”3. 不同类型的LCD显示技术:分析TN、STN、TFT等不同类型LCD显示技术的优缺点及适用场景。
参考教材章节:第五章“液晶显示技术及其应用”4. LCD显示系统应用案例:展示LCD显示系统在生活、工业、医疗等领域的实际应用,激发学生兴趣。
lcd1602课程设计一、课程目标知识目标:1. 学生能理解LCD1602液晶显示屏的基本结构、工作原理及功能。
2. 学生能掌握LCD1602液晶显示屏与微控制器(如Arduino)的连接方法。
3. 学生能了解LCD1602液晶显示屏的指令集,并学会使用相关函数控制显示内容。
技能目标:1. 学生能运用所学知识,自主完成LCD1602与微控制器的硬件连接。
2. 学生能通过编程,实现LCD1602显示自定义文字和图案。
3. 学生能在实际项目中运用LCD1602进行信息展示,提高实际问题解决能力。
情感态度价值观目标:1. 学生通过学习LCD1602液晶显示屏的使用,培养对电子技术和编程的兴趣和热情。
2. 学生在团队合作中,学会沟通、协作,培养团队精神和责任感。
3. 学生能够关注科技创新,意识到学习与实践相结合的重要性,提高自我探索和创新能力。
课程性质:本课程为实践性较强的电子技术课程,旨在让学生掌握LCD1602液晶显示屏的使用方法,培养实际操作能力和编程技能。
学生特点:学生为初中或高中年级,具备一定的电子技术基础和编程能力,对新鲜事物充满好奇,喜欢动手实践。
教学要求:课程要求教师以学生为主体,注重启发式教学,引导学生主动探索,提高实践操作能力。
同时,关注学生个体差异,提供个性化指导,确保课程目标的实现。
通过课程学习,使学生能够将所学知识应用于实际项目中,培养创新精神和问题解决能力。
二、教学内容1. LCD1602基本结构:讲解LCD1602液晶显示屏的构造、各部分功能及其工作原理。
- 教材章节:第二章 电子元件及显示器件2. 硬件连接:介绍LCD1602与微控制器(以Arduino为例)的接线方法,讲解各引脚功能。
- 教材章节:第三章 微控制器及其接口技术3. LCD1602指令集:详细解释LCD1602的指令集,包括清屏、光标移动、显示开关等指令。
- 教材章节:第四章 显示器件控制方法4. 编程控制:学习使用Arduino编程控制LCD1602显示自定义内容,如文字、数字和简单图案。
dsplcd显示屏课程设计一、课程目标知识目标:1. 学生能理解DSPLCD显示屏的基本原理,掌握其构造和功能。
2. 学生能掌握DSPLCD显示屏在现实生活中的应用,了解不同类型显示屏的特点。
3. 学生能了解DSPLCD显示屏在我国科技发展中的地位和作用。
技能目标:1. 学生能够运用所学知识,分析并解决与DSPLCD显示屏相关的问题。
2. 学生能够通过实际操作,掌握对DSPLCD显示屏进行简单维护和故障排查的方法。
3. 学生能够运用创新思维,设计出具有实用价值的DSPLCD显示屏应用方案。
情感态度价值观目标:1. 学生对DSPLCD显示屏产生兴趣,提高对电子科技产品的学习热情。
2. 学生能够认识到科技发展对国家经济和社会进步的重要性,培养民族自豪感。
3. 学生在团队合作中,学会互相尊重、互相帮助,培养良好的团队协作精神。
分析课程性质、学生特点和教学要求:1. 课程性质:本课程为电子技术学科,涉及实践操作和理论知识的结合。
2. 学生特点:学生为初中年级,具备一定的电子技术知识基础,对新鲜事物充满好奇。
3. 教学要求:结合学生特点,注重理论与实践相结合,培养学生的动手能力和创新能力。
二、教学内容1. DSPLCD显示屏的基本原理:包括液晶显示原理、背光系统、驱动电路等。
- 教材章节:第二章“液晶显示技术”2. DSPLCD显示屏的构造与功能:介绍显示屏的各个组成部分及其作用。
- 教材章节:第三章“液晶显示器件的构成与特性”3. DSPLCD显示屏的应用领域:分析不同类型显示屏在实际应用中的优缺点。
- 教材章节:第四章“液晶显示器件的应用”4. DSPLCD显示屏在我国科技发展中的地位与作用:了解我国在显示屏技术领域的发展现状及未来趋势。
- 教材章节:第五章“我国液晶显示产业的发展”5. 实践操作:进行实际操作,包括显示屏的组装、调试和维护。
- 教材章节:第六章“液晶显示器件的组装与调试”6. 创新设计:引导学生运用所学知识,设计具有实用价值的DSPLCD显示屏应用方案。
LCD1602液晶显示课程设计第一章绪论1.1课题背景当今时候是一个信息化的时代,信息的重要性不言而喻的,获取手段显得尤其重要。
人们所接受的信息有70%来自于人的视觉,无论用何种方式获取的信息最终需要有某种显示方式来表示。
在当代显示技术中,主流的有LED显示屏和LCD液晶显示,而在这些显示技术中,尤其以液晶显示器LCD(Liquid crystal display)为代表的平板显示器发展最快,应用最广。
LCD是典型的发光器件,它一材料科学为基础,综合利用了精密机械,光电及计算机技术,并正在微机械,微光学,纤维光学等前沿领域研究基础上,向高集成化,智能化方向发展。
液晶显示技术发展迅猛,市场预测表明,液晶显示平均年销售呈增长10%~13%,不久的将来有可能取代CRT,成为电子信息产品的主要显示器件,另外,液晶显示器对空间电磁辐射的干扰不敏感,且在紧凑的仪器空间不需要专门的屏蔽保护,因而课大大简化仪器的结构和制造成本,在各种便携式仪器,仪表将会越来越广泛的应用。
特别是在电池供电的单片机产品中,液晶显示更是必选的显示器件。
1.2课题设计目标本设计是基于AT89C51芯片单片机为主控芯片,结合1602液晶显示模板等外围电路,通过软件程序,来实现液晶显示英文字母。
本次设计的目的在于利用单片机和IIC技术来显示英文字母。
1.3课程设计的主要工作(1)对系统的各个模块的各个功能进行深入分析和研究,在对课题所采用的方案进行可行详细的研究后设计具体功能电路。
(2)熟悉所选芯片的功能并完成具体电路设计。
(3)对系统的最终指标进行测试,针对系统的不足,进行分析并提出一些改正方法。
1.4 设计要求(1)运行IIC总线技术。
(2)循环显示字母。
第二章硬件设计2.1 LCD1602简介2.1.1 LCD1602引脚功能LCD1602引脚如图2.1所示图2.1 LCD1602引脚图引脚图的功能如表2—1所示表2—1引脚功能图2.1.2 LCD1602显示模指令集(1)清屏(2)归位(3)输入方式设置功能:设置光标,画面移动方式。
lcd屏显示系统时间课程设计一、课程目标知识目标:1. 学生能理解LCD屏显示系统的基本原理,掌握显示系统时间的基础知识。
2. 学生能描述LCD屏的显示原理,了解时钟模块的工作机制。
3. 学生掌握通过编程控制LCD屏显示系统时间的方法。
技能目标:1. 学生能运用所学知识,进行LCD屏显示系统的硬件连接和软件编程。
2. 学生能通过实际操作,调试并优化显示效果,确保系统时间准确显示。
3. 学生具备分析和解决问题的能力,能够解决LCD显示系统时间过程中遇到的问题。
情感态度价值观目标:1. 学生培养对电子技术和编程的兴趣,增强学习信心,提高自主学习能力。
2. 学生通过团队合作完成项目,培养沟通协作能力和团队精神。
3. 学生在实践过程中,体会科技改变生活的意义,增强创新意识和责任感。
课程性质:本课程为实践性较强的课程,结合电子技术和编程知识,培养学生动手操作和解决问题的能力。
学生特点:学生具备一定的电子技术基础和编程能力,对实际操作和实践活动有较高的兴趣。
教学要求:教师需引导学生掌握LCD显示系统时间的相关知识,注重实践操作和团队合作,提高学生的动手能力和创新能力。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. LCD显示原理及特性:介绍LCD的基本结构、工作原理、显示特性,使学生了解LCD作为显示设备的基础知识。
- 教材章节:第五章“显示技术”第二节“液晶显示技术”2. 系统时间显示设计:讲解系统时间的基础知识,包括时钟模块的原理、编程方法及其与LCD屏的连接方式。
- 教材章节:第七章“实时时钟”第一节“时钟模块基础”3. 硬件连接与编程:详细讲解LCD屏与微控制器(如Arduino)的硬件连接方法,以及编程控制LCD显示系统时间的过程。
- 教材章节:第八章“微控制器接口技术”第三节“LCD接口技术”4. 实践操作与调试:组织学生进行实际操作,包括硬件连接、软件编程、调试优化等环节,确保系统时间准确显示。
LCD多级菜单课程设计一、课程目标知识目标:1. 让学生理解LCD多级菜单的概念及其在信息技术中的应用。
2. 掌握设计LCD多级菜单的基本步骤和编程原理。
3. 学习并运用相关的硬件控制知识,实现菜单界面的显示和操作。
技能目标:1. 培养学生运用编程软件进行LCD多级菜单设计的能力。
2. 提高学生解决问题的能力,能够根据实际需求调整菜单设计。
3. 培养学生团队协作和沟通能力,通过小组合作完成课程项目。
情感态度价值观目标:1. 培养学生对信息技术课程的兴趣和热情,激发学生主动学习的积极性。
2. 增强学生的创新意识,鼓励学生勇于尝试,发挥个人想象力和创造力。
3. 培养学生严谨、认真的学习态度,养成良好的编程习惯。
课程性质:本课程为信息技术课程,结合硬件控制与编程实践,旨在提高学生的动手能力、编程思维和创新能力。
学生特点:六年级学生具备一定的信息技术基础,对编程有一定了解,好奇心强,喜欢动手实践。
教学要求:结合学生特点,注重理论与实践相结合,关注个体差异,提高学生的综合素养。
通过课程学习,使学生能够独立完成LCD多级菜单的设计与实现,并在此过程中培养良好的团队协作能力和创新精神。
二、教学内容1. LCD基础知识:介绍LCD的基本原理、结构及其在显示技术中的应用。
- 教材章节:第三章第二节- 内容:LCD显示原理、LCD显示模块特点。
2. 多级菜单设计原理:讲解多级菜单的概念、设计原则和实现方法。
- 教材章节:第五章第一节- 内容:多级菜单结构、菜单设计流程、界面布局。
3. 编程语言与开发环境:学习使用Arduino编程语言和开发环境进行LCD多级菜单编程。
- 教材章节:第四章- 内容:Arduino编程基础、串口通信、LCD库函数使用。
4. 硬件控制与接口:了解LCD模块与主控板的连接方式,学习相关硬件控制知识。
- 教材章节:第六章第二节- 内容:I2C通信协议、LCD模块接线方法、硬件控制指令。
5. 实践操作:分组进行LCD多级菜单设计,实现菜单界面显示与操作功能。
《CPLD/FPGA 》课程设计报告题目:128X64液晶显示程序设计院(系):信息科学与工程学院专业班级:通信1001班学生姓名:訚鹏学号:20101181021同组学生:秦佩指导教师:吴莉20 13 年 10 月 14 日至20 13 年 10 月 25 日华中科技大学武昌分校制128X64液晶显示程序设计课程设计任务书目录摘要 (3)1.课程设计的目的 (4)2.课程设计题目和要求 (4)3.课程设计报告内容 (4)3.1课程设计原理 (4)3.2课程设计相关图 (5)3.3课程设计程序 (6)3.4课程设计的结果 (14)3.5课程设计的波形仿真 (15)4.课程设计所遇到的问题及解决方案 (15)5.课程设计总结 (17)摘要在硬件电子电路设计领域中,电子设计自动化(EDA)工具已成为主要的设计手段,而VHDL语言是EDA的关键技术之一,它采用自顶向下的设计方法,即从系统总体出发,自上至下地将设计任务分为不同的功能模块,最后将各功能模块连接形成顶层模块,完成系统硬件的整体设计。
本课设主要是基于FPGA的128X64的液晶显示控制器。
控制部分采用VHDL语言编写,主体程序采用状态机作为主要控制方式。
关键字:VHDL,状态机,128641 课程设计的目的通过对液晶屏的安装调试,需学习掌握:(1)液晶屏显示文字的整体设计流程。
(2)Quartus2软件的调试方法及相关工具的使用。
(3)液晶屏LCD12864的使用方法。
(4)各种常见元器件的选择及使用。
2 课程设计题目描述和要求题目描述:频率计的设计制作要求:用VHDL编程控制LCD12864显示的频率计。
(1)用LCD12864显示“频率及姓名”等内容。
(2)显示过程:实验板通电开机后,下载运行之后,LCD显示器显示“频率及姓名”,本组成员等内容。
(3)熟悉单片机系统的工作原理及调测方法。
软硬件安装调测完成后根据系统的工作原理、过程、测试数据及遇到的问题与处理情况、体会等完成课设报告。
LCD液晶显示屏设计书一、设计的目的1.学习液晶显示的编程方法,了解液晶显示模块的工作原理。
掌握液晶显示模块与单片机的接口方法。
2.学习和了解微型打印机模块的工作原理。
掌握微型打印机模块与单片机的接口方法。
二、设计的题目和要求编程实现在液晶显示屏上显示且实现打印双行中文汉字“XX大学 XX学院”。
三、设计报告的容3.1、总体实验功能要求设计并实现程序:1、在点阵式LCD模块上双行显示“XX大学 XX学院”。
2、打印机双行打印“大学信息学院”字样。
3.2、实现方案1、LCD液晶显示屏模块在点阵式LCD模块上双行显示“XX大学 XX学院”:硬件接口接口协议为请求/应答(REQ/BUSY)握手方式。
应答 BUSY 高电平(BUSY =1)表示 OCMJ 忙于部处理,不能接收用户命令;BUSY 低电平(BUSY =0)表示 OCMJ空闲,等待接收用户命令。
发送命令到 OCMJ 可在 BUSY =0 后的任意时刻开始,先把用户命令的当前字节放到数据线上,接着发高电平 REQ 信号(REQ =1)通知 OCMJ 请求处理当前数据线上的命令或数据。
OCMJ 模块在收到外部的 REQ 高电平信号后立即读取数据线上的命令或数据,同时将应答线 BUSY 变为高电平,表明模块已收到数据并正在忙于对此数据的部处理,此时,用户对模块的写操作已经完成,用户可以撤消数据线上的信号并可作模块显示以外的其他工作,也可不断地查询应答线 BUSY 是否为低(BUSY =0?),如果BUSY =0,表明模块对用户的写操作已经执行完毕。
可以再送下一个数据。
如向模块发出一个完整的显示汉字的命令,包括坐标及汉字代码在共需 5 个字节,模块在接收到最后一个字节后才开始执行整个命令的部操作,因此,最后一个字节的应答BUSY 高电平(BUSY =1)持续时间较长,具体的时序图和时间参数说明查阅相关手册。
2. 点阵打印机模块打印机双行打印“大学信息学院”字样:进纸按钮:按下时,自动进纸。
液晶显示器设计课程设计方案1. 引言液晶显示器是现代电子设备中最常见的显示技术之一,其应用范围广泛,包括电视、计算机显示器、移动设备等。
设计一门液晶显示器设计课程,旨在培养学生对液晶显示器的设计、原理与应用的深入理解,并提供实践机会,以加强他们的技能和知识。
2. 课程目标本课程旨在使学生:- 理解液晶显示器的基本原理和技术;- 掌握液晶显示器的设计方法和工艺流程;- 获得实践经验,能够独立设计液晶显示器;- 学会评估和优化液晶显示器性能;- 探索液晶显示器的新技术和应用。
3. 课程内容3.1 基础知识介绍- 液晶材料与结构- 液晶显示原理- 液晶显示器的基本组成3.2 液晶显示器设计流程- 设计需求分析- 液晶显示器参数选择与优化- 驱动电路设计- 背光设计- 信号处理电路设计3.3 液晶显示器工艺流程- 探讨液晶显示器的工艺流程- 熟悉LCD面板组装和封装技术- 了解液晶显示器厂商的测试和质量控制流程3.4 液晶显示器性能评估- 了解液晶显示器测试方法- 学习如何评估和优化液晶显示器的质量和性能3.5 液晶显示器的新技术和应用- 探索当前液晶显示器技术的发展趋势- 了解新兴液晶显示器应用领域,如增强现实和虚拟现实4. 教学方法本课程将采用多种教学方法,包括:- 理论讲授:通过课堂讲解,教授液晶显示器基础知识和设计方法;- 实验实践:设计液晶显示器原型,进行实践操作,巩固理论知识;- 项目设计:学生将分成小组,组成液晶显示器设计项目,包括需求分析、设计与优化、工艺流程等;- 讲座和研讨会:邀请相关行业专家进行分享和交流,拓展学生的视野。
5. 评估与考核本课程将根据学生的表现进行评估与考核,包括:- 平时表现:包括课堂参与、实验操作和小组项目进展;- 实验报告:学生需撰写实验报告,描述实验设计、实验过程和结果分析;- 课程项目评估:根据小组设计项目的质量和进展情况进行评估;- 期末考试:综合测试学生对课程内容的理解和掌握程度。
江西理工大学应用科学学院SOPC/EDA综合课程设计报告1.1 液晶显示屏原理1.1.1 液晶显示屏的LCD的使用原理和设置;1.1.2 液晶显示模块设计方法。
1.1.3 查询有关课程设计汉字的国标码1.1.4 有关FPGA的知识1.1.5 端口的设计方法1.1.6 熟悉GW48系列SOPC/EDA实验开发系统及现代DSP实验开发系统的使用方法。
1.2 课程设计题目:液晶显示屏LCD显示接口设计1.2.1 课程设计目的及基本要求液晶显示屏已广泛应用于人们的日常生活中,在各种领域中起到越来越重要的位置。
因此,掌握和控制液晶显示屏是非常重要的技能。
进行课程设计是加强实践,提高动手能力的重要环节,通过课程设计,同时在软件编程,排错调试,相关仪器设备的使用技术等方面得到全面的提高。
掌握液晶显示屏实现的相关方法,为将来的实际工作打下一定的基础。
本课程设计是以SED1520控制器为基础,基本要求是:1、掌握SED1520控制器基本结构2、掌握液晶显示屏的工作原理及使用方法3、掌握用VHDL语言编写程序4、掌握Quartus II的使用方法5、掌握GW48系列SOPC/EDA实验开发系统:a:闲置不用GW48系统时,必须关闭电源,拔下电源插头!!!Sopc/EDA 课程设计:液晶显示屏LCD 显示接口设计b :在实验中,当选中某种模式后,要按一下右侧的复位键,以使系统进入 该结构模式工作。
c :换目标芯片时要特别注意,不要插反或插错,也不要带电插拔,确信插对后才能开电源。
其它接口都可带电插拔。
请特别注意,尽可能不要随 意插拔适配板,及实验系统上的其他芯片。
d :并行口工作模式设置在“EPP ”模式!e: 跳线座“SPS ” 默认向下短路(PIO48);右侧开关默认拨向“TO MCU ”。
f: 对于GW48-PK2系统,左下角拨码开关除第4档“DS8使能”向下拨(8数码管显示)外,其余皆默认向上1.3、设计要求使用FPGA 设计一个液晶显示屏LCD 显示的控制器,使其能够显示文字、 数字或图形(根据需要选择LCD 屏),至少需要显示“江西理工大学应用科学 学院课程设计”字样,另外需要显示班级姓名和日期。
其它功能可自行增加! (型号GW48-PK2)2.1 元件原理图nCS 1DATA 2Vcc 3GND 4ASDI 5DCLK 6Vcc 7Vcc 8U4EPCS 1VDD 3.3VDD 3.3nCSO DATA 0DCLK ASDO12345678910JP2AS DOWNLOADDCLKCONF _DONE VDD 3.3nCONFIG nCE DATA 0ASDOnCSOAS DOWNLOADJATG12345678910JP1JATGTCK R41KTDO TMS R31K VDD 3.3TDIVDD 3.3R21K VDD 3.3图1 下载/编程接口电路图设计者:刘文志图2 液晶显示屏2.1.1 模块引脚说明表1 模块引脚逻辑工作电压(VDD):3.3~5.5V电源地(GND):0V工作温度(Ta):0~+50℃(常温)/ -20~70℃(宽温)Sopc/EDA课程设计:液晶显示屏LCD显示接口设计2.1.2 接口时序模块有并行和串行两种连接方法(时序如下):a) 8位并行连接时序图图3 MPU写资料到模块图4 MPU从模块读出资料a)串行连接时序图图5 串行时序图设计者:刘文志表2 时钟周期表串行数据传送共分三个字节完成:第一字节:串口控制——格式 11111ABCA为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCD。
B为数据类型选择: H表示数据室显示数据,L表示数据室控制指令C固定为0第二字节:(并行)8位数据的高4位——格式DDDD0000第三字节:(并行)8位数据的低4位——格式DDDD0000串行接口时序参数:(测试条件: T=25℃ VDD=4.5V)2.1.3 用户指令集指令表1:(RE=0:基本指令集)Sopc/EDA课程设计:液晶显示屏LCD显示接口设计表3 基本指令表指令表2:(RE=1:扩充指令集)表4 扩充指令表设计者:刘文志2.1.4 FPGA 与LCD 连接方式FPGA 与LCD 连接方式:(仅PK2型含此)。
由实验电路结构图COM 可知,默认情况下, FPGA 是通过89C51单片机控制LCD 液晶显示的,但若FPGA 中有Nios 嵌入式系统,则能使 FPGA 直接控制LCD 显示。
方法是拔去此单片机(在右下侧),用连线将座JP22/JP21(LCD 显示器引脚信号)各信号分别与座JP19/JP20(FPGA 引脚信号)相连接即可。
D+(PIO65)D-(PIO64)GNDVCCSLAVEUSB PIO65PIO64OO O O选择开关T O F P G A T O M C U键复位接PC 机串行通讯接口接口电路235RS-232B4P27P26P25P24P23P22P21P20PSEN ALE EA P07P06P05P04P03P02P01P00VCC A T 89C 5140393837363534333231302928272625242223212019181716151413121110987654321GNDX1X2PIO66PIO67PIO77PIO76PIO79PIO78P31P30RESET PIO75PIO74PIO73PIO72PIO71PIO70PIO69PIO68LCD液晶显示屏VCC GND P22P21P20P00P01P02P03P04P05P06P07P23P241234567891011121314151617181920图6 实验电路结构图COM本方案采用的FPGA 为Alter 公司的ACEX1K30芯片,它可提供系统的时钟及读写控制, ACEX 系列的FPGA 由逻辑数组块LAB (Logic array block )、嵌入式数组块EAB (embedded arr ay block )、快速互联以及IO 单元构成,每个逻辑数组块包含8个逻辑单元LE (logic element )和一个局部互联[1]。
每个逻辑单元则由一个4输入查找表(LUT )、一个可 编程触发器、快速进位链、级连链组成,多个LAB 和多个EAB 则可通过快速通道互相连 接。
EAB 是ACEX 系列器件在结构设计上的一个重要部件,他是输入埠和输出埠都带有触 发器的一种灵活的RAM 块,其主要功能是实现一些规模不太大的FIFO 、ROM 、RAM 和双埠 RAM 等。
在本液晶显示接口电路中,EAB 主要用宏功能模块实现片上ROM 。
它通过调用FPGASopc/EDA课程设计:液晶显示屏LCD显示接口设计上的EAB资源来实现汉字的显示和字符的存储,并根据控制信号产生的地址值从ROM中读取字符值,然后送LCD显示器进行显示。
由于所用的图形点阵液晶块内置有SED1520 控制器,所以,其电路特性实际上就是SED1520的电路特性。
SED1520的主要特性如下:(1)具有液晶显示行驱动器,具有16路行驱动输出,并可级联实现32行驱动。
(2)具有液晶显示列驱动器,共有61路列驱动输出。
(3)内置时序发生器,其占空比可设置为1/16和1/32两种。
(4)内藏显示内存,显示内存内的数据可直接显示,"1"为显示,"0"为不显示。
(5)接口总线时序可适配8080系列或M6800系列,并可直接与计算机接口。
(6)操作简单,有13条控制指令。
(7)采用CMOS工艺,可在电压低至2.4-7.0V时正常工作,功耗仅30μW。
本设计所用的字符液晶模块CM12232由两块SED1520级连驱动,其中一个工作在主工作方式下,另一个工作在从方式下,主工作方式SED1520负责上半屏16行的驱动和左半屏的61列驱动,从工作方式的SED1520则负责下半屏16行的驱动和右半屏的61列驱动,使能信号E1、E2用来区分具体控制的是那一片SED1520,其系统的硬件连接图如图1所示。
由图1可见,该系统的硬件部分连接十分简单,其中FPGA部分没画出,而液晶与FPGA的接口则可直接以网表的形式给出,将它们直接与FPGA的普通I/O引脚相连即可。
系统的软件接口实现具体实现的重点是如何从存放有字符的ROM块中读出数据,并按照液晶的时序正确的写入,在介绍具体实现方法前,首先要熟悉SED1520的指令。
SED1520的控制指令表设计者:刘文志设计过程4.1 初始化部分的状态机设计根据字符模块初始化的流程图:图7 LCD初始化流程图4.2 时钟模块的设计由于FPGA开发板上自带的晶振频率为50MHZ,而所需要的时钟频率则需要小于13.9K。
因此需要一个分频器对其进行分频。
这里采用简单的计数器对其进行分频,通过分频器将外部输入的32 MHZ的信号分成频率为153600HZ的信号。
在分频之后由于时钟信号需要同时控制LCD模块以及FPGA的模块,因此需要编写一个程序,使得两者之间同步。
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY baud ISport(clk,resetb:in std_logic;bclk:out std_logic);end baud;architecture Behavioral of baud isbeginSopc/EDA课程设计:液晶显示屏LCD显示接口设计process(clk,resetb)variable cnt:integer;beginif resetb='1' thencnt:=0;bclk<='0';elsif rising_edge(clk)thenif cnt>=208 then cnt:=0;bclk<='1';else cnt:=cnt+1;bclk<='0';end if;end if;end process;end behavioral;图8 时钟模块图9 系统的仿真图形4.3 中文字符部分的数据模块中文部分由于VHDL中无法识别中文,使用时需要参照中文字符表,将需要的字符所对应的数据输入RAM,然后通过和英文模块不重复的符号来实现对其的调用。
如“江”这个中文字符,所对应国标码”bdad”,因此在函数部分应为:constant data_buf : data_buffer := (x"bd",x"ad");本程序驱动液晶显示“江西理工大学应用科学学院课程设计”“班级”“姓名”“日期”Library IEEE;Use IEEE.STD_LOGIC_1164.ALL;Use IEEE.STD_LOGIC_ARITH.ALL;Use IEEE.STD_LOGIC_UNSIGNED.ALL;entity LCD isgeneric(divide_to_100k :integer:=1000);Port(clk, rst:in STD_LOGIC;Rw, rs, e, lcd_rst :out STD_LOGIC;Lcd_data:out STD_LOGIC_VECTOR(7 downto 0));end LCD;architecture Behavioral of LCD issignal clk_100k:std_logic;type state is(s0,s1,s2,s3,s4);signal current_s: state ;type data_buffer is array (0 to 43) of std_logic_vector ( 7 downto 0 ) ; constant data_buf : data_buffer := (x"bd",x"ad",x"ce",x"f7",x"c0",x"ed",x"b9",x"a4",x"b4",x"f3",x"d1",x"a7",x"d3",x"a6",x"d3",x"c3",x"bf",x"c6",x"d1",x"a7",x"d1",x"a7",x"d4",x"ba",x"bf",x"ce",x"b3",x"cc",x"c9",x"e8",x"bc",x"c6",x"b0",x"e0",x"bc",x"b6",x"d0",x"d5",x"c3",x"fb",x"c8",x"d5",x"c6",x"da");beginprocess(clk)variable cnt:integer range 0 to divide_to_100k;beginif rising_edge(clk)then cnt:=cnt+1;if cnt=divide_to_100k then cnt:=0;end if;if cnt<divide_to_100k/2 then clk_100k<= '0';else clk_100k <= '1';end if;end if;end process;process(clk_100k)variable cnt1:integer range 0 to 500;variable cnt1_1:integer range 0 to 100;variable code_cnt:integer range 0 to 13;variable data_cnt:integer range 0 to 48;beginif rising_edge(clk_100k)thenif rst = '1' then current_s <= s0 ; cnt1 := 0 ;cnt1_1 := 0;code_cnt := 0 ; data_cnt := 0 ; lcd_rst <= '0';else case current_s iswhen s0=> rw<= '1';rs <= '1';e <= '1';cnt1:=cnt1+1; if cnt1 < 250 then lcd_rst <= '0';elsif cnt1 < 500 then lcd_rst <= '1';elsif cnt1=500 thenlcd_rst <= '1';cnt1 := 0;current_s <= s1;end if;when s1=>cnt1_1:=cnt1_1+1;if cnt1_1 < 1*3 then e <= '1';rs <= '0';rw <= '0'; elsif cnt1_1<2*3 then lcd_data<=x"0c";elsif cnt1_1<10*3 then e<='0';elsif cnt1_1=10*3 then cnt1_1:=0;current_s<=s2; end if;when s2=>cnt1_1:=cnt1_1+1;if cnt1_1<1*3 then e<='1';rs<='0';rw<='0';elsif cnt1_1<2*3 then lcd_data<=x"80";elsif cnt1_1<10*3 then e<='0';elsif cnt1_1=10*3 then cnt1_1:=0;current_s<=s3; end if;when s3=>if cnt1_1<1*3 then e<='1';rs<='1';rw<='0';elsif cnt1_1<2*3 then lcd_data<=data_buf(data_cnt); elsif cnt1_1=2*3 then data_cnt:= data_cnt+1;elsif cnt1_1<100 then e<='0';end if;cnt1_1:=cnt1+1;if cnt1_1=100 then cnt1_1:=0;if data_cnt=16 then current_s<=s4;data_cnt:=0;end if;end if;when others=>current_s<=s0;end case;end if;end if;end process;end Behavioral;图10 显示文字的模块图11 系统的仿真图形4.4 图形的数据模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY lcdlinehozi ISPORT( CLK,key3: IN STD_LOGIC;CK0,DISP,Hsync,Vsync:OUT STD_LOGIC;rgb:OUT STD_LOGIC_VECTOR(0 TO 23));END;ARCHITECTURE WX OF lcdlinehozi ISSIGNAL CLK_TEMP1,CLK_TEMP2,CK :STD_LOGIC ;SIGNAL CNT1,CNT2:STD_LOGIC_VECTOR(2 DOWNTO 0); signal cnt:std_logic_vector(1 downto 0);SIGNAL HS_CNT,VS_CNT:INTEGER RANGE 0 TO 525; signal rgbx,rgby: STD_LOGIC_VECTOR(0 TO 23); CONSTANT THp:INTEGER :=41;CONSTANT THb:INTEGER :=2;CONSTANT THf:INTEGER :=2;CONSTANT TVp:INTEGER :=10;CONSTANT TVb:INTEGER :=2;CONSTANT TVF:INTEGER :=2;CONSTANT THd:INTEGER :=480;CONSTANT TVd:INTEGER :=272;BEGINPROCESS(key3)BEGINIF key3'event and key3='1' THENIF cnt="10" THEN cnt<="00";else cnt<=cnt+1; end if;end if;end process;process(cnt)beginif cnt="00" then rgb<="111111111111111111111111";elsif cnt="01"then rgb<=rgbx;elsif cnt="10"then rgb<=rgby;else rgb<="000000000000000000000000";end if;end process;process(hs_cnt,vs_cnt)beginif hs_cnt<102 then rgbx<="000000000000000000000000"; elsif hs_cnt<162 then rgbx<="000000000000000011111111"; elsif hs_cnt<222 then rgbx<="111111110000000000000000"; elsif hs_cnt<282 then rgbx<="000000001111111111111111"; elsif hs_cnt<342 then rgbx<="000000001111111100000000"; elsif hs_cnt<402 then rgbx<="111111110000000011111111"; elsif hs_cnt<462 then rgbx<="111111111111111100000000"; elsif hs_cnt<522 then rgbx<="111111111111111111111111"; else rgbx<="101010101010101010101010";end if;if vs_cnt<43 then rgby<="000000000000000000000000"; elsif vs_cnt<75 then rgby<="000000000000000011111111"; elsif vs_cnt<107 then rgby<="111111110000000000000000"; elsif vs_cnt<139 then rgby<="000000001111111111111111"; elsif vs_cnt<171 then rgby<="000000001111111100000000";elsif vs_cnt<203 then rgby<="111111110000000011111111"; elsif vs_cnt<235 then rgby<="111111111111111100000000"; elsif vs_cnt<267 then rgby<="111111111111111111111111"; else rgby<="101010101010101010101010";end if;end process;CLOCK:PROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1'THENIF CNT1=2 THEN CNT1<="000";ELSE CNT1<=CNT1+1;END IF;END IF;END PROCESS;PROCESS (CLK)BEGINIF CLK'EVENT AND CLK='0' THENIF CNT2=2 THEN CNT2<="000";ELSE CNT2<=CNT2+1;END IF;END IF;END PROCESS;PROCESS(CLK)BEGINIF CLK'EVENT AND CLK='1' THENIF CNT1=0 THEN CLK_TEMP1<='1';ELSIF CNT1=1 THEN CLK_TEMP1<='0';END IF;END IF;END PROCESS;PROCESS (CLK)BEGINIF CLK'EVENT AND CLK='0'THENIF CNT2=0 THEN CLK_TEMP2<='1';ELSIF CNT2=1 THEN CLK_TEMP2<='0';END IF;END IF;END PROCESS;CK<=CLK_TEMP1 OR CLK_TEMP2;CK0<=CK;PROCESS(CK)BEGINIF CK'EVENT AND CK='1' THENIF HS_CNT=THp-1 THENHsync<='1'; HS_CNT<=HS_CNT+1;ELSIF HS_CNT=THp+THb+THd+THf-1 THEN--524HS_CNT<=0;Hsync<='0';IF VS_CNT=TVp+TVb+TVd+TVf-1 THEN--285 VSVS_CNT<=0;Vsync<='0';DISP<='1';ELSIF VS_CNT=TVp-1 THENVsync<='1';VS_CNT<=VS_CNT+1;ELSE VS_CNT<=VS_CNT+1;END IF;ELSE HS_CNT<=HS_CNT+1;END IF;END IF;END PROCESS;END WX;图12 显示图像模块图13 系统的仿真图形实习总结这次实习是我们第一次做课程设计,对我们来说很重要。