基于嵌入式系统的触摸式计算器的设计

合集下载

嵌入式_实验五_简单计算器的设计

嵌入式_实验五_简单计算器的设计

嵌入式操作系统原理与应用实验报告实验题目:实验五、简单计算器设计院系:计算机科学与技术学院专业年级:学生姓名:学号2014 年10 月7日一、实验目标和重点使用MFC编写一个如下图所示的计算器程序可以直接从键盘输入两个数,然后按下运算按钮可以计算,可以计算三角函数二、实验内容思路:设计三个edit控件,作为被运算数和结果显示,添加加减乘除按钮,按下后进行运算;添加Check 按钮检测状态,因为三角函数都是单目运算符,故只有一个数,选择其中一个edit控件显示。

三、实验步骤及结果1)首先打开Microsoft Visual Studio,选择新建项目,基于对话框2)创建一个对话框程序,在Dialog中完成以下设计图,添加“+”、“‐”,“*”,“/”按钮button 控件并在属性里修改各个控件的caption属性、控件ID。

例如:“+”修改为ID_ADD,完成修改后,如图:3)对三个edit控件进行添加变量m_num1、m_num2、m_result,前面两个为操作数,后面一个为运算结果。

5)点击“闪电”,选择添加事件如下图6)在操作符按下的click事件下添加代码:操作符“+”添加代码:void CsimplecaculatorDlg::OnBnClickedAdd() {UpdateData();m_result=m_num1+m_num2;UpdateData(FALSE);}操作符“-”添加代码:void CsimplecaculatorDlg::OnBnClickedMinus() {UpdateData();m_result=m_num1*m_num2;UpdateData(FALSE);}操作符“-”添加代码:void CsimplecaculatorDlg::OnBnClickedPlus(){UpdateData();m_result=m_num1-m_num2;UpdateData(FALSE);}操作符“/”添加代码:void CsimplecaculatorDlg::OnBnClickedDiv(){UpdateData();if(m_num2)m_result=m_num1/m_num2;elseAfxMessageBox(_T("被除数不能为!"),0,0);UpdateData(FALSE);}7)以下为三角函数的添加代码:同时要在文件的开始添加pi的值,#define pi 3.1415926操作符“sin”按下的click事件下添加以下代码UpdateData();temp=m_num1;if(m_num1<180)m_result=sin(m_num1*pi/180.0); //Pi为圆周率,定义预处理命令else{while (temp>=180){temp-=180;}m_result=sin(temp*pi/180.0);UpdateData(FALSE);其他运算符(cos tan cot )同理添加如图:8)以下为选择简单计算器和三角函数的按钮的控件添加代码:9)在操作符“清除”按下的click事件下添加以下代码:10)完成以上操作后,为了实现三角函数的函数曲线,添加以下代码:CDC *pDC=GetDC();//CClientDC * pClientDC=myWindow.GetClientRect(&rc);//得到绘图环境CPen pen,*poldpen; //创建画笔,和用来保存旧画笔pen.CreatePen(PS_SOLID,2,RGB(m_red,0,0)); //创建一个新画笔的,特性,实线,线宽个像素poldpen=pDC->SelectObject(&pen); //选择新画笔,保存旧画笔//colorBrush.CreateSolidBrush(clRGB);//CDC*pDC=GetDC();pDC->MoveTo(110,180);pDC->LineTo(260,180);pDC->MoveTo(120,110);pDC->LineTo(120,250);pDC->MoveTo(120,200);double i,x,y;for (i=0;i<=200;i++){x=120+i;y=180-20*sin(i/20);pDC->LineTo(x,y);}pDC->SelectObject(&poldpen);// 恢复原画笔状态ReleaseDC(pDC); //释放画笔CBrush colorBrush; 11)实验结果截图:四、心得体会通过此次实验,完成了简单计算器的设计。

基于嵌入式系统的触摸式计算器的设计

基于嵌入式系统的触摸式计算器的设计

