单片机课程设计报告.docx

单片机课程设计报告.docx

ID:57218635

大小:157.93 KB

页数:24页

时间:2020-08-06

单片机课程设计报告.docx_第1页
单片机课程设计报告.docx_第2页
单片机课程设计报告.docx_第3页
单片机课程设计报告.docx_第4页
单片机课程设计报告.docx_第5页
资源描述:

《单片机课程设计报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单片机原理及应用实习报告课程设计学生姓名所在专业电气工程及其自动化专业所在班级任课老师学号成绩评语目录1、内容提要(摘要)32、正文3(1)课题的意义、本人所做的工作、系统的主要功能及工作流程3(2)硬件电路原理描述4(3)软件设计流程及描述5(4)系统测试7(5)结论73、心得体会84、附录9(1)系统总硬件电路原理图9(2)系统源程序代码9一、内容提要(摘要)本次单片机课程设计我选择做一个小型简易计算器,该设计需要满足的内容是:设计一个4×4的键盘,完成简单的四则运算,可以实现连续运算,有条

2、件还可以考虑复杂的数序运算。本次设计会用到proteus进行电路图的仿真,用到keil软件进行程序的编写和编译。指导老师召开实习动员会,会议上同学们需要上交具体实现方案,验证方案的合理性。实习环节由学生自行完成,最后统一时间验收和答辩。二、正文(1)课题的意义、本人所做的工作、系统的主要功能及工作流程①课题意义:计算器是人们生活中最常见且最简易的电子产品之一,不同的计算器有不同的动能。一般的计算器可以实现四则运算以及其他数学运算,为了研究和了解计算器的工作原理,本次设计我选择做一个简易计算器。在

3、做这个设计的背景下可以将单片机的理论知识运用于实践中。②本人所做的工作:本人主要做了两方面的工作,一是计算器的电路图仿真搭建,二是实现计算器功能的程序编写。电路图仿真是用proteus来完成的,在这个过程中调动了51芯片、按键、数码管来完成电路图的搭建。实现计算器的代码是我在同学的指导下逐渐完成的,这个过程中也在网络山查找了很多资料来完善程序。③系统的主要功能:该简易计算机系统可以实现简单的四则运算,同时可以在不清屏的条件下继续运算。④工作流程:首先是分析该课题要求的功能如何实现,然后开始着手写

4、各部分的代码。完成了程序的编写之后进行编译和调试,程序大致没问题后生成hex文件,接着开始电路图的搭建。电路图的搭建好后就载入hex文件试运行,运行后发现问题继续调试程序和调整电路,直到完成要求为止。(1)硬件电路原理描述该电路主要由AT89C51芯片、由16个按键组成的4*4键盘、数码管和外部晶振组成。其中最主要的部分是AT89C51芯片,它起到控制和运算的作用。外部晶振充当该系统的时钟电路,它的主要作用是向芯片提供基准频率,它就像个标尺一样,如果系统的工作频率不稳定的话会造成其他设备工作频率

5、的不稳定。数码管是一个显示四位的数码管,在使用之前要对它的数模进行定义。数码管右下角的管脚控制显示的位数,当第一个管脚高电平的时候,表示可以显示4位数;当第二个管脚高电平的时候,表示可以显示3位数,以此类推,总共可以显示的范围是4位。由16个按键组成的4*4键盘的工作原理是采用了线反转法,线反转法的具体原理是:将行线作为输出线,列线作为输入线。将输出线全部置0,此时列线中呈现低电平的就是按键所在的x列,如果全部不为0的话就说明没有按键按下。然后再将列线作为输出线,行线作为输入线,置输出线全部为0

6、,此时行线中呈现低电平的就是按键所在的y行。由此可以确定按键的位置(x,y)。由该仿真电路我们可以看到数码管的接通显示引脚接在芯片的P2口上,这是将P2口作为了输出口来使用,而P1口连接了矩阵键盘,作为输入口来使用。而P3口的高四位用来控制数码管显示的位数。(1)软件设计流程及描述在开始编写程序之前,先将所需要的KEIL软件下载安装好,然后才开始写程序。写程序的时候,我先确定主函数的主体内容,将要实现的功能先囊括在里面,然后在逐一在主函数之外编写子函数,在遇到不能实现的功能是请求同学的帮助或者上

7、网查找资料。在开始编写主程序之前,我先考虑到了键值获取的程序。在这个系统中我运用了线反转法来获取键位,然后定义一个数组来确定键位所代表的数字或符号是什么。简易计算机的显示是主要的问题,其次是它的计算功能。所以在编写主函数的时候要确定运算符号是否按下了,第一位用于运算的数是否也按下了,第二位数是否按下了,等于号是否按下了,这个判断就需要通过一个获取键位的子函数来获取信息了。因为数码管只有四位,所以还要考虑运算是否会超出显示范围,当超出了显示范围后通过程序设定屏幕显示FFFF的字样。当第一位数、运算

8、符号、第二位数和等于号都被按下之后,就开始调用子函数来进行运算。在加减乘除运算中,最复杂的是除法,因为除法的结果可能是带小数位的,也可能是不带小数位的。所以在编写这部分的主函数和子函数的时候要注意到这一点。整数除法运算和显示我编写在一个名为dis()的子函数中,而商带有小数的除法运算和显示我编写在了一个名为div()的子函数中。在这两个子函数中又分别讨论了商是不同位数的情况,例如在小数除法运算和显示中分别就千位带小数、百位带小数、十位带小数、个位带小数进行讨论。(1)系统测试经过测试,发现该简易

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

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

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