当前位置:文档之家› 基于AT89C51单片机的电子计算器的课程设计

基于AT89C51单片机的电子计算器的课程设计

基于AT89C51单片机的电子计算器的课程设计
基于AT89C51单片机的电子计算器的课程设计

基于AT89C51单片机的电子计算器的课程设计

一.设计背景

当今时代,是一个新技术层出不穷的时代。在电子领域,尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。过去习惯于传统电子领域的工程师、技术员正面临着全新的挑战,如不能在较短时间内学会单片机,势必会被时代所遗弃,只有勇敢地面对现实,挑战自我,加强学习,争取在较短的时间内将单片机技术融会贯通,才能跟上时代的步伐。

它所给人带来的方便也是不可否定的,它在一块芯片内集成了计算机的各种功能部件,构成一种单片式的微型计算机。20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不暇接,单片机应用不断深入,新技术层出不穷。20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

本设计是由单片机实现的模拟计算器,它不仅能实现数据的加减乘除运算,而且还能使数据及其计算结果在数码管上显示出来,能够实现0-256的数字四则运算。本设计是用单片机AT89C51来控制,采用共阳极数码显示,软件部分是由C语言来编写的。设计任务

二、元器件清单及简介

89c51型芯片一片

排阻两个

晶振12MHZ 一个

电容22uf 两个

面包板三个

导线若干

三、设计原理及分析

根据功能和指标要求,本系统选用MCS 51 单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计考虑如下:

①由于要设计的是简单的计算器,可以进行四则运算,对数字的大小范围要求不高,故我们采用可以进行四位数字的运算,选用8 个LED 数码管显示数据和结果。

②另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可。系统模块图:

2.1 输入模块:

键盘扫描计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式。为此,我们引入了矩阵键盘的应用,采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4×4个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。矩阵键盘的工作原理:计算器的键盘布局如图所示:一般有16 个键组成,在单片机中正好可以用一个P 口实现16 个按键功能,这种形式在单片机系统中也最常用。

以上键盘从上到下依次编号为1,2,3,4,D,C,B,A

由图 3 矩阵键盘内部电路图可以知道,当无按键闭合时,P10~P13 与P14~P17 之间开路。

当有键闭合时,与闭合键相连的两条I/O 口线之间短路。判断有无按键按下的方法是:第一步,置列线P14~P17 为输入状态,从行线P10~P13 输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合。第二步,行线轮流输出低电平,从列线P14~P17 读入数据,若有某一列为低电平,则对应行线上有键按下。综合一二两步的结果,可确定按键编号。但是键闭合一次只能进行一次键功能操作,因此须等到按键释放后,再进行键功能操作,否则按一次键,有可能会连续多次进行同样的键操作。

2.2 运算模块:(单片机控制)

AT89C51 单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等一台计算机所需要的基本功能部件。如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O 口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。[3][5]单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!因此我们采用单片机作为计算器的主要功能部件,可以进行很快地实现运算功能。

2.3 显示模块:

LED 显示发光二极管LED 是单片机应用系统中的一宗简单而常用的输出设备,其在系统中的主要作用是显示单片机的输出数据、状态等。因而作为典型的外围器件,LED 显示单元是反映系统输出和操作输入的有效器件。LED 具备数字接口可以方便的和大年纪系统连接;它的优点是价格低,寿命长,对电压电流的要求低及容易实现多路等,因而在单片机应用系统中获得了广泛的应用。[2][4]通常的数码显示器是由7 段条形的LED 组成(如图4 所示),点亮适当的字段,就可显示出不同的数字。我们采用8 段数码管,其中位于显示器右下角的LED 作小数点用。LED 显示器有两种不同的形式:共阴极和共阳极。本次设计采用共阴

极接法(如图5所示)。

3、软件设计

在程序设计方法上,模块化程序设计是单片机应用中最常用的程序设计方法。设计的中心思想是把一个复杂应用程序按整体功能划分成若干相对独立的程序模块,各模块可以单独设计、编程和调试,然后组合起来。这种方法便于设计和调试,容易实现多个程序共存,但各个模块之间的连接有一定的难度。根据需要我们可以采用自上而下的程序设计方法,此方法先从主程序开始设计,然后再编制各从属程序和子程序,层层细化逐步求精,最终完成一个复杂程序的设计。这种方法比较符合人们的日常思维,缺点是一级的程序错误会对整个程序产生影响。功能流程图如下:

