文档库 最新最全的文档下载
当前位置:文档库 › 基于ARM的嵌入式计算器程序

基于ARM的嵌入式计算器程序

基于ARM的嵌入式计算器程序
基于ARM的嵌入式计算器程序

《嵌入式系统》期末作业

题目:

基于LED与键盘的计算器设计

通过键盘与LED实现多位数字(至少2位)的连续四则运算,通过键盘输入数字与运算符号,按回车键之后显示LED显示运算结果。

提高部分:实现先乘除后加减运算。

系统设计:

将计算器的计算流程分成三个部分,分别为数据采集与存储、计算结果以及显示结果。数据的存储采用数组的形式存储,在数据采集的同时并调用显示,所以将LED的显示写成一个函数,这样方便被调用,简化程序。同时,存储数据时将数值与运算符分开存储,即采用两个数组存储,这样方便计算部分程序的设计。在计算部分,为实现先乘除后加减的运算,先遍历一遍存储运算符的数组,先计算乘除,选出乘除运算符对应下标的数据计算结果放入乘号或除号后面那个存储单元,设为digit[i+1],将digit[i]数据单元赋值为0,再通过判断digit[i]数据单元前面的运算符号这里设为symbol[i-1]来选择数据digit[i+1]与digit[i]之间的运算符symbol[i]为加还是减,如果symbol[i-1]为减,则symbol[i]为减,否则为加。这样将数据数组和运算符数组经过计算乘除后重新赋值,在进行一次简单的加减运算便得到结果了。最后返回计算结果并显示。

实验结果与讨论:

本次试验可以说是完成的比较顺利,虽然和之前做过的简单运算有很大差别但是通过努力还是一一完成了,首先是连续运算,跟以前的实验对比这次采用的数组存储方式,可以存储更多数据,再就是运算,通过我不断改进与发现问题,最终实现了先乘除后加减的逻辑运算,结果还是很令人高兴的。

程序流程图:

附录:

#include"uhal.h" #include"keyboard.h" #include"zlg7289.h" #include"44b.h"

U32 symbol[100],digit[100];

#pragma import(__use_no_semihosting_swi) // ensure no functions that use semihosting

开始

按下的键是否为数字?

按下的键是否是Enter 键?

计算结果

存入数据存储数组

显示结果

数据存入运算符存储数组

存储数据全部清零 显示数据 是否有键按下?

extern int Zlg7289SIOBand;

extern int Zlg7289SIOCtrl;

int prezent(U32 k)

{

U32 t;

WriteSDIO(ZLG7289_CMD_DATA0|0);//数码管以方式0译码,第一个数码管亮

WriteSDIO(k%10);//显示个位

Delay(1);//延时

if(k>99)

{//键值大于99显示百位

WriteSDIO(ZLG7289_CMD_DATA0|1); //发送十位数据

WriteSDIO((unsigned

char)((k%100)/10));

Delay(1);

WriteSDIO(ZLG7289_CMD_DATA0|2); //发送百位数据

WriteSDIO((unsigned char)(k/100));

Delay(1);

WriteSDIO(ZLG7289_CMD_HIDE);//使一、二、三两位数码管显示

WriteSDIO(7);

}

if(k>9)

{//键值大于9显示十位

WriteSDIO(ZLG7289_CMD_DATA0|1); //发送十位数据

WriteSDIO((unsigned char)(k/10));

Delay(1);

WriteSDIO(ZLG7289_CMD_HIDE);//使一、二两位数码管显示

WriteSDIO(3);

}

else

{//键值小于10不显示十位

WriteSDIO(ZLG7289_CMD_HIDE);//使个位数码管显示

WriteSDIO(1);

}

}

int caculate(U32 p)