第25卷第1期2007年1月北京工商大学学报(自然科学版)Journal of Beijing Technology and Business University (Natural Science Edition )Vol 125No 11Jan.2007 文章编号:167121513(2007)0120055204基于嵌入式系统的触摸式计算器的设计陈裕涛, 乔继红(北京工商大学信息工程学院,北京100037)摘 要:在U P 2N ETARM 24102S 实验平台上,采用Linux 操作系统,利用M IN IGU I 作为图形界面支持系统,编程语言采用C 语言,利用V I 文本编辑器,交叉编译器采用armv4l 2unknown 2linux 2gcc 完成了基于嵌入式的触摸式计算器的设计.利用M IN IGU I 软件,实现了触摸式计算器的设计,触摸式计算器具有简单科学计算器的功能.关键词:嵌入式系统;M IN IGU I ;触摸屏中图分类号:TP368 文献标识码:A 收稿日期:20060705作者简介:陈裕涛(1983—),男,湖南永州人,硕士研究生,从事电子产品开发. 嵌入式技术无处不在,ARM 几乎成为嵌入式技术的代名词.到目前为止,嵌入式微处理器及其技术已经深入到各个领域,如:工业控制领域、无线通信领域、网络应用领域、消费类电子产品领域、成像和安全领域等等,而且将来还会取得更广泛的应用[125].嵌入式技术作为一门实践性很强的技术,做实验是学习嵌入式技术一种有效的方法,能够增进对嵌入式系统的开发流程的了解.本文在U P 2N E 2TARM 24102S 实验平台上,设计实现了一个基于嵌入式系统的触摸式计算器的设计,该触摸式计算器具有简单的计算功能.1 触摸式计算器的总体设计方案111 设计原理在设计中,采用的硬件实验平台是北京博创科技有限公司生产的基于s3c2410芯片的U P -N E 2TARM 24102S 实验平台.在软件上,采用Linux 操作系统,利用M IN IGU I 作为图形界面支持系统,编程语言采用C 语言,利用V I 文本编辑器,交叉编译器采用armv4l 2unknown 2linux 2gcc 来完成基于嵌入式的触摸式计算器的设计.在设计上,主要是利用了U P 2N ETARM 24102S 实验平台对于嵌入式L INUX 的良好支持及北京飞漫软件有限公司开发的M IN IGU I 软件优良的图形支持界面[6];同时,M IN IGU I 软件支持C 语言开发,可以利用C 语言与M IN IGU I 函数相结合,可以实现相应的功能.112 设计思路触摸式计算器可以分解为21个不同的控件(如图1),其中之一为编辑框,用来显示所输入的内容;剩下20个按钮各有不同的功能,按下C 键可以全部清除编辑框里的内容,按下0~9数字键能显示相应的数字,按下+,-,3,/,小数点,(,)等则显示相应的符号,而按下‘=’号时将显示‘=’号,同时,系统将通过对话框系统回调函数进行计算.图1 计算器界面113 设计总体流程计算器的主要模块分为定义模块、显示模块、处理消息模块3个模块.其中定义模块主要是对计算器所要用到的对话框、编辑框、按钮控件进行定义,55包括风格、扩展风格、大小、显示位置、注册ID 号等等进行定义.定义好之后通过显示模块就可以显示出计算器的界面,此时,系统就进入了等待消息时间.当有按钮被按下时,就进入了处理消息模块,当按下不同的按钮时,系统通过处理消息模块进行相应的处理,如图2.可以看出,计算器功能的实现分成了定义模块、界面建立模块和处理系统消息模块(因为等待系统消息是由系统自动建立的,不用人为干预).图2 系统总流程处理系统消息模块又分成了下面5个模块:判断是否有键按下模块、按键识别模块、编辑框清空模块、显示模块、计算模块.其中计算模块又分别为计算模块1和计算模块2,它们所处理的消息不同,因此功能也不一样.2 系统模块的划分触摸式计算器程序因为采用了M IN IGU I 图形界面支持系统,所以采用了M IN IGU I 编程的架构,主要分为控件定义模块、界面建立模块、消息处理模块3个模块.211 控件定义模块控件定义模块的主要功能是对计算器所用到的控件进行定义.而控件定义模块又可以分为对话框定义模块和控件定义模块.对话框定义模块是对计算器的外围对话框进行如风格、大小等的定义,而控件定义模块则是对21个不同的控件的大小、风格、ID 号注册等等进行定义.212 界面建立模块在定义完了对话框和控件之后,需要定义对话框的回调函数,并调用DialogBoxIndirect Param 函数建立对话框.这样可以建立起来对话框和控件的联系,就可以实现在U P 2NetARM24102S 实验平台上的触摸屏上显示出计算器的界面来.接下来所要进行的工作,就进入了计算器处理消息的核心部分,即消息处理模块.图3 消息处理模块流程213 消息处理模块消息处理模块是计算器的核心模块,工作流程如图3.消息处理模块的主要任务就是等待消息的来临和进行消息的处理.如果没有消息来临的时候,它就处于等待状态,一直等到有按键被按下去为止.一旦有按键被按下,系统就会立即侦测到系统状态:系统会自动判断哪个按键被按下,并作出相应的处理.消息处理模块包含以下5个模块:判断是否有键被按下模块、按键识别模块、编辑框清空模块、显示模块、计算模块.经过处理控件定义模块、界面显示模块、消息处理模块3个模块之后,计算器的定义、显示以及正常的工作,对消息的处理和对数据进行正确地运算等等功能就可以实现了.3 下载调试311 对源程序进行交叉编译进行交叉编译之前要写几个与交叉编译相关的文件,主要是为M IN IGU I 应用程序编写Au 2tomake/Autoconf 脚本.对所设计的计算器进行交65北京工商大学学报(自然科学版) 2007年1月叉编译是参照MDE的Automake/Autoconf脚本来建立项目脚本.首先在根目录下建立一个samples目录作为项目的根目录,并为项目取名为samples.然后在sam2 ples目录下建立一个子目录,取名为src.将计算器的源程序calculator.c放入src子目录下.接下来从mde2116中复制configure.in文件.首先,修改con2 figure.in文件,dnl在下面的宏中指定项目名称samples和项目版本号(110)AM-IN IT-AU2 TOMA KE(samples,110),将AC-OU TPU T里面修改为:Makefile;src/Makefile.这样,生成的Makefile 文件将在下面的宏中列出.利用这个configure.in 生成的configure脚本和Makefile文件将完成如下工作[6]:1)生成适于进行交叉编译的configure脚本;2)检查系统中是否安装了M IN IGU I;3)检查系统中已安装的M IN IGU II被配置成M IN IGU II2Lite还是M IN IGU II2Threads,并适当设置程序要连接的函数库;4)根据M IN IGU II的配置选项确定其它需要链接的依赖函数库;5)生成项目根目录下的Makefile文件以及src/子目录中的Makefile文件.建立项目根目录下的Makefile.am文件.该文件内容如下:SUBDIRS=src上述文件内容告诉Au2 tomake系统进入src/目录继续处理.接下来建立src/子目录下的Makefile.am文件,该文件内容如下:noinst-PRO GRAMS=calculatorhelloworld-SOURCES=calculator.c上述文件内容告诉Automake生成一个用来从calculator.c建立calculator程序的Makefile文件.最后,回到项目根目录下建立一个autogen.sh文件,内容如下:#!/bin/shaclocalautomake2add2missingautoconf该文件是一个shell脚本,依次调用了aclocal、automake和autoconf命令.注意在建立该文件之后,要运行chmod命令使之变成可执行文件:$chmod+x autogen.sh至此,就可以运行如下命令生成项目所需的Makefile文件了:$./autogen.sh$./configure运行完上述命令之后,项目根目录下多了许多自动生成的文件.然后执行make命令:这样,通过make命令就可以产生可执行文件了.312 下载可执行文件到实验平台当生成可执行文件之后,将此文件下载到实验箱上.首先,在PC机和U P2N ETARM24102S实验平台之间建立局域网.将PC机上的samples/src/ calculator和实验平台实现共享.同时在实验平台上动态加载触摸屏的驱动程序[7](该程序是由U P2 N ETARM24102S实验平台提供的),这时在实验平台上执行生成的计算器可执行文件,可以将计算器显示在触摸屏上.通过下载实现了计算器的点击显示,单步计算,对运算式进行四则法则的运算等.4 结论本文在U P2N ETARM24102S实验平台上,采用Linux操作系统,利用M IN IGU I作为图形界面支持系统,编程语言采用C语言,利用V I文本编辑器,交叉编译器采用armv4l2unknown2linux2gcc完成了基于嵌入式的触摸式计算器的设计.利用M IN IGU I软件,实现了触摸式计算器的设计,触摸式计算器具有简单科学计算器的功能.参考文献:[1] 陈赜,秦贵和,徐华中,等.ARM9嵌入式技术及Lin2ux高级实践教程[M].北京:北京航空航天大学出版社,2005.[2] 王田苗.嵌入式系统设计与实例开发———基于ARM微处理器与uC/OS2Ⅱ实时操作系统[M].北京:清华大学出版社,2003.[3] 马忠梅.ARM嵌入式处理器结构与应用基础[M].北京:北京航空航天大学出版社,2003.[4] 杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2001.[5] 魏永明,钟书毅,潘为国.Linux/uClinux+MIN IGU I2I:嵌入式系统开发原理、工具及过程[EB/OL].www.MIN IGU ,20050503.[6] 北京飞漫软件有限公司.MIN IGU Ii编程指南[EB/OL].www.MIN IGU ,20050415.[7] 北京博创科技有限公司.U P2N ETARM24102S实验指导书[EB/OL],20050502.75第25卷第1期 陈裕涛等:基于嵌入式系统的触摸式计算器的设计DESIGN OF T OUCH SCREEN CALCU LAT ORBASED ON EMBEDDED SYSTEMCHEN Yu2tao, Q IAO Ji2hong(College of Inf ormation Engineering,Beijing T echnology and B usiness University,Beijing100037,China)Abstract:A touch screen calculator is designed.The graphical interfaces are designed using M IN IGU I on Linux operating system.The programmer language is C.The editor is V I of Linux operating sys2 tem.The intercrossing compiler is armv4l2unknown2linux2gcc.The touch screen calculator has main function of science calculator.All the experiment is realized on U P2N ETARM24102S.K ey w ords:embedded system;M IN IGU II;touch screen(责任编辑:王 宽) (上接第45页)[5] Roska T,Chua L O.Cellular neural networks with non2line and delay2type templete elements and nonuniform grids[J].Int J Circuit Theory Application,1992(20): 469481.[6] 彭世国.变时延细胞神经网络模型的全局指数稳定性[J].工程数学学报,2002,19(2):131134.[7] 傅朝金.变时滞细胞神经网络的指数稳定的一个充分条件[J].数学杂志,2002,22(3):266270.[8] 胡军浩,赵新泉,田凡.具有变时滞的细胞神经网络的定性分析[J].中南民族大学学报(自然科学版), 2002,21(3):7981.[9] 韩力群.人体感觉机制的模型化与数字化[J].中国医学影像技术,2003,19(8):6366.CE LL U LAR NEURAL NETWORK S AN D BIOLOGICAL VISUAL INFORMATION PR OCESSING MODE LWEN G Y i2fang1, J U Lei2, WAN G Jian1(1.College of Inf orm ation Engi neeri ng,Beiji ng Technology and B usi ness U niversity,Beiji ng100037,Chi na; m unication Engi neeri ng Depart ment,Beiji ng Instit ute ofScience and Technology,Beiji ng100070,Chi na)Abstract:The mathematical models of continuous2time,discrete2time and time2delay Cellular Neural Networks(CNN)were investigated in the aspect of image processing.A kind of biological visual infor2 mation processing model composed of several different CNNs was proposed according to the principle of human rision generation in brain.It makes full use of the parallel processing ability of CNN,therefore the model is fast in dealing with visual information.It could be the basic work in emulation human vi2 sion for Robot.K ey w ords:cellular neural networks;biological vision;information processing;model(责任编辑:邓清燕)85北京工商大学学报(自然科学版) 2007年1月。

