电子计算器课程设计报告书

合集下载

计算器课程设计报告

计算器课程设计报告

计算器课程设计报告一、课程目标本节计算器课程设计以提升学生的数学计算能力、逻辑思维能力和实际应用能力为核心,结合三年级学生的认知特点和实际需求,制定以下课程目标:1. 知识目标:(1)学生能够掌握计算器的基本功能及操作方法;(2)学生能够运用计算器进行简单的四则运算,并理解相关数学概念;(3)学生能够运用计算器解决生活中的实际问题,提高数学应用能力。

2. 技能目标:(1)培养学生运用计算器进行快速、准确计算的能力;(2)培养学生运用计算器辅助解决数学问题的能力;(3)提高学生逻辑思维能力,培养学生独立思考和解决问题的能力。

3. 情感态度价值观目标:(1)激发学生对计算器的兴趣,培养学生主动探究新知的习惯;(2)培养学生合作交流、分享成果的团队精神;(3)培养学生将所学知识应用于实际生活的意识,增强学生的自信心和成就感。

本课程旨在通过计算器教学,使学生在掌握基本计算技能的同时,提高数学素养,培养实际应用能力,激发学生对数学学习的兴趣,为学生的终身学习打下坚实基础。

二、教学内容本节计算器课程依据课程目标,结合课本内容,选择以下教学材料和安排:1. 教学大纲:(1)计算器的基本功能介绍与操作方法;(2)使用计算器进行加、减、乘、除四则运算;(3)运用计算器解决实际问题。

2. 教学内容安排与进度:第一课时:认识计算器,了解计算器的基本功能和操作方法,包括开关机、清屏、数字键、运算符号键等。

第二课时:学习使用计算器进行加、减、乘、除四则运算,并通过练习巩固运算方法。

第三课时:运用计算器解决生活中的实际问题,如购物找零、计算面积等。

3. 教材章节及内容列举:(1)第三章《计算器与计算》:介绍计算器的基本功能、操作方法及四则运算;(2)第四章《计算器在实际应用中的作用》:举例说明计算器在生活中的应用,提高学生实际操作能力。

教学内容科学系统地组织,注重理论与实践相结合,使学生能够熟练掌握计算器的使用方法,并能在实际生活中运用计算器解决简单问题,提高学生的数学素养。

电子技术课程设计报告-简单计算器设计.docx

电子技术课程设计报告-简单计算器设计.docx

海工浆以会•乂豚Shanghai University of Engineering Science电子技术课程设计报告设计名称:简单计算器设计姓名学号:同实验者:指导老师:—完成学期:2014-15 (二)摘要计算器在人们的日常中是比较的常见的电子产品之一。

可是它还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念,本次设计是用单片机来设计的八位计算器。

该设计系统是以AT89C51为单片机,用74LS245为显示位控制,P1 口作为输入端,外接4X4的键盘,通过键盘扫描来对输入数的控制,并外接驱动电路,系统采用LED 数码管作为显示器,软件程序采用均采用C++编写,便于移植与升级。

报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。

计算器将完成的功能有整数的加,减,乘,除等功能。

关键字:计算器数码管74LS245晶振51单片机目录第一章设计目的与意义第二章方案论证与设计2.1实现方法2.2方案论证与设计第三章硬件模块介绍3.1运算模块3.1. 1 单片机(AT89C51)3.1. 1.1单片机引脚介绍3. 1. 2741s245 芯片3. 1. 2. 1 741s245 芯片详解3. 2输入模块3. 2. 1键盘介绍3. 3显示模块第四章仿真及调试第五章总结参考文献第1章设计的指标1.设计目的和意义1.1设计目的设计4*4的键盘,其中10个数字键0~9,其余6个为“ + ” “-” “*” “/”“=”和“C”,最大显示实现6位数,可以基本的运算(加减乘除),数据归零。

1.2意义计算器在人们的日常中是比较的常见的电子产品之一。

可是它还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念,本次设计是用单片机来设计的八位计算器。

第二章方案论证与设计2.1方案论证2.1.1方案1根据功能和指标要求,本系统选用MCS-51系列单片机AT89C51为主控机。

通过扩展必要的外围接口电路,实现对计算器的设计。

硬件课程设计报告(电子计算器)

硬件课程设计报告(电子计算器)

计算机科学与技术学院硬件课程设计报告姓名:学号:专业:计算机科学与技术班级:计科班设计题目:电子计算器成员:指导教师:职称:年月课程设计指导教师评阅书指导教师评语:成绩:指导教师签字:年月摘要电子计算器的设计主要分为键盘扫描与读取编码、七段LED数码管显示和四则运算的编写。

