基于51单片机的数码管简易计算器


    基5152单片机简易计算器制作
    级动化班
    题目 利单片机芯片STC89C52四位八段阳数码已制作电路板等器件设计制作计算器
    二务求 求计算器实现加减四种运算具体
    1 加法:四位整数加法计算结果超八位显示计算错误
    2 减法:四位整数减法计算结果超八位显示计算错误
    3 法:位整数法计算结果超四位显示计算错误
    4 法:整数法
    5 清功
    三课程设计简述
    总体设计思路简述
    1系统设计功求初步确定设计系统控模块显示模块键扫描接口电路三模块组成控芯片STC89C52单片机
    2键盘电路采4*4矩阵键盘电路
    3显示模块采阳极数码构成
    四硬件电路

    五软件编程部份
    #include
    #define uchar unsigned char
    #define uint unsigned int

    uchar code num[]{0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x000x40} 阴极
    0 1 2 3 4 5 6 7 8 9 熄灭
    uchar code loc[]{0xff0xfe0xfd0xfb0xf7}
    uchar code ero[]{0x790x500x5c}

    uchar code num[]{0xc00xf90xa40xb00x990x920x820xf80x800x900xff0x40} 阳极
    uchar code loc[]{0x000x800x400x200x10}
    uchar code ero[]{~0x79~0x50~0x5c}

    uint n0n10n20 赋初值

    uchar flag0 计算类型选择关键字

    void delay(int t)
    void display(int n)
    void error()

    main()
    {

    while(1)
    {
    uchar temp
    第行检测
    P30xfe
    tempP3
    temptemp&0xf0
    if(temp0xf0)
    {
    delay(10)
    tempP3
    temptemp&0xfe
    if(temp0xfe)
    {
    tempP3
    switch(temp)
    {
    case 0xeen10n20n0flag0break 清零
    case 0xden110*n1+0nn1break 0
    case 0xbe if(flag1)nn2+n1
    if(flag2)nn2n1
    if(flag3)nn2*n1
    if(flag4)nn2n1
    n10
    break
    case 0x7e +
    n2n1n10
    flag1break
    }
    while(temp0xf0)
    {
    tempP3
    temptemp&0xf0

    }

    }


    }
    扫描第二行
    P30xfd
    tempP3
    temptemp&0xf0
    if(temp0xf0)
    {
    delay(10)
    tempP3
    temptemp&0xf0
    if(temp0xf0)
    {
    tempP3
    switch(temp)
    {
    case 0xedn110*n1+1nn1break 4
    case 0xddn110*n1+2nn1break 5
    case 0xbdn110*n1+3nn1break 6
    case 0x7d
    n2n1n10
    flag2break

    }
    while(temp0xf0)
    {
    tempP3
    temptemp&0xf0
    }

    }


    }
    扫描第三行
    P30xfb
    tempP3
    temptemp&0xf0
    if(temp0xf0)
    {
    delay(10)
    tempP3
    temptemp&0xf0
    if(temp0xf0)
    {
    tempP3
    switch(temp)
    {
    case 0xebn110*n1+4nn1break
    case 0xdbn110*n1+5nn1break
    case 0xbbn110*n1+6nn1break
    case 0x7b *
    n2n1n10
    flag3break
    }
    while(temp0xf0)
    {
    tempP3
    temptemp&0xf0
    }
    }
    }
    扫描第四行
    P30xf7
    tempP3
    temptemp&0xf0
    if(temp0xf0)
    {
    delay(10)
    tempP3
    temptemp&0xf0
    if(temp0xf0)
    {
    tempP3
    switch(temp)
    {
    case 0xe7n110*n1+7nn1break 7
    case 0xd7n110*n1+8nn1break 8
    case 0xb7n110*n1+9nn1break 9

    case 0x77
    n2n1n10
    flag4break

    }
    while(temp0xf0)
    {
    tempP3
    temptemp&0xf0
    }
    }
    }
    display(n)
    }
    }


    延时函数
    void delay(int t)
    {
    int xy
    for(x0x for(y0y}



    数码显示
    void display(int n)
    {
    溢出处理
    uchar gsbq
    int abs
    if((n>9999)||(n<999))
    error()

    正数
    if((n>0)&&(n<9999))
    {
    gn10
    sn1010
    bn10010
    qn100010
    P0num[g]
    delay(5)
    P2loc[4]
    delay(2)
    P2loc[0]
    delay(3)
    if(n>10)
    {
    P0num[s]
    P2loc[3]
    delay(2)
    P2loc[0]
    delay(3)
    }

    if(n>100)
    {
    P0num[b]
    P2loc[2]
    delay(2)
    P2loc[0]
    delay(3)
    }

    if(n>1000)
    {
    P0num[q]
    P2loc[1]
    delay(2)
    P2loc[0]
    delay(3)
    }
    }

    负数
    if((n<0)&&(n>999))
    {
    absn
    gabs10
    sabs1010
    babs10010
    qabs100010
    P0num[g]
    P2loc[4]
    delay(2)
    P2loc[0]
    delay(2)
    if((abs1010>0)||(abs10010>0))
    {
    P0num[s]
    P2loc[3]
    delay(2)
    P2loc[0]
    delay(2)
    if((abs10010>0))
    {
    P0num[b]
    P2loc[2]
    delay(2)
    P2loc[0]
    delay(2)
    if((abs100010>0))
    {
    P0num[q]
    P2loc[1]
    delay(2)
    P2loc[0]
    delay(2)

    }
    else
    {
    P0num[11]
    P2loc[1]
    delay(2)
    P2loc[0]
    delay(2)
    }
    }
    else
    {
    P0num[11]
    P2loc[2]
    delay(2)
    P2loc[0]
    delay(2)
    }

    }
    else
    {
    P0num[11]
    P2loc[3]
    delay(2)
    P2loc[0]
    delay(2)
    }

    }

    }

    溢出显示
    void error()
    {
    P2loc[1]
    P0ero[0]
    delay(2)
    P2loc[0]
    delay(3)

    P2loc[2]
    P0ero[1]
    delay(2)
    P2loc[0]
    delay(3)

    P2loc[3]
    P0ero[1]
    delay(2)
    P2loc[0]
    delay(3)

    P2loc[4]
    P0ero[2]
    delay(2)
    P2loc[0]
    delay(3)
    }

    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

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

     毕 业 设 计 题目 简易计算器的制作 ...

    5年前   
    2354    0

    基于51单片机的定时闹钟设计单片机课程设计

    单片机 课 程 设 计 报 告 院系: 信息工程学院 ...

    2年前   
    495    0

    基于51单片机的智能窗户设计毕业设计

    基于51单片机的智能窗户设计【摘 要】 随着电子技术的发展和人民生活水平的不断提高,智能窗已经越来越多地被用到了现代智能化建筑中,提供住户一个安全、方便的环境。据统计,在未来的几年内,安装智...

    5个月前   
    121    0

    基于AT89S51单片机无线传输系统设计毕业设计

    毕业论文(设计) 题 目: 单片机无线传输系统设计 完 成 人: ...

    4年前   
    874    0

    基于51单片机的智能窗帘控制系统

     毕业论文(设计) 学 院: 工学院 ...

    3年前   
    1113    0

    基于51单片机红外迎宾及人数检测报警系统

    红外感应式门铃如今常用于店铺门口用于迎接顾客。它可依据顾客的进出状况作出有所差别的反应。主要研究了红外感应技术在我们日常生活中的应用,即感应式门铃。通过对它的研究,学会红外接近开关的原理、电路设...

    3年前   
    842    0

    基于51单片机的数字温度计毕业设计

    数字测温计设计摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。在工业生产中温度是常用的被控参数,而采用单片机来对这些被控参数进行控制...

    3年前   
    1203    0

    基于51单片机的8路智能抢答器

    抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。

    6年前   
    2346    0

    基于51单片机数字温度计设计课程设计

    课 题: 基于51单片机数字温度计设计专 业: 电子信息工程班 级: 班学 号: 姓 名: ...

    3年前   
    976    0

    基于51单片机压力检测系统设计毕业设计

     学号: xx 大 学 毕业设计(论文) (xxxx届) 题 目 ...

    5年前   
    2724    0

    论文:基于51单片机的智能充电器的设计

    在我们的日常生活中,手机已经变得越来越重要了。我们经常需要使用手机,打电话、发短信、上网、看电影、听歌、玩游戏等等。随着大屏幕和高主频的手机出现,锂离子电池就变得更加重要了,其锂离子电池充电器也...

    5年前   
    1662    0

    基于51单片机的教室智能照明控制系统

    目 录绪论1 教室灯光自动控制整体描述 1.1 灯光控制总体思想 ................................................................

    3年前   
    879    0

    基于51单片机的智能家居报警系统

    随着网络和信息技术的飞速发展以及生活水平的提高,现在的社会有了很大的发展,信息化的概念已经越来越贴近我们的生活。伴随着社会的发展,家庭安全问题也被更加重视了。

    3年前   
    865    0

    基于51单片机音乐盒课程设计

    基于51单片机音乐盒课程设计 课程名称: 微机原理课程设计 题 目: 基于51单片机的音乐盒设计 摘要 随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的...

    5年前   
    1274    0

    学士论文开题报告基于51单片机的数字示波器设计

    XX学院信息工程学院学士学位论文开题报告课题名称 基于51单片机的数字示波器设计 学生姓名 导师姓名 所在系部 信息工程学院 ...

    2年前   
    756    0

    基于51单片机超声波测距

     目录摘 要 2ABSTRACT 3目 录 41 绪论 11. 1 概述 11. 2 国内外发展现状 12 系统总体方案设计 22. 1 设计要求 21)可进行距离测量。 22) 采用...

    4个月前   
    106    0

    基于51单片机的智能充电器的设计

    课题:基于51单片机的智能充电技术基于51单片机的智能充电器设计摘 要:智能充电器的设计第一步需要解决的就是选择什么样的芯片来进行工作,其本身需要将51单片机作为基本的设计基础,这里选择的充...

    7个月前   
    227    0

    基于51单片机的LED点阵显示屏设计

    目录摘要 IIAbstract III第一章 绪论 11.1 课题背景 11.2 选题意义 11.3 论文主要内容 1第二章 方法论证对比 32.1 单片机编程语言 32.2 控制系统设计 3...

    3年前   
    627    0

    基于51单片机的电子密码锁设计

    近年来,在我国社会经济不断进步和迅猛发展的背景下,人们的生活水平越来越高,更多的人开始享受高质量的生活。就拿我们家家离不开的锁具来说,从我国古代历史上就有了各种锁的记载和使用,发展到今天人们追求...

    3年前   
    672    0

    基于51单片机红外感应家用小夜灯的设计

     本科毕业论文(设计)题 目: 基于51单片机红外感应家用小夜灯的设计 院 系:物理与电子信息科学系 专 业:电子信息科学与技术...

    2年前   
    560    0

    文档贡献者

    z***u

    贡献于2022-07-13

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档