创新性实验设计报告

创新性实验设计报告

ID:5711274

大小:264.23 KB

页数:13页

时间:2017-12-23

创新性实验设计报告_第1页
创新性实验设计报告_第2页
创新性实验设计报告_第3页
创新性实验设计报告_第4页
创新性实验设计报告_第5页
资源描述:

《创新性实验设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、山东科技大学电工电子实验教学中心创新性实验设计报告实验项目名称__简易计算器___组长姓名_左岩_学号_200901100638手机15192596720Email905192140@qq.com专业_电子信息工程班级_电信09_指导教师及职称__钟宁帆讲师___开课学期2011至2012学年_二_学期提交时间2011年12月17日一、实验摘要本次创新性实验主要是基于STC89C52RC芯片开发一个简易计算器,计算器要求能够完成有符号数据之间的基本运算,包括加、减、乘、除等。计算器要求有加、减、乘、除、负号、归零、等号键等,

2、并且利用8位数码管显示参加运算的数据和运算结果,显示运算结果超限提示,消隐未使用位。二、实验目的本次创新性实验目的是为了增加自主动手实践能力,并且借此过程理解单片机编程过程,并且在此过程中积累实践经验,从而为将来解决更加复杂的问题打下坚实的基础。本次创新实验对于开发语言并无明确限制,考虑到C语言的通用性,以及易扩展性。本次选用C语言开发简易计算器。三、实验设计方案1、实验原理图1.系统主框图本次试验将在现有开发板上进行调试,需要应用到核心板部分(图中所示单片机部分,相关外围电路由于与本次试验设计研究方向关联不大,故暂时省去)

3、,4*4矩阵键盘部分与数码管显示部分。本次试验拟定用C语言进行编写,主要考虑到了编写的效率,由于计算器对系统的实时性要求不是很高,故用C语言编写可以极大的提高编写效率,减小代码错误的概率。C语言中集成了大量的系统函数,与汇编相比指令系统更加丰富,所以更加有利于程序的编写。本实验软件部分基本原理就是利用C语言的指令系统及头文件中有定义的函数编写相关代码,拓展计算器功能。采用模块化编程的方式,并预留接口,方便随时增加计算器系统的能力,适应新的客观要求。下面将按模块解读系统各主体部分功能及设计原理。由于系统功能部分

4、与实体部分是一一对应的,所以软件部分主体也有三个部分组成,分别是与核心板部分对应的主控部分(在本报告中即为main()函数),与矩阵式键盘部分对应的输入部分以及与数码管部分对应的输出部分。(一)主控部分本实验中主控部分即为main()函数部分。Main()函数主要负责为各部分外设的调用提供接口,为了代码的简洁和易删改性,本次试验计划将计算部分函数与主控部分主体分离,利用一个子函数的形式由主函数调用,主函数部分只作为最基本的控制调用部分。为了叙述方便,把运算子函数归为输入部分“=”的响应。(二)输入部分输入部分主要是keys(

5、)函数。他的主要功能为键盘扫描,扫描到的键值分为两类,第一类是数字键(0-9),第二类是运算符(+、-、*、/、.、=)。当扫描到数字键时,将相应的数值存入到一个字符型的数组(长度是8)中。当扫描到符号键时,保存符号键的键值,以便于最终进行运算。然后,调用另外一个子程序将保存到数组中的数据转换为真实的数据并保存,之后将数组中的数据及部分相关标志位清零。第二个输入的数据进行相同处理。当按下等号键时,直接调用进行运算的子程序,根据相应的变量,对转换完成的数据进行相应的运算,运算完成后将结果再次保存到数组中,然后送给输出部分经由数

6、码管显示运算结果。(三)输出部分输出部分负责显示输入/输出的数据,由于数据的转换已经在键盘扫描子程序中完成了,因此,数码管显示部分的代码相对简短,这里便不再赘述了。关于硬件部分的说明:由于利用的是试验箱而不是单独制作硬件,这里只做简单的介绍。考虑到C52单片机的I/O口较少,以及矩阵式键盘的工作特点和本实验的功能要求,所以本系统采用4X4矩阵式键盘。(一)矩阵式键盘工作原理:图二.矩阵式键盘原理图1.行线D0~D3先送全扫描字0000,回读列线D4~D7是否不全为1,若是,表明有键按下,否则,无键操作。2.逐行送扫描字0,若

7、列线有低电平,则行列交叉的地方有键按下。(二)数码管工作原理图三.数码管工作原理字形代码:注:本系统选用数码管是共阳极的。(三)LED显示方式:LED的显示可分为静态显示和动态显示,考虑到静态显示占的线太多,布线困难,本系统选用动态显示方式。动态扫描显示是单片机应用系统中最常用的显示方法之一。它是把所有显示器8个笔画段a~h的各同段名端互相并接在一起,并把它们接到字段输出口上。为了防止各个显示器同时显示相同的数字,各个显示器的公共端COM还要受控制信号控制,即把它们接到位输出口上。这样,对于一组LED数码显示器需要有两组信号

8、来控制,一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位显示器工作,称为位码。在这两组信号的控制下,可以一位一位地轮流点亮各个显示器显示各自的数码,以实现动态扫描显示。由于人眼的“视觉暂留效应”,本质上在某个时刻只有1个数码管在被

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。