这次设计中我们采用可编程接口芯片8255链接4*4键盘和LED显示屏,从键盘扫描读入数字,在显示屏上面显示出来,并通过cpu运算出结果显示在屏幕上。

由于对汇编语言也不甚了解,只是进行一些简单的自然数的四则运算。

由于本次实验中,实验箱是TPC-ZK综合微机开放式实验系统,微机接口实验仪采用模块化、积木式的结构,各实块互不影响。

但可通过连线将各实验模块有机组合起来,进行微机外围接口实验。

这个实验选择的是4*4键盘连接上8255A然后控制LED显示。

关键词:8255A ;七段LED数码管;键盘;汇编语言;四则运算目录1 设计任务与要求 (3)1.1选题 (3)1.2需求分析 (3)1.3设计任务 (3)2硬件方案 (3)2.1微处理器8086芯片 (3)2.2 可编程并行接口8255A芯片 (4)2.3 4*4矩阵键盘 (6)2.4 七段LED数码管 (7)2.5 电路及其功能模块图 (8)3软件方案 (10)3.1流程图 (10)3.2源程序代码 (11)4 问题与解决方案 (26)5 成果展示 (26)6 总结 (27)7 心得体会与收获 (27)8参考文献 (27)1 设计任务与设计要求1.1选题我选的题目是电子计算器,电子计算器的设计主要分为键盘编码、七段数码管显示、和四则运算法则这三部分。

设计时用可编程接口芯片8255A链接4*4键盘和七段LED数码管,8255扫描键盘并通过数码管显示相应的数字,这其中需要一定的汇编程序作为核心支撑,才能正确的使各种功能运行正常。

1.2需求分析通过对选题的深入了解,电子计算器基本功能可以概括为:1.可以进行简单的加、减、乘、除四则运算;2.为了显示的人性化,按下每个数字都要进行反馈显示;3.数码管只有四位显示,运算数和结果应尽量小于四位数,不然显示不全;4.计算器能判断个别简单的错误,如除数为零,显示报错;5.计算器要有清零功能,可以在按键失误后重新按键。

加减计算器电子课程设计

加减计算器电子课程设计

加减计算器电子课程设计一、课程目标知识目标:1. 学生能理解加减计算器的基本原理,掌握电子元件的功能和使用方法。

2. 学生能运用所学的数学知识,设计并搭建一个简单的加减计算器电路。

3. 学生了解电子技术在日常生活中的应用,理解电子计算器的发展历程。

技能目标:1. 学生能运用所学知识,分析问题,提出解决方案,具备初步的电子电路设计和搭建能力。

2. 学生能通过实际操作,提高动手能力,培养观察能力和问题解决能力。

3. 学生能通过团队合作,学会沟通与协作,提高项目执行能力。

情感态度价值观目标:1. 学生对电子技术产生兴趣,激发学习热情,培养科技创新意识。

2. 学生在课程学习中,培养耐心、细心和专注的品质,养成严谨的科学态度。

3. 学生通过实践,体会团队合作的重要性,培养集体荣誉感和责任感。

课程性质:本课程为实践性课程,结合数学和电子技术知识,培养学生的动手能力和问题解决能力。

学生特点:六年级学生具备一定的数学知识基础,好奇心强,喜欢动手操作,但可能对电子技术了解较少。

教学要求:教师需引导学生运用所学知识,注重实践操作,鼓励学生思考、提问,培养其创新精神和团队合作能力。

通过课程目标的具体分解,使学生在实践中达成学习成果,提高综合素养。

二、教学内容1. 电子元件基础知识:介绍电子元件的分类、功能及使用方法,如电阻、电容、二极管、三极管等。

- 教材章节:电子技术基础2. 加减计算器原理:讲解加减计算器的基本工作原理,引导学生理解数字电路的运算过程。

- 教材章节:数字电路基础3. 电路设计与搭建:指导学生运用电子元件,设计并搭建一个简单的加减计算器电路。

- 教材章节:电路设计与实践4. 数学知识应用:结合教材中的数学知识,分析加减计算器电路中的数值计算过程。

- 教材章节:数学基础知识5. 电子计算器发展史:介绍电子计算器的发展历程,使学生了解科技进步对社会发展的推动作用。

- 教材章节:电子技术发展史6. 团队合作与沟通:通过分组合作,培养学生的团队协作能力和沟通能力。

课程设计——电子计算器设计1

课程设计——电子计算器设计1