{

U32 i=0,result=0;

for(i=0;i

{

if(symbol[i]==20)

{

digit[i+1]=digit[i]*digit[i+1];

digit[i]=0;

if(i>=1&&symbol[i-1]==21&&digit[i]== 0)

{

symbol[i]=21;

}

else

symbol[i]=14;

}

else if(symbol[i]==12)

{

digit[i+1]=digit[i]/digit[i+1];

digit[i]=0;

if(i>=1&&symbol[i-1]==21&&digit[i]==0)

{

symbol[i]=21;

}

else

symbol[i]=14;

}

}

for(i=0;i

{

if(symbol[i]==14)

digit[i+1]=digit[i]+digit[i+1];

else if(symbol[i]==21)

digit[i+1]=digit[i]-digit[i+1];

}

result=digit[i];

return result;

}

int main(void)

{

U32 key,key1=0,i=0,j=0,t=0,flag=0,k;

ARMTargetInit(); //开发版初始化

Uart_Printf("\nArm Target Init OK.");

Zlg7289_Reset();//zlg7289复位

while(1)

{

key=GetKey();//得到按键值

Delay(200);

ZLG7289_ENABLE();//使zlg7289占有同步串口

Delay(5);//延时

if(key<10)

{

k=1;

flag++;

}

else

{

digit[j]=key1;

j++;

k=key;

flag=0;

}

if(k==1)

{

if(flag==1)

{

key1=key;

}

else if(flag==2)

{

key1=key1*10+key;

flag=0;

}

prezent(key1);

}

if(k==100) //num键当成置零键

{

key1=0;

for(i=0;i<100;i++)

symbol[i]=0;

for(j=0;j<=100;j++)

digit[j]=0;

i=0;j=0;t=0;flag=0;

prezent(key1);

}

if(k==14||k==21||k==20||k==12) //加、减、乘、除

{

symbol[t]=key;

t++;

}

if(k==15) //回车

{

key=caculate(t);

prezent(key);

key1=0;

for(i=0;i<100;i++)

symbol[i]=0;

for(j=0;j<=100;j++)

digit[j]=0;

i=0;j=0;t=0;flag=0;

}

ZLG7289_DISABLE();//zlg7289放弃同步串口控制权

}

return 0;

}

基于STC89C52的简易计算器设计..

福建电力职业技术学院课程设计课程名称:《智能仪器》 题目:基于STC89C52的简易计算器设计 专业班次: 姓名: 学号: 指导教师: 学期:2011-2012学年第2学期 日期:2012.2

目录 目录 1.引言 (1) 1.1 设计意义 (1) 1.2 设计任务和主要内容 (1) 2. 硬件设计 (2) 2.1 系统框图 (2) 2.2 最小系统 (2) 2.3 矩阵键盘 (3) 2.4 LCD1602 (4) 3. 软件设计 (5) 3.1矩阵键盘扫描原理 (5) 3.2 LCD1602的软件设计 (6) 3.3 主程序设计 (8) 3.4 源程序 (9) 3.5 调试结果 (9) 4. 设计小结 (9) 参考文献 (10) 附录 (10)

1.引言 随着社会的发展,人们生活水平的提高,单片机的应用越来越贴近生活了,人们常用单片机来实现一些简单的电子设计。计算器在人们的日常生活中是不可或缺的电子产品之一,目前市场上的计算器基本可以满足我们的日常需求,但它还在发展之中,我们要继续研究出更加强大的计算器。基于这样的理念,本设计采用单片机来设计简易计算器。本设计是以STC89C52为单片机,LCD为显示器设计的简易计算器,所设计的计算器将完成两位数的加、减、乘、除等功能。1.1 设计意义 通过本次课程设计,进一步掌握单片机知识,知道AT89S52单片机的原理、编程和各种功能的应用,了解简易计算器的工作原理,初步掌握计算器的硬软件设计、编写、调试和仿真,充分提高动手能力和排除故障的能力,同时通过课程设计加深我们对单片机的认识和兴趣,发挥我们的创新能力和动手能力。 1.2 设计任务和主要内容 本设计要制作的就是单片机于生活中最为常见的一种应用——简易计算器,以STC89C52单片机作为核心来进行的数字计算器模拟系统设计,可以完成计算器的键盘输入,进行加、减、乘、除两位数范围内的基本四则运算,并在LCD 上显示相应的结果。设计电路采用AT89C51单片机为主要控制电路,显示采用LCD静态显示,软件方面使用C语言编程,并用PROTUES仿真。 ①查阅相关文献资料,了解简易计算器程序的原理,能够运用C 语言进行简易计算器的设计与制作。 ②设计基于C 语言的计算器的控制系统硬件部分,画出控制系统硬件框图,设计简易计算器的控制系统的软件部分,首先根据简易计算器所需的具体功能设计好程序流程图,包括控制流程图、控制时序图、梯形图程序设计;根据设计的程序流程图写出代码,并进行代码编译的调试。 ③把设计好的软件代码烧入硬件中,然后进行总体调试,直至原先预定要实现的功能完全实现为止。 ④设计出系统方框图、单元图、原理总图;画出控制程序流程图,以及编写完整的程序

嵌入式计算机与通用计算机的区别与联系

1、 嵌入式计算机与通用计算机的区别与联系。 通用计算机具有一般计算机的基本标准形态,通过装配不同的应用软件,以基本雷同的的面目应用在社会的各种领域,其典型产品为PC 机;而嵌入式计算机,则是非通用计算机形态的计算机应用,它以潜入系统核心部件的形式隐藏在各种装置、设备、产品和系统中。因此,嵌入式计算机是一种计算机的存在形式,是从计算机技术的发展中分离出来的。 2、 嵌入式系统的定义。 以应用为中心,以计算机技术为基础,软/硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 3、 嵌入式系统的特点。 (1)“专用”计算机系统(2)运行环境差异很大(3)比通用PC 系统资源少(4)功耗低、体积小、集成度高、成本低(5)具有完整的系统测试和可靠性评估体系(6)具有较长的生命周期(7)需要专用开发工具和方法进行设计(8)包含专用调试电路(9)多科学知识集成系统 4、 嵌入式系统的组成结构(硬件系统和软件系统)。 软件层次:1.应用层 2.OS 层 3.BSP ; 硬件层次:1.电源管理 2.存储器 3.看门狗及复位电路 4.输入/输出接口及专用设备 5.人机交互设备、LCD 、触摸屏、键盘、鼠标。 5、 嵌入式系统的基本开发流程。 1.系统定义与需求分析阶段 2.方案设计阶段 3.详细设计阶段 4.软硬件集成测试阶段 5.系统功能性测试及可靠性测试阶段6、嵌入式系统的分类。 商用型和免费型(Linux 和μC/OS-Ⅱ) 6、 交叉开发环境。 交叉开发是指在一台通用计算机上进行软件的编辑编译,然后下载到嵌入式设备中运行调试的开发方法,他通常采用宿主机/目标主机模式。 交叉开发环境一般由运行于宿主机上的交叉开发软件、宿主机到目标机的调用通道组成。 7、 嵌入式系统的应用范围。 汽车、工业控制、通信设备、消费电子、商业终端、航空航天、军事需求。 8、 嵌入式操作系统有哪些状态,它们的关系 。 运行状态,就绪状态,等待状态 结束 9、 (1)uC/OS-II 嵌入式操作系统。它是一个结构简单、功能完备和实时性很强的嵌入式操作系统内核。(2)Windows CE 操作系统。内核较小,具有便携性、提供对微处理器的选择以及非强行的电源管理功能。(3)VxWorks 嵌入式实时操作系统。它内建了符合POSIX 规范的内存管理,以及多处理器控制程序,并且具有简明易懂的用户接口。(4)Linux 操作系统。它针对无MMU 的处理器而设计,可以利用功能强大的Linux 资源。 10、缩写 FLASH —闪存 RTOS —实时操作系统real time operating system

全国计算机等级考试三级嵌入式系统开发技术试题库第十套(整理过)

一、选择题 1、数字信号处理器在嵌入式系统中得到广泛使用,下面关于数字信号处理器的叙述中错误的是: A) 它的英文缩写是DSP B) 它比通用的微处理器能更好地满足高速数字信号处理的要求 C)它特别适合于文字处理和图形用户界面 D) 手机和数码相机等产品通常都含有数字信号处理器 2、片上系统(SoC)也称为系统级芯片,下面关于SoC叙述中正确的是: A) SoC芯片中只有一个CPU或DSP B) SoC已经成为嵌入式处理芯片的主流发展趋势 C) SoC是集成电路加工工艺进入纳米时代后的产物 D) 片上系统使用单个芯片进行数据的采集、转换、存储和处理,它不支持I/O功能 3、计算机局域网传输数据时,必须把数据组织成规定格式的"帧",每一数据帧由下图所示的5个部分组成,其中①、 ②、③分别是: A)发送设备MAC地址、接收设备MAC地址、校验信息 B) 发送设备MAC地址、校验信息、接收设备MAC地址 C) 校验信息、发送设备MAC地址、接收设备MAC地址 D) 接收设备MAC地址、发送设备MAC地址、校验信息 4、通常嵌入式系统对实时性和可靠性都有一定要求,如果把ATM柜员机和数码相机两者进行比较,它们中对实时性和可靠性要求较高的分别是: A) ATM柜员机、数码相机B)数码相机、ATM柜员机 C) ATM柜员机、ATM柜员机 D) 数码相机、数码相机 5、关于处理器内核说法正确的是: A) 51内核是RISC指令集结构 B) AVR内核是CISC指令集结构 C) MSP430内核采用冯.诺衣曼结构D)所有ARM内核均采用哈佛结构 6、关于ARM Cortex-M处理器的特点,以下说法错误的是: A) 功能强 B) 耗电少 C) RISC结构D)多周期操作 7、以下ARM处理器,只有Thumb-2状态和调试状态的是: A) ARM7 B) ARM9 C) ARM11 D) ARM Cortex-M3 8、已知内存单元0x60000000~0x60000003以小端模式存放一个32位数据0x32303134,R1=0x60000000,R0=0,执行ARM 指令LDRH R0,[R1]之后,R0的值为: A) 0x32303134 B) 0x00003230 C) 0x00003134 D) 0x00000032 9、已知R1=8,R0=9,执行指令MOV R0,R1,LSR#3后,R0的值为: A) 1 B) 8 C) 0x10 D) 0x80 10、对于ARM处理器以下不属于逻辑运算指令助记符的是: A) AND B) BIC C) EOR D) SBC 11、关于ARM处理器的工作模式,以下说法错误的是: A) 用户模式是程序正常执行的工作模式B) 管理模式负责处理存储器故障,实现虚拟存储器和存储器的保护 C) 系统模式运行特权级的操作系统任务 D) 当处理器处于用户模式时,如果没有异常发生是不能改变工作模式的 12、以下关于ARM状态寄存器CPSR的说法正确的是: A) CPSR决定存储器的数据类型和存储模式 B) CPSR中I为快速中断禁止控制位 C) CSPR中的T为陷井标志D) CPSR决定ARM处理器工作模式 13、下面是关于ARM嵌入式芯片中的GPIO的叙述,其中错误的是: A) GPIO即通用输入/输出端口 B) GPIO作为输入时具有缓冲功能 C) GPIO作为输出时具有锁存功能D) GPIO引脚可以是多功能的,但引脚功能不能超过两种 14、下面是关于ARM处理器芯片内部的定时计数组件的叙述,其中错误的是: A) ARM处理芯片内部的定时计数组件中包含通用定时器(Timer) B) ARM处理芯片内部的定时计数组件中一般只包含一路脉冲宽度调制信号(PWM) C) ARM处理芯片内部的看门狗定时器(WDT)的主要功能是,当处理器进入错误状态后的一定时间内可使处理器复位