嵌入式系统之基于QT的简单计算器

嵌入式系统之基于QT的简单计算器

嵌入式系统之基于QT的简单计算器QT是一种跨平台的应用程序开发框架,它提供了一种编写图形用户界面(GUI)程序的简便方法。

在嵌入式系统中,使用QT可以快速开发出各种功能强大、界面友好的应用程序。

对于一个简单计算器来说,主要包括用户界面设计和计算逻辑两部分。

首先,我们需要设计一个界面来展示计算器的按钮和显示结果的区域。

在QT中,可以使用QGridLayout布局管理器来创建按钮布局,同时将其连接到对应的信号槽函数上,以实现按钮的点击响应。

```cpp//main.qmlimport QtQuick 2.12import QtQuick.Window 2.12import QtQuick.Controls 2.12Windowvisible: truewidth: 400height: 600title: "Simple Calculator"RowLayoutspacing: 10GridLayoutid: buttonGridrows: 4columns: 4anchors.horizontalCenter: parent.horizontalCenter anchors.verticalCenter: parent.verticalCenter Buttontext: "7"onClicked: calculator.append("7")}Buttontext: "8"onClicked: calculator.append("8")}// ... more buttons ...Buttontext: "="onClicked: calculator.calculate}// ... more buttons ...}TextFieldid: resultFieldwidth: 200height: 50placeholderText: "0"readOnly: true}}```在这个示例中,我们使用了QT的QML语言来创建用户界面。

触摸屏计算器设计方案

触摸屏计算器设计方案

微控制器课程设计方案基于STM32的多功能计算器一、总体方案设计:1、基本功能:利用触摸屏实现加减乘除四则运算的单次或连续地整型、浮点型数据运算,并将表达式和结果实时显示在液晶屏上;支持带优先级的表达式求值;实现三角函数的运算;当输入错误的表达式时,将对应的错误信息显示出来,提醒用户纠正。

2、扩展功能:进行十六进制的数值运算,并显示以十六进制表示的答案。

二、系统硬件设计:微控制器:stm32开发板;触摸屏模块:stm32开发板配套液晶屏(4.5寸)。

三、系统软件设计:1、系统初始化:系统时钟初始化—>延时初始化—>LCD初始化—>触摸屏初始化—>显示计算器输入界面。

2、显示模块设计:由LCD初始化程序设置界面。

通过屏幕绘制将按键显示出来,其次由定时器中断程序定时刷新显示的表达式,将表达式于显示窗口实时显示出来。

3、计算功能程序设计:(1)运算功能的实现:i基本运算通过扫屏得到输入信息,将指令分为数字类、符号类、命令类三类指令。

对于数字类指令(如1、2、3、.、-、4……),创建数组,用以保存输入的数值,并在满足输入终止的判断条件(出现符号或命令类指令)后,重新排序,用相应函数将数组转为数字,以便进行下一步计算;对于符号类指令(如+、-、*、%……),将其作为数字类指令输入结束的判断,同时在下一个符号结束后进行第一个符号两边数字的运算;对于命令类指令(主要针对=),进行最终的计算,并将相应结果显示在对应位置。

ii科学运算(包含优先级)在基本运算的基础上,在得到命令类指令之前,不进行任何运算,将得到的数字和符号都储存到数组中,在得到命令类指令后,将符号类的指令进行优先级排序,然后依次找出符号两边的数字进行计算,并将得到的结果存入处理后的数组中,重复以上步骤直到得到最终结果。

总体运算过程流程图如下:iii三角函数运算利用#include <math.h>直接调用三角函数相关程序。

[arm]嵌入式系统计算器设计

[arm]嵌入式系统计算器设计