××大学××学院××系××课程设计电子计算器设计学生姓名学号所在系专业名称班级指导教师成绩××大学××学院二○一二年七月摘要:智能仪器是计算机技术与测量技术以及仪器仪表技术相结合的产物。

它具有传统仪器无法比拟的优点。

在精度,可靠性方面都有了本质性的改变。

仪器硬件都趋于采用嵌入式系统、片上系统等结构。

电子计算器是能进行数学运算的手持机器,拥有集成电路芯片,采用来实现电子计算器的各个功能。

该电子计算器由按键输入的数值显示在7段数码管上,但只限4位数;按加、减、乘、除键时,第一次输入的值被存放在缓冲区中,当做被加、减、乘、除数,且加、减、乘、除相对的运算指示灯会亮;接着输入一个数,之后若是按下“=”键,则此加、减、乘、除数被存放于另一个缓冲区中,与刚才输入的数做运算,且相对应的运算指示灯熄灭;运算结果显示在7段数码管上。

关键字:智能仪器片上系统电子计算器集成电路芯片缓冲区Abstract:Intelligent instrument is the computer technology and measurement technology and instrumentation technology combined with the product. It has the incomparable advantage of traditional instruments. In the accuracy, reliability are all essential changes. Instrument hardware are tending to use embedded system, system on chip structure. An electronic calculator is able to perform mathematical operations on handheld machine, has integrated circuit chip, used to realize each function of the electronic calculator. The electronic calculator from the key input values displayed in the7digital tube, but only4 digits; according to plus or minus, multiplication, addition to the key, the first input value is stored in the buffer, as is plus or minus, multiplication, addition, subtraction, division, and, in addition to take relative operation indicator light; and then enter a number, then press" if = " button, the plus, minus, multiplication, the divisor is stored in a buffer, and just the number of inputs to do arithmetic, and the corresponding operation indication lamp is extinguished; calculation results in the7 digital tube on.Key words: Intelligent instrument system on chip electronic calculator integrated circuit chip buffer目录前言 (1)1. 概述 (1)1.1 应用背景 (1)1.2 课题设计目标 (1)1.3 课题设计任务与思路 (1)2. 设计方案论述 (2)2.1 系统总体方案设计 (2)2.2 系统设计框图 (2)3. 系统硬件设计 (3)3.1 单片机最小系统 (3)3.2 矩阵键盘 (3)3.3 显示部分 (4)4. 程序设计 (4)4,1 具体设计内容 (5)4.1.1 四则运算 (5)4.1.2 键盘 (5)4.1.3 执行过程 (5)4.1.4 错误提示 (5)4.2 主程序流程图 (5)4.3 算数运算程序设计 (7)5.系统调试 (7)6. 设计总结 (8)7. 参考文献 (9)附录 (9)前言智能仪器是一种先进的技术产品,是计算机技术与测试技术相结合的产物,仪器内部带有处理能力很强的智能软件。

电子计数器课程设计

电子计数器课程设计

电子计数器课程设计一、课程目标知识目标:1. 理解电子计数器的基本原理,掌握其功能与操作方法;2. 学会使用电子计数器进行简单的计数、累加和清零操作;3. 了解电子计数器在日常生活和科学实验中的应用。

技能目标:1. 能够正确使用电子计数器进行数据统计,提高数据收集和处理能力;2. 培养学生动手操作、观察问题、分析问题、解决问题的能力;3. 学会运用电子计数器进行科学探究,提高实验操作技能。

情感态度价值观目标:1. 培养学生对电子计数器的兴趣,激发学习科学技术的热情;2. 培养学生的团队协作意识,学会与他人合作交流,共同解决问题;3. 增强学生的创新意识,鼓励他们勇于尝试、探索新知识;4. 培养学生严谨、细心的学习态度,提高他们的科学素养。

本课程设计针对小学高年级学生,结合电子计数器的相关知识,注重理论知识与实践操作相结合。

在教学过程中,充分考虑学生的年龄特点、认知水平和兴趣,以激发学生学习兴趣和动手能力为导向,培养学生的科学素养和创新能力。

通过具体的学习成果分解,使学生在掌握电子计数器相关知识的同时,提高自身综合素质。

二、教学内容1. 电子计数器的基本原理与功能- 计数器的工作原理- 电子计数器的种类与功能- 电子计数器在生活中的应用案例2. 电子计数器的操作方法- 认识电子计数器的外观与按键功能- 学习电子计数器的操作步骤- 掌握电子计数器的计数、累加和清零操作3. 电子计数器在实验中的应用- 实验数据收集与处理- 结合实验案例,学习使用电子计数器进行数据统计- 探讨电子计数器在实验中的优势与局限4. 教学实践与拓展- 设计实践活动,让学生动手操作电子计数器- 结合生活实例,进行问题分析与讨论- 探索电子计数器在科学技术领域的创新应用教学内容参照教材相关章节,结合课程目标进行系统组织。

