好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

arm触摸屏简易计算器.doc

18页
  • 卖家[上传人]:琴****
  • 文档编号:19520028
  • 上传时间:2017-11-19
  • 文档格式:DOC
  • 文档大小:945KB
  • arm触摸屏简易计算器
    / 18 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 嵌入式系统课程设计报告设计题目: 触摸屏简易计算器 班 级: 姓 名: 学 号: 指导教师: 调试地点: 调试时间: 成 绩: 一、设计任务及要求设计任务:设计一个能在触摸屏上进行操作的计算器设计要求:(1)支持整数以及小数基本加减乘除运算;(2)支持触摸屏输入;(3)程序任务开始后,等待触摸屏的输入输入键有 0~9 数字键、+-*/运算符、clear 清屏键、 “=”等号键、 ‘.’小数点键,输入后能在 LCD 上显示运算,计算得出结果,能将内容和结果显示在 LCD 上每当有字符输入时, LCD 屏幕上显示相应字符当输入“clear”清屏键时,LCD 上显示初始状态当输入'='号后,得出计算结果,结果显示于表达式的下一行。

      二、总体设计思路及功能描述(一)硬件设计本次设计方案就是利用 ARM 的多功能性的特点来设计的,具体思路为利用S3C2410 和触摸屏的驱动对产生的信号进行触摸屏显示,设计框图如下图触摸屏按键输入S3C2410处理器LCD显示总体框图本次课题是由嵌入式系统 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 的刷新率 ,一般刷新率应大于 50HzLCDCON2:LCD 垂直尺寸控制寄存器LCDCON3:LCD 水平尺寸控制寄存器LCD 缓冲区设置:LCDSADDR1LCDSADDR2LCDSADDR3:用于设置虚拟屏幕行宽设置 offsize+pagewidth=虚拟屏幕大小内存中的数据与显示像素的对应关系,低 16 位在低地址二)软件设计主要模块包括以下几个:1、触摸屏驱动程序2、触摸屏校正程序3、LCD 键盘设计4、触摸屏按键判断5、计算器程序设计6、按键按下时按键状态更新程序流程图开始绘制图形界面与输入界面按键输入按键状态更新 显示输入字符是否按下+—*/是否按下=储存第一个数储存第二个数是否有小数点对两个数进行小数点运算处理对数值计算显示计算结果YN YYYYNNN以下为主要程序: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_Color(GUI_BLACK);Set_Font (&GUI_Font8x16); //设定字体类型 APIDisp_String ("/",247,223); Disp_String ("*",247,230+58);Disp_String ("-",247,230+123);Disp_String ("+",247,230+188);Disp_String ("=",250+62,223);Disp_String (".",250+62,230+58);Disp_String ("9",250+62,230+123);Disp_String ("8",250+62,230+188);Disp_String ("7",250+127,223);Disp_String ("6",250+127,230+58); Disp_String ("5",250+127,230+123); Disp_String ("4",250+127,230+188);Disp_String ("3",250+192,223); Disp_String ("2",250+192,230+58);Disp_String ("1",250+192,230+123); Disp_String ("0",250+192,230+188);Disp_String ("AC",250+190,163);}触摸屏按键判断Set_BkColor(GUI_WHITE);Set_Color(GUI_BLACK);Set_Font (&GUI_Font8x16); if(touchok){if((220+8*j)=(220+195)&&TOUCH_X=(200+195)&&TOUCH_Y=l){d1=h;num1=num1_0*d1+num1_1; num2=num2_0*d1+num2_1*h/l;jg=num1+num2;}else {d1=l;num1=num1_0*d1+num1_1*l/h;num2=num2_0*d1+num2_1;jg=num1+num2;}shownum();}if(jian&&dengyu){if(h>=l){d1=h;num1=num1_0*h+num1_1;num2=num2_0*h+num2_1*h/l;jg=num1-num2; }else {d1=l;num1=num1_0*l+num1_1*l/h;num2=num2_0*l+num2_1;jg=num1-num2;}if(jg=l){ num1=num1_0*h+num1_1;num2=num2_0*h+num2_1*h/l;jg=num1/num2;}else { num1=num1_0*l+num1_1*l/h;num2=num2_0*l+num2_1;jg=num1/num2;} shownum(); }}按键按下时按键状态更新{Set_Color(GUI_GREEN);Set_BkColor(GUI_GREEN);Set_Font (&GUI_Font8x16); switch(a){case0: Fill_Circle(250,230,30);Set_Color(GUI_BLACK);Disp_String ("/",247,223); break;case1: Fill_Circle(250,230+65,30);Set_Color(GUI_BLACK);Disp_String ("*",247,230+58);break;case2: Fill_Circle(250,230+130,30);Set_Color(GUI_BLACK);Disp_String ("-",247,230+123);break;case3: Fill_Circle(250,230+195,30);Set_Color(GUI_BLACK);Disp_String ("+",247,230+188);break;case4: Fill_Circle(250+65,230,30);Set_Color(GUI_BLACK);Disp_String ("=",250+62,223);break;case5: Fill_Circle(250+65,230+65,30);Set_Color(GUI_BLACK);Disp_String(".",250+62,230+58);break;case6: Fill_Circle(250+65,230+130,30);Set_Color(GUI_BLACK);Disp_String ("9",250+62,230+123);break;case7:Fill_Circle(315,230+195,30);Set_Color(GUI_BLACK);Disp_String("8",250+62,230+188);break;case8: Fill_Circle(250+130,230,30);Set_Color(GUI_BLACK);Disp_String ("7",250+127,223);break;case9:Fill_Circle(250+130,230+65,30);Set_Color(GUI_BLACK);Disp_String ("6",250+127,230+58);break;case10: Fill_Circle(250+130,230+130,30);Set_Color(GUI_BLACK);Disp_String("5",250+127,230+123);break;case11: Fill_Circle(250+130,230+195,30);Set_Color(GUI_BLACK);Disp_String("4",250+127,230+188);break;case12:Fill_Circle(250+195,230,30);Set_Color(GUI_BLACK);Disp_String ("3",250+192,223);break;case13:Fill_Circle(250+195,295,30);Set_Color(GUI_BLACK);Disp_String("2",250+192,230+58);break; case14: Fill_Circle(250+195,230+130,30);Set_Color(GUI_BLACK);Disp_String("1",250+192,230+123);break;case15: Fill_Circle(250+195,230+195,30);Set_Color(GUI_BLACK);Disp_String ("0",250+192,230+188);break;case16: Fill_Circle(250+195,1。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.