嵌入式系统设计报告题目:触摸式计算器设计姓名:姜涛学号:x05610117班级:05电子(11)班指导老师:沈军民一、课程任务本电子系统的功能是借助ARM 7教学实验箱,使用S3C44B0三星处理器能及触摸屏及LCD显示屏等硬件编写程序来实现计算器的设计。

实验要求:1、要用触摸屏来实现2、能够具有触摸按键选择功能,并且具有显示数字功能3、可以实现四则运算功能二、软件实现流程图三、主程序:#include "44b.h"#include"uhal.h"#include "option.h"#include"def.h"#include "tchScr.h"#include"myuart.h"#include "tchScr.h"#include "maro.h"#pragma import(__use_no_semihosting_swi) // ensure no functions that use semihostingextern U32 LCDBuffer[240][320];U32 jcolor;int number =0;//记录数字int number1=0;char signal;int main(void){int i,j,k;int m,n;ARMTargetInit(); //开发版初始化LCD_Init(); //LCD初始化/* for (i=0;i<9;i++){ switch (i){ case 0: jcolor=0x00000000; //RGB均为0 黑色break;case 1: jcolor=0x000000e0; //R 红色break;case 2: jcolor=0x0000d0e0; //R and G 橙色break;case 3: jcolor=0x0000e0e0; //R and G 黄break;case 4: jcolor=0x0000e000; //G 绿色break;case 5: jcolor=0x00e0e000; //G B 青色break;case 6: jcolor=0x00e00000; //B 蓝色break;case 7: jcolor=0x00e000e0; //R and B 紫色break;case 8: jcolor=0x00e0e0e0; //RGB 白色break;}*/jsqInit();getNum(235,7,0);LCD_Refresh() ;while(1){TchScr_Test();Delay(1000);}return 0;}getNum(int x,int y,int num){int i,j;for(i=x;i<=x+8;i++)for(j=y;j<=y+14;j++){LCDBuffer[j][i]=0x00000000;switch(num){case 0:if(i==x||i==x+8) LCDBuffer[j][i]=0x0000e000;if(j==y||j==y+14) LCDBuffer[j][i]=0x0000e000;break;case 1:if(i==x+8) LCDBuffer[j][i]=0x0000e000;break;case 2:if(j==y||j==y+7||j==y+14) LCDBuffer[j][i]=0x0000e000;if((i==x&&j>=y+7)||(i==x+8&&j<=y+7))LCDBuffer[j][i]=0x0000e000;break;case 3:if(j==y||j==y+7||j==y+14) LCDBuffer[j][i]=0x0000e000;if(i==x+8) LCDBuffer[j][i]=0x0000e000;break;case 4: if(j==y+7) LCDBuffer[j][i]=0x0000e000;if(i==x&&j<=y+7) LCDBuffer[j][i]=0x0000e000;if(i==x+8) LCDBuffer[j][i]=0x0000e000;break;case 5:if(j==y||j==y+7||j==y+14) LCDBuffer[j][i]=0x0000e000;if((i==x&&j<=y+7)||(i==x+8&&j>=y+7))LCDBuffer[j][i]=0x0000e000;break;case 6:if(j==y||j==y+7||j==y+14)LCDBuffer[j][i]=0x0000e000;if(i==x||(i==x+8&&j>=y+7))LCDBuffer[j][i]=0x0000e000;break;case 7:if(i==x+8) LCDBuffer[j][i]=0x0000e000;if(j==y) LCDBuffer[j][i]=0x0000e000;break;case 8:if(j==y||j==y+7||j==y+14) LCDBuffer[j][i]=0x0000e000;if(i==x||i==x+8) LCDBuffer[j][i]=0x0000e000;break;case 9:if(j==y||j==y+7||j==y+14) LCDBuffer[j][i]=0x0000e000;if((i==x&&j<=y+7)||i==x+8)LCDBuffer[j][i]=0x0000e000;break;}}}getOp(){int i,j;for(i=235;i<=243;i++)for(j=7;j<21;j++){switch(signal){case '+':if(j==14||i==239) LCDBuffer[j][i]=0x00e00000;break;case '-':if(j==14) LCDBuffer[j][i]=0x00e00000;break;case'*':if(j+i==245||j-i==221)LCDBuffer[j][i]=0x00e00000;break;case '/':if(j-i==221)LCDBuffer[j][i]=0x00e00000;break;}}}jsqInit(){int k,i,j;for (k=0;k<260;k++)for (j=i*32;j<i*32+32;j++){LCDBuffer[2][k+10]= 0x00e00000;LCDBuffer[42][k+10]= 0x00e00000;LCDBuffer[215][105]= 0x00e00000;//'.'LCDBuffer[107][235]= 0x00e00000;//'/'LCDBuffer[117][235]= 0x00e00000;//'/'}for (k=0;k<10;k++)for (j=i*32;j<i*32+32;j++){LCDBuffer[57][k+100]= 0x00e00000;//‘2’的位置 LCDBuffer[67][k+100]= 0x00e00000;LCDBuffer[77][k+100]= 0x00e00000;LCDBuffer[57][k+165]= 0x00e00000;//‘3’的位置 LCDBuffer[67][k+165]= 0x00e00000;LCDBuffer[77][k+165]= 0x00e00000;LCDBuffer[112][k+35]= 0x00e00000;//‘4’的位置LCDBuffer[102][k+100]= 0x00e00000;//‘5’的位置 LCDBuffer[112][k+100]= 0x00e00000;LCDBuffer[122][k+100]= 0x00e00000;LCDBuffer[102][k+165]= 0x00e00000;//‘6’的位置 LCDBuffer[112][k+165]= 0x00e00000;LCDBuffer[122][k+165]= 0x00e00000;LCDBuffer[147][k+35]= 0x00e00000;//‘7’的位置LCDBuffer[147][k+100]= 0x00e00000;//‘8’的位置 LCDBuffer[157][k+100]= 0x00e00000;LCDBuffer[167][k+100]= 0x00e00000;LCDBuffer[147][k+165]= 0x00e00000;//‘9’的位置 LCDBuffer[157][k+165]= 0x00e00000;LCDBuffer[167][k+165]= 0x00e00000;LCDBuffer[192][k+35]= 0x00e00000;//‘0’的位置 LCDBuffer[212][k+35]= 0x00e00000;LCDBuffer[157][k+230]= 0x00e00000;//‘-’的位置LCDBuffer[202][k+165]= 0x00e00000;//‘+’的位置LCDBuffer[200][k+230]= 0x00e00000;//‘=’的位置 LCDBuffer[204][k+230]= 0x00e00000;LCDBuffer[112][k+230]= 0x00e00000;//'/'}for (k=0;k<60;k++)for (j=i*32;j<i*32+32;j++){LCDBuffer[47][k+10]= 0x00e00000;LCDBuffer[87][k+10]= 0x00e00000;LCDBuffer[47][k+75]= 0x00e00000;LCDBuffer[87][k+75]= 0x00e00000;LCDBuffer[47][k+140]= 0x00e00000;LCDBuffer[87][k+140]= 0x00e00000;LCDBuffer[47][k+205]= 0x00e00000;LCDBuffer[87][k+205]= 0x00e00000;LCDBuffer[92][k+10]= 0x00e00000; LCDBuffer[132][k+10]= 0x00e00000;LCDBuffer[92][k+75]= 0x00e00000; LCDBuffer[132][k+75]= 0x00e00000;LCDBuffer[92][k+140]= 0x00e00000; LCDBuffer[132][k+140]= 0x00e00000;LCDBuffer[92][k+205]= 0x00e00000; LCDBuffer[132][k+205]= 0x00e00000;LCDBuffer[137][k+10]= 0x00e00000; LCDBuffer[177][k+10]= 0x00e00000;LCDBuffer[137][k+75]= 0x00e00000; LCDBuffer[177][k+75]= 0x00e00000;LCDBuffer[137][k+140]= 0x00e00000; LCDBuffer[177][k+140]= 0x00e00000;LCDBuffer[137][k+205]= 0x00e00000; LCDBuffer[177][k+205]= 0x00e00000;LCDBuffer[182][k+10]= 0x00e00000; LCDBuffer[222][k+10]= 0x00e00000;LCDBuffer[182][k+75]= 0x00e00000; LCDBuffer[222][k+75]= 0x00e00000;LCDBuffer[182][k+140]= 0x00e00000; LCDBuffer[222][k+140]= 0x00e00000;LCDBuffer[182][k+205]= 0x00e00000; LCDBuffer[222][k+205]= 0x00e00000;}jcolor=0x00e00000;for (i=0;i<40;i++){if (i==80||i==160)jcolor<<=8;for (j=288;j<320;j++){LCDBuffer[i+2][10]=0x00e00000; LCDBuffer[i+2][270]=0x00e00000;LCDBuffer[i+47][10]=0x00e00000;LCDBuffer[i+47][70]=0x00e00000; LCDBuffer[i+47][75]=0x00e00000; LCDBuffer[i+47][135]=0x00e00000; LCDBuffer[i+47][140]=0x00e00000; LCDBuffer[i+47][200]=0x00e00000; LCDBuffer[i+47][205]=0x00e00000; LCDBuffer[i+47][265]=0x00e00000;LCDBuffer[i+92][10]=0x00e00000; LCDBuffer[i+92][70]=0x00e00000; LCDBuffer[i+92][75]=0x00e00000; LCDBuffer[i+92][135]=0x00e00000; LCDBuffer[i+92][140]=0x00e00000; LCDBuffer[i+92][200]=0x00e00000; LCDBuffer[i+92][205]=0x00e00000; LCDBuffer[i+92][265]=0x00e00000;LCDBuffer[i+137][10]=0x00e00000;LCDBuffer[i+137][70]=0x00e00000;LCDBuffer[i+137][75]=0x00e00000;LCDBuffer[i+137][135]=0x00e00000;LCDBuffer[i+137][140]=0x00e00000;LCDBuffer[i+137][200]=0x00e00000;LCDBuffer[i+137][205]=0x00e00000;LCDBuffer[i+137][265]=0x00e00000;LCDBuffer[i+182][10]=0x00e00000;LCDBuffer[i+182][70]=0x00e00000;LCDBuffer[i+182][75]=0x00e00000;LCDBuffer[i+182][135]=0x00e00000;LCDBuffer[i+182][140]=0x00e00000;LCDBuffer[i+182][200]=0x00e00000;LCDBuffer[i+182][205]=0x00e00000;LCDBuffer[i+182][265]=0x00e00000;}}jcolor=0x00e00000;for (i=0;i<10;i++){if (i==80||i==160)jcolor<<=8;for (j=288;j<320;j++){LCDBuffer[i+67][100]=0x00e00000;// ‘2’ LCDBuffer[i+57][110]=0x00e00000;LCDBuffer[i+102][35]=0x00e00000;// ‘4’LCDBuffer[i+102][100]=0x00e00000;// ‘5’LCDBuffer[i+112][110]=0x00e00000;LCDBuffer[i+112][175]=0x00e00000;// ‘6’LCDBuffer[i+147][165]=0x00e00000; // ‘9’LCDBuffer[i+197][170]=0x00e00000; // ‘+’}}jcolor=0x00e00000;for (i=0;i<20;i++){if (i==80||i==160)jcolor<<=8;for (j=288;j<320;j++){LCDBuffer[i+62][40]=0x00e00000;//‘1’LCDBuffer[i+57][175]=0x00e00000;//‘3’LCDBuffer[i+102][40]=0x00e00000;//‘4’LCDBuffer[i+102][165]=0x00e00000;//‘6’LCDBuffer[i+147][45]=0x00e00000;//‘7’LCDBuffer[i+147][100]=0x00e00000;//‘8’ LCDBuffer[i+147][110]=0x00e00000;LCDBuffer[i+147][175]=0x00e00000;//‘9’LCDBuffer[i+192][35]=0x00e00000;//‘0’ LCDBuffer[i+192][45]=0x00e00000;}}//return;// }}tchNum(int x,int y){int i;int x1,y1;x1=(x-5)/65;y1=(y-42)/45;if(number<99999999||(x1==1&&y1==3)||(x1==2&&y1==3)||x1==3){switch(x1){case 0:switch(y1){case 0:number=number*10+1;return;case 1:number=number*10+4;return;case 2:number=number*10+7;return;case 3:number=number*10;return;}case 1:switch(y1){case 0:number=number*10+2;return;case 1:number=number*10+5;return;case 2:number=number*10+8;return;case 3:signal='*';clear();getOp();number1=number;number=0;return;}case 2:switch(y1){case 0:number=number*10+3;return;case 1:number=number*10+6;return;case 2:number=number*10+9;return;case 3:signal='+';clear();getOp();number1=number;number=0;return;}case 3:switch(y1){case 0:number=0;number1=0;clear();getNum(235,7,0);return;case 1:signal='/';clear();getOp();number1=number;number=0;return;case 2:signal='-';clear();getOp(); number1=number;number=0;return;case 3:operation();return;}}}}showNum(){//tchNum();int ws=1;int n;n=number;Uart_Printf("$$$$$$$$number=%d",n);Uart_Printf("$$$$$$$$number=%d",number);if(number<0) {isFu();n=-n;}while(n!=0||n/10!=0){switch(ws){case 1:getNum(235,7,n%10);break;case 2:getNum(220,7,n%10);break;case 3:getNum(205,7,n%10);break;case 4:getNum(190,7,n%10);break;case 5:getNum(175,7,n%10);break;case 6:getNum(160,7,n%10);break;case 7:getNum(145,7,n%10);break;case 8:getNum(130,7,n%10);break;case 9:getNum(115,7,n%10);break;}ws++;n=n/10;}}clear(){int i,j;for(i=115;i<=235;i=i+15)getNum(i,7,10);for(i=100;i<=108;i++)for(j=7;j<21;j++){if(j==14) LCDBuffer[j][i]=0x00e0e0e0;break;}}operation(){switch(signal){case '+': number = number+number1;clear();break;case '-':number = number1-number;clear();break;case '*':number = number*number1;clear();break;case '/':number = number1/number;clear();break;}}isFu(){int i,j;for(i=100;i<=108;i++)for(j=7;j<21;j++){if(j==14) LCDBuffer[j][i]=0x00e0e0e0;break;}}四、实验结果显示五、实验心得1、在做计算器时,第一步关键是要将触摸屏校准,使用触摸屏实验程序,通过超级终端将坐标打印出来,从而去调整TchScr_Xmax, TchScr_Xmin, TchScr_Ymax, TchScr_Ymin四个坐标值,使得触摸屏与LCD显示屏能够正确的对应2、在坐标对应的过程中,首先要确定实际触摸屏的X、Y坐标方向,以及程序中的X、Y坐标方向是不是已经和实际坐标对应起来,否则容易出现后面按键时出现按键错位。