简易计算器系统设计

(此文档为word格式,下载后您可任意编辑修改!) 湖南文理学院芙蓉学院嵌入式系统课程设计报告 题目简易计算器系统设计 学生姓名刘胜凯 专业班级计算机科学与技术 指导老师娄小平 组员李阳、杨帆、曾家俊

目录 一、摘要 (3) 二、原理与总体方案 (3) 三、硬件设计 (6) 四、调试 (10) 五、测试与分析 (12) 六、心得体会 (14) 七、参考文献 (15) 八、附录 (15) 一、摘要 计算器一般是指“电子计算器”,是能进行数学运算的手持机器,拥有集成电路芯片。对于嵌入式系统,以其占用资源少、专用性强,在汽车电子、航空和工控领域得到了广泛地应用。本设计就是先通过C语言进行相应程序的编写然后在ADS中进行运行最后导入PROTUES进行仿真。最后利用ARM中的LPC2106芯片来控制液晶显示器和4X4矩阵式键盘,从而实现简单的加、减、乘、除等四则运算功能。 二、原理与总体方案 主程序在初始化后调用键盘程序,再判断返回的值。若为数字0—9,则根

据按键的次数进行保存和显示处理。若为功能键,则先判断上次的功能键,根据代号执行不同功能,并将按键次数清零。 程序中键盘部分使用行列式扫描原理,若无键按下则调用动态显示程序,并继续检测键盘;若有键按下则得其键值,并通过查表转换为数字0—9和功能键与清零键的代号。最后将计算结果拆分成个、十、百位,再返回主程序继续检测键盘并显示;若为清零键,则返回主程序的最开始。 电路设计与原理:通过LPC2106芯片进行相应的设置来控制LCD显示器。而通过对键盘上的值进行扫描,把相应的键值通过MM74C922芯片进行运算从而让ARM芯片接收。 2.1 系统整体流程图 2.2 程序运行流程图

