LCD几何图形显示课程设计.doc_第1页
LCD几何图形显示课程设计.doc_第2页
LCD几何图形显示课程设计.doc_第3页
LCD几何图形显示课程设计.doc_第4页
LCD几何图形显示课程设计.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录 第 1 章 设计的研究背景及目的要求.1 1.1 研究背景.1 1.2 设计目的.1 1.3 硬件选择.1 1.4 设计内容.1 第 2 章 设计的方案及基本原理.2 2.1 方案.2 2.2 基本原理.3 第 3 章 程序设计.4 3.1 主程序流程图.4 3.2 设计程序.4 第 4 章 调试结果与分析.5 4.1 调试结果.5 4.2 结果分析.5 结论与体会.6 参考文献.7 附录.8 单片机的控制系统课程设计 1 第 1 章 LCD 几何图形显示设计的研究背景及目的要求 1.1 研究背景 在程序设计方面,凌阳十六位单片机还具有易学易用的效率较高的一套指令 系统和集成开发环境。在此环境中,支持标准 C 语言,可以实现 C 语言与凌阳汇 编语言的互相调用。 显示器的核心液晶显示器控制器品种繁多,各种控制芯片在控制电路逻辑、 控制指令、指标参数等方面各有差异。 但对于已带有控制电路的平板点阵式图 形液晶显示器,使用者无需关心其控制核心的集成芯片、控制电路等, 就可方 便地利用它进行开发。 1.2 设计目的 熟悉利用 SPLC501 液晶显示模组显示几何图形的 API 函数。 掌握利用液晶显示器显示几何图形的方法。 1.3 硬件选择 装有window系统和仿真环境和PC机一台,十六位单片机实验箱一个。 SPCE061A核心及周边电路模块(包含 32 个 I/O 口) ,LCD显示模组模块。 1.4 设计内容 LCD 显示器上一个实心圆,在实心圆的横向直径画一条横线,并在实心圆上 叠加显示汉字:“凌阳科技”,最后向上滚屏。在 LCD 显示器实现实心圆和汉字的 叠加显示。 利用 SPLC501 液晶显示模组显示英文(ASCII)字符时,需要对 LCD 进 行初始化操作,以初始化 LCD 内部的供电方式、驱动设置等; 在凌阳大学计 划提供的 SPLC501 液晶显示模组的驱动程序中,提供了对 SPLC501 液晶显示 模组的初始化程序,除了完成前面所述的操作外,该函数还可以初始化液晶的显 示。 初始化 SPLC501 液晶显示模组后,驱动程序默认设置图形显示模式为覆盖 模式,ASCII 字符的字型默认为 816 的大小,如果需要修改这些参数可以调用 对应的函数进行设置。主程序利用 C 语言编写,调用驱动程序(调动程序已提供 在 IDE 的安装路SPCE061Aexamplemodel_ExadriverSPLC501driver) 。 单片机的控制系统课程设计 2 第 2 章 LCD 几何图形显示的设计方案及基本原理 2.1 方案 驱动程序文件 SPLC501User.c 同样定义了显示几何图形的 API 函数,在驱动 程序文件 SPLC501User.h 同样定义了显示几何图形的 API 函数,SPLC501User.h 文件里也对这些函数进行了申明。 void LCD501_Init(unsigned int InitialData) void LCD501_ClrScreen(unsigned int Mode) void LCD501_SetPaintMode(unsigned ModeCode) unsigned int LCD501_GetPaintMode(void) void LCD501_FontSet(unsinged int Font) /选择显示字符的字体大小 unsigned int LCD501_FontGet(void) /获得显示字符的字体大小 void LCD501_Bitmap(unsigned int x,unsigned int y,unsigned int *word) void LCD501_PutPixel(unsigned int x,unsigned int y) void LCD501_Line(unsigned int x,unsigned int y,unsigned int e_x,unsigned int e_y) /画直线 void LCD501_Circle(unsigned int x,unsigned int y,unsigned int r,unsigned int Mode) /画圆 void LCD501_Rectangle(unsigned left, unsigned top,unsigned right, unsigned bottom, unsigned Mode) void LCD501_ScrollUp(unsigned Rows) /屏幕向上滚动 前面七个函数在前面实验里都有详细说明,这里介绍后面四个函数: 1)【API 格式】C:void LCD501_PutPixel(unsigned int x,unsigned int y) 【功能说明】在液晶显示器上画一个点 【参数】x 表示要画点的 x 坐标; y 表示要画点的 y 坐标; 【返回值】无 2)【API 格式】C:void LCD501_Line(unsigned int x,unsigned int y,unsigned int e_x,unsigned int e_y) 【功能说明】在液晶显示器上画一条直线; 【参数】x 表示要画的线的 x 起点坐标; y 表示要画的线的 y 起点坐标; e_x 表示要画的线的 x 终点坐标; e_y 表示要画的线的 y 终点坐标。 单片机的控制系统课程设计 3 【返回值】无 3)【API 格式】C:void LCD501_Circle(unsigned int x,unsigned int y,unsigned int r,unsigned int Mode) 【功能说明】在液晶显示器上画一个圆 【参数】x 表示要画的圆心的 x 坐标; y 表示要画的圆心的 y 坐标; r 表示要画的圆的半径; Mode 表示绘点模式,其中 Mode = M_DOT_CLEAR(0) 画圆框; Mode = M_DOT_SET 【返回值】无 4)【API 格式】C:void LCD501_Rectangle(unsigned left, unsigned top,unsigned right, unsigned bottom,unsigned Mode) 【功能说明】在液晶显示器上画一个矩形 【返回值】无 2.2 基本原理 硬件连接如上图。分别用实验箱跳线连接 IOB4 与 AO,IOB5 与 RWP,IOB6 与 EP,IOB9 与/CS,IOA8IOA15 与 D0D7:VR、C86 和 PS 都与 V3 短接, 把 SPLC501 液晶显示模组的时序选择为 6800 时序。即用跳线把实验箱 JP6 的所 有引针全部短接。 IOB9 IOB4 IOB5 IOB6 IOA8 SPCE061A IOA9 IOA10 IOA11 IOA12 IOA13 IOA14 IOA15 /CS AO R/W EP D0 D1 SPLC501 液晶 D2 显示模组 D3 D4 D5 D6 D7 图 2-1 硬件连接框图 单片机的控制系统课程设计 4 第 3 章 LCD 几何图形显示的程序设计 3.1 主程序流程图 主程序流程图如下图:初始化 LCD;清屏,延时;在圆心为(30,30)处画一个 半径为 30 的实心圆,延时;设置图象显示模式为异或显示模式;从(0,30)开始到 (128,30)结束画一条直线,延时;显示汉字“凌”、“阳”、“科”、“技”、“凌”显示在 (0,15)位置,“阳”显示在(16,15)位置。 凌阳大学计划为 SPLC501 液晶显示模组提供了显示驱动程序,由五个文件 组成,底层驱动程序文件:SPLC501Driver_IO.inc、SPLC501Driver_IO.asm;用 户 API 功能接口函数文件: SPLC501User.h、SPLC501User.c、DataOSforLCD.asm。 3.2 设计程序代码 由于程序过多,如附录所示。 从(0,30)开始到 (128,30)结束 延时,清看门狗 显示汉字 延时,清看门狗 屏幕向上滚动 延时,清看门狗 延时,清看门狗 设置为叠加模式 在圆心为(30,30) 延时,清看门狗 初始化 清屏 开 始 图 3-1 主程序流程图 单片机的控制系统课程设计 5 第 4 章 调试结果与分析 4.1 调试结果 图 4-1 设计结果图 4.2 结果分析 本次课程设计要求设计 LCD 几何图形显示器。应用所学的知识及在图书馆 搜集的资料,对题目的要求进行了设计。 1、设计了 LCD 几何图形显示器,此显示器能满足题目中的要求。 2、在方案的设计中,用到了 SPLC061A 液晶显示模组显示几何图形的 API 函数,和中断,延时等子程序。 3、根据任务要求对相关参数进行了计算,并对相关元件进行了选择。 单片机的控制系统课程设计 6 结论与体会 设计多种方案进行对比,方案用到了 C 语言编写。在 LCD 显示器实现实心 圆和汉字的叠加显示。最后看到 LCD 显示器上一个实心圆,在实心圆的横向直 径画一条横线,并在实心圆上叠加显示汉字:“凌阳科技”,最后向上滚屏。 本次课程设计设计的是 LCD 几何图形显示,要求熟悉利用 SPLC501 液晶显 示模组显示几何图形的 API 函数。 通过这次课程设计让我对单片机理论有了更加深入的了解, 更深刻的懂得 了 SPCE061A 单片机驱动内置式 SPLC501 液晶显示模块的在显示几何图形方式。 利用 SPCE061A 单片机丰富的 I/O 囗资源驱动液晶模块,简化了电路设计。 我 突然发现,如果总是止步于书本上学习单片机,会觉得很抽象, 无法理解也不 会有兴趣,但是当理论知识和实践结合到一起之后,就会非常有趣, 而且还会 印象深刻富有成就感。所以我很珍惜这次的设计学习,我以后会多加练习。 单片机的控制系统课程设计 7 参考文献 1 黄正瑾.综合电子设计与实践M.东南大学出版社,2002-3. 2 罗亚非.凌阳 16 位单片机应用基础M.北京航空航天大学出版社,2005. 3 张念维.USB 总线接口开发指南M.北京:电子出版社,2002. 4 周立功.单片机实验与实践M.北京:北京航空航天大学出版社,2004. 5 周航慈.单片机应用程序设计技术M.北京:航空航天大学出版社,2002. 6 袁勤勇.嵌入式系统构件M.北京:北京机械工业出版社,2002. 单片机的控制系统课程设计 8 附录 文件名称:main.c 功能描述:LCD 几何图形显示 #include SPCE061A.h #define GREEN 0 x00ff #define RED 0 xff00 #include SPLC501User.h #include Chinese_Table.h #define P_Watchdog_Clear (volatile unsigned int *)0 x7012 #define P_SystemClock (volatile unsigned int *)0 x7013 int main(void) int i,j,dd; LCD501_Init(0 x00); *P_SystemClock=0 x0088; LCD501_Circle(30,30,30,1); for(j=0;j=7;j+) for(i=0;i0 x15ff;i+) *P_Watchdog_Clear = 0 x0001; LCD501_SetPaintMode(3); LCD501_Line(1,30,127,30); for(j=0;j=7;j+) for(i=0;i0 x15ff;i+) *P_Watchdog_Clear = 0 x0001; LCD501_Bitmap(0,15,(unsigned int *)encoding_00); LCD501_Bitmap(16,15,(unsigned i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论