4、硬件原理

以下为简易计算器的总体电路图

加运算:

减运算:

乘运算:

除运算:

清零:

四. 总结

通过此次单片机实训设计,我们学到了很多东西,在器件的了解和器件选择上有个明确的认识,并在程序的设计,及理论在实践反面的运用能力有巨大的提高。

这次单片机课程设计由我们六位同学经过一周努力设计得到。软件的编程要我们不断的调试,最终我们终于完成了单片机实训课程设计,很高兴它能按着设计思想与要求运动起来。

当然,这其中也有很多的问题。第一、不够细心,由于对课本理论的不熟悉导致的编程错误,对于器件的实际情况的不了解,理论与实践的差距导致我们在设计实际电路时出现了很多错误,使得实验不能一次通过。第二、是在学习态度上,这次课程设计是对我们的学习态度的一次体验。对于这次单片机综合课程实习,我们的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨,这次的课程设计我们所遇到的问题多半是由于我们不够严谨。第三、在做人上,我们认识到,无论做什么事情,只要你足够坚强,有足够的毅力和决心,有足够的挑战困难的勇气,就没什么办不到的。还有就是团队的合作精神。

在这次难得的课程设计过程中我们锻炼了自己的思考能力和动手能力,加强了我们思考问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题、解决问题的能力。

五.参考文献

《单片机原理及应用》张毅刚高等教育出版社《MCS—51单片机应用设计》张毅刚哈尔滨工业大学出版社《MCS—51系列单片机实用接口技术》李华北京航空航天大学出版社《单片机应用技术选集》何立民北京航空航天大学出版社《单片机原理及其接口技术》胡汉才清华大学出版社

《数码管显示驱动和键盘扫描控制器CH451及其应用》施隆照

如需要代码及电路图(Proteus仿真图)请联系QQ:627733894

单片机课程设计 简易计算器的设计

目录 摘要 (1) 绪论 (1) 1.设计要求及功能分析 (1) 1.1 设计要求 (1) 1.2 基本功能 (2) 2.设计方案 (2) 2.1 硬件部分设计方案 (2) 2.1.1 单片机部分 (2) 2.1.2 按键部分 (2) 2.1.3 显示部分 (2) 2.2 软件部分设计方案 (2) 3.系统的硬件总体设计 (4) 3.1 系统的总体硬件设计 (4) 3.2 键盘连接电路 (4) 3.3 显示屏连接电路 (5) 3.4 单片机芯片AT89C51 (6) 3.5 外接电路 (7) 4.系统的软件总体设计 (8) 4.1 键盘识别程序设计 (8) 4.2 显示程序 (11) 4.3 运算程序 (11) 5.元器件清单及程序清单 (12) 5.1 元器件清单 (12) 5.2 程序清单 (12) 6.软件仿真 (18) 6.1 仿真验证 (18) 6.2 性能分析 (20) 6.3 出现故障及其原因 (20) 6.4 解决方法 (20) 结论 (20) 参考文献 (21) 致谢 (21) 附录PCB图 (22)

简易计算器的设计 学生:李飞马鹏超舒宏超 指导老师:王孝俭 摘要:单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可,用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!它主要是作为控制部分的核心部件。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。单片机比专用处理器最适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的综合,甚至比人类的数量还要多。 关键词:单片机、计算器、控制电路、仿真。 绪论 设计要求掌握数码管移位动态扫描显示的编程方法,掌握矩阵扫描的编程方法,掌握数据在内部运算的编程方法。设计任务实现最大8位正整数加、减、乘、除,具备清零、等于功能,16个按键功能依次为:数字0、数字1、数字2、数字3、数字4、数字5、数字6、数字7、数字8、数字9、清零、等于、加、减、乘、除。 1.设计要求及功能分析 1.1设计要求: 本次单片微型计算机与接口技术课程设计做的是利用C51单片机为主体的计算器,实现了简单的加、减、乘、除功能。采取的是键盘输入和液晶显示屏的输出结果显示。主要硬件构成部分由四个,一个AT89C51单片机芯片,一个液晶显示屏,一个4*4键盘和一个排阻(10K)做P0口的上拉电阻,可以实现16位的数值操作计算。 1.2基本功能: 首先,计算器可现实8位数字,开机运行时,只有数码管最低位显示为“0”,其他位全部不显示;