嵌入式实验cortex-M3计算器

《嵌入式系统及应用》 实验报告 (2014— 2015学年第一学期) 题目:简易科学计算器 班级:电子科学与技术(1)班 姓名: 学号: 指导教师: 2015 年 1 月10 日

目录 1.设计内容 (3) 2重点要解决的问题及创新性; (3) 3.概要设计 3.1中断控制部分 (3) 3.2显示函数编写 (4) 3.3运算符函数编写 (6) 4.详细设计 (9) 4.1驱动程序头文件 (9) 4.2显示界面编写调试 (10) 4.3控件程序 (21) 4.3.1数字按钮对应函数 (21) 4.3.2运算符号对应函数 (26) 5.实验、调试及测试结果与分析。………………………………………31. 6.用户使用说明 (31) 7.结论 (32) 8.参考文献 (32)

一、设计内容: 本次设计主要以LM3S9B92开发板作为主要的开发平台,首先在这里对开发板的结构,和最重要的Cortex-M3微处理器,以及搭载的触摸屏液晶显示模块。设计一个简易计算器,能够实现以触摸界面的形式给出简易计算器的操作界面,能实现简单的加、减、乘、除操作,并且将运算步骤都呈现在显示屏上。 二、重点要解决的问题及创新性: 重点:1.设计计算器界面,将计算机控件布局到开发板上。 2.添加计算器控件的相应代码,使得计算器能够实现加减乘除基本功能。 3. 创新性:1.界面的创新 2.计算器实现的运算过程显示在结果输入框内,使得能够记录运算过程。 三、概要设计(说明设计系统的组成及主要实现方法,并采用流程图等图形方式形象化说 明); 软件设计基本包括了以下三个部分的内容:中断控制部分、显示部分和运算部分 3.1中断控制部分 中断控制功能的实现是在驱动程序当中,因为是与硬件功能连接十分紧密的一个能实现。但在实际应用中又与操作紧密相关,是软件设计中十分重要的部分。 其根本编程原理是由Cortex-M3提供了一套中断控制器所提供的API。中断控制器API 提供了一组函数,用来处理嵌套向量中断控制器(NVIC)。这些函数执行以下功能:使能和禁止中断、注册中断处理程序和设置中断的优先级。 同时在驱动文件中,重写了一些关于中断控制的函数。在操作中,对触屏操作时,会产生一个软件中断,然后对所进行操作后,例如触摸屏的触点X,Y值进行锁存。然后对锁存的数据进行读取,通过LCD显示相关的API函数,将得到的数值进行转化成对应函数操作,或显示,或运算等等。最后将相关操作的结果,反映到LCD显示屏。其流程图如图4.1所示。

(完整word版)计算机三级嵌入式知识点(2),推荐文档

计算机三级嵌入式考试知识点整理 (计算机三级嵌入式考试只考选择题和填空题) 1.嵌入式系统的设计的三个阶段之一:1. 设计 2.实现 3.测试 2.RISC架构的ARM微处理器的一般特点:1. 体积小、低功耗 2.大量使用寄 存器3. 寻址方式灵活简 3.通常所讲的交叉编译就是在X86架构的宿主机上生成适用于ARM架构的格式 (elf)的可执行代码 4.Boot Loader阶段1所完成的步骤的是:1. 硬件设备初始化 2. 拷贝 Boot Loader的阶段2到RAM空间中3. 设置堆栈 5.ARM的7种运行状态之一:1. 快中断状态2. 中断状态3. 无定义状态4.管 理状态5.快速中断状态6.系统状态7.用户状态 6.命令可以把server的/tmp mount到client的/mnt/tmp并且是: mount-o ro server:/tmp/mnt/tmp 7.哪个GUI是由中国人主持的一个自由软件项目:MinuGUI 8.嵌入式图形用户接口(GUI)的主要特点:1. 运行时占用的系统资源少 2.模 块化结构,便于移植和定制3.可靠性高 9.RISC指令系统特点的是:1. 指令长度固定,指令种类少2.设置大量通用 寄存,访问存储器指令简单3. 选取使用频率较高的一些简单指令 10.通常所说的32位微处理器是指CPU字长为32位 11.在嵌入式软件交叉调试过程中,宿主机与目标机之间的连接与通信方式有:1. 串口2.并口3.网络4.JTAG 12.ADD R0,R1,[R2]属于寄存器间接寻址 13.ADD R0,R0,#1属于立即寻址 14.数据字越长则精度越高 15.典型的计算机系统结构是冯诺依曼体系结构 16.将传统的计算机系统芯片化,是嵌入式系统诞生后的∑发展模式发展模式 17.RISC指令系统特点的是:1. 大量使用寄存器2.采用固定长度指令格式3. 使用单周期指令4.寻址方式多 18.与通用操作系统相比嵌入式操作系统还必须具有的特点是:1. 强稳定性, 弱交互性2. 较强实时性 19.嵌入式系统产品:1. PDA 2.ATM机 3. 机顶盒 20.开源的嵌入式操作系统的是嵌入式linux 21.虚拟文件系统的是vfs 22.嵌入式系统通常执行特定功能 23.在嵌入式产品需求分析阶段完成的任务是操作系统和硬件选型 24.ARM处理器异常工作模式的是1. 快速中断模式2. 未定义模式 3. 数据访问 终止模式 25..嵌入式软件开发与通用软件开发增加了代码固化环节 26.嵌入式系统调试方式中不占用系统资源的调试方式是ICE在线仿真器 27.ARM汇编程序中实现程序跳转的方式使用跳转指令 28.ADD R0,R1,[R2]中的第二操作数属于寄存器间接寻址方式 29.烧写到FLASH里的是.bin格式的文件 二、填空题 1.ARM内核有(T)(D)(M)(I)四个功能模块。

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

