单片机课程设计汉字液晶显示器显示.doc

上传人:精*** 文档编号:856285 上传时间:2023-09-17 格式:DOC 页数:23 大小:354KB
下载 相关 举报
单片机课程设计汉字液晶显示器显示.doc_第1页
第1页 / 共23页
单片机课程设计汉字液晶显示器显示.doc_第2页
第2页 / 共23页
单片机课程设计汉字液晶显示器显示.doc_第3页
第3页 / 共23页
单片机课程设计汉字液晶显示器显示.doc_第4页
第4页 / 共23页
单片机课程设计汉字液晶显示器显示.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、目录目录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实验箱的液晶显示实验,并利用伟福仿真软件实现了程序的编译和连接,还利用pro

2、teus仿真软件对硬件电路进行了绘制和仿真。本文系统的从总体设计思路、汉字取模的原理、液晶显示的原理、电路绘制和仿真和最好的上箱实验几个方面介绍了本次液晶显示实验。基本掌握了电路仿真和绘制的仿真程序,了解了一些简单的硬件知识,对课本所学的理论知识有了更加深入的了解,对以后的学习也更有针对性。关键字:伟福仿真,lab2000,proteus仿真软件。 第一章 绪论1.1 硬件环境分析本设计是设计一个单片机控制的点阵液晶显示屏上显示“南京伟福”字样的设计近年来随着科学技术的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统的控制检测日新月异更新。本实验采用芯片,系统设计所需硬件都已集成于LA

3、B6000实验箱上。软件使用wave6000,并用 80C51汇编语言进行编程;该系统可以完成汉字字模的显示。当显示一次字模后LED指示灯闪亮一次提示显示完成。汉字字模是各类电子装置显示汉字的依据, 在工程应用中汉字字模都是从计算机的各种字库文件中获取, 本文从应用的角度使用字模代码。1.2 实验箱简介 本次设计使用了LAB6000实验箱进行仿真,LAB6000系列逻辑分析仪是一款紧凑、快速调试数字电路设计强有力的便携式逻辑分析仪;高速的USB2.0接口、高端的FPGA、强大的ARM处理器等组成的嵌入式系统全方位智能控制;高速、高效、高性能,帮你轻松搞定问题。LAB6000系列逻辑分析仪实现了

4、业界领先的高带宽、大容量的高速采集技术,采样率从200M到500M不等,32通道每通道容量最高达16M;功能灵活强大,集逻辑分析仪、总线分析仪、协议分析仪、频率计、逻辑笔等多种测量开发仪器之大成于一身,适用于各种数字电路的开发、测量、分析和调试工作,还为方便某些特殊的用户提供定制插件服务,是电子研发、电子测量工程师、高校师生的科研开发和教学的得力助手。第二章 课程设计目的及课题分析2.1 课程设计目的1.熟练掌握C51系统仿真开发系统的应用。2加强单片机的综合运用能力、提高单片机的软件编程和调试能力,为以后的学习和开发工作打下良好基础。3掌握的液晶的工作原理以及应用设计。4掌握小系统开发设计的

5、流程以及设计思路。2.2课题分析本实验仪采用的液晶显示屏内置控制器为SED1520,点阵为122x32,需要两片SED1520组成,由E1、E2分别选通,以控制显示屏左右两边的屏。图形液晶显示模块有两种连接方式。一种为直接访问方式,一种为间接控制方式。本实验仪采用直接访问方式。直接控制方式就是将液晶显示模块的接口作为存储器或I/O设备直接挂在计算机总线上。计算机通过地址译码控制E1、E2选通;读/写操作信号R/W由地址线A1控制;数据/命令存储器选择信号A0由地址线A0控制。实验电路图如下图所示。地址映射如下(地址中的X由LCD CS决定,可参见地址译码部分说明)0X00H0X01H0X02H

6、0X03H0X04H0X05H0X06H0X07H写E1 指令写E1数据读E1状态读E1数据写E2指令写E2数据读E2状态读E2数据间接控制方式是计算机通过自身的或系统的并行接口与液晶显示模块连接,如8031的P1口和P3口,8255的并行接口芯片。计算机通过对该并行接口输出状态的编程操作,完成对液晶显示模块所需时序的操作和数据的传输。这种间接控制方式的电路简单,控制时序通过编程来实现。第三章 实现原理3.1 点阵LCD的显示原理 在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。

7、而对于中文,常用却有6000以上,于是我们的DOS前辈想了一个办法,001110000x38010001000x44010001000x44010001000x44010001000x44010001000x44001110000x38000000000x00就是将ASCII表的高128个很少用到的数值以两个为一组来表示汉字,即汉字的内码。而剩下的低128位则留给英文字符使用,即英文的内码。 字模虽然也是一组数字,但它的意义却与数字的意义有了根本的变化,它是用数字的各位信息来记载英文或汉字的形状,如数字的0在字模的记载方式如图1所示:图1 “0”字模图 而中文的“你”在字模中的记载却如图2所示