单片机课程设计-电子钟

中北大学 单片机课程设计说明书 数字钟设计 1 设计任务与要求 (1)

1.1设计任务 (1) 1.2设计要求 (1) 2单片机简介 (2) 2.1单片机的发展历程 (2) 3系统设计思路和方案 (3) 3.1系统总体方案 (3) 3.2硬件简介 (3) 3.2.1硬件选择 (3) 3.2.2 51单片机的构成 (4) 3.2.3 STC89C52RC引脚功能说明 (5) 3.2.4 LED简介 (6) 3.3 Keil调试 (7) 4、系统实物图 (9) 5、课程设计体会 (9) 参考文献 (10) 附录A (11) 附录B (13) 附录C (14)

1 设计任务与要求 1.1设计任务 本课题应完成以下设计内容: 1)硬件设计 设计数字钟的电路原理图,用PROTEL绘制硬件电路。制作实物。 2)软件设计 (1)时、分、秒的设置及显示; (2)画出程序框图; (3)调试与分析。用PROTEUS仿真。 3)课程设计说明书 1.2设计要求 本课程设计的基本要求是使学生全面掌握单片机控制系统设计的基本理论,熟悉掌握MCS-51 系列单片机的编程方法,具体要求:本例利用AT89C51的定时器和6位7段数码管,设计一个电子时钟。显示格式为“XX XX XX”,由左向右分别是:时、分、秒。

2单片机简介 2.1单片机的发展历程 单片机是微型计算机的一个重要分支,也是一种非常活跃和颇具生命力的机种,特别适用于工业控制领域。1971年微处理器研制成功不久,就出现了单片机,但最早的单片机是1位的,处理能力有限。单片机的发展共分四个阶段:第一阶段是初级阶段,功能非常简单;第二阶段是低性能阶段, 16位定时器/计数器,片内ROM、RAM容量加大,直到现在仍被广泛应用,是目前应用数量较多的单片机。、32位单片机推出阶段,以满足不同的用户需要。纵观单片机几十年的发展历程,单片机的今后发展方向将向多功能、高性能、高速度、低功耗、低价格、外围电路内装化以及内存储器容量增加和FLASH存储器化方向发展。 2.2实用价值与理论意义 在单片机模块里比较常见,数字时钟是一种用0数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更高的使用寿命,新词得到了广泛的应用。 数字时钟是采用数字电路实现对时、分、秒数字显示的计时装置,广泛用于个人家庭、车站、码头、办公室等公用场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字时钟的精度远远超过老式钟表,钟表的数字化给人们的生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。因此研究数字时钟及扩大其应用有着非常现实的意义。

C++课程设计报告--小型特殊计算器

课程设计报告 课程:面向对象程序设计学号: 姓名: 班级: 教师:

课程设计名称:小型特殊计算器 1.设计内容: 实现一个特殊的计算器,可以实现复数、有理数、矩阵和集合的特殊计算。程序可以实现复数、有理数的加、减、乘、除,可以实现矩阵的加法、减法和乘法运算,也可以实现集合的求交集、并集、子集的运算。 2.设计目的与要求: 2.1设计目的 达到熟练掌握C++语言的基本知识和技能; 基本掌握面向对象程序设计的基本思路和方法; 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2.2设计要求 要求利用面向对象的方法以及C++的编程思想来完成系统的设计; 要求在设计的过程中,建立清晰的类层次; 在系统的设计中,至少要用到面向对象的一种机制。 3.系统分析与设计 3.1主要知识点 运算符重载增加了C++语言的可扩充性。运算符的重载实际上就是一种函数调用的形式,可以用成员函数重载运算符,就是将运算符重载定义为一个类的成员函数的形式;也可以用友元函数重载。用友元重载运算符的友元函数是独立于类以外的一般函数。 3.2关键技术 程序中每一种数据类型用一个类来实现,共设计了4个类。复数类complex,矩阵类matrix,有理数类rational以及集合类set。每一种类都定义了相应的运算符重载函数。具体定义如下所示: (1)类complex 类complex中,成员变量image表示虚部,real表示实部。成员函数print()用来显示数据。运算符重载函数都是用友元函数来实现的。分别重载+、-、*、/运算符。 (2)类matrix 类matrix中,成员变量elems用来存放矩阵的所有元素,rows表示矩阵的行,cols表示矩阵的列。成员函数SetElems()用来给矩阵中的每一个元素赋值,Disp()用来显示矩阵中的所有元素。其它友元函数分别重载+、-、*、/运算符。 (3)类rational 类rational中,有两个成员变量:denominator用来表示有理数的分母,numerator表示有理数的分子。有理数成员函数print()用来显示有理数,optimization()用来优化有理数函数。友元函数real()用来将有理数转换为实数,其它友元函数分别重载+、-、*、/运算符。 (4)类set