计算器设计实验报告 一、实验设计主要分工 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],此运算符在栈内遵循越往栈顶优先级越高的 原则。

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

嵌入式系统之基于Q T的 简单计算器 The pony was revised in January 2021

嵌入式系统课程设计报告 题目:基于QT的简单计算器 专业:计算机科学与技术 班级: 姓名: 学号: 指导老师: 日期:2012-12-26 第一章前言 设计背景 计算器(calculator;counter)一般是指“电子计算器”,计算器是能进行数学运算的手持机器,拥有集成电路芯片,其结构简单,比现代电脑结构简单得多,可以说是第一代的电子计算机(电脑)。计算器这一小小的程序机器实际上是从计算机中割裂出来的衍生品,虽然功能较单一,但因其操作模式的方便快捷和价格的低廉,携带方便等特点,已经被广泛应用于工程、学习、商业贸易等日常生活中,极大的方便了人们对于数字的整合运算,成为人们生活和办公中的必备品之一,深得使用者的青睐。

设计目的 本程序是基于linux下的嵌入式开发,所用软件为QT Creator,程序虽然简单,但是通过本程序的设计,可以进一步了解嵌入式系统开发工具以及熟悉linux环境下的常用命令,为以后进入嵌入式领域打下一定的基础。 通过该计算器程序软件的设计,培养独立思考、综合运用所学有关相应知识的能力,更好地巩固《C++程序语言设计》和《高级程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,体验理论与实践相结合的过程。 第二章功能需求分析 功能描述 本次设计的计算器在功能上大致与Windows系统自带的计算器程序相似,对于所设计的科学计算器,其功能大致为可以进行加(+)、减(-)、乘(*)、除(/)、简单算术计算。由于接触QT时间还不太久,所以目前只能简单地实现这些功能,相信随着以后逐步的了解,本程序将实现更多的功能。 第三章开发工具简介 QT简介 由于本次设计的小程序是用QT Creator所设计的,所以我觉得有必要先介绍下QT 开发工具的背景。

嵌入式计算机与通用计算机的区别与联系

1、。 通用计算机具有一般计算机的基本标准形态,通过装配不同的应用软件,以基本雷同的的面目应用在社会的各种领域,其典型产品为PC机;而嵌入式计算机,则是非通用计算机形态的计算机应用,它以潜入系统核心部件的形式隐藏在各种装置、设备、产品和系统中。 因此,嵌入式计算机是一种计算机的存在形式,是从计算机技术的发展中分离出来的。 2、嵌入式系统的定义。 以应用为中心,以计算机技术为基础,软/硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。 3、嵌入式系统的特点。 (1)“专用”计算机系统 (2)运行环境差异很大 (3)比通用PC系统资源少 (4)功耗低、体积小、集成度高、成本低 (5)具有完整的系统测试和可靠性评估体系 (6)具有较长的生命周期 (7)需要专用开发工具和方法进行设计 (8)包含专用调试电路 (9)多科学知识集成系统 4、嵌入式系统的组成结构(硬件系统和软件系统)。 软件层次:1.应用层2.OS层3.BSP;

硬件层次:1.电源管理2.存储器3.看门狗及复位电路4.输入/输出接口及专用设备5.人机交互设备、L CD、触摸屏、键盘、鼠标。 5、嵌入式系统的基本开发流程。 1.系统定义与需求分析阶段 2.方案设计阶段 3.详细设计阶段 4.软硬件集成测试阶段 5.系统功能性测试及可靠性测试阶段 6、嵌入式系统的分类。 商用型和免费型(Linux和μC/OS-Ⅱ) 6、交叉开发环境。 交叉开发是指在一台通用计算机上进行软件的编辑编译,然后下载到嵌入式设备中运行调试的开发方法,他通常采用宿主机/目标主机模式。 交叉开发环境一般由运行于宿主机上的交叉开发软件、宿主机到目标机的调用通道组成。 7、嵌入式系统的应用范围。 汽车、工业控制、通信设备、消费电子、商业终端、航空航天、军事需求。 8、嵌入式操作系统有哪些状态,它们的关系。 运行状态,就绪状态,等待状态 运行 结束 9、常用的嵌入式操作系统。等待就绪新进程 (1)uC/OS-II嵌入式操作系统。它是一个结构简单、功能完备和实时性很强的嵌入式操作系统内核。

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

嵌入式系统课程设计报告 题目:基于QT的简单计算器 专业:计算机科学与技术 班级: 姓名: 学号: 指导老师: 日期:2012-12-26 第一章前言 设计背景 计算器(calculator;counter)一般是指“电子计算器”,计算器是能进行数学运算的手持机器,拥有集成电路芯片,其结构简单,比现代电脑结构简单得多,可以说是第一代的电子计算机(电脑)。计算器这一小小的程序机器实际上是从计算机中割裂出来的衍生品,虽然功能较单一,但因其操作模式的方便快捷和价格的低廉,携带方便等特点,已经被广泛应用于工程、学习、商业贸易等日常生活中,极大的方便了人们对于数字的整合运算,成为人们生活和办公中的必备品之一,深得使用者的青睐。 设计目的 本程序是基于linux下的嵌入式开发,所用软件为QT Creator,程序虽然简单,但是通过本程序的设计,可以进一步了解嵌入式系统开发工具以及熟悉linux环境下的常用命令,为以后进入嵌入式领域打下一定的基础。 通过该计算器程序软件的设计,培养独立思考、综合运用所学有关相应知识的能力,更好地巩固《C++程序语言设计》和《高级程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,体验理论与实践相结合的过程。

