基于ARMLCD显示系统设计.pptVIP

  • 31
  • 0
  • 约2.68千字
  • 约 18页
  • 2018-07-08 发布于福建
  • 举报
基于ARMLCD显示系统设计

各位老师 各位同学 早上好! 基于ARM的LCD显示系统设计 班级:电子信息工程1061 姓名:王泽汉 指导教师:王峰 设计报告提纲 1. 课题研究主要内容 2. 系统总体结构框图 3. 系统硬件设计 4. 系统软件设计 5. 总结 1. 课题研究主要内容 本LCD显示系统通过人机交互的方式,采用点阵字模12864LCD,使用ARM7LPC2148作为主控制芯片实现。论文主要涉及LCD的工作原理,ARM7LPC2148特点及应用,整个系统的搭建及控制,LCD图文显示原理及程序流程等。 系统设计需求: (1)在LCD 12864上通过点阵操作实现画点,画线,画几 何图,图片显示。 (2)系统多级菜单的实现,并运用点阵和12864自带字库两种方法显示文字。 (3)实现菜单按键的上、下、确定、返回功能。 2. 系统总体结构框图 3. 系统硬件设计 本系统主要电路包括:LPC2148最小系统电路、LCD12864接口电路、按键输入电路、12864LCD显示器、其他外围电路。实物由LPC2148主板加上LCD12864显示模块组成,两电路板之间通过排针进行连接。 12864接口引脚 12864接口电路设计 按键电路设计 4. 系统软件设计 系统软件设计主要包括: 按键程序设计、 ST7920驱动程序设计、LCD应用程序设计、菜单程序设计。 系统总体程序设计流程图 按键程序设计 ST7920驱动程序设计 忙检测驱动函数: void Check_Busy() 写命令驱动函数 void Write_Cmd(uint8 cmd) 写数据驱动函数 void Write_Dat(uint8 dat) 读数据驱动函数 uint8 Read_Data(void) 12864文字显示程序设计 ST7920文字显示有两种方式,一种是调用ST7920本身自带的字库即字库模式下的文字显示,一种是在绘图模式下通过点阵取模软件获取文字代码数据,并把相应的文字代码数据通过字模显示函数写到液晶上。 调用ST7920自带中文字库的驱动程序如下 void Write_String(uint8 *pStr) 使用ST7920绘图模式下文字显示驱动程序如下: void zimo(uint8 x,uint8 y,uint8 n,const uint8 *pin) 点、线显示程序设计 ⑴ 画点原理:先确定坐标-读出数据-修改数据-数据写回原处。 ⑵ 画任意两点间直线的原理和算法: 采用Bresenham画线算法。 设线段方程:ax+by+c=0(x1xx2,y1yy2) 令dx=x2-x1,dy=y2-y1 则:斜率-a/b = dy/dx. 斜率大于0: 从第一个点开始,我们有F(x,1,y1) = a*x1+b*y1+c=0 下面求线段ax+by+c=0与x=x1+1的交点: 由a*(x1+1)+b*y+c = 0, 求出交点坐标y=(-c-a(x1+1))/b 所以交点与点(x+1,y+0.5)的y坐标差值Sub1 = (-c-a(x1+1))/b - (y1+0.5) = -a/b-0.5,即Sub1的处始值为-a/b-0.5。 则可得条件当 Sub1 = -a/b-0.50时候,即下个点为(x+1,y+1),反之,下个点为(x+1,y). 代入a/b,则Sub1 = dy/dx-0.5. 判断条件为:2dy-dx0? 斜率小于0:同理。 斜率=0:即为横线。 斜率=1:即为竖线。 图形、图片显示程序设计 画圆的驱动函数如下: void Draw_circle(uint8 x0,uint8 y00,uint8 r) 绘图的驱动程序如下: void Draw_Picture(unsigned char *img) 菜单程序设计 首先定义结构体: typedef struct { uint8 current_index;//当前的菜单索引 uint8 up; uint8 down; uint8 enter; uint8 exit; void (*Current_Operate)(); }menu; 定义变量和函数指针

文档评论(0)

1亿VIP精品文档

相关文档