嵌入式系统触摸屏设计(需要仔细品读)

嵌入式系统触摸屏设计(需要仔细品读)

嵌入式系统触摸屏设计(需要仔细品读)触摸屏工作原理与结构触摸屏附着在显示器的表面,根据触摸点在显示屏上对应坐标点的显示内容或图形符号,进行相应的操作。

触摸屏按其工作原理可分为矢量压力传感式、电阻式、电容式、红外线式和表面声波式5类。

在嵌入式系统中常用的是电阻式触摸屏。

电阻触摸屏结构如图5.6.1(c)所示,最上层是一层外表面经过硬化处理、光滑防刮的塑料层,内表面也涂有一层导电层(ITO或镍金);基层采用一层玻璃或薄膜,内表面涂有叫作ITO的透明导电层;在两层导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔开绝缘。

在每个工作面的两条边线上各涂一条银胶,称为该工作面的一对电极,一端加5V电压,一端加0V,在工作面的一个方向上形成均匀连续的平行电压分布。

当给X方向的电极对施加一确定的电压,而Y方向电极对不加电压时,在x平行电压场中,触点处的电压值可以在Y+(或Y—)电极上反映出来,通过测量Y+电极对地的电压大小,通过A/D转换,便可得知触点的X坐标值。

同理,当给Y 电极对施加电压,而X电极对不加电压时,通过测量X+电极的电压,通过A/D转换便可得知触点的Y坐标。