第二章功能需求分析 功能描述 本次设计的计算器在功能上大致与Windows系统自带的计算器程序相似,对于所设计的科学计算器,其功能大致为可以进行加(+)、减(-)、乘(*)、除(/)、简单算术计算。由于接触QT时间还不太久,所以目前只能简单地实现这些功能,相信随着以后逐步的了解,本程序将实现更多的功能。 第三章开发工具简介 QT简介 由于本次设计的小程序是用QT Creator所设计的,所以我觉得有必要先介绍下QT开发工具的背景。 Qt是一个1991年由奇趣科技开发的跨平台C++图形界面应用程序开发框架。它既可以开发GUI程式,也可用于开发非GUI程式,比如控制台工具和服务器。Qt是面向对象语言,易于扩展,并且允许组件编程。 QT所具有的优势是:优良的跨平台特性,Qt支持下列操作系统: Microsoft Windows 95/98,Microsoft Windows NT,Linux,Solaris,SunOS,HP-UX,Digital UNIX (OSF/1,Tru64),Irix,FreeBSD,BSD/OS,SCO,AIX,OS390,QNX 等等。 面向对象:Qt 的良好封装机制使得Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt 提供了一种称为signals/slots 的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。 丰富的API:Qt 包括多达250 个以上的C++ 类,还提供基于模板的collections,serialization,file,I/O device,directory management,date/time 类。甚至还包括正则表达式的处理功能。支持2D/3D 图形渲染,支持OpenGL大量的开发文档。 第四章详细设计过程 开发环境的搭建 本次所用系统环境为Ubuntu LTS,内核为Ubuntu搭建QT环境大致过程为: 1.安装g++,ubuntu默认是不带g++的,如果不安装的话,后面是无法进行桌面版的qt应用程序进行编译的,在终端中执行以下命令: sudo apt-get install g++ 2. Qt桌面版的安装 3.安装arm-linux-gcc (配置环境变量gedit /.bashrc 添加路径 export PATH=$PATH:/opt/FriendlyARM/toolschain/) 使配置文件立即生效:source /.bashrc或者注销logout 最好重启

计算机三级嵌入式知识点汇总

一、嵌入式系统开发的基础知识 1.嵌入式系统的特点、分类、发展与应用,熟悉嵌入式系统的逻辑组成。 (1)特点: 专用性 隐蔽性(嵌入式系统是被包装在内部) 资源受限(要求小型化、轻型化、低功耗及低成本,因此软硬件资源受到限制) 高可靠性(任何误动作都可能会产生致命的后果) 软件固化(软件都固化在只读存储器ROM中,用户不能随意更改其程序功能) 实时性 (2)逻辑组成 硬件:1)处理器(运算器、控制器、存储器) 目前所有的处理器都是微处理器中央处理器(CPU)和协助处理器(数 字信号处理器DSP、图像处理器、通信处理器) 2)存储器(随机存储器RAM和只读存储器ROM) RAM分为动态DRAM和静态SRAM两种。DRAM电路简单、集成度高、功耗小、成本低,但速度稍慢慢;SRAM电路较复杂、集成度低、 功耗较大、成本高,但工作速度很快,适合用作指令和数据的高速缓冲 存储器 RAM当关机或断电时,其中的信息都会消失,属于易失性存储器 ROM属于不易失性存储器。分为电可擦可编程只读存储器(存放固件)和闪速存储器(Flash ROM简称内存)。内存的工作原理:在低 压下,存储的信息可读但不可写,这类似于ROM;在较高的电压下,

所存储的信息可以更改和删除,这有类似于RAM。 3)I/O设备与I/O接口 4)数据总线 软件 (3)分类 按嵌入式系统的软硬件技术复杂程度进行分类: 1)低端系统采用4位或8位单片机,在工控领域和白色家电领域占主导地 位,如计算器、遥控器、充电器、空调、传真机、BP机等。 2)中端系统采用8位/16位/32位单片机,主要用于普通手机、摄像机、录 像机、电子游戏机等。 3)高端系统采用32位/64位单片机,主要用于智能手机、调制解调器、掌上 计算机、路由器、数码相机等。 (4)发展 20世纪60年代初,第一个工人的现代嵌入式系统(阿波罗导航计算机) 20世纪60年代中期,嵌入式计算机批量生产 20世纪70年代,微处理器出现 20世纪80年代中期,外围电路的元器件被集成到处理器芯片中,昂贵的模拟电路元件能被数字电路替代 20世纪90年代中期SOC出现,集成电路进入超深亚微米乃至纳米加工时代2.嵌入式系统的组成与微电子技术(集成电路、EDA、SoC、IP核等技术的作用和发展)(1)集成电路IC 集成电路的制造大约需要几百道工序,工艺复杂。集成电路是在硅衬底上制作而成的。硅衬底是将单晶硅锭经切割、研磨和抛光后制成的像镜面一样光滑的圆 形薄片,它的厚度不足1mm,其直径可以是6、8、12英寸甚至更大这种硅片称为

嵌入式实验之多功能计算器的实现