在教学过程中,注重理论与实践相结合,通过案例分析和实践操作,使学生深入理解电子计数器的基本原理和操作方法。

同时,拓展学生视野,培养他们的创新意识和实践能力。

大班科学教案《电子计算器》含反思

大班科学教案《电子计算器》含反思一、教学目标1.知识目标:通过本节课的学习,学生能够了解电子计算器的基本原理和使用方法,掌握电子计算器的四则运算和小数运算,并能够熟练地使用电子计算器进行计算。

2.能力目标:培养学生运用电子计算器进行计算的能力,提高学生解决实际问题的能力。

3.情感目标:通过本节课的学习,培养学生的观察、思考和分析问题的能力,培养学生的合作意识和创新意识。

二、教学重点和难点1.教学重点:电子计算器的基本原理和使用方法,四则运算和小数运算的使用。

2.教学难点:小数运算的使用。

三、教学准备1.教材:电子计算器、教学PPT。

2.素材:小数计算题。

四、教学过程1.导入(5分钟)教师通过出示一张纸上有几道小数运算题的图片,让学生尝试用纸和笔计算这些题目,并在黑板上进行展示。

然后,教师提问:“这里的计算涉及的数很多,我们能通过使用一种工具来更快地计算这些题目吗?”提醒学生思考解决问题的方式,导入本节课的内容。

2.学习电子计算器的基本原理和使用方法(10分钟)教师向学生介绍电子计算器的基本原理和使用方法,包括通电开关、数字按键、功能按键等。

教师通过实际操作电子计算器,并在教学PPT上展示相应的操作步骤,让学生理解和掌握电子计算器的使用方法。

3.学习四则运算的使用(15分钟)教师向学生介绍电子计算器的四则运算功能,并通过实际操作电子计算器,让学生掌握加法、减法、乘法和除法的使用方法。

教师设置一些简单的四则运算题目,让学生用电子计算器进行计算,并在黑板上进行展示和讲解。

4.学习小数运算的使用(20分钟)教师向学生介绍电子计算器的小数运算功能,并通过实际操作电子计算器,让学生掌握小数加减、小数乘除的使用方法。

教师设置一些小数运算题目,让学生用电子计算器进行计算,并在黑板上进行展示和讲解。

5.综合练习(25分钟)教师设置一些综合运算题目,其中包括整数运算、小数运算和混合运算。

学生用电子计算器进行计算,并在黑板上进行展示和讲解。

单片机课程设计报告——简易电子计算器

2
1、设计要求
通过软件编程,利用 AT89S51 单片机实现设计简易的计算器功能,即可实现 简单加减乘除。实现计算器的键盘输入,进行加、减、乘、除基本四则运算,并 在显示设备上显示相应的结果。要求撰写课程设计报告,并在设计报告中列写系 统方案,画出系统框图;然后分析工作原理、画出硬件电路原理图;同时画出程 序框图,给出程序清单;之后,写出系统调试分析结果。并在最后写出对于本次 课程设计的心得体会。
二、课程设计成果要求(包括课程设计说明书、图纸、图表、软硬件等要求) 1,课程设计报告; 2,系统方案,画出系统框图; 3,分析工作原理、画出硬件电路原理图; 4,画出程序框图,给出程序清单; 5,写出系统调试分析结果 三、课程设计工作进度计划 星期一:设计硬件电路,焊接电路板; 星期二:编写程序,调试并编译生成.hex 文件; 星期三:烧录程序,结合硬件调试程序; 星期四:演示结果,撰写课程设计报告; 星期五:修改报告,打印并答辩。 四、主要参考资料 1.《单片机原理及应用》张毅刚主编,高教出版社,2012.11 2. C51 单片机有关教材和文献资料
指导教师(签名): 2013 年 12 月 20 日
系主任(签名): 2013 年 12 月 20 日
1
目录
1、设计要求.................................................................................................................. 1 2、简易计算器系统设计.............................................................................................. 1 3、简易计算器系统硬件设计...................................................................................... 1

电子综合实践之计算器报告

电子综合实践实验报告简易计算器的设计专业:电子信息工程设计人:XXX学号:0708060022指导老师:XXX一、设计目的随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。

电子产品的更新速度快就不足惊奇了。

计算器在人们的日常中是比较的常见的电子产品之一。