当手指或笔触摸屏幕时(如图5.6.1(c)所示),两个相互绝缘的导电层在触摸点处接触,因其中一面导电层(顶层)接通X轴方向的5V均匀电压场(如图5.6.1(a)所示),使得检测层(底层)的电压由零变为非零,控制器检测到这个接通后,进行A/D转换,并将得到的电压值与5V相比,即可得触摸点的X轴坐标为(原点在靠近接地点的那端):同理也可以得出Y轴的坐标。

电阻式触摸屏有四线式和五线式两种。

四线式触摸屏的X工作面和Y工作面分别加在两个导电层上,共有4根引出线:X+、X-,Y +、Y-分别连到触摸屏的X电极对和Y电极对上。

四线电阻屏触摸寿命小于100万次。

五线式触摸屏是四线式触摸屏的改进型。

五线式触摸屏把X工作面和Y工作面都加在玻璃基层的导电涂层上,工作时采用分时加电,即让两个方向的电压场分时工作在同一工作面上,而外导电层则仅仅用来充当导体和电压测量电极。

基于嵌入式系统的触摸式计算器的设计

基于嵌入式系统的触摸式计算器的设计

基于嵌入式系统的触摸式计算器的设计
陈裕涛;乔继红
【期刊名称】《北京工商大学学报(自然科学版)》
【年(卷),期】2007(025)001
【摘要】在UP-NETARM 2410-S实验平台上,采用Linux操作系统,利用MINIGUI作为图形界面支持系统,编程语言采用C语言,利用VI文本编辑器,交叉编译器采用armv4l-unknown-linux-gcc完成了基于嵌入式的触摸式计算器的设计. 利用MINIGUI软件,实现了触摸式计算器的设计,触摸式计算器具有简单科学计算器的功能.
【总页数】4页(P55-58)
【作者】陈裕涛;乔继红
【作者单位】北京工商大学,信息工程学院,北京,100037;北京工商大学,信息工程学院,北京,100037
【正文语种】中文
【中图分类】TP368
【相关文献】
1.浅谈嵌入式系统原理在计算器设计中的应用 [J], 王甜
2.基于声光的无触摸式人机交互产品设计 [J], 赖琮霖;黄庆涛
3.触摸式计算器的设计 [J], 刘川
4.基于RPR220的非触摸式功率放大器的设计与制作 [J], 曹帅
5.基于用户体验的数控压力机触摸式交互界面设计 [J], 袁浩;劳超超;张清林;梁伯科;臧崇运
因版权原因,仅展示原文概要,查看原文内容请购买。

嵌入式--计算器--实验报告

嵌入式--计算器--实验报告

计算器设计实验报告一、实验设计主要分工04009320 文斌:算法设计,LCD显示。

04** 张希:界面(按钮控件)设计,文件内容读取。

共同调试、完善设计。

二、程序设计实现功能效果(1)支持整数、小数基本加减乘除运算;(2)有优先级的判别计算。

优先级由高到低一次为括号运算、乘除运算、加减运算。

(3)支持键盘输入和触摸屏输入;(4)能读取指定目录下文本内容(内容为计算表达式)并计算得出结果,将内容和结果显示在LCD上。

程序任务开始后,等待键盘或触摸屏的输入。

输入键有0~9数字键、+-*/()运算符、del退格键、clear清屏键、read读指定目录文本内容并计算键、enter'='键、‘.’小数点键。

每当有字符输入时,触摸屏相应键显示“AAA”,100ms后恢复原相应按键符号,同时LCD 屏幕上显示相应字符。

当输入'del'键时,屏幕显示去掉最后一位字符。