8、:图2 “你” 字模如果显示汉字的电子装置能够随时从PC 机获得显示点阵( 如通过串口通讯或通过局域网通讯) , 则应使用Windows 下的TrueType 字库。TrueType 实际上就是一种高级的曲线轮廓字库, 如果直接研究其结构自己编写数显示是非常困难的, 实际应用中都是使用Windows 提供的函数实现。笔者下面介绍使用Windows API 函数获取字模的方法。读点取字模的思路是, 在屏幕上显示汉字, 然后逐点读取显示区域内每个点颜色, 生成点阵字模。 3.2 取模在编写软件代码之前必须要先掌握汉字取模的方法。要得到上表中的文字,我们可以借助取模软件来完成。目前点阵LCD的取模软

9、件有很多,我们以本开发板配套的取模软件为例来介绍一下汉字的取模方法。打开取模软件出现如下显示界面:在文字输入区中输入文字,我们以输入一个欢迎的“欢”字为例,了解其取模过程。在文字输入区中输入“欢”后按CTRL+ENTER组合键后就看到“欢”字已经在模拟显示区显示出来了 在“取模方式”中选择“C51格式”就可以在“点阵生成区”得到你要的汉字“欢”的显示代码。经过以上步骤后一个汉字就取模成功了,在程序中只要调用这段代码就可显示出汉字“欢”了,其它汉字也用同样的方法。3.3功能扩展部分 源程序是静态显示四个汉字“南京伟福”通过每个字的扫描,变成动态显示,并且显示“燕山大学”四个字。第四章 Prote

10、us硬件仿真4.1 硬件模拟软件介绍 Proteus是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8

11、051、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_ ; / 页地址寄存器

12、 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; /

13、 读显示数据地址(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,0x

14、00, / 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,0x

15、E4,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,0x03,0

16、x7F,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 WriteCom

17、mandE1() 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 WriteDa

18、taE2() 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(); Comman

19、d = 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 WriteCommandE

20、1(); 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); while

21、( -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,i;

22、 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调试过程检查硬件线路的连接,将修

23、改后的程序加载到开发工具中,调试程序编译程序,并下载到单片机中运行,液晶屏中将显示“南京伟福”一行字依次显示,然后指示灯闪亮一次指示显示完成。6.2在程序设计和调试过程中,遇到和解决的几个问题:1.在取模插入程序后,常出现乱码,而并非是我想要的字样。最后通过设计点阵大小,然后在取模工具中取模解决乱码的问题。2在显示时不能正确显示所要显示的内容,最后通过调整实验程序而达到预想效果。6.3结论整个程序实现了基本显示功能,但是还有一些方面做得不够好或者有待改进:程序结构不清晰,有部分过于繁琐,是对程序语言还不够了解所造成。适当选择函数可以更好的让程序达到理想的效果。心得体会通过一周的课程设计,让我感

24、受最深的就是学习是一种乐趣。在这次课程设计中,我们接触了一种新的实现,试验箱,他多样的功能激发了我们去学子它,进而掌握它的兴趣。从拿到任务书,开始充分利用网络及图书馆等资源,查询资料,了解试验箱的功能。在之前专业课理论知识的基础上,我们又从模糊到熟悉逐渐了解了什么是单片机编程。然后面对我们的首要任务,我们的想法,我们的思路是什么?顺着这个方向开始我们的工作,因此我觉得,目标和计划都是很重要的,我们要时刻保持大脑的清醒。在整个过程中,我发现自己的理论知识的不足,同时所学的知识掌握不牢固,就是通过这次课程设计,不仅拓宽了我的知识面,还巩固和夯实了所学的理论知识,同时纠正了一些知识点上的错误认识和理

25、解。其次,有一些问题,当我们一个人面对的时候可能怎么都想不明白,可是当我们跟其他人一起探讨时,好多时候,问题都迎刃而解,可见团队合作的重要性,而且我们要养成谨慎,认真,踏实,有耐心,坚持的作风,尤其是要亲自动手去做,没有付出是不会有回报的。回顾这一周的课设,我学会了单片机编程的一些功能的使用,但只是一小部分而已,我此后将继续研究这么一个强大的工具。对于仿真软件的使用,非常有成就感,极大的激发了我们对新鲜事物学习的兴趣,从而以积极的心态去面对这次课程设计。最后,我通过这次课程设计,使我对滤波器有了更深刻的认识。总之,在这一周的时间,一直是有条不紊的进行着,到最后看到我们的努力得到收获的时候,我们满怀欣慰。在这次课设中,我们看到了自己的进步,看到了老师和学长对工作的认真负责和对学生的耐心和热情,所以在以后的课程设计中,我将满怀激情,更加努力去面对。参考文献1.单片机原理及应用技术张淑清,国防工业出版社(教材)2.过程控制系统及仪表 邵裕森 编(教材)3.单片机及应用 李大友 高等教育出版社 (教材)4.机械量测量机械工业出版社(教材)燕山大学课程设计评审意见表指导教师评语:成绩: 指导教师: 年 月 日答辩小组评语:成绩: 组长: 年 月 日课程设计总成绩:答辩小组成员签字:年 月 日23

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922