可是它还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念,本次设计是用单片机来设计的四位数计算器,同时让学习者熟悉AT系列单片机的使用,学习如何掌握好进而设计好单片机的最小系统该设计系统是以AT89S51为单片机,P0口作为输入端,外接4X4的键盘,通过键盘扫描来对输入数的控制,在P1口,P2口接了驱动电路。

用来保证LED的工作正常。

计算器将完成的功能有加,减,乘,除,报错等功能。

二、设计要求1.以电子技术基础的基本理论为指导,将设计实验分为基础型和系统型两个层次,基础型指基本单元电路设计与调试,系统型指若干个模拟、数字基本单元电路组成并完成特定功能的电子电路的设计、调试;2.学习电子系统电路的焊接调试技术;3.拓展电子电路的应用领域,能设计、制作出满足一定性能指标或特定功能的电子电路设计任务。

三﹑主要功能:主要完成0~9999整数的一次加/减/乘/除运算,使用8快LED显示器显示数据,具体如下:加法运算能运行0~9999之间任何两数值之间运算,较普通,减法运算结果可以实现计算结果的负数显示,除法运算结果为0~9999并保留四位小数,乘法运算时即使超出四位也要能计算出来,即最多能显示8位计算结果能对错误进行提示,比如被除数是0则显示“error”,设有清零键,其它的未用到的数码管显示空白四﹑按键排布:因为使用的是4*4键盘,所以要删除部分不太重要的键,如小数点不使用,具体按键安排如下:0/1/2/34/5/6/78/9/+/-×/÷/=/复位五、电路的整体设计:1、电路的总体原理框图:2、工作原理及焊接原理框图如图所示。

嵌入式课程设计报告--电子计算器

重庆科技学院《嵌入式体系结构与接口技术》课程设计报告学院:_电气与信息工程学院_ 专业班级:计科2012-04学生姓名:杜江龙学号: 2012442090设计地点(单位):电气与信息工程学院I302实验室设计题目:_________________ 电子计算器_____ ___ __完成日期: 2014 年 7 月 4 日指导教师评语: ______________________ _________________ ___________________________________________________________________________________ ___________________________________________________________________________________ ___________________________________________________________________________________成绩(五级记分制):指导教师(签字):课程设计任务书设计题目:电子计算器教研室主任:指导教师:冯骊骁2014年6月30日摘要嵌入式系统是后PC时代被广泛使用的计算机平台,它通常都具有低功耗、体积小、功能强、集成度高等优点。

此设计一个具有加减乘除功能的计算器,硬件采用TQ2440板子LCD触摸屏,此计算器能够实现整数和小数的加减乘除的计算功能,并且动态显示,操作简单、实用。

通过此课程设计,对TQ2440板子操作更加熟悉,对ADS1.2的编程和调试更加灵活。

较好的熟悉并掌握了对LCD的操作显示原理和编程,对以后学习有一定的帮助。

关键词:TQ2440 ADS1.2 LCD目录课程设计任务书 (I)摘要 (I)目录 (II)1 系统需求分析 (1)1.1 设计内容与要求 (1)1.2 设计参数 (1)2 概要设计 (2)3 详细设计 (3)3.1 键盘部分和显示部分 (3)3.2 流程图 (4)3.3 功能函数 (5)4 测试 (13)5 总结致谢 (14)6 参考文献 (15)1 系统需求分析1.1 设计内容与要求设计一个具有能进行加减乘除运算,操作数可为整数、小数,可进行连续运算,比如按键输入“1+2*3”,按下“*”后应该显示1+2的运算结果,系统无明显bug的简易计算器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录1 设计任务和性能指标 (1)1.1 设计任务 (1)1.2 性能指标 (1)2 设计方案 (1)2.1 需求分析 (1)2.2 方案论证 (1)3 系统硬件设计 (2)3.1 总体框图设计 (2)3.2 单片机选型 (2)3.3 单片机附属电路设计 (3)3.4 LCD液晶显示 (4)4 系统软件设计 (4)4.1 设计思路 (4)4.2 总体流程图 (4)4.3 子程序设计 (5)4.4 总程序清单 (6)5 仿真与调试 (6)5.1 调试步骤 (6)5.2 仿真结果及性能分析 (8)6 总结 (8)参考文献 (8)附录1 系统硬件电路图 (10)附录2 程序清单 (11)1 设计任务和性能指标1.1 设计任务电子计算器设计1、能实现4位整数的加减法和2位整数的乘法;2、结果通过5个LED数码管显示(4位整数加法会有进位)或通过液晶显示屏显示。

1.2 性能指标1.用数字键盘输入4位整数,通过LED数码显示管或液晶显示屏显示。

