嵌入式体系结构与接口技术课程设计报告电子计算器

上传人:沈*** 文档编号:79387882 上传时间:2022-04-23 格式:DOC 页数:17 大小:370.50KB
返回 下载 相关 举报
嵌入式体系结构与接口技术课程设计报告电子计算器_第1页
第1页 / 共17页
嵌入式体系结构与接口技术课程设计报告电子计算器_第2页
第2页 / 共17页
嵌入式体系结构与接口技术课程设计报告电子计算器_第3页
第3页 / 共17页
点击查看更多>>
资源描述
重庆科技学院课程设计报告 院(系):_电气与信息工程学院_ 专业班级: 计科普08 学生姓名: 学 号: 2008441100 设计地点(单位)_I512_ _ _ 设计题目:_ 电子计算器_ 完成日期: 2011年 01月 05日 指导教师评语: _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _ 重庆科技学院嵌入式体系结构与接口技术课程设计报告重庆科技学院课程设计任务书设计题目:电子计算器学生姓名谌洪舟课程名称嵌入式体系结构与接口技术课程设计专业班级计算机科学与技术2008地 点I512起止时间2010年12月27日2011年1月7日设计内容及要求一、设计任务 设计一个具有加减乘除功能的计算器,带三角函数、指数函数、对数函数计算功能,科学计数法表示。 设计参数本设计任务是设计一个计算器。系统硬件较为简单,主要模块即是键盘与显示。另外可加一蜂鸣器在出错时报警。 由于系统硬件比较简单,硬件采用ZLG2410实验箱的矩阵键盘和数码管,控制芯片为ZLG7290。进度要求此题为必做题,进度根据自身情况掌握。12月27日 - 12月27日 明确设计任务,学习相关知识;12月28日 - 12月28日 查阅相关资料,进行基础练习;12月29日 - 12月30日 根据题目要求,进行设计和实现;12月31日 - 12月31日 编写代码、测试程序。参考资料1、ARM嵌入式系统开发-软件设计与优化,Andrew N.Sloss,沈建华(译),北京航空航天大学出版社,2005;2、ARM体系结构与编程,杜春雷,清华大学出版社,2007;其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师: 冯骊骁 2010年 12 月10日摘要嵌入式系统是后PC时代被广泛使用的计算机平台,它通常都具有低功耗、体积小、功能强、集成度高等优点。此设计一个具有加减乘除功能的计算器,硬件采用ZLG2410实验箱的矩阵键盘和数码管,控制芯片为ZLG7290。此计算器能够实现整数和小数的加减乘除的计算功能,并用led数码管动态显示,操作简单、实用。通过此课程设计,对MagicARM2410实验箱操作更加熟悉,对ADS1.2的编程和调试更加灵活。较好的熟悉并掌握了ZLG7290的操作原理和编程,以及led数码管的显示原理及编程,对以后学习有一定的帮助。关键词:MagicARM2410 ADS1.2 ZLG7290 led数码管目录1 系统需求分析11.1 设计内容与要求11.2 设计参数12 概要设计23 详细设计33.1 键盘部分33.2 显示部分33.3 流程图43.4 功能函数54 测试115 总结致谢126 参考文献13131 系统需求分析1.1 设计内容与要求设计一个具有加减乘除功能的计算器,带三角函数、指数函数、对数函数计算功能,科学计数法表示。1.2 设计参数本设计任务是设计一个计算器。系统硬件较为简单,主要模块即是键盘与显示。另外可加一蜂鸣器在出错时报警。 由于系统硬件比较简单,硬件采用ZLG2410实验箱的矩阵键盘和数码管,控制芯片为ZLG7290。2 概要设计本电子计算器包括键盘和数码管显示,从键盘输入数据和符号的一个具有加减乘除功能的计算器。并用led数码管动态显示,操作简单、实用。图1 系统功能框架图3 详细设计3.1 键盘部分ZLG7290 64 可采样64个按键或传感器,其基本功能如下:(1)键盘去抖动处理当键盘按下和放开时,可能会出现电平状态反复变化,称作键盘抖动。若不处理会引起按键命令错误,所以要进行去抖动处理,以读取稳定的键盘状态为准。(2)双键互锁处理当有两个以上按键被同时按下时,ZLG7290 64 只采样优先级最高的按键(S1S2S3.S64)。3.2 显示部分表1按位下载数据且译码指令其中A3A0为显示缓存编号(范围为:0000B011B),DP=1时点亮该位小数点,Flash=1时该位闪烁显示,Flash=0时该位正常显示。表2 D4D0显示的数据本设计的电路原理图图2 电路原理图初始化3.3 流程图按键键值是否为111?否键值不是13时,fst=Shuzhi(num,bzct);键值为13时,snd =Shuzhi(num,bzct);把对应的数保存到数组yiwei(num)是result=fst+(-、*、/)snd,调用Jieguo(result)返回图3 程序流程图3.4 功能函数主函数部分int main(void) uint16 key; int j = 0; int num=0; float fst=0,snd=0,result=0;unsigned char i=0,flag=0; int bz=0,bzct=0; / int x=0,y=0; / GPIO设置 rGPACON = rGPACON & (121); / A口,RUN灯控制口 (GPA21) rGPHCON = (rGPHCON & (0x0320) | (0x010 & key=10) yiwei(num);/后移 disp_buf0 = key-1; num+ ; ZLG7290_SendBuf(uint8 *)disp_buf,num); if(bz=1)bzct+; while(ZLG7290_GetKey() = key); if(key = 11) / . disp_buf0 += 0x80; bz=1; while(ZLG7290_GetKey() = key); if(key = 12) /+ fst = Value(num,bzct); num = 0; flag = 1; bz=0; bzct=0; Clean(); while(ZLG7290_GetKey() = key); if(key = 14) /- fst = Value(num,bzct); num = 0; flag = 2; bz=0; bzct=0; Clean(); while(ZLG7290_GetKey() = key); if( key = 15) /* fst = Value (num,bzct); num = 0; flag = 3; bz=0; bzct=0; Clean(); while(ZLG7290_GetKey() = key); if(key = 16) / / fst = Value (num,bzct); num = 0; flag = 4; bz=0; bzct=0; Clean(); while(ZLG7290_GetKey() = key); if(key = 13) /ENter RunBeep(); snd = Value (num,bzct); num = 0; switch(flag) case 1: result = fst+snd; Clean(); Result (result); flag = 0; bz=0; bzct=0; break; case 2: result = fst-snd; if(result0) result=-result; Clean(); Result (result); flag = 0; bz=0; bzct=0; break; case 3: result = fst*snd; Clean(); Jieguo(result); flag = 0; bz=0; bzct=0; break; case 4: if(snd = 0) break; result = fst/ snd; Clean(); Result (result); flag = 0; bz=0; bzct=0; break; while(ZLG7290_GetKey() = key); / if(key =13 & key=1) / clean(); return(0);重要函数部分void Clean() /清零 unsigned char i; for(i=0; i0;i-)disp_bufi = disp_bufi-1;int Value (int count,int bc) /取值unsigned char i=0,j=bc;float sum = 0;if(bc!=0)/有小数sum =sum+(disp_bufbc-0x80);/个位elsesum +=disp_bufbc; /个位for(i = 0;ibc;i+)sum =sum + disp_bufi/pow(10,(bc-i); /小数部分for(i = 1;i(count-bc);i+)sum =sum + disp_bufj+1*pow(10,i); /整数部分除去个位return (float)sum; void Result(float result) /显示结果int j = 0;int n=0,a=0;unsigned char i =0;disp_buf2=0;result = result * 100;n = (int)result;a=n;while(n != 0)j = n%10;n = n/10;disp_bufi = j;i+;disp_buf2+=0x80;if(a10)disp_buf0=a;disp_buf1=0; ZLG7290_SendBuf(uint8 *)disp_buf,8);4 测试本电子计数器可以计算整数和小数的加减乘除运算,下面是其中的加法计算。 图4 两个加数 图5 两个数之和两个数相加,测试结果满足设计要求,较好地完成了本次设计。5 总结致谢本次课程设计,对MagicARM2410实验箱操作更加熟悉,对ADS1.2的编程和调试更加灵活。较好的熟悉并掌握了ZLG7290的操作原理和编程,以及led数码管的显示原理及编程,较好的完成了本次课程设计,实现了整数和小数的加减乘除运算的计算器。在本次课程设计中,老师和同学给了不少的帮助,使我获益匪浅,在此非常感谢你们,谢谢!6 参考文献1、ARM嵌入式系统开发-软件设计与优化,Andrew N.Sloss,沈建华(译),北京航空航天大学出版社,20052、ARM体系结构与编程,杜春雷,清华大学出版社,2007
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!