登录|立即注册|使用QQ帐号登录
论坛 > 51单片机
发帖|
看24627|回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)
(下载次数: 186, 2018-6-18 16:36 上传)

下载积分: 黑币 -5




沙发 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黑电子论坛

Powered by Discuz! X3.1

首页|标准版|触屏版|电脑版