网站大量收购独家精品文档,联系QQ:2885784924

arm触摸屏简易计算器.docVIP

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
arm触摸屏简易计算器.doc

嵌入式系统课程设计报告 设计题目: 触摸屏简易计算器 班 级: 姓 名: 学 号: 指导教师: 调试地点: 调试时间: 成 绩: 一、设计任务及要求 设计任务:设计一个能在触摸屏上进行操作的计算器。 设计要求: (1)支持整数以及小数基本加减乘除运算; (2)支持触摸屏输入; (3)程序任务开始后,等待触摸屏的输入。输入键有0~9数字键、+-*/运算符、clear清屏键、“=”等号键、‘.’小数点键,输入后能在LCD上显示运算,计算得出结果,能将内容和结果显示在LCD上。每当有字符输入时, LCD屏幕上显示相应字符。当输入“clear”清屏键时,LCD上显示初始状态。当输入=号后,得出计算结果,结果显示于表达式的下一行。 二、总体设计思路及功能描述 (一)硬件设计 本次设计方案就是利用ARM的多功能性的特点来设计的,具体思路为利用S3C2410和触摸屏的驱动对产生的信号进行触摸屏显示,设计框图如下图。 总体框图 本次课题是由嵌入式系统S3C2410作为核心控制器,具有在线编程功能、低功耗;通过程序在屏幕绘制按键,然后对按键进行处理,并将处理记过在LCD触摸屏。 LCD触摸屏工作原理 S3C2410 中具有内置的LCD 控制器,它能将显示缓存(在SDRAM存储器中)中的LCD图像数据传输到外部的LCD驱动电路上的逻辑功能。它支持单色、4级、16级灰度LCD显示,以及8位彩色、12位彩色LCD显示。在显示灰度时,它采用时间抖动算法(time-based dithering algorithm)和帧率控制 (Frame Rate Control)方法,在显示彩色时,它采用RGB的格式,即RED、GREEN、BLUE,三色混合调色。通过软件编程,可以实现332的RGB调色的格式,565全彩输出,5551全彩输出等。对于不同尺寸的LCD显示器,它们会有不同的垂直和水平象素点、不同的数据宽度、不同的接口时间及刷新率,通过对LCD 控制器中的相应寄存器写入不同的值,来配置不同的LCD 显示板。另外,还可以设置虚拟屏幕,增加显示的面积。LCD模块内部电路结构 常用的控制寄存器有: LCDCON1:LCD显示器类型控制寄存器 CLKVAL决定LCD的刷新率,一般刷新率应大于50Hz LCDCON2:LCD垂直尺寸控制寄存器 LCDCON3:LCD水平尺寸控制寄存器 LCD缓冲区设置: LCDSADDR1 LCDSADDR2 LCDSADDR3:用于设置虚拟屏幕行宽设置offsize+pagewidth=虚拟屏幕大小 内存中的数据与显示像素的对应关系,低16位在低地址。 (二)软件设计 主要模块包括以下几个: 1、触摸屏驱动程序 2、触摸屏校正程序 3、LCD键盘设计 4、触摸屏按键判断 5、计算器程序设计 6、按键按下时按键状态更新 程序流程图 以下为主要程序: LCD键盘设计 { Set_Color(GUI_RED); Fill_Circle(250,230,30); Fill_Circle(250,230+65,30); Fill_Circle(250,230+130,30); Fill_Circle(250,230+195,30); Fill_Circle(250+65,230,30); Fill_Circle(250+65,230+65,30); Fill_Circle(250+65,230+130,30); Fill_Circle(250+65,230+195,30); Fill_Circle(250+130,230,30); Fill_Circle(250+130,230+65,30); Fill_Circle(250+130,230+130,30); Fill_Circle(250+130,230+195,30); Fill_Circle(250+195,230,30); Fill_Circle(250+195,230+65,30); Fill_Circle(250+195,230+130,30); Fill_Circle(250+195,230+195,30); Fill_Circle(250+195,170,30); Set_BkColor(GUI_RED); Set_Col

文档评论(0)

000 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档