单片机课程设计计算器

课程设计说明书 课程设计名称:单片机课程设计 课程设计题目:四位数加法计算器的设计学院名称:电气信息学院 专业班级: 学生学号:

学生姓名: 学生成绩: 指导教师: 课程设计时间:至

格式说明(打印版格式,手写版不做要求) (1)任务书三项的内容用小四号宋体,倍行距。 (2)目录(黑体,四号,居中,中间空四格),内容自动生成,宋体小四号。 (3)章的标题用四号黑体加粗(居中排)。 (4)章以下的标题用小四号宋体加粗(顶格排)。 (5)正文用小四号宋体,倍行距;段落两端对齐,每个段落首行缩进两个字。 (6)图和表中文字用五号宋体,图名和表名分别置于图的下方和表的上方,用五号宋体(居中排)。(7)页眉中的文字采用五号宋体,居中排。页眉统一为:武汉工程大学本科课程设计。 (8)页码:封面、扉页不占页码;目录采用希腊字母Ⅰ、Ⅱ、Ⅲ…排列,正文采用阿拉伯数字1、2、3…排列;页码位于页脚,居中位置。 (9)标题编号应统一,如:第一章,1,,……;论文中的表、图和公式按章编号,如:表、表……;图、图……;公式()、公式()。

课程设计任务书 一、课程设计的任务和基本要求 (一)设计任务(从“单片机课程设计题目”汇总文档中任选1题,根 据所选课题的具体设计要求来填写此栏) 1. 系统通过4x4的矩阵键盘输入数字及运算符。 2. 可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E。 3. 可以进行加法以外的计算(乘、除、减)。 4. 创新部分:使用LCD1602液晶显示屏进行显示,有开机欢迎界面,计算数据与结果分两行显示,支持小数运算。 (二)基本要求 1.有硬件结构图、电路图及文字说明; 2.有程序设计的分析、思路说明; 3.有程序流程框图、程序代码及注释说明; 4.完成系统调试(硬件系统可以借助实验装置实现,也可在Proteus 软件中仿真模拟); 5.有程序运行结果的截屏图片。

基于单片机的电子时钟课程设计报告

目录 一、引言········ 二、设计课题········· 三、系统总体方案········· 四、系统硬件设计······ 1.硬件电路原理图 2.元件清单 五、系统软件设计········· 1.软件流程图 2.程序清单 六、系统实物图········ 七、课程设计体会········ 八、参考文献及网站········· 九、附录·········

一.引言 单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。 基于单片机设计的数字钟精确度较高,因为在程序的执行过程中,任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。 数字钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字钟及扩大其应用,有着非常现实的意义。 本设计使用12MHZ晶振与单片机AT89C51相连接,以AT89C51芯片为核心,采用动态扫描方式显示,通过使用该单片机,加之在显示电路部分使用HD74LS373驱动电路,实现在8个LED数码管上显示时间,通过4个按键进行调时、复位等功能,在实现各功能时数码管进行相应显示。软件部分用C语言实现,分为显示、延迟、调时、复位等部分。通过软硬件结合达到最终目的。

计算机科学与专业技术学院课程设计成绩单

计算机科学与技术学院课程设计成绩单

————————————————————————————————作者:————————————————————————————————日期:

计算机科学与技术学院课程设计成绩单 课程名称:数据库系统原理指导教师: 姓名性别学号班级 综合成绩成绩等级 程序运行情况 (占总成绩20%) □能正确运行□基本能正确运行□能运行但结果不完善 (20分)(15分)(10分) 程序功能的完善 程度 (占总成绩10%)□完善□基本完善□不完善(10分)(8分)(5分) 程序结构的合理 性 (占总成绩10%)□合理□基本合理□不太合理(10分)(8分)(5分) 对问题的答辩情况 (占总成绩40%)□概念正确有创新□能正确回答所有问题□基本能正确回答(40分)(35分)(30分) □部分问题回答概念不清晰 (20分) 学生的工作态度与独立工作能力(占总成绩10%)□工作态度认真能独立完成任务□工作态度认真但独立性较差(10分)(8分) □工作态度基本认真但缺乏独立性 (5分) 设计报告的规范 性 (占总成绩10%)□符合规范□基本符合规范□规范性较差(10分)(8分)(5分) 优秀:90分~100分良好:80分~89分中等:70~79分及格:60~69分不及格0分~59分 武汉科技大学计算机科学与技术学院制表

计算机科学与技术学院 课程设计报告 课程名称:数据库系统原理专业: 班级:级班学号: 姓名: 指导老师:

网上选课系统 一、实验目的 利用一种DBMS作为设计工具,理解并应用课程中关于数据库设计的相关理论,能按照设计流程完成完整的数据库设计,包括需求分析、概念设计、逻辑设计、物理设计和实施。同时能够应用各个阶段的典型工具 二、设备与环境 (1) 硬件设备:PC机一台 (2) 软件环境:安装Windows操作系统,安装数据库管理系统SQL Server2000等。 三、实验内容 完整实践应用数据库设计的工程过程:需求分析\概念设计\逻辑设计\物理设计和实施: (1)需求分析:选定一个应用,对所设计的数据库系统有一定的调研分析,其结果应该以 简单的需求分析说明书\数据字典和数据流图(2级数据流即可)表示; (2)概念分析:使用E-R图作为描述工具.描述出局部和全局的E-R图; (3)逻辑设计:将E-R图转化为相应的关系模式,并根据范式理论进行优化分析,关系模 式不少于3个; (4)物理设计:根据需要设计必要的索引等结构; (5)实施:以某种DBMS为工具创建出完整的数据库.在数据库中要表现出的知识点包括 ①登录控制 (标准登录或混合登录) ②数据完整性(参照完整性、实体完整性、自定义完整性(包括触发器) ③设置用户,并相应设计用户的权限和角色(用户设计至少3个,有不同的权限) ④以游标或存储过程完成相关操作至少2个,以文件方式保存 (6)以上内容,请详细描述,并有必要抓图. 四、实验结果及分析 1.需求分析 随着信息时代科技不断提高,学校规模不断扩大,教学质量不断提高,大学期间有许多公共选修课,以往的选修课方法是课堂报名或者纸上填写方式报名,这种方法虽然直接,但是造成选课的盲目性,而且学生选过课程后不好在更改查看,一方面浪费大量的人力,物力资源,另一方面浪费时间以及在认为统计过程中不可避免的出现差错的情况。这给广大的老师和学生带来诸多的不便,管理起来也相当困难。使用网上选课系统可以提前进行网上选课,并且选课以后学生还可以在查看和更改,随意选择各个老师的课程,老师管理起来也比较方便。鉴于

单片机简易计算器课程设计

课程设计 题目名称简易计算器设计 课程名称单片机原理及应用 学生姓名 班级学号 2018年6 月20日

目录 一设计目的 本设计是基于51系列单片机来进行的简单数字计算器设计,可以完成计算器的键盘输入,进行加、减、乘、除六位整数数范围内的基本四则运算,并在LED上显示相应的结果。软件方面使用C语言编程,并用PROTUES仿真。 二总体设计及功能介绍 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机,实现对计算器的设计。具体设计及功能如下: 由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LED显示数据和结果; 另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算键盘; 执行过程:开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LED上输出运算结果。

三硬件仿真图 硬件部分比较简单,当键盘按键按下时它的那一行、那一列的端口为低电平。因此,只要扫描行、列端口是否都为低电平就可以确定是哪个键被按下。 四主程序流程图 程序的主要思想是:将按键抽象为字符,然后就是对字符的处理。将操作数分别转化为字符串存储,操作符存储为字符形式。然后调用compute()函数进行计算并返回结果。具体程序及看注释还有流程图 五程序源代码 #include #include #include/* isdigit()函数*/ #include/* atoi()函数*/ #define uchar unsigned char #define uint unsigned int

AT89C51单片机C实现简易计算器

AT89C51单片机简易计算器的设计 一、总体设计 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。 (2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。 系统模块图:

二、硬件设计 (一)、总体硬件设计 本设计选用AT89C51单片机为主控单元。显示部分:采用LCD 静态显示。按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。 总体设计效果如下图:

(二)、键盘接口电路 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4×4个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。 矩阵键盘的工作原理: 计算器的键盘布局如图2所示:一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用。 图 2 矩阵键盘布局图 矩阵键盘内部电路图如图3所示:

单片机课程设计--数字钟

单片机课程设计--数字钟 一、设计目的及意义 (1)巩固、加深和扩大51系列单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力; (2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力; (3)对课题设计方案的分析、选择、比较、熟悉用51单片机做系统开发、研制的过程,软硬件设计的方法、内容及步骤 二、原理图设计中简要说明设计目的 (1)功能:24小时制时间显示,可随时进行时间校对调整,整点报时及闹钟功能。 (2)原理图中所使用的元器件功能在图中的作用 1.主要元件AT89C51 P3.2 /INT0(外部中断0) 定时器/计数器0溢出中断 2.LED及按键开关 用于时间的显示和设定 (3)各器件的工作过程及顺序 计时状态,AT89C51通过P1口持续向LED发送信号,使LED扫描显示刚前时分秒,当出现定时器/计数器0溢出中断时,时间加多1秒,AT89C51从P1口向LED输出新的时间;只按住SET UP键时,进入外部中断0,时间计数停止,通过点击按键H,M,S对时分秒进行调整,新的时间值送给了计时程序,松开SET UP键退出中断,回到计时状态; 按住SET UP键和ALARM键时,进入外部中断0,时间计数停止,通过点击按键H,M对时分进行闹钟定时,AT89C51记忆时分值,退出时先松开SET UP键再松开ALARM; 闹铃:当时间值和设定闹铃值一样时,进行闹铃一分钟。

(3)流程图 Y Y 按下设定键 N (4)程序清单 #include #define uint unsigned int #define uchar unsigned char sbit wela1=P2^0; sbit wela2=P2^1; sbit wela3=P2^2; sbit wela4=P2^3; sbit wela5=P2^4; sbit wela6=P2^5; sbit dp= P1^7; sbit c0= P0^0; sbit c1= P0^1; sbit c2= P0^2; sbit c3= P0^3; sbit c4= P0^4; sbit c5= P0^5; 定时器溢出中断0 LED 扫描显示 初始设定 时间加1秒 外部中断0 按下闹钟? 时间调整 闹钟定时 时间相同? 闹铃

C++ 科学计算器-课程设计报告

DONGFANG COLLEGE,FUJIAN AGRICULTURE AND FORESTRY UNIVERSITY 课程名称:堆栈计算器 系别:计算机 年级专业:11级计算机科学与技术 学号:1150303040 姓名:蔡新云 任课教师:林励成绩: 2013 年 6 月13 日

引言 堆栈计算器 简介: 计算带括号的数学算式,可以判断优先级,错误判断等功能。友好的操作界面,美观的视觉效果。 截图 界面: 计算演示: 结果:

错误判断: 数据结构:应用了栈,做数值缓存,应用了递归处理括号内算式。其他知识:mfc界面设计;c++类的封装(.h与.cpp分离)。 编译环境:使用了vs2012,通过修改vs2010也可以打开。

程序简单流程图: (注:eval 的代码在下面。。。) 功能实现原理与代码: //栈的实现 //初始化 stack::stack(int len) { lengh=len; date=new double[len]; date[0]=0; top=0; } stack::stack() { date=new double[100]; MFC 文本框 按钮事件 = 事件 Cal.eval() 调用函数eval(),返回结果到文本框 当 =事件 发生 从文本框取出表达式到eval ()函数

date[0]=0; top=0; } //判断为空 bool stack::is_empty() { if(top==0) { return true; } return false; } //进栈 void stack::push(double number) { date[top++]=number; } //出栈 double stack::pop() { if(!is_empty()) return date[--top]; } //calculator类(核心代码) 初始化 calculator::calculator() { error="null"; } 是否为数字 bool calculator::is_num(char num) { if(num<='9' && num>='0'||num=='.') { return true; }

单片机计算器的课程设计

目录 一、设计任务和性能指标 (1) 1.1设计任务 (2) 1.2性能指标 (2) 二、设计方案 (2) 三、系统硬件设计 (3) 3.1单片机最小系统 (3) 3.2键盘接口电路 (4) 3.3数码管显示电路 (5) 3.5按键监视电路 (5) 四、系统软件设计 (6) 4.1键盘扫描子程序设计 (6) 4.2移位子程序及结果计算子程序设计 (7) 4.3显示子程序设计 (7) 4.4主程序设计 (20) 五、调试及性能分析 (20) 5.1调试步骤 (20) 5.2性能分析 (20) 六、心得体会 (21) 参考文献 (21) 附录1、系统硬件电路图 (22) 附录2、硬件实物图 (23) 附录3、器件清单 (24)

计算器设计 一、设计任务和性能指标 1.1设计任务 自制一个单片机最小系统,包括复位电路,采用外部小键盘输入数据,能够实现加法、乘法及一个科学计算,计算结果显示在四位一体的数码管上。 要求用Protel 画出系统的电路原理图(要求以最少组件,实现系统设计所要求的功能),印刷电路板(要求布局合理,线路清晰),绘出程序流程图,并给出程序清单(要求思路清晰,尽量简洁,主程序和子程序分开,使程序有较强的可读性)。 1.2性能指标 1.加法:四位加法,计算结果若超过四位则显示计算错误; 2.减法:四位减法,计算结果若小于零则显示计算错误; 3.乘法:个位数乘法; 4.除法:整数除法; 5.取对数; 6.开平方; 7.指数运算; 8.有清零功能 二.设计方案 按照系统设计的功能的要求,初步确定设计系统由主控模块、监测模块、显示模块、键扫描接口电路共四个模块组成,电路系统构成框图如图1.1所示。主控芯片使用51系列AT89C52单片机,采用高性能的静态80C51设计,由先进工艺制造,并带有非易失性Flash程序存储器。它是一种高性能、低功耗的8位COMS微处理芯片,市场应用最多。 监测模块采用二极管和扬声器(实验室用二极管代替)组成电路。 键盘电路采用4*4矩阵键盘电路。 显示模块采用4枚共阳极数码管和74ls273锁存芯片构成等器件构成。 整个单片机的接口电路: P0用于显示输出; P1用于键扫描输入; P2用于数码管位选控制; P3用于键盘扩展(部分运算符输入);

单片机课程设计——基于C51简易计算器

单片机双字节十六进制减法实验设计 摘要 本设计是基于51系列的单片机进行的双字节十六进制减法设计,可以完成计 算器的键盘输入,进行加、减、3位无符号数字的简单运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用5个键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus 仿真。 引言 十六进制减法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阴极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单.................................. 一、设计任务和要求

单片机课程设计数字电子钟[修改好的]

单片机技术课程设计说明书数字电子钟 院、部:电气与信息工程学院 学生姓名:郭红满 指导教师:王韧职称副教授 专业:通信工程 班级:1102 完成时间:2013-12-20

摘要 电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。所以设计一个简易数字电子钟很有必要。本电子钟采用ATMEL公司的AT89S52单片机为核心,使用12MHz 晶振与单片机AT89S52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。该电子钟设有四个按键K1、K2、K3和K4键,进行相应的操作就可实现校时、定时、复位功能。具有时间显示、整点报时、校正等功能。走时准确、显示直观、运行稳定等优点。具有极高的推广应用价值。 关键词电子钟;AT89S52;硬件设计;软件设计

ABSTRACT Clock is widely used in life, and a simple digital clock is more welcomed by people. So to design a simple digital electronic clock is necessary.The system use a single chip AT89S52 of ATMEL’s as its core to control The crystal oscillator clock,using of E-12MHZ is connected with the microcontroller AT89S52, through the software programming method to achieve a 24-hour cycle, and eight 7-segment LED digital tube (two four in one digital tube) displays hours, minutes and seconds requirements, and in the time course of a timing function, when the time arrived ahead of scheduled time to buzz a good timekeeping. The clock has four buttons K1, K2, K3 and K4 key, and make the appropriate action can be achieved when the school, timing, reset. With a time display, alarm clock settings, timer function, corrective action. Accurate travel time, display and intuitive, precision, stability, and so on. With a high application value. Key words Electronic clock;AT89S52;Hardware Design;Software Design

JAVA实现计算器课程设计

JAVA实现计算器课程设计 计算机科学系 计应0701班 指导老师:刘其昌 设计人员:陈秀桃 设计日期:2009年11月10日——2009年12月20日 计算器的设计 目录 第一章绪 论 ..................................................................... .. (2)

1.1 开发环 境 ..................................................................... . (2) 1.2 基本功能介 绍 ..................................................................... ......... 2 第二章系统设 计 ..................................................................... (3) 2.1 系统流程 图 ..................................................................... . (3) 2.2 系统功能框 图 ..................................................................... (3) 2.3 需求分 析 ..................................................................... ................ 4 第三章软件设 计 ..................................................................... (5) 3.1 界面设 计 ..................................................................... . (5) 3.2 代码设 计 .....................................................................

单片机课程设计——基于C51简易计算器

单片机十进制加法计算器设计 摘要 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计 算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用4×4矩阵键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C 语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用全球编译效率最高的KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus仿真。 引言 十进制加法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减乘除

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阳极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单..................................

单片机课程设计电子钟汇编语言

ORG 0000H MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H MOV 43H,#00H MOV 44H,#00H MOV 45H,#00H MOV 46H,#00H MOV 47H,#00H MOV R0,#00H MOV R1,#00H CLR P3.0 CLR P3.1 UU: MOV TMOD ,#00H MOV TH0,#00H MOV TL0,#00H CLR TR0 MM: MOV A,40H MOV 50H,#11111110B MOV P2,50H MOV DPTR ,#TAB MOVC A,@A+DPTR MOV P0,A LCALL YY MOV A,50H RL A MOV 50H,A MM1: MOV P2,50H MOV DPTR,#TAB MOV A,41H ADD A,#0AH MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM2: MOV P2,50H MOV DPTR,#TAB MOV A,42H

MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM3: MOV P2,50H MOV DPTR,#TAB MOV A,43H ADD A,#0AH MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM4: MOV P2,50H MOV DPTR,#TAB MOV A,44H MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM5:MOV P2,50H MOV DPTR,#TAB MOV A,45H ADD A ,#0AH MOVC A,@A+DPTR MOV P0 ,A LCALL YY MOV A,50H RL A MOV 50H,A MM6: MOV P2,50H MOV DPTR,#TAB MOV A,46H

VB科学计算器课程设计

湖南医药学院 VB计算器课程设计题目: VB科学计算器 院(系)别临床医学院 专业临床医学 班级本临一班 学号 2015101010121 姓名夏铭锴 指导教师李跃强 二○一六年四月

目录 一、设计内容及要求 二、设计原始资料 三、设计完成后提交的文件和图表设计 四、进程安排 五、主要参考资料 [摘要] 用VB制作这个程序的简单计算器,它包括一个标准的计算器和一个科学计算器。它可以实现简单的加减乘除四则运算,数字的平方、平方根,正弦、余弦、正切,倒数、指数函数、对数函数,角度、弧度、梯度的转换,以及各进制的相互转换。而且它的功能还有退格,清除当前数据,清除所有数据,复制数据,粘贴数据。 在这个计算器的程序中,我用到了单行选择语句If…Then…Else…, 块语句if…then…end if,If语句的嵌套,多条件选择语句Select Case,而且还用到了按钮、文本框、框架、单选按钮控件,菜单的设计。 在此报告中我重点叙述了计算机的各个功能及用法。特别是进制间的转换和数字与运算符之间的联系。。虽然描述的不太完整,但我会尽力使用系统结构图,划分多个模块,让大家明白我设计的运算器的功能的。 [关键词] Visual Basic;计算器;对象;代码 1

2

3

四、进程安排 (1)创建应用程序的界面。 (2)设置属性。 (3)编写代码。 4

附页: 设计原始资料 Private Sub Command1_Click() '删除数字的最后一位If Label3.Caption <> "" Then Label3.Caption = Left(Label3.Caption, Len(Label3.Caption) - 1) Else c = MsgBox("内容已为空!不可删除一位!", 49, "注意!") End If End Sub Private Sub Command10_Click() '输入数字6 Label3.Caption = Label3.Caption + Command10.Caption End Sub Private Sub Command11_Click() If Label3.Caption <> "" Then '输入符号* Label1.Caption = Label3.Caption Label2.Caption = Command11.Caption Label3.Caption = "" Else c = MsgBox("请输入数据后输入符号!", 49, "注意!") End If End Sub 5

相关主题
文本预览
相关文档 最新文档