2.完成四位数的加减法应算。

当四位数想加时产生的进位时,显示进位。

3.显示2位,并进行2位整数的乘法。

4.设计4*4矩阵键盘输入线的连接。

2 设计方案2.1 需求分析我们日常生活的开支,大额数字或是多倍小数的计算都需要计算器的帮助,处理数字的开方、正余弦都离不开计算器。

虽然现在的计算器价格比较低廉,但是功能过于简单的不能满足个人需求,功能多的价格较贵,操作不便不说,很多功能根本用不到。

所以,我们想到可不可以用自己所学为自己设计开发一个属于自己的简单计算器来完成日常生活的需求。

2.2 方案论证使用单片机为ATMEL公司生产AT89C51,AT89C51提供以下标准功能:4K字节FLASH 闪速存储器,128字节部RAM,32个I/O口线,两个16位定时/计数器,一个向量两级中断结构,一个全双工串行通讯口,置一个精密比较器,片振荡器及时钟电路,同时AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的工作模式,空闲方式停止CPU的工作,但允许RAM,定时计数器,串行通信及中断系统继续工作。

显示用LCD液晶显示屏,减少线路连接。

用C言编写程序,易进行调试修改。

采用4*4矩阵键盘作为输入。

3 系统硬件设计3.1总体框图设计电路图如附录13.2单片机选型AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能、CMOS、8位单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

AT89C51的管脚图如图2.2所示。

图3-13.3 单片机附属电路设计一、晶体振荡电路1.晶体振荡器的作用石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。

2.本设计所用的晶体振荡电路如图2.3所示:图3-2 晶振电路此晶振电路所选用的石英晶振频率为12MHZ。

一、晶体振荡电路单片机复位的条件是:必须使RST/Vpd或RST引脚加上持续两个机器周期(即24个振荡周期)的高电平。

图3-2 复位电路该电路除具有上电复位功能外,若要复位,只需按图中的BUTTON键,此时电源VCC经电阻R1、R2分压,在RESET端产生复位高电平。

3.4 4*4矩阵键盘控制电路矩阵式键盘的结构与工作原理:在键盘中的按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,其部简图如图3-3在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。

这样,只需要单片机的一个端口(如P1口)就可以构成4*4=16个按键,比直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。

由此可见,在需要的键数比较多时,采用矩阵法来做键盘比较是合理的。

由于本系统按键较多,在这里采用矩阵式4*4键盘,这样可以合理应用硬件资源,用一个8位I/O口控制, 如图3-3所示:图3-3按键部电路简图矩阵式键盘的按键识别方法一、确定矩阵式键盘上何键被按下,我们采用一种“行扫描法”。

行扫描法:行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法。

3.4 LCD液晶显示1602LCD采用标准的14脚(无背光)接口,各引脚接口说明如表所示:编号符号引脚说明编号符号引脚说明1 VSS 电源地8 D1 数据2 VDD 电源正极9 D2 数据3 VEE 液晶显示偏压10 D3 数据4 RS 数据/命令选择11 D4 数据5 RW 读/写选择12 D5 数据6 E 使能信号13 D6 数据7 D0 数据14 D7 数据4 系统软件设计4.1设计思路1.要有显示子程序,当键入一个数值或符号时显示程序要把这个键入的值给显示出来。

经过运算在按下等号之后显示出此次运算的结果。

2.就是按键程序,当一个键盘按下的时候,按键程序要判断是哪个按键按下,如果是数字键按下就要转向显示子程序来显示出这个数字,然后等待下一个键值的输入,再次判断按下的是什么键,如果是功能键就要根据上次功能键和输入的数据来计算结果,然后保存结果和功能键,结果送显示缓冲区显示。

等待下个数值的输入,如此重复。

4.2总体流程图4.3 子程序设计1.读和写数据子程序void write_(char ) // 写指令函数{P0=; //com指令付给P0口rs=0;rw=0;lcden=0;check();lcden=1;}void write_date(char date) // 写数据函数{P0=date;rs=1;rw=0;lcden=0;check();lcden=1;}4.4 总程序清单见附录25 仿真与调试5.1 调试步骤1. 采用KEIL 开发的89c51单片机应用程序调试步骤:(1)在uVision 集成开发环境中创建新项目(Project),扩展文件名为.UV2,并为该项目选定合适的单片机CPU器件(本设计采用ATMEL 公司下的AT89C51)(2)用uVision 的文本编辑器编写源文件,可以是汇编文件(.ASM),也可以使C语言文件(扩展名.C),并将该文件添加到项目中去。

