1、 摘摘 要要 本设计是实现4位数的加减运算的简易计算器, 利用AT89C51单片机作 为微控制器,实现键盘输入,由七段LED数码管输出;程序都是根据教材 内和网络中的C语言程序参考编写而成,在功能上还并不十分完善,限制 也较多。本设计重在设计构思,使得我们用专业知识、专业技能分析和解 决问题,通过设计使得我们对所学知识彻底巩固。 关键字: 计算器、单片机、AT89C51、键盘、数码管 目 录 1 1、总体方案设计 1 1.1 设计任务与思路1 1.2 方案论证与设计1 2 2、硬件模块设计 2 2.1 运算模块设计2 2.2 单元电路设计2 2.3 输入模块5 2.4 显示模块6 3 3、系统
2、软件设计 9 3.1 LED 显示程序流程图设计9 3.2 读键盘输入程序流程设计10 3.3 主程序流程图设计17 4 4、仿真与调试 19 总 结 20 参考文献21 附录 A 简易计算器 C 语言程序22 附录 B 系统硬件电路图28 第 1 页 1、总体方案设计 1.1 设计任务与思路 任务书上规定计算器满足的基本要求如下: 1、能实现4位数的加减运算。 2、当按下“*或/”号时,属于违规操作,当前数据被清零,声报警。 针对以上设计要点,我们采用基于单片机设计计算器,并用LED 数码管显示数 据,4*4 的矩阵键盘实现数据输入。设计仿真和调试要用到Protues 、Keil等软件。 1
3、.2 方案论证与设计 根据功能和指标要求,本系统选用AT89C51单片机为主控机。通过扩展必要的外 围接口电路,实现对计算器的设计。具体设计考虑如下: (1)由于要设计的是简单的计算器,可以进行加减运算,对数字的大小范围要求 不高,故我们采用可以进行4位数字的运算,选用4个LED 数码管显示数据和结果。 (2)考虑到软件Proteus中有自带键盘,为了设计的方便键盘包括数字键(09)、 符号键(+、-、)、清除键和等号键,故只需要16个按键即可,系统模块如图 1-1所示。 图 1-1 系统模块图 根据需要我们可以采用自上而下的程序设计方法,此方法先从主程序开始设计, 然后再编制各从属程序和子程
4、序, 层层细化逐步求精, 最终完成一个复杂程序的设计。 这种方法比较符合人们的日常思维,详细程序见系统软件设计部分介绍。 第 2 页 2、硬件模块设计 2.1 运算模块设计 AT89C51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能 I/O等一台计算机所需要的基本功能部件。如果按功能划分,它由如下功能部件组成, 即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O 口、 串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。单片机是靠程序运行 的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能, 通过
5、使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此我们采用 单片机作为计算器的主要功能部件,可以进行很快地实现运算功能,如图2-1所示: 图 2-1 单片机芯片 51 系列单片机 8031、8051 及 89c51/89s51 均采用 40Pin 封装的双列直接 DIP 结 构。上图是它们的引脚配置:40 个引脚中,正电源和地线两根,外置石英振荡器的时 钟线两根,4 组 8 位共 32 个 I/O 口,中断口线与 P3 口线复用。 2.2 单元电路设计 2.2.1 电源引脚 第 3 页 Vcc 40 脚 正电源脚, 工作电压为 5V, 另有 AT89LV51 工作电压则是 2.7-6V, 引 脚功能一样。 GND 20 脚 接地端。 2.2.2 外接晶体