找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 23126|回复: 10
打印 上一主题 下一主题
收起左侧

基于单片机的简易计算器设计报告

  [复制链接]
跳转到指定楼层
楼主
ID:263828 发表于 2018-6-18 16:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
课程设计报告

设计名称:     简易计算器     
班    级:15 q通信2班     
学    号:201524440213   
姓    名:xxx
指导教师:       邢*      

基于单片机的简易计算器设计

1设计目的

我所设计的基于ATMEL公司AT89C52单片机的简易计算器,是利用该51单片机和数码管显示设计的简易计算器。

本设计满足计算器的基本要求,可以基本的运算(加减乘除),数据归零,利用51系列单片机设计符合功能的计算器,并用LED码管显示数据,4*4的矩阵键盘实现数据输入,同时,可以在流水灯处显示出相应数字。在进行运算时,按等号键能将最后结果输送给数码管并显示出来。设计仿真和调试要用到Protues、Keil等软件。

通过对简易计算器的设计制作与调试,学习掌握

  • 单片机系统的整体设计流程;
  • 单片机系统的硬件、软件调试方法及相关工具的使用;
  • Protues绘制电路原理图的方法
  • 各种常见元器件的选择及使用。

2 设计方案

本设计采用以AT89C52单片机为核心的低成本、高精度、微型化数字显示简易计算器的硬件电路和软件设计方法。整个电路采用模块化设计,由主程序、按键子程序、延时子程序、显示子程序等模块组成。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块,利用软件方面使用C语言编程,并用Protues仿真。

(1)硬件设计:

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

通常,单片机由单个集成电路芯片构成,内部包含有计算机的基本功能部件,中央处理器,存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起来。计算器在人们的日常中是比较的常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念,本次设计是用单片机来设计的计算器。

1.系统模块图为:

简易计算器按模块可化分为:

·1 单片机主控芯片

·2 矩阵键键

·3 数码管显示

·4 点亮发光二极管

2.引脚图:
3.最小系统原理图:

最小系统由复位电路、输入输出设备、电源和单片机芯片组成。

4.共阴极数码管引脚接线:
5.数码管显示部分的实现:

数码管通过PO口输入高低电平控制每个LED灯的亮灭,公共端接地线P0口接1K的上拉电阻。由于并未用到小数点显示,所以DP引脚悬空。

6.计算器用到的数字0-9的共阴极字形代码:
7.数码管与单片机连接图:

(2)软件设计

显示程序

初始化-->写命令-->写数据

*将各类函数声明都写到同一个头文件中,方便查看各个函数的参数以及功能

  • 硬件电路

主控芯片如图

4.软件程序


5调试结果及说明

(1)键盘对应有效值表

0

1

2

3

4

5

6

7

8

9

移位

=

+

-

*

/


(2)使用说明

键盘分布如上图所示,该计算器可以计算简单的256以内的加减乘除运算,右侧复位键为“清零”。

  • 上电后,屏幕初始化。
  • 计算。按下数字键,屏幕显示要运算的第一个数字,再按下符号键,然后再按下 数字键,屏幕显示要运算的第二个数字,最后按下“﹦”号键,屏幕上显示出计算结果。

如果要再次计算,可以按下“ON/C”键清零,或者按下单片机的复位键,重新初始化。

(3)实物图

例如11*11=121

最大的数字到

实习收获

通过这次单片机课程设计,不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。设计结果能够符合题意,成功完成了此次课程设计要求,不只在乎这一结果,更加在乎的,是这个过程。这个过程中,花费了大量的时间和精力。在老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,单片机领域这对我今后进一步学习及工作有极大的帮助。

然而我们也有许多不足之处。在软件编程时一定要考虑周到,要有耐心要仔细。还要与硬件相联系起来,脱离了实物一切都是假的。在理论上往往是可行的,然而当把程序烧入芯片,进行调试时就会遇到这样那样的的问题。最糟的是当我们辛苦把实物完成,而那电路有完全没反应,与我们的设想完全不同,而我们又不知道是软件问题还是硬件问题时,就要静下心来,一步一步来,从硬件的芯片开始检查是否短路等等,而软件又要不断地进行仿真调试。然而我们遇到的问题除了焊接时可能导致的短路外,还应电压不稳定或过大而导致芯片被烧毁,总而言之,我们还是缺少对芯片和各种器件的了解,无法准确的判断出什么样的现象将是由原因引起的。