/**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@https://www.wendangku.net/doc/5413548376.html,) ** ** This file is part of the examples of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Commercial License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: https://www.wendangku.net/doc/5413548376.html,/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain additional ** rights. These rights are described in the Nokia Qt LGPL Exception ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: https://www.wendangku.net/doc/5413548376.html,/copyleft/gpl.html. ** ** If you have questions regarding the use of this file, please contact ** Nokia at qt-info@https://www.wendangku.net/doc/5413548376.html,. ** $QT_END_LICENSE$ ** ****************************************************************************/ #include #include

嵌入式系统课后习题及答案

第1章嵌入式系统基础 1.什么是嵌入式系统它由哪几部分组成有何特点写出你所想到的嵌入式系统。答:(1)定义:国内对嵌入式系统的一般定义是:以应用为中心,以计算机技术为基础,软硬件可裁剪,从而能够适应实际应用中对功能、可靠 性、成本、体积、功耗等严格要求的专用计算机系统。 (2)组成:嵌入式处理器、外围设备、嵌入式操作系统和应用软件等几部分组成。 (3)特点:a.软硬件一体化,集计算机技术、微电子技术、行业技术于一体; b.需要操作系统支持,代码小,执行速度快; c.专用紧凑,用途固定,成本敏感; d.可靠性要求高; e.多样性,应用广泛,种类繁多。 (4)嵌入式系统:个人数字助理(PDA)、机顶盒(STB)、IP电话。 2.嵌入式处理器分为哪几类 答:(1)低端的微控制器(MicroController Unit,MCU); (2)中高端的嵌入式微处理器(Embeded MicroProcessor Unit,EMPU); (3)通信领域的DSP处理器(Digital Signal Processor,DSP); (4)高度集成的片上系统(System on Chip,SoC)。 3.ARM英文原意是什么它是一个怎样的公司其处理器有何特点 答:(1)英文原意:Advanced RISC Machines。高级精简指令集机器。 (2)公司简介:该公司是全球领先的16/32位RISC微处理器知识产权设计供应商,通过将其高性能、低成本、低功耗的RISC微处理器、外围和系 统芯片设计技术转让给合作伙伴来生产各具特色的芯片。ARM公司已 成为移动通信、手持设备、多媒体数字消费嵌入式解决方案的RISC标 准。 (3)其处理器特点:a.小体积、低功耗、低成本而高性能;32位双指令集; c.全球的合作伙伴众多。 4.什么是实时系统它有哪些特征如何分类 答:(1)实时系统的定义:实时系统(Real Time System)是指产生系统输出的时间对系统至关重要的系统。 (2)特征:实时性、并行性、多路性、独立性、可预测性、可靠性。 (3)分类:根据响应时间的不同,实时系统可分为3种类型:强实时系统、弱实时系统、一般实时系统。 根据确定性的不同,实时系统可分为2种类型:硬实时、软实时。 5.RTOS由哪几部分组成它有哪些特点与一般操作系统相比有何不同 答:(1)组成:实时内核、网络组件、文件系统、图形用户界面。 (2)特点:a.支持异步事件的响应;b.中断和调度任务的优先级机制;c.支持抢占式调度;d.确定的任务切换时间和中断延迟时间;e.支持同步。 (3)与一般OS的不同: a.实时性:响应速度快,只有几微秒;执行时间确定,可预测; b.代码尺寸小:只有10~100KB,节省内存空间,降低成本; c.应用程序开发较难; d.需要专用开发工具:仿真器、编译器和调试器等。

单片机课程设计——计算器设计

目录 一、设计总绪 (2) 1.1设计思想 (2) 1.2设计说明 (3) 1.3关键词:矩阵键盘,单片机,数码管显示,汇编语言 (3) 1.4设计目的 (3) 1.5设计要求 (4) 二、设计方案 (5) 2.1硬件电路设计方案 (5) 2.1.1基本结构 (5) 2.1.2系统框架图 (5) 2.1.3工作流程图 (6) 2.1.4单片机主控制模块 (7) 2.2系统功能描述 (9) 三、各模块功能介绍 (10) 3.1键盘输入模块 (10) 3.1.1键盘分布图 (10)

3.1.2工作原理 (11) 3.2运算控制模块 (11) 3.3显示模块 (12) 3.4振荡电路模块 (13) 四、仿真电路 (14) 仿真运行结果 (14) 五、调试过程总结 (17) 附录: (18) 参考文献: (18) 源程序代码 (19) 一、设计总绪 1.1设计思想 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技

术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。计算机在人们的日常生活中是比较常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算机,基于这样的理念,本次设计是用AT89c51单片机、LCD显示器、控制按键为元件来设计的计算器。利用此设计熟悉单片机微控制器及汇编语言编程,对其片资源及各个I/O端口的功能和基本用途的了解。掌握应用程序开发环境,常用的LCD显示器的使用方法和一般键盘的使用方法 此设计是基于单片机技术的简易计算器的方案,本次设计所提出的一种基于单片机技术的简易计算器的方案,采用具有数据处理能力的中央处理器CPU,随机存储器ROM,多种I/O口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统——单片机,配以汇编语言编写的执行程序,能更好的解决计算机计算的问题,随着数字生活的到来,单片机在生活中越来越重要,它能将大量的逻辑功能集成与一个集成电路中,使用起来十分方便。 1.2设计说明 本次课程设计讨论了单片机技术的计算器构思,设计方案,工作原理,主要系统包括单片机80C51,排阻RESPACK—8,开关,六位数码管显示器等,主要组成部分包括:键盘输入模块,运算模块,控制模块,显示模块。通过键盘输入数值,单片机进行运算后在数码管显示出结果。 1.3关键词:矩阵键盘,单片机,数码管显示,汇编语言 1.4设计目的

基于嵌入式linux计算器的实现