一个项目文件可以包含多个文件,除了源程序文件外,还可以是库文件、头文件或文本说明文件。

(3)通过uVision 2 的相关选择项,配置编译环境、连接定位器以及Debug调试器的功能。

(4)对项目中的源文件进行编译连接,生成绝对目标代码和可选的HEX文件,如果出现编译连接错误则返回到第2步,修改源文件中的错误后重构整个项目。

图5-1 Keil调试2 用Proteus 对于本设计的仿真操作步骤如下:(1)进入proteus ISIS 集成环境,在工作前,在systerm菜单下设置界面的颜色、图形界面大小等项目,也可采用了系统默认值。

(2)通过工具栏中的(从库中选择元件命令)命令,在pick devices窗口中选择电路所需的元件,放置元件到编辑区并调整其相对位置,进行元件参数设置,元器件间连线。

(3)连线并加上设置参数,并完成仿真原理图,如图5-2所示。

(4)加载程序。

将编译调试完成的简易计算器机器码程序(hex文件)加载到AT89C51单片机中。

(5)单击仿真工具栏中的仿真键,观察仿真结果。

可以按暂停、继续、单步、等按钮,查看效果。

图5-2操作说明:1) 本计算器实现4位数的加减,2位数乘除运算。

2)按下数值键,显示按下的“数字”,按运算符,显示符号,按第2个操作数,显示,按“=”键,得到运算结果。

3)按“清零”键清除运算结果,可重新开始。

(6)调试与思考5.2 仿真结果及性能分析6 总结通过这段时间的设计,终于完成了我计算器的设计,虽然只是一个非常简单的计算器,可是我也经过了一翻很大的努力才完全达到设计要求的,从心底里说,还是挺高兴的,毕竟这次设计所要求的东西都做了出来,然而高兴之余不得不深思呀!在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,单片机的设计重点就在于软件程序的设计,需要有很巧妙的编程方法,在编程时,由于粗心大意马虎,有些语句看似没问题,可就是不出效果,经仔细揣摩修改后,程序才正常运行。

学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高。

从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,理论指导实践,在实践中对理论知识加以理解。

还要有独立思考能力和团队协作的精神,个人能力固然重要,集体的力量更是伟大的。

由于时间比较仓促,我所设计的这个计算器非常简单,我们可以考虑在以后来改进一下,使它的功能更加完善,强大。