以后还是要努力学习基础知识,把基础知识理解透彻,去更好的应用和实践。


  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit dula=P2^6;
  5. sbit wela=P2^7;
  6. sbit beep=P2^3;
  7. uchar qian,hou;

  8. uchar a0=16,b0=16,c0=16,d0=16,e0=16,f0=16,wei,temp,key,i,j,k;

  9. uchar jia,jian,cheng,chu,dengyu,jia0,jian0,cheng0,chu0,qingling;

  10. uchar s0,s1,s2,s3,s4,s5;

  11. void delay(uchar xms);

  12. void display();

  13. void keyscan();

  14. void display0();

  15. uchar code table[]={

  16. 0x3f,0x06,0x5b,0x4f,

  17. 0x66,0x6d,0x7d,0x07,

  18. 0x7f,0x6f,0x77,0x7c,

  19. 0x39,0x5e,0x79,0x71,0x00};

  20. void delay(uchar xms)

  21. {

  22. uint i,j;

  23. for(i=xms;i>0;i--)

  24. for(j=110;j>0;j--);

  25. }

  26. void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f)

  27. {

  28.    dula=0;
  29.    P0=table[a];
  30.    dula=1;
  31.    dula=0;



  32.    wela=0;

  33.    P0=0xfe;

  34.    wela=1;
  35.    wela=0;
  36.    delay(5);



  37.    P0=table[b];
  38.    dula=1;
  39.    dula=0;



  40.    P0=0xfd;
  41.    wela=1;
  42.    wela=0;
  43.    delay(5);



  44.    P0=table[c];
  45.    dula=1;
  46.    dula=0;



  47.    P0=0xfb;
  48.    wela=1;
  49.    wela=0;
  50.    delay(5);



  51.    P0=table[d];
  52.    dula=1;
  53.    dula=0;
  54. ……………………

  55. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

完整的Word格式文档51黑下载地址:
基于单片机的简易计算器的课程设计.doc (987 KB, 下载次数: 185)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶2 踩
回复

使用道具 举报

沙发
ID:354047 发表于 2018-6-21 17:15 来自手机 | 只看该作者
楼主你这个板子是买的吗
回复

使用道具 举报

板凳
ID:354047 发表于 2018-6-21 18:08 来自手机 | 只看该作者
楼主你这个有工程吗
回复

使用道具 举报

地板
ID:433281 发表于 2018-11-26 10:57 | 只看该作者
请问答主的板子是买的吗?毕业设计可以用这种板子的吗
回复

使用道具 举报

5#
ID:455134 发表于 2018-12-26 09:53 | 只看该作者
楼主可以教学一下吗
回复

使用道具 举报

6#
ID:263828 发表于 2018-12-26 18:18 | 只看该作者
爱吃土豆的猫 发表于 2018-11-26 10:57
请问答主的板子是买的吗?毕业设计可以用这种板子的吗

板子是买的,做课设用的,毕设看你们学校的要求,我们学校是不允许使用现成的板子,需要自己打板子
回复

使用道具 举报

7#
ID:514736 发表于 2019-4-17 16:38 | 只看该作者
要做试验,学习下,
回复

使用道具 举报

8#
ID:565336 发表于 2019-6-18 11:04 | 只看该作者
差不多都是这样,52的
回复

使用道具 举报

9#
ID:570473 发表于 2019-6-24 09:42 | 只看该作者
楼主  用AT69C51会有影响吗
回复

使用道具 举报

10#
ID:565657 发表于 2019-6-28 22:22 | 只看该作者
楼主有仿真图的原理图吗?
回复

使用道具 举报

11#
ID:772218 发表于 2020-6-7 21:34 | 只看该作者
要做设计,学习一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表