版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、燕山大学课 程 设 计 说 明 书题目: 液晶显示控制实验 学院(系): 电气工程学院 年级专业: 09自动化仪表3班 学 号: 090103020199 学生姓名: 苑 海 川 指导教师: 张 淑 清 教师职称: 教 授 燕山大学课程设计(论文)任务书院(系):电气工程学院 基层教学单位:自动化仪表系学 号090103020199学生姓名苑海川专业(班级)09仪表3班设计题目 液晶显示控制实验设计技术参数1. 独立完成设计任务。2. 编程,上机调试。3. 连接硬件试验线路,实现所要求的功能。4. 完成设计,提交课程设计报告。 设计要求1. 利用实验上的液晶显示屏电路,编写程序控制显示,输出汉
2、字。2. 了解液晶显示屏的控制原理及方法。3. 了解点阵汉子的显示原理。工作计划软件编程与硬件调试相结合,绘制设计流程图,并编程进行硬件实现。参考资料1. 单片机原理及应用技术张淑清,国防工业出版社(教材)2. 过程控制系统及仪表 邵裕森 编(教材)3. 单片机及应用 李大友 高等教育出版社 (教材)4. 机械量测量机械工业出版社(教材)周次一周应完成任务绘制硬件电路,软件流程图。熟悉伟福单片机编程环境,读程序,修改软件参数,修改硬件地址,硬件调试,撰写课程设计报告。指导教师签字张淑清基层教学单位主任签字谢平说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。2012年06 月 29
3、 日 目录目录3摘要4第一章 绪论51.1 硬件环境分析51.2 实验箱简介5第二章 课程设计目的及课题分析62.1 课程设计目的62.2课题分析6第三章 实现原理83.1 点阵lcd的显示原理83.2 取模93.3功能扩展部分11第四章 proteus硬件仿真124.1 硬件模拟软件介绍124.2程序流程图14第五章 主要的源程序及注释15第六章 程序调试及结果分析246.1调试过程246.2在程序设计和调试过程中,遇到和解决的几个问题:246.3结论24心得体会25参考文献26摘要本文详细介绍了基于单片机和lab2000实验箱的液晶显示实验,并利用伟福仿真软件实现了程序的编译和连接,还利用
4、proteus仿真软件对硬件电路进行了绘制和仿真。本文系统的从总体设计思路、汉字取模的原理、液晶显示的原理、电路绘制和仿真和最好的上箱实验几个方面介绍了本次液晶显示实验。基本掌握了电路仿真和绘制的仿真程序,了解了一些简单的硬件知识,对课本所学的理论知识有了更加深入的了解,对以后的学习也更有针对性。关键字:伟福仿真,lab2000,proteus仿真软件。 第一章 绪论1.1 硬件环境分析本设计是设计一个单片机控制的点阵液晶显示屏上显示“南京伟福”字样的设计近年来随着科学技术的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统的控制检测日新月异更新。本实验采用芯片,系统设计所需硬件都已集成
5、于lab6000实验箱上。软件使用wave6000,并用 80c51汇编语言进行编程;该系统可以完成汉字字模的显示。当显示一次字模后led指示灯闪亮一次提示显示完成。汉字字模是各类电子装置显示汉字的依据, 在工程应用中汉字字模都是从计算机的各种字库文件中获取, 本文从应用的角度使用字模代码。1.2 实验箱简介 本次设计使用了lab6000实验箱进行仿真,lab6000系列逻辑分析仪是一款紧凑、快速调试数字电路设计强有力的便携式逻辑分析仪;高速的usb2.0接口、高端的fpga、强大的arm处理器等组成的嵌入式系统全方位智能控制;高速、高效、高性能,帮你轻松搞定问题。lab6000系列逻辑分析仪
6、实现了业界领先的高带宽、大容量的高速采集技术,采样率从200m到500m不等,32通道每通道容量最高达16m;功能灵活强大,集逻辑分析仪、总线分析仪、协议分析仪、频率计、逻辑笔等多种测量开发仪器之大成于一身,适用于各种数字电路的开发、测量、分析和调试工作,还为方便某些特殊的用户提供定制插件服务,是电子研发、电子测量工程师、高校师生的科研开发和教学的得力助手。第二章 课程设计目的及课题分析2.1 课程设计目的1.熟练掌握c51系统仿真开发系统的应用。2加强单片机的综合运用能力、提高单片机的软件编程和调试能力,为以后的学习和开发工作打下良好基础。3掌握的液晶的工作原理以及应用设计。4掌握小系统开发
7、设计的流程以及设计思路。2.2课题分析本实验仪采用的液晶显示屏内置控制器为sed1520,点阵为122x32,需要两片sed1520组成,由e1、e2分别选通,以控制显示屏左右两边的屏。图形液晶显示模块有两种连接方式。一种为直接访问方式,一种为间接控制方式。本实验仪采用直接访问方式。直接控制方式就是将液晶显示模块的接口作为存储器或i/o设备直接挂在计算机总线上。计算机通过地址译码控制e1、e2选通;读/写操作信号r/w由地址线a1控制;数据/命令存储器选择信号a0由地址线a0控制。实验电路图如下图所示。地址映射如下(地址中的x由lcd cs决定,可参见地址译码部分说明)0x00h0x01h0x
8、02h0x03h0x04h0x05h0x06h0x07h写e1 指令写e1数据读e1状态读e1数据写e2指令写e2数据读e2状态读e2数据间接控制方式是计算机通过自身的或系统的并行接口与液晶显示模块连接,如8031的p1口和p3口,8255的并行接口芯片。计算机通过对该并行接口输出状态的编程操作,完成对液晶显示模块所需时序的操作和数据的传输。这种间接控制方式的电路简单,控制时序通过编程来实现。第三章 实现原理3.1 点阵lcd的显示原理 在数字电路中,所有的数据都是以0和1保存的,对lcd控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)
9、即可。而对于中文,常用却有6000以上,于是我们的dos前辈想了一个办法,001110000x38010001000x44010001000x44010001000x44010001000x44010001000x44001110000x38000000000x00就是将ascii表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。 字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如数字的0在字模的记载方式如图1所示:图1 “0”字模图 而中文的“你”在字模中的记载却如图
10、2所示:图2 “你” 字模如果显示汉字的电子装置能够随时从pc 机获得显示点阵( 如通过串口通讯或通过局域网通讯) , 则应使用windows 下的truetype 字库。truetype 实际上就是一种高级的曲线轮廓字库, 如果直接研究其结构自己编写数显示是非常困难的, 实际应用中都是使用windows 提供的函数实现。笔者下面介绍使用windows api 函数获取字模的方法。读点取字模的思路是, 在屏幕上显示汉字, 然后逐点读取显示区域内每个点颜色, 生成点阵字模。 3.2 取模在编写软件代码之前必须要先掌握汉字取模的方法。要得到上表中的文字,我们可以借助取模软件来完成。目前点阵lcd的
11、取模软件有很多,我们以本开发板配套的取模软件为例来介绍一下汉字的取模方法。打开取模软件出现如下显示界面:在文字输入区中输入文字,我们以输入一个欢迎的“欢”字为例,了解其取模过程。在文字输入区中输入“欢”后按ctrl+enter组合键后就看到“欢”字已经在模拟显示区显示出来了 在“取模方式”中选择“c51格式”就可以在“点阵生成区”得到你要的汉字“欢”的显示代码。经过以上步骤后一个汉字就取模成功了,在程序中只要调用这段代码就可显示出汉字“欢”了,其它汉字也用同样的方法。3.3功能扩展部分 源程序是静态显示四个汉字“南京伟福”通过每个字的扫描,变成动态显示,并且显示“燕山大学”四个字。第四章 pr
12、oteus硬件仿真4.1 硬件模拟软件介绍 proteus是英国labcenter electronics公司出版的eda工具软件。它不仅具有其它eda工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。proteus是世界上著名的eda工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到pcb设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、pcb设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型
13、支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年又增加了cortex和dsp系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持iar、keil和mplab等多种编译器。 运行界面如下图: 通过此软件画出硬件电路的连线图如下:4.2程序流程图 第五章 主要的源程序及注释实验程序如下:#include #define pd1 61 / 122/2 分成左右两半屏(122x32)sbit led = p10;unsigned char column;unsigned char page_ ; / 页地址
14、寄存器 d1,do:页地址unsigned char code_ ; / 字符代码寄存器unsigned char command; / 指令寄存器unsigned char lcddata; / 数据寄存器xdata unsigned char cwadd1 _at_ 0x8000; / 写指令代码地址(e1)xdata unsigned char dwadd1 _at_ 0x8001; / 写显示数据地址(e1)xdata unsigned char cradd1 _at_ 0x8002; / 读状态字地址(e1)xdata unsigned char dradd1 _at_ 0x8003
15、; / 读显示数据地址(e1)xdata unsigned char cwadd2 _at_ 0x8004; / 写指令代码地址(e2)xdata unsigned char dwadd2 _at_ 0x8005; / 写显示数进地址(e2)xdata unsigned char cradd2 _at_ 0x8006; / 读状态字地址(e2)xdata unsigned char dradd2 _at_ 0x8007; / 读显示数据地址(e2)/英文字模库 8x8 点阵code unsigned char eetab8= 0x38,0x44,0x44,0x44,0x44,0x44,0x38
16、,0x00, / 0 0x10,0x30,0x50,0x10,0x10,0x10,0x7c,0x00, / 1 0x38,0x44,0x04,0x08,0x10,0x20,0x7c,0x00, / 2 0x78,0x84,0x04,0x38,0x04,0x84,0x78,0x00; / 3/ 中文字模库 16x16点阵code unsigned char cctab32 = 0x44,0x42,0x44,0x62,0x44,0x39,0xf4,0x03, 0x04,0x08,0xdf,0x33,0x54,0x62,0x54,0x02, 0x54,0x0a,0xdf,0x33,0x04,0x60
17、,0xe4,0x01, 0x44,0x0a,0x64,0x32,0x44,0x63,0x00,0x00,/*燕,0*/ 0x00,0x00,0x00,0x20,0xe0,0x7f,0x00,0x20, 0x00,0x20,0x00,0x20,0x00,0x20,0xff,0x3f, 0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20, 0x00,0x20,0xe0,0x7f,0x00,0x00,0x00,0x00,/*山,1*/ 0x20,0x00,0x20,0x80,0x20,0x40,0x20,0x20, 0x20,0x10,0x20,0x0c,0xa0,0x0
18、3,0x7f,0x00, 0xa0,0x01,0x20,0x06,0x20,0x08,0x20,0x30, 0x20,0x60,0x20,0xc0,0x20,0x40,0x00,0x00,/*大,2*/ 0x40,0x00,0x30,0x02,0x10,0x02,0x12,0x02, 0 x5c,0x02,0x54,0x02,0x50,0x42,0x51,0x82, 0x5e,0x7f,0xd4,0x02,0x50,0x02,0x18,0x02, 0x57,0x02,0x32,0x02,0x10,0x02,0x00,0x00,/*学,3*/;/ 1.写指令代码子程序(e1)void write
19、commande1() while(cradd1 & 0x80); cwadd1 = command;/ 2.写显示数据子程序(e1)void writedatae1() while(cradd1 & 0x80); dwadd1 = lcddata;/ 3.读显示数据子程序(e1)void readdatae1() while(cradd1 & 0x80); lcddata = dradd1;/ 4.写指令代码子程序(e2)void writecommande2() while(cradd2 & 0x80); cwadd2 = command;/ 5.写显示数据子程序(e2)void writ
20、edatae2() while(cradd2 & 0x80); dwadd2 = lcddata;/ 6.读显示数据子程序(e2)void readdatae2() while(cradd2 & 0x80); lcddata = dradd2;/ 初始化程序void init() command = 0xe2; writecommande1(); writecommande2(); command = 0xa4; writecommande1(); writecommande2(); command = 0xa9; writecommande1(); writecommande2(); com
21、mand = 0xa0; writecommande1(); writecommande2(); command = 0xc0; writecommande1(); writecommande2(); command = 0xaf; writecommande1(); writecommande2();/ 清屏void clear() unsigned char i,j; i = 0; do command = (i + 0xb8); / 页地址设置 writecommande1(); writecommande2(); command = 0x00; / 列地址设置为0 writecomma
22、nde1(); writecommande2(); j = 0x50; / 一页清 80个字节 do lcddata = 0x00; / 显示数据为0 writedatae1(); writedatae2(); while(-j !=0); / 页内字节清零循环 while(+i !=4); / 页地址暂存器加一 / 显示区清零循环void delay(int n) int i,j; for(i=0;in;i+)for(j=0;j50;j+);/ 延时程序void delay() unsigned char i,j; i = 20; j = 0; do do while(-j !=0); wh
23、ile( -i != 0 );/ 中文显示子程序void writechn16x16() unsigned char i,j,k; i = 0; j = 0; while(j2) command = (page_ + j) & 0x03) | 0xb8; / 设置页地址 writecommande1(); writecommande2(); k = column; / 列地址值 while(k column + 16) if (k = pd1 * 2) break; / 列地址是否超出显示范围 ; j+; ;/ 中文显示程序void main() unsigned char flag=0x00
24、,i; init(); clear(); page_ = 0x02; column = 0x00; code_ = 0x00; writechn16x16(); page_ = 0x02; column = 0x10; code_ = 0x01; writechn16x16(); page_ = 0x02; column = 0x20; code_ = 0x02; writechn16x16(); page_ = 0x02; column = 0x30; code_ = 0x03; writechn16x16(); while(1); 第六章 程序调试及结果分析6.1调试过程检查硬件线路的连接
25、,将修改后的程序加载到开发工具中,调试程序编译程序,并下载到单片机中运行,液晶屏中将显示“南京伟福”一行字依次显示,然后指示灯闪亮一次指示显示完成。6.2在程序设计和调试过程中,遇到和解决的几个问题:1.在取模插入程序后,常出现乱码,而并非是我想要的字样。最后通过设计点阵大小,然后在取模工具中取模解决乱码的问题。2在显示时不能正确显示所要显示的内容,最后通过调整实验程序而达到预想效果。6.3结论整个程序实现了基本显示功能,但是还有一些方面做得不够好或者有待改进:程序结构不清晰,有部分过于繁琐,是对程序语言还不够了解所造成。适当选择函数可以更好的让程序达到理想的效果。心得体会通过一周的课程设计,让我感受最深的就是学习是一种乐趣。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 员工聘用协议书2023
- 个人租房的合同协议书范本10篇
- 再婚离婚协议书2025年
- 重症肌无力样综合征病因介绍
- T-CIECCPA 011-2024 高杂贵金属冶炼渣资源化处理技术规范
- 中考历史复习第一部分教材知识速查模块2中国近代史第1讲列强的侵略与中国人民的抗争公开课一等奖省
- (2024)汽车内饰用品项目可行性研究报告写作范本(一)
- 2023年金属门窗及类似制品项目融资计划书
- 2023年纺织产品项目筹资方案
- 《开环伯德图的绘制》课件
- 机械CAD、CAM-形考任务一-国开-参考资料
- 电气专业述职报告
- 腰椎病的中医护理查房
- 2024年湖南省公务员考试《行测》真题及答案解析
- 成都锦城学院《操作系统与nux管理》2022-2023学年期末试卷
- 《弧弦圆心角》说课稿课件
- 中职班级建设三年规划方案
- 河南省郑州市2023-2024学年高二上学期期末考试 物理 含解析
- 2024年中级安全工程师《(建筑施工)安全生产专业实务》考试题库(含答案)
- 弘扬抗战精神课程设计
- 康复护理完整版
评论
0/150
提交评论