参考文献[1] 和平,跃,单片机原理及应用,:大学,2004[2] 西明,朱骐,单片机编程与入门,:机械工业,2004[3] 明荧,89C51单片机课程设计实训教材,:清华大学,2004[4] 瑞新,单片机原理及应用教程,:机械工业,2003[5 楼然苗,光飞,51系列单片机设计实例,:航空航天大学,2003附录1 系统硬件电路图附录2 程序清单#include<reg51.h> //头文件#define uint unsigned int //#define uchar unsigned charsbit lcden=P2^3; //定义引脚sbit rs=P2^4;sbit rw=P2^0;sbit busy=P0^7;char i,j,temp,num,num_1;int a,b,c; //a,第一个数 b,第二个数 c,得数float a_c,b_c;uchar flag,fuhao;//flag表示是否有符号键按下,fuhao表征按下的是哪个符号uchar code table[]={7,8,9,0,4,5,6,0,1,2,3,0,0,0,0,0};uchar code table1[]={7,8,9,0x2f-0x30,4,5,6,0x2a-0x30,1,2,3,0x2d-0x30,0x01-0x30,0,0x3d-0x30,0x2b-0x30};void delay(uchar z) // 延迟函数{uchar y;for(z;z>0;z--)for(y=0;y<100;y++);}void check() // 判断忙或空闲{do{P0=0xFF;rs=0; //指令rw=1; //读lcden=0; //禁止读写delay(1); //等待,液晶显示器处理数据lcden=1; //允许读写}while(busy==1); //判断是否为空闲,1为忙,0为空闲}void write_(char ) // 写指令函数{P0=; //com指令付给P0口rs=0;rw=0;lcden=0;check();lcden=1;}void write_date(char date) // 写数据函数{P0=date;rs=1;rw=0;lcden=0;check();lcden=1;}void init() //初始化{num=-1;lcden=1; //使能信号为高电平write_(0x38); //8位,2行write_(0x0c); //显示开,光标关,不闪烁*/write_(0x06); //增量方式不移位显竟獗暌贫柚? write_(0x80); //检测忙信号write_(0x01); //显示开,光标关,不闪烁num_1=0;i=0;j=0;a=0; //第一个参与运算的数b=0; //第二个参与运算的数c=0;flag=0; //flag表示是否有符号键按下,fuhao=0; // fuhao表征按下的是哪个符号}void keyscan() // 键盘扫描程序{P3=0xfe;if(P3!=0xfe){delay(20);if(P3!=0xfe){temp=P3&0xf0;switch(temp){case 0xe0:num=0;break;case 0xd0:num=1;break;case 0xb0:num=2;break;case 0x70:num=3;break;}}while(P3!=0xfe);if(num==0||num==1||num==2)//如果按下的是'7','8'或'9 {if(j!=0){write_(0x01);j=0;}if(flag==0)//没有按过符号键{do{a=a*10+table[num];}while(a>10000);}else//如果按过符号键{do{b=b*10+table[num];}while(b>10000);}}else //如果按下的是'/'{if(a<100){flag=1;fuhao=4;};//4表示除号已按}i=table1[num];write_date(0x30+i);}P3=0xfd;if(P3!=0xfd){delay(5);if(P3!=0xfd){temp=P3&0xf0;switch(temp){case 0xe0:num=4;break;case 0xd0:num=5;break;case 0xb0:num=6;break;case 0x70:num=7;break;}}while(P3!=0xfd);if(num==4||num==5||num==6&&num!=7)//如果按下的是'4','5'或'6' {if(j!=0){write_(0x01);j=0;}if(flag==0)//没有按过符号键{do{a=a*10+table[num];}while(a>10000);}else//如果按过符号键{do{b=b*10+table[num];}while(B>10000);}}else//如果按下的是'*'{if(a<100){flag=1;fuhao=3;}//3表示乘号已按}i=table1[num];write_date(0x30+i);}P3=0xfb;if(P3!=0xfb){delay(5);if(P3!=0xfb){temp=P3&0xf0;switch(temp){case 0xe0:num=8;break;case 0xd0:num=9;break;case 0xb0:num=10;break;case 0x70:num=11;break;}}while(P3!=0xfb);if(num==8||num==9||num==10)//如果按下的是'1','2'或'3' {if(j!=0){write_(0x01);j=0;}if(flag==0)//没有按过符号键{do{a=a*10+table[num];}while(a>10000);}else//如果按过符号键{do{b=b*10+table[num];}while(b>10000);}}else if(num==11)//如果按下的是'-'{flag=1;fuhao=2;//2表示减号已按}i=table1[num];write_date(0x30+i);}P3=0xf7;if(P3!=0xf7){delay(5);if(P3!=0xf7){temp=P3&0xf0;switch(temp){case 0xe0:num=12;break;case 0xd0:num=13;break;case 0xb0:num=14;break;case 0x70:num=15;break;}}while(P3!=0xf7);switch(num){case 12:{write_(0x01);a=0;b=0;flag=0;fuhao=0;}//按下的是"清零" break;case 13:{ //按下的是"0"if(flag==0)//没有按过符号键{a=a*10;write_date(0x30);P1=0;}else if(flag==1)//如果按过符号键{b=b*10;write_date(0x30);}}break;case 14:{j=1;if(fuhao==1){write_(0x80+0x4f);//按下等于键,光标前进至第二行最后一个显示处 write_(0x04); //设置从后住前写数据,每写完一个数据,光标后退一格c=a+b;while(c!=0){write_date(0x30+c%10);c=c/10;}write_date(0x3d); //再写"="a=0;b=0;flag=0;fuhao=0;}else if(fuhao==2){write_(0x80+0x4f);//光标前进至第二行最后一个显示处write_(0x04); //设置从后住前写数据,每写完一个数据,光标后退一格(这个照理说顺序不对,可显示和上段一样)if(a-b>0)c=a-b;elsec=b-a;while(c!=0){write_date(0x30+c%10);c=c/10;}if(a-b<0)write_date(0x2d);write_date(0x3d); //再写"="a=0;b=0;flag=0;fuhao=0;}else if(fuhao==3){write_(0x80+0x4f);write_(0x04);c=a*b;while(c!=0){write_date(0x30+c%10);c=c/10;}write_date(0x3d);a=0;b=0;flag=0;fuhao=0;}else if(fuhao==4){write_(0x80+0x4f);write_(0x04);i=0;c=(long)(((float)a/b)*1000);while(c!=0){write_date(0x30+c%10);c=c/10;i++;if(i==3)write_date(0x2e);}if(a/b<=0)write_date(0x30);write_date(0x3d); a=0;b=0;flag=0;fuhao=0;}}break;case 15:{write_date(0x30+table1[num]);flag=1;fuhao=1;} break;}}}main(){init();while(1){keyscan();}}。

相关文档
最新文档