沈阳航空航天大学 课程设计报告 课程设计名称:嵌入式系统综合课程设计 课程设计题目:基于嵌入式linux计算器的实现 院(系): 专业: 班级: 学号: 姓名: 指导教师: 完成日期:

沈阳航空航天大学课程设计报告 目录 第1章系统分析 (1) 1.1需求分析 (1) 1.2硬件分析 (1) 1.2.1 实验环境 (1) 1.3软件分析 (2) 1.3.1 操作系统简介 (2) 1.3.2 开发技术简介 (2) 第2章系统设计 (4) 2.1操作系统移植 (4) 2.2系统模块设计 (4) 2.3函数设计 (4) 2.4关键流程 (5) 2.4.1 系统主流程 (5) 2.4.2 功能按键流程图 (5) 第3章QT程序移植 (7) 3.1建立交叉编译环境 (7) 3.2Q T源文件的编译 (8) 3.3Q T应用的移植 (8) 第4章系统调试及运行 (9) 4.1调试分析 (9) 4.2结果分析 (10) 参考文献 (11) 附录 (12)

第1章系统分析 1.1 需求分析 课程设计内容和要求: 设计一个简单的计算器,能够进行加、减、乘、除等数学操作。 (1)利用嵌入式linux和Qt,在ARM9上实现。 (2)界面尽可能友好、美观。 这是一个简单的计算器软件,功能为加、减、乘、除等,在嵌入式设备上实现,使用方便,性能可靠,基于ARM内核的微处理器在市场上绝对处于领导地位,因此该类项目拥有庞大的市场。 1.2 硬件分析 将编写好的程序Makefile后,通过Vivi烧入到博创UP-Star2410开发板上,开机运行即可。 1.2.1 实验环境 实验环境是:win7下安装虚拟机,在虚拟机上安装linux(ubuntu11.10)开发板是:博创UP-Star6410,开发板。 软件资源: (1)内核版本linux 2.6.21 (2)BootLoader:U-boot (3)文件系统:Cramfs+Yaffs2 硬件资源: (1)基于ARM1176JZF-S内核的SAMSUNG S3C6410处理器 (2)系统工作频率为533/667MHz (3)256MB Nand Flash、8MB NorFlash (4)256MB Mobile DDR RAM

计算机三级嵌入式系统开发技术真题(带答案)

操作题(一) 电动汽车充电桩(示意图如图3-1所示) 以S3C2410芯片为核心,并外加其他功能电路来进行设计,其基本功能描述如下:a、充电桩支持2种充电方式,一种是固定金额方式,如:充300元的电能。那么,所充电能的金额等于300元后自动停止充电;另一种是随机充电,即:随时按"停止"键来停止充电,若未按"停止"键,则电池充满后也会自动停止充电。 b、支持现金和IC卡付费。IC卡是预付费卡,金额不足将报警。 c、能够通过RS-485总线与后台结算服务器连接,传递结算信息。 d、用LCD显示器来显示被充电电池的电量情况,并显示充电时间、金额等信息。根据上述功能要求的描述,请完善下面的叙述(程序)和回答有关的问题。(完善程序或回答问题所需的寄存器格式见题后附录)。 1)充电桩控制器设计时,需设计一个键盘,键盘中应包含0~9数字键及"切换"、"启动"、"停止"等3个命令键。其键盘接口设计成4×4的阵列(按键排列示意如图3-2所示)。图3-2中的键盘接口电路中选用GPE4~GPE7来输出键盘行扫描信号,选用GPE0~GPE3来输入键盘列信号。软件设计时设计者自行设计键盘扫描函数,请你补充

//**KEYOUTPUT是键盘扫描时的输出地址,KEYINPUT是键盘读入时的地址 #defineKEYOUTPUT (*(volatile INT8U *)0x56000044) //0x56000044是GPE端口数据寄存器的地址 #define KEYINPUT (*(volatile INT8U *)0x56000044) INT16U ScanKey() { INT16U key=0xFFFF; INT16U i; INT8U temp=0xFF,output; //仅初始化GPE4~GPE7为输出 rGPECON= ((rGPECON & 0xFFFF00FF) | (1) ); //仅初始化GPE0~GPE3为输入 rGPECON= rGPECON &(2); // rGPECON是对应GPE端口控制寄存器的变量 for (i=(3); i<= 128; i<<=1) //循环扫描键盘,看是否有按键按下 { output|= 0xFF; output&= (~i); //键盘行信号求反 KEYOUTPUT= output; //通过GPE端口数据寄存器输出行信号 temp= KEYINPUT; //通过GPE端口数据寄存器读列信号,该列无键按下时列信号是1 if((temp&0x0F)!= (4))//判断是否有键按下 { key = (~i); key <<= 8; //变量key中存储键码值,行信号左移到高8位 key |= temp|0xF0; //列信号存于变量key的低8位中,无用位置1 return (key); //返回键码值 } } return 0xFFFF; } 上面的键盘扫描函数返回的是键码值,程序中循环(5)次来扫描所有键盘行,若所有行均无键按下时,返回的键码值应为:(6)。若有按键按下,则返回该键对应的键码值。例如:若按下的是键盘中"8"键,则函数返回值为:(7),若按下的是键盘中"启动"键,则函数返回值为:(8)。 (2)IC卡读写电路设计时,选用IC卡读写模块通过I2C总线接口与S3C2410连接,设计时利用S3C2410芯片内部的专用I2C总线引脚,即GPE端口的(9)引脚和 (10)引脚连接到IC卡读写模块的I2C总线引脚SDA和SCL上。那么,相关驱动程序中需要用语句:rGPECON=(rGPECON|0xA0000000)& (11)来初始化GPE端口相关引脚为I2C总线功能的

相关文档
相关文档 最新文档