当输入'='号后,得出计算结果,结果显示于表达式的下一行。

若是除零错误,则结果显示为“/0ERROR!”。

若有非法字符(触摸点不能识别为设计按键符则视为非法字符),则结果输出为“Syntax Error!!”。

若表达式有运算符连续输入,则忽略前面的运算符,只取最后一位运算符计算,正常显示数字结果。

当输入'clear'键时,情况显示区域。

当输入'read'键时,从指定目录文本文件中读取表达式并计算。

将表达式内容和计算结果显示在LCD上。

三、程序算法实现1、计算算法首先将输入的0~9数字、+-*/()运算符的内容存储于一个全局变量cal[number]中,表达为中缀表达式。

用void str2repol()函数,将输入字符串cal[number]转换成逆波兰表达式并存于全局数组char repol[maxs]中。

str2repol()函数中缀表达式转成逆波兰后缀表达式算法如下:(1)首先构造一个运算符栈stack[maxs],此运算符在栈内遵循越往栈顶优先级越高的原则。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第25卷第1期2007年1月北京工商大学学报(自然科学版)Journal of Beijing Technology and Business University (Natural Science Edition )Vol 125No 11Jan.2007 文章编号:167121513(2007)0120055204基于嵌入式系统的触摸式计算器的设计陈裕涛, 乔继红(北京工商大学信息工程学院,北京100037)摘 要:在U P 2N ETARM 24102S 实验平台上,采用Linux 操作系统,利用M IN IGU I 作为图形界面支持系统,编程语言采用C 语言,利用V I 文本编辑器,交叉编译器采用armv4l 2unknown 2linux 2gcc 完成了基于嵌入式的触摸式计算器的设计.利用M IN IGU I 软件,实现了触摸式计算器的设计,触摸式计算器具有简单科学计算器的功能.关键词:嵌入式系统;M IN IGU I ;触摸屏中图分类号:TP368 文献标识码:A 收稿日期:20060705作者简介:陈裕涛(1983—),男,湖南永州人,硕士研究生,从事电子产品开发. 嵌入式技术无处不在,ARM 几乎成为嵌入式技术的代名词.到目前为止,嵌入式微处理器及其技术已经深入到各个领域,如:工业控制领域、无线通信领域、网络应用领域、消费类电子产品领域、成像和安全领域等等,而且将来还会取得更广泛的应用[125].嵌入式技术作为一门实践性很强的技术,做实验是学习嵌入式技术一种有效的方法,能够增进对嵌入式系统的开发流程的了解.本文在U P 2N E 2TARM 24102S 实验平台上,设计实现了一个基于嵌入式系统的触摸式计算器的设计,该触摸式计算器具有简单的计算功能.1 触摸式计算器的总体设计方案111 设计原理在设计中,采用的硬件实验平台是北京博创科技有限公司生产的基于s3c2410芯片的U P -N E 2TARM 24102S 实验平台.在软件上,采用Linux 操作系统,利用M IN IGU I 作为图形界面支持系统,编程语言采用C 语言,利用V I 文本编辑器,交叉编译器采用armv4l 2unknown 2linux 2gcc 来完成基于嵌入式的触摸式计算器的设计.在设计上,主要是利用了U P 2N ETARM 24102S 实验平台对于嵌入式L INUX 的良好支持及北京飞漫软件有限公司开发的M IN IGU I 软件优良的图形支持界面[6];同时,M IN IGU I 软件支持C 语言开发,可以利用C 语言与M IN IGU I 函数相结合,可以实现相应的功能.112 设计思路触摸式计算器可以分解为21个不同的控件(如图1),其中之一为编辑框,用来显示所输入的内容;剩下20个按钮各有不同的功能,按下C 键可以全部清除编辑框里的内容,按下0~9数字键能显示相应的数字,按下+,-,3,/,小数点,(,)等则显示相应的符号,而按下‘=’号时将显示‘=’号,同时,系统将通过对话框系统回调函数进行计算.图1 计算器界面113 设计总体流程计算器的主要模块分为定义模块、显示模块、处理消息模块3个模块.其中定义模块主要是对计算器所要用到的对话框、编辑框、按钮控件进行定义,55包括风格、扩展风格、大小、显示位置、注册ID 号等等进行定义.定义好之后通过显示模块就可以显示出计算器的界面,此时,系统就进入了等待消息时间.当有按钮被按下时,就进入了处理消息模块,当按下不同的按钮时,系统通过处理消息模块进行相应的处理,如图2.可以看出,计算器功能的实现分成了定义模块、界面建立模块和处理系统消息模块(因为等待系统消息是由系统自动建立的,不用人为干预).图2 系统总流程处理系统消息模块又分成了下面5个模块:判断是否有键按下模块、按键识别模块、编辑框清空模块、显示模块、计算模块.其中计算模块又分别为计算模块1和计算模块2,它们所处理的消息不同,因此功能也不一样.2 系统模块的划分触摸式计算器程序因为采用了M IN IGU I 图形界面支持系统,所以采用了M IN IGU I 编程的架构,主要分为控件定义模块、界面建立模块、消息处理模块3个模块.211 控件定义模块控件定义模块的主要功能是对计算器所用到的控件进行定义.而控件定义模块又可以分为对话框定义模块和控件定义模块.对话框定义模块是对计算器的外围对话框进行如风格、大小等的定义,而控件定义模块则是对21个不同的控件的大小、风格、ID 号注册等等进行定义.212 界面建立模块在定义完了对话框和控件之后,需要定义对话框的回调函数,并调用DialogBoxIndirect Param 函数建立对话框.这样可以建立起来对话框和控件的联系,就可以实现在U P 2NetARM24102S 实验平台上的触摸屏上显示出计算器的界面来.接下来所要进行的工作,就进入了计算器处理消息的核心部分,即消息处理模块.图3 消息处理模块流程213 消息处理模块消息处理模块是计算器的核心模块,工作流程如图3.消息处理模块的主要任务就是等待消息的来临和进行消息的处理.如果没有消息来临的时候,它就处于等待状态,一直等到有按键被按下去为止.一旦有按键被按下,系统就会立即侦测到系统状态:系统会自动判断哪个按键被按下,并作出相应的处理.消息处理模块包含以下5个模块:判断是否有键被按下模块、按键识别模块、编辑框清空模块、显示模块、计算模块.经过处理控件定义模块、界面显示模块、消息处理模块3个模块之后,计算器的定义、显示以及正常的工作,对消息的处理和对数据进行正确地运算等等功能就可以实现了.3 下载调试311 对源程序进行交叉编译进行交叉编译之前要写几个与交叉编译相关的文件,主要是为M IN IGU I 应用程序编写Au 2tomake/Autoconf 脚本.对所设计的计算器进行交65北京工商大学学报(自然科学版) 2007年1月叉编译是参照MDE的Automake/Autoconf脚本来建立项目脚本.首先在根目录下建立一个samples目录作为项目的根目录,并为项目取名为samples.然后在sam2 ples目录下建立一个子目录,取名为src.将计算器的源程序calculator.c放入src子目录下.接下来从mde2116中复制configure.in文件.首先,修改con2 figure.in文件,dnl在下面的宏中指定项目名称samples和项目版本号(110)AM-IN IT-AU2 TOMA KE(samples,110),将AC-OU TPU T里面修改为:Makefile;src/Makefile.这样,生成的Makefile 文件将在下面的宏中列出.利用这个configure.in 生成的configure脚本和Makefile文件将完成如下工作[6]:1)生成适于进行交叉编译的configure脚本;2)检查系统中是否安装了M IN IGU I;3)检查系统中已安装的M IN IGU II被配置成M IN IGU II2Lite还是M IN IGU II2Threads,并适当设置程序要连接的函数库;4)根据M IN IGU II的配置选项确定其它需要链接的依赖函数库;5)生成项目根目录下的Makefile文件以及src/子目录中的Makefile文件.建立项目根目录下的Makefile.am文件.该文件内容如下:SUBDIRS=src上述文件内容告诉Au2 tomake系统进入src/目录继续处理.接下来建立src/子目录下的Makefile.am文件,该文件内容如下:noinst-PRO GRAMS=calculatorhelloworld-SOURCES=calculator.c上述文件内容告诉Automake生成一个用来从calculator.c建立calculator程序的Makefile文件.最后,回到项目根目录下建立一个autogen.sh文件,内容如下:#!/bin/shaclocalautomake2add2missingautoconf该文件是一个shell脚本,依次调用了aclocal、automake和autoconf命令.注意在建立该文件之后,要运行chmod命令使之变成可执行文件:$chmod+x autogen.sh至此,就可以运行如下命令生成项目所需的Makefile文件了:$./autogen.sh$./configure运行完上述命令之后,项目根目录下多了许多自动生成的文件.然后执行make命令:这样,通过make命令就可以产生可执行文件了.312 下载可执行文件到实验平台当生成可执行文件之后,将此文件下载到实验箱上.首先,在PC机和U P2N ETARM24102S实验平台之间建立局域网.将PC机上的samples/src/ calculator和实验平台实现共享.同时在实验平台上动态加载触摸屏的驱动程序[7](该程序是由U P2 N ETARM24102S实验平台提供的),这时在实验平台上执行生成的计算器可执行文件,可以将计算器显示在触摸屏上.通过下载实现了计算器的点击显示,单步计算,对运算式进行四则法则的运算等.4 结论本文在U P2N ETARM24102S实验平台上,采用Linux操作系统,利用M IN IGU I作为图形界面支持系统,编程语言采用C语言,利用V I文本编辑器,交叉编译器采用armv4l2unknown2linux2gcc完成了基于嵌入式的触摸式计算器的设计.利用M IN IGU I软件,实现了触摸式计算器的设计,触摸式计算器具有简单科学计算器的功能.参考文献:[1] 陈赜,秦贵和,徐华中,等.ARM9嵌入式技术及Lin2ux高级实践教程[M].北京:北京航空航天大学出版社,2005.[2] 王田苗.嵌入式系统设计与实例开发———基于ARM微处理器与uC/OS2Ⅱ实时操作系统[M].北京:清华大学出版社,2003.[3] 马忠梅.ARM嵌入式处理器结构与应用基础[M].北京:北京航空航天大学出版社,2003.[4] 杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2001.[5] 魏永明,钟书毅,潘为国.Linux/uClinux+MIN IGU I2I:嵌入式系统开发原理、工具及过程[EB/OL].www.MIN IGU ,20050503.[6] 北京飞漫软件有限公司.MIN IGU Ii编程指南[EB/OL].www.MIN IGU ,20050415.[7] 北京博创科技有限公司.U P2N ETARM24102S实验指导书[EB/OL],20050502.75第25卷第1期 陈裕涛等:基于嵌入式系统的触摸式计算器的设计DESIGN OF T OUCH SCREEN CALCU LAT ORBASED ON EMBEDDED SYSTEMCHEN Yu2tao, Q IAO Ji2hong(College of Inf ormation Engineering,Beijing T echnology and B usiness University,Beijing100037,China)Abstract:A touch screen calculator is designed.The graphical interfaces are designed using M IN IGU I on Linux operating system.The programmer language is C.The editor is V I of Linux operating sys2 tem.The intercrossing compiler is armv4l2unknown2linux2gcc.The touch screen calculator has main function of science calculator.All the experiment is realized on U P2N ETARM24102S.K ey w ords:embedded system;M IN IGU II;touch screen(责任编辑:王 宽) (上接第45页)[5] Roska T,Chua L O.Cellular neural networks with non2line and delay2type templete elements and nonuniform grids[J].Int J Circuit Theory Application,1992(20): 469481.[6] 彭世国.变时延细胞神经网络模型的全局指数稳定性[J].工程数学学报,2002,19(2):131134.[7] 傅朝金.变时滞细胞神经网络的指数稳定的一个充分条件[J].数学杂志,2002,22(3):266270.[8] 胡军浩,赵新泉,田凡.具有变时滞的细胞神经网络的定性分析[J].中南民族大学学报(自然科学版), 2002,21(3):7981.[9] 韩力群.人体感觉机制的模型化与数字化[J].中国医学影像技术,2003,19(8):6366.CE LL U LAR NEURAL NETWORK S AN D BIOLOGICAL VISUAL INFORMATION PR OCESSING MODE LWEN G Y i2fang1, J U Lei2, WAN G Jian1(1.College of Inf orm ation Engi neeri ng,Beiji ng Technology and B usi ness U niversity,Beiji ng100037,Chi na; m unication Engi neeri ng Depart ment,Beiji ng Instit ute ofScience and Technology,Beiji ng100070,Chi na)Abstract:The mathematical models of continuous2time,discrete2time and time2delay Cellular Neural Networks(CNN)were investigated in the aspect of image processing.A kind of biological visual infor2 mation processing model composed of several different CNNs was proposed according to the principle of human rision generation in brain.It makes full use of the parallel processing ability of CNN,therefore the model is fast in dealing with visual information.It could be the basic work in emulation human vi2 sion for Robot.K ey w ords:cellular neural networks;biological vision;information processing;model(责任编辑:邓清燕)85北京工商大学学报(自然科学版) 2007年1月。

相关文档
最新文档