4位计算器实训

合集下载

5800计算器实训报告心得

5800计算器实训报告心得

5800计算器实训报告心得计算机实训在不知不觉中就结束了,我感觉自己还有好多东西要学,还有好多的东西不懂呢!这是我大学以来第三次实训,每次实训我都感觉学到了好多东西!因为是一天到晚的不间断训练,所以记的会非常牢固。

不像平时上课,每上两次的理论课却只有45分钟的实际操作。

在课上,有老师在前面演示我们都还能跟着做,可轮到我们独立完成的时候,因为实际操作的少,早就忘光了!我很感谢学校有实训这样的安排,把我们这一学期学的东西系统的集中的进行训练,对我们计算机水平的提高发挥着重要作用!还要感谢我们的窦老师,窦老师很温柔,也很有耐心,即使老师讲了很多遍的问题,我们不会,老师还是会走进我们给我们耐心的指导,还给我们讲一些学习计算机的方法,让我们知道自己在哪方面不足,需要加强,也让我们了解到哪些需要认真的学习,那些是重点,不是没有方向的乱学一通,什么也学不好!经过这次的实训,我真真确确的感受到了计算机在我们生活中工作中的运用,这些软件、程序能让我们提高工作的效率,更直观更便捷的切入主题。

这次我们学习的是数据路的原理及应用的各方面知识,由老师带着我们不断操作。

accesssXX能有效的组织、管理和共享数据库信息,能把数据库信息与wep结合在一起,实现数据库信息的共享。

同实,access概念清晰,简单易学、实用是适合企业管理人员、数据库管理员使用的首选。

我觉得学习了这个,对我参加工作后制表、创建查询、数据分析和材料演示都有很大的作用,这样,我们能更清楚的了解信息并进行分析。

当然,在学习的过程中并不是一帆风顺的,在这之中,因为要操作的东西很多,有时错一步,后面的结果就无法显示,而自己的计算机又太差,根本检查不出来是哪里出了错!这时候,老师都会耐心的过来帮助我,我很感谢窦老师也很感谢学校能安排这么优秀的窦老师来教我们!只是,我们太顽皮,有很多东西老师讲了我们也没能记住,我想在此说一句:老师,您辛苦了,下学期我们一定认认真真的好好学!一个星期的实训课很快结束了,我发现我对计算机有了新的认识,以前只知道玩游戏、娱乐和简单的应用。

计算机实训报告范文3篇

计算机实训报告范文3篇

计算机实训报告范文3篇实训报告是展示自身实训收获成长的重要报告,那么实训报告该如何写呢?高校计算机实训课程具有较强的实践性,要求应用能力高、紧贴市场的需求。

本文是店铺为大家整理的计算机实训报告范文,仅供参考。

计算机实训报告范文篇一:一、实训主要内容Word排版,表格制作与编辑。

Powerpoint的制作,初步认识计算机办公应用OFFICE。

二、实训过程第一天:初步熟悉计算机的性能和认识Word; 第二天:练习Word题;第三天:认识Powerpoint并对昨天的Word练习予以测试;Excel 实训作业第四天:将Word表格与Powerpoint的制作熟悉巩固;第五天:老师再次对我们Word与Powerpoint测验以及教我们一些有用的技能与方法,初步认识计算机办公应用。

OFFICE。

三、实训心得体会很快的,一个假期又过来了,面对本学期最后一次的校园生活实训,想着刚刚过去的最后一个周,紧张沉默之后更多的是感慨,印在脑海里的每一个足迹都是那么的深,真的说不出是什么感觉,伴着时间,就像是在和自己的影子赛跑,不可能从真实的两面去看清它,只是经意不经意的感受着有种东西在过去,也许更适合的只有那句话:时不待我,怎可驻足?一周,短短的一周,我学到了很多不知道的东西,实在是感受颇深。

当今企业竞争范围的伴随社会市场经济的发展以及信息化程度的不断提高而日益扩大,这样就要求企业在各个方面加强管理,要求企业有更高的信息化集成来实现对企业的整体资源进行集成管理。

现代企业都意识到,企业之间的竞争是综合实力的竞争,要求企业有更强的资金实力,具备强有力的管理能力和更快的市场响应速度。

因此,引入计算机系统的意义是非常重大的。

在社会主义市场经济高速发展的今天,如果计算机的各项管理运做仍然停滞在以纸、笔为主要工具的阶段,就会因为信息量的快速增长而无法迅速、准确的运用计算机完成各项工作,这样,必将成为企业各方面发展的一个瓶颈。

而在当代这个以信息时代为主题的社会里,计算机技术高速发展,将信息技术应用于对现代企业的管理日益普及。

计算机办公软件实训总结报告范文5篇

计算机办公软件实训总结报告范文5篇

计算机办公软件实训总结报告范文5篇计算机办公软件实训总结报告范文5篇人生观决定了一个人的人生追求;世界观决定了一个人的思想境界;价值观决定了一个人的行为准则。

这里给大家分享一下关于计算机办公软件实训总结报告,方便大家学习。

计算机办公软件实训总结报告(精选篇1)5月29日,我参加了站务科组织的office办公软件的实训学习。

信息管理中心的赵中飞同志给我们上了一堂生动而又受益非浅的课,他运用PPT图文并茂的讲解了WORD和EXCEL的基本运用知识,同时结合工作实际需要,又用现场演练操作的方式为我们主要强调了特别注意的细节。

我印象极其深刻地有下面几点:在日常工作生活中,我们用WORD编辑文本时,有时忘了,或者是没有及时点击保存,突然遇到停电或者意外关闭,而造成没有保存的文件丢失,不得不重头再来,给自己的工作带来麻烦,增加了额外的工作量,也影响了心情。

我有过类似的一次经历,很是头痛。

今天,赵中飞老师,特别讲解了WORD的自动保存功能。

这个是我以前一直不知道的一项功能。

操作如下:工具-选项-自动保存(自设时间限制)。

就可以在空白文档时先提前设置好。

这样,就可以防止文档意外丢失。

再者,我们平常读报,经常有左右分栏的文章。

我平常工作学习没运用过,也不知道是怎么设成两栏,三栏的。

今天的学习,我又了解到,原来,运用格式下的分栏这项,就可随意编排了。

真是方便又快捷。

接下来讲到EXCEL,以前只知道它有强大的运算,数字处理功能,可是平常没好好学习,没好好用,看到函数就只会用求和。

可是今天,在实训课上,赵中飞结合实际工作,给我们着重讲了求平均值、求数、求最大值、最小值、以及HLOOKUP的调选择运用。

真让我大开眼界、受益匪浅。

以前自己还要拿个计算器算半天的数表,在他那,轻点鼠标,几秒时间全做完了。

听课到这里,才意识到,自己平时没用心学习,没有用心揣摩试用工具、任务栏的一些快捷键的功能,缺乏学习的精神。

现在是信息时代,信息技术的水平决定着工作效率。

计算器单片机实训报告

计算器单片机实训报告

重庆电力高等专科学校单片机实训报告简易计算器专业:电子信息工程技术班级:信息1212组员:***学号:************组员:***学号:************组员:***学号:************指导老师:李景明、任照富重庆电力高等专科学校目录摘要 (3)第一章绪论 (3)第二章总体方案 (3)2.2 简易计算器系统的组成 (3)2.3 方案的论证和比较 (4)2.3.1 单片机型系统的选择与论证 (4)2.3 2 显示模块的选择与论证 (4)2.3.3 计算实现 (4)2.4系统框图 (4)第三章硬件电路 (6)第四章软件设计 (10)4.1 系统框图 (11)4.2 I/O并行口直接驱动LCD显示 (11)第五章实训过程 (12)第六章整体调试 (12)5.1 Proteus 简介 (12)5.3利用keil与Proteus进行的调试 (13)5.3.1 利用keil与Proteus进行的调试 (13)5.4硬件电路调试 (15)5.4.1 硬件电路调试过程 (15)5.4.2 实物拍照 (16)第七章实训心得 (17)7.1 张忠艳的心得体会 (17)7.2 王传胜的心得体会 (17)7.3 汤承练的心得体会 (17)附录: (18)1.源程序: (18)1.1主函数: (18)1.2 LCD1602的驱动程序 (18)1.3 按键相关处理程序 (20)2.仿真电路图 (22)3. 元器件清单 (22)摘要计算器(calculator ;counter)一般是指“电子计算器”,该名词由日文传入中国。

计算器能进行数学运算。

计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备组成。

低档计算器的运算器、控制器由数字逻辑电路实现简单的串行运算,其随机存储器只有一、二个单元,供累加存储用。

使用简单计算器可进行加(+)、减(-)、乘(*)、除(/)、开方(sqrt)、百分数(%)、倒数(1/x)等简单算术计算。

汇编语言课程设计四则运算计算器

汇编语言课程设计四则运算计算器

*******************实践教学*******************兰州理工大学技术工程学院2013年春季学期汇编语言实训课程设计题目:四则运算计算器专业班级:计算机科学与技术姓名:___郭利强_____学号: 11730108指导教师:刘树群成绩:计算机科学与技术专业(11级)汇编语言实训课程设计任务书题目:四则运算计算器班级: 11计算机科学与技术1班学生姓名:郭利强学号: 11730108 题目类型:软件工程(R)指导教师:刘树群一.题目简介四则运算计算器,主要是为了解决数学中的加、减、乘、除四则运算的问题。

通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对汇编语言基本语言要素和流程结构的理解,针对汇编语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。

得到软件工程的综合训练,提高解决实际问题的能力。

二.设计任务1、查阅文献资料,一般在5篇以上;2、要求可以进行四则运算;3、完成软件结构设计和算法设计;4、完成系统的软件开发和测试工作;5、撰写设计说明书;6、做好答辩工作。

三.主要内容、功能及技术指标1、实现功能及指标:①使用Win32的窗口程序模式,实现四则运算程序的设计与开发;②界面友好。

2、问题分析及解决方案框架确定:充分地分析和理解问题本身,弄清要求做什么。

在确定解决方案框架过程中,综合考虑系统功能,考虑怎样使系统结构清晰、合理、简单和易于调试。

最后确定每个过程和函数的简单功能,以及过程(或函数)之间的调用关系,并画出函数之间的调用关系图。

3、详细设计和编码:定义相应的存储结构,确定各个函数的算法,并画出流程图,在此基础上进行代码设计,每个明确的功能模块程序一般不超过200行,否则要进一步划分。

4、上机前程序静态检查:上机前程序静态检查可有效提高调试效率,减少上机调试程序时的无谓错误。

静态检查主要有两种途径:用一组测试数据手工执行程序;通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑。

简易计算器实训报告

简易计算器实训报告

简易计算器实训报告
一、实训目的:熟悉基本的Python编程知识和数据类型的使用,掌握基本的计算器功能实现
二、实训步骤:
1.首先导入math模块,因为本次实训中需要使用到math模块中的一些函数,如sqrt()
2.定义四个基本运算函数:add()、sub()、mul()、div(),并使用if语句判断用户需要执行的运算操作
3.如果用户输入的操作符不是四个基本运算符之一,则提示用户输入正确的操作符,直到用户输入正确的符号为止
4.通过while循环实现:如果用户输入的数字不是float类型或者用户输入的操作符不是字符串类型,则一直提示用户输入正确的数字或者操作符
5.通过格式化字符串实现结果的输出,保留两位小数
6.通过input()函数实现用户输入数字和操作符的交互
三、实训感想:
通过本次实训,我对Python编程语言有了更深入的了解和掌握,并且熟练掌握了Python中的数据类型、运算符和基本函
数的使用方法。

另外,本次实训也提高了我对问题解决的能力和编程思路,让我更加深入地理解了编程思维的本质。

最后,我希望自己能够不断地学习和探索,进一步扩展自己的编程知识,提升自己的实践能力和创新能力。

大一计算机实训报告(共5篇)

大一计算机实训报告(共5篇)

篇一:大一计算机实践报告计算机实践报告主题:指导教师:年级:姓名:学号:主题选择及内容:本次计算机实践网页制作,我制作的网页是“我的家乡汉中”。

我的家乡在汉中,是一个美丽的城市。

也是一个历史名城。

余秋雨说“汉人,汉水,汉文化。

”可见,能以“汉”字命名,足以见其历史底蕴。

刚刚进入大学,离家千里,难免对家和家乡生出眷恋和私念。

所以,以此为题,在怀念家乡的同时,也把家乡介绍给大家,那是一个美丽的城市,欢迎大家能够去领略她的风采。

虽然我做出来的作品,由于时间和条件以及能力的不足会有所欠缺,但在设计和制作的过程中我学到了许多。

本网站分为4个栏目(分别是:【主页-我的家乡汉中】,【汉中市的自然资源】,【汉中市的民俗民风】,【汉中市的风景名胜ppt】。

内容以汉中市历史,文化,风景各方面的介绍为主。

实验步骤:一.前期准备在动手制作之前,先从网上搜集有关家乡的一些资料,然后浏览一些排版精美的网站,并用frontpage2003版软件查看网站排版方式,从中汲取些经验。

二.幻灯片的制作首先打开演示文稿,建立一个空演示文稿,在空白幻灯片上插入图片和艺术字,然后设置为最底层作为背景,再对每一个幻灯片进行编辑。

右击设置各个组件的自定义动画与幻灯片切换形式。

再将幻灯片保存于网页内并在首页制作超链接。

我所做的幻灯片的内容是关于我的家乡的风景名胜,包含一些名人故里以及国家级景区和生态自然保护区。

三.flash动画的制作首先打开flash动画制作软件,新建一个flash文档。

然后从网上找来制作flash的资料图片,参照课本以及网上介绍的步骤制作。

四.用frontpage软件制作网页用frontpage软件制作网页时,在主页面上插入一些图片,添加对家乡的介绍,做网页的同时,设置网页的背景图片以增强视觉效果,做完网页的表面内容后,将前面做的幻灯片,flash动画,以及编辑的子网页都超链接到主页上来。

做完这些后,在通过自己制作的图片,图像,动画来修饰网页,以达到更好的效果。

计算器界面制作实训报告

计算器界面制作实训报告

一、引言随着计算机技术的不断发展,软件编程已经成为计算机科学领域的基础技能之一。

为了提高我的编程能力,我参加了本次计算器界面制作的实训。

通过本次实训,我不仅学习了计算器界面的设计方法,还提升了面向对象编程和图形用户界面(GUI)开发的能力。

二、实训目的1. 掌握计算器界面的设计方法。

2. 熟悉面向对象编程的基本思想。

3. 提高图形用户界面(GUI)开发技能。

4. 培养团队协作和沟通能力。

三、实训内容本次实训要求我独立完成一个简易计算器的界面设计,包括以下功能:1. 数字输入:支持输入0-9的数字。

2. 运算符输入:支持加、减、乘、除四则运算。

3. 结果显示:实时显示计算结果。

4. 清除功能:清除输入的数字和运算符。

四、实训过程1. 需求分析:首先,我分析了计算器的功能需求,明确了界面设计的基本框架。

2. 界面设计:根据需求分析,我设计了一个简洁明了的计算器界面,包括数字键盘、运算符按钮、结果显示区域和清除按钮。

3. 编程实现:- 面向对象编程:我采用了面向对象编程的思想,将计算器界面划分为多个类,如数字按钮类、运算符按钮类、结果显示区域类等。

- 图形用户界面(GUI)开发:我使用了Java Swing库中的组件来实现计算器界面,包括JFrame、JButton、JTextField等。

4. 功能实现:- 数字输入:我为数字按钮设置了监听器,当用户点击按钮时,将数字显示在结果显示区域。

- 运算符输入:我为运算符按钮设置了监听器,当用户点击按钮时,将运算符存储在变量中。

- 结果显示:根据输入的数字和运算符,计算结果并显示在结果显示区域。

- 清除功能:我为清除按钮设置了监听器,当用户点击按钮时,清空输入的数字和运算符。

5. 调试与优化:在编程过程中,我遇到了一些问题,如按钮点击事件处理、界面布局等。

通过查阅资料和请教同学,我逐步解决了这些问题,并对程序进行了优化。

五、实训总结1. 技术收获:通过本次实训,我掌握了计算器界面的设计方法,熟悉了面向对象编程和图形用户界面(GUI)开发技能。

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

四川师范大学成都学院4位数加法计算器的设计—电子线路实现训练学生姓名学号所在系通信系专业名称通信工程班级2009级通信工程2班指导教师刘强、段纯爽四川师范大学成都学院二○一一年六月目录一、设计任务 (1)二、方案与论证 (1)(一)控制器的选择 (1)(二)显示器的选择 (2)三、系统硬件设计 (3)(一)系统总框图 (3)(二)原理图设计 (3)四、系统软件设计 (5)五、总结与展望 (5)六、参考文献 (6)附录一:系统总电路 (7)附录二:系统功能测试 (8)四则运算如图: (8)时钟显示如图:(创新部分) (8)附录三:系统PCB图 (9)附录四:源代码 (10)电子线路实现训练4位数加法计算器的设计—电子线路实现训练一、设计任务⏹系统通过4×4的矩阵键盘输入数字及运算符。

⏹可以进行4位十进制数以内的加法运算,如果计算结果超过4位十进制数,则屏幕显示E⏹可以进行加法以外的计算(乘、除、减)。

⏹其他功能(时钟显示)⏹画出完整的电路原理图(包含电源部分)和PCB板图。

二、方案与论证(一)控制器的选择控制器主要用于各模块控制对显示、计算等。

控制器的选择有以下三种方案。

方案1:8位AT89S51AT89S51是ATMEL公司生产,该单片机算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。

方案2:采用FPGA(现场可编程门列阵)作为系统的控制器。

FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。

但由于本设计对数据处理的速度要求不高,FPGA的高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。

方案3: 32位LM3S615LM3S615采用为小型嵌入式应用方案而优化的32位ARM®CortexTM-M3 v7M结构,可兼容Thumb®的Thumb-2专用指令集处理器内核,可提高代码密度,50-MHz操作。

但其成本太高,故在本系统中不宜采用。

综上述:控制器方案1。

(二)显示器的选择在本计算器系统控制过程中,系统需要对运行的结果做必要的显示。

我们考虑有以下三种显示方案。

方案1:LCD液晶屏液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强的特点。

但由于只需要显示时间和转向、相数这样的数字,信息量比较少,且由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。

在使用时,不能有静电干扰,否则易烧坏液晶显示芯片,不易维护。

方案2:LED数码管数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度高,称量快,精确可靠,操作简单。

数码显示是采用BCD编码显示数字,程序编译容易,资源占用较少。

方案3:LED点阵模块LED就是light emitting diode ,发光二极管的英文缩写,简称LED。

它是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。

但成本过高,功能过强大,故在此系统中不宜采用LED点阵。

综上述:显示器选择方案2。

三、系统硬件设计(一)系统总框图图1系统总框图(二)原理图设计电源部分:单片机与TTL电平是兼容的,因此单片机的供电电源一般为+5V。

单片机的电源部分电路直接将40脚接VCC,20脚接GND就可以了。

9V的电压通过整流桥后变成脉动直流电,再经过滤波电路后减小脉动,LM7805用于输出电压为恒定的5V直流电压。

图2直流稳压电源键盘部分:4×4矩阵键盘识别处理,每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。

矩阵的行线和列线分别通过两并行接口和CPU 通信。

每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC ,而接地是通过程序输出数字“0”实现的,键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。

12S1SW-PBS2SW-PB S3SW-PB S4SW-PB S5SW-PB S6SW-PB S7SW-PB S8SW-PB S9SW-PB S10SW-PB S11SW-PB S12SW-PB S13SW-PBS14SW-PBS15SW-PBS16SW-PBP10P11P12P13P14P15P16P17图3 4×4矩阵键盘LED 数码管显示部分:下图是七段数码管显示器及其引脚图每个引脚上加限流电阻,在本系统中采用共阳极。

4+5a1b2c3d4e5f6g7h8S 19S 210S 311S 412S1S2S3S4DS1LED 4_LWQc o m 1c o m 2c o m 3afbedhcg图4 LED 数码管显示器四、系统软件设计图5 总流程图五、总结与展望课程设计刚开始,拿着选定的题目不知如何入手。

毕竟课程设计不同于实验课,电路图都要自己设计。

静下心来,仔细分析题目,再加上指导老师的说明与提示,心中才有了谱。

将整个系统根据不同的功能化分成模块,再分别进行设计,逐个攻破,最后再将其整合即可。

最后调试阶段,哪怕一个小小的错误也会使结果出不来。

结果终于出来了,又发现有的地方还应改进。

通过这次课程设计,使我受益颇多。

既巩固了课堂上学到的理论知识,又掌握了常用集成电路芯片的使用。

在此基础上学习了数字系统设计的基本思想和方法,学会了科学地分析实际问题,通过查资料、分析资料及请教老师和同学等多种途径,独立解决问题。

同时,也培养了我认真严谨的工作作风。

六、参考文献[1] 李群芳,张士军,黄建.单片微型计算机与接口技术(第3版).电子工业出版社,2010.[2] 戴佳,戴卫恒.51单片机C语言应用程序设计实例精讲.电子工业出版社,2006.[3] 徐爱钧,彭秀华.单片机高级语言C51应用程序设计.北京:电子工业出版社,1997.[4] 孙育才.MCS-51系列单片微型计算机及其应用(第三版).南京:东南大学出版社,1997.[5] 李刚,林凌,姜苇.51系列单片机系统设计与应用技巧.北京:北京航天航空大学出版社.[6] 王晓君.安国臣等.MCS—51及兼容单片机原理与选型.北京-电子工业出版社,2003.附录一:系统总电路123321DCBATitleNumberSize A4Date:1-Jul-2011 Sh ee File:C :\Docum ent s and Set tings\XPMUser\桌面\Draw P101P112P123P134P145P15(MOSI)6P16(MISO)7P17(SC K)8R ST 9P30(RXD)10P31(TXD)11P32(INT0)12P33(INT1)13P34(T0)14P35(T1)15P36(WR )16P37(RO)17XTAL218XTAL119GND 20P20(A8)21P21(A9)22P22(A10)23P23(A11)24P24(A12)25P25(A13)26P26(A14)27P27(A15)28PSEN 29ALE(PR OG)30EA(VPP)31P07(AD7)32P06(AD6)33P05(AD5)34P04(AD4)35P03(AD3)36P02(AD2)37P01(AD1)38P00(AD0)39VCC 40AT89S51/STC 89C 51U1P10P11P12P13P14P30P31P32P33P34P35P36P37P20P21P22P23P24P25P26P27VCC VCC 543712891610112S1S2S3S4edhcgS 4S 1afS 2S 3bD1LED4_LW QX1X2X3R 1510R 2510R 3510R 4510R 5510R 6510R 7510R 8510P00P01P02P03P04P05P06P07VCC 1D-2D+3GND 4USBJ1D31N4148VCCR 11510R 12510R 13510R 14510P20P21P22P24Q18550Q28550Q38550Q48550VCCX1X2X3X4R ESTK5R 9200R 1010K R EST C 322UFVCC11223DC/AC J69V~~+-B RIDG 1234D4+C 4470+C 7220UC 50.1u fC 60.1UD5po werR 2510KVin 12GNDVout 3LM7805U5Y112M H zC 130PC 230Pa fb e d hc g x49com 1R 12R 23R 34R 45R 56R 67R 78R 8LS110KS1SW -PB S2SW -PB S3SW -PB S4SW -PB S5SW -PB S6SW -PB S7SW -PB S8SW -PB S9SW -PB S10SW -PB S11SW -PB S12SW -PB S13SW -PBS14SW -PBS15SW -PBS16SW -PBP10P11P12P13P14P15P16P17VCC P00P01P02P03P04P05P06P07P15P16P17R EST afbedhcg图6 系统总电路附录二:系统功能测试四则运算如图:图7 运算界面时钟显示如图:(创新部分)图8 时钟界面附录三:系统PCB图图9 系统PCB图附录四:源代码#include<regx51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int#define KEY P1uchar code dutable[]={ //段位编码0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};uchar code wetable[]={ //位选码0x01,0x02,0x04,0x08};Ucharw,num,ss,s1,wei1,wei, str1[]={0,0,0,0,0},str2[]={0,0,0,0}; char shi=0,fen=0,miao=0,flag=0,t0=0;long temp,temp1,str[]={16,16,16,16,16};void shuju();void delay(uint z)//延时函数(单位ms){uchar i;uint j;for(j=z;j>0;j--)for(i=114;i>0;i--);}void init() //定时器T0初始化程序{TMOD=0x01; //T0工作于方式1TH0=(65536-10000)/256;//设定初值定时10msTL0=(65536-10000)%256;ET0=1 ;//打开T0开关EA=1; //打开总开关TR0=1; //启动T0}void timer0() interrupt 1 //T0中断函数{TH0=(65536-10000)/256;TL0=(65536-10000)%256;t0++; //中断次数}void shaomiao() //键盘扫描函数{uchar w1,w2;P1=0xff;KEY=0x0f;w1=KEY&0xx0f;if(w1!=0x0f) //检测是否有键按下{delay(5); //消抖if(w1!=0x0f){wei++; //按键次数KEY=0xf0;w=(w1|w2); //确定按键码while(KEY!=0xf0); //等待按键释放delay(5); //消抖while(KEY!=0xf0);}}elsew=0xff; //无按键按下switch(w) //按下相应按键给num赋相应初值,确定执行何种功能case 0xe7: num=0; break; //0case 0xeb: num=1; break;//数字键1case 0xed: num=2; break;//数字键2case 0xee: num=3; break;//数字键3case 0xd7: num=4; break;//数字键4case 0xdb: num=5; break;//数字键5case 0xdd: num=6; break;//数字键6case 0xde: num=7; break;//数字键7case 0xb7: num=8; break;//数字键8case 0xbb: num=9; break;//数字键9case 0xbd: num=10; break;//+功能case 0xbe: num=11; break;//-功能case 0x77: num=12; break;//*功能case 0x7b: num=13; break;// /功能case 0x7d: num=14; break;// =功能case 0x7e: num=15; break;//清零功能case 0xff: num=16; break;//无按键default:break;}}void shuju() //数据处理函数{shaomiao();//调用扫描函数if(num<10) //num<10显示数字{if(wei>4) //显示4位数字{wei=1;str[4]=str[3]=str[2]=str[1]=16;str1[4]=str1[3]=str1[2]=str1[1]=0;}str[wei]=num; //将数字num赋给数组str[wei]//将数字保存到变量temp中if(str[1]!=16)temp=str[1];if(str[2]!=16)temp=str[1]*10+str[2];if(str[3]!=16) temp=str[1]*100+str[2]*10+str[3];if(str[4]!=16) temp=str[1]*1000+str[2]*100+str[3]*10+str[4];if(temp==0) wei=0;}if(num==10) //如num=10则加功能键按下标志位ss=1,数组初始化,将当前数字赋给变量temp1保存,按键次数wei清零{str[4]=str[3]=str[2]=str[1]=16;str1[4]=str1[3]=str1[2]=str1[1]=0;ss=1;temp1=temp;temp=0; wei=0;}if(num==11) //如num=11则减功能键按下标志位ss=2,数组初始化,将当前数字赋给变量temp1保存,按键次数wei清零{str[4]=str[3]=str[2]=str[1]=16;str1[4]=str1[3]=str1[2]=str1[1]=0;ss=2;temp1=temp;temp=0; wei=0;}if(num==12) //如num=12则乘功能键按下标志位ss=3,数组初始化,将当前数字赋给变量temp1保存,按键次数wei清零{str[4]=str[3]=str[2]=str[1]=16;str1[4]=str1[3]=str1[2]=str1[1]=0;ss=3;temp1=temp;temp=0; wei=0;}if(num==13) //如num=13则除功能键按下标志位ss=4,数组初始化,将当前数字赋给变量temp1保存,按键次数wei清零{str[4]=str[3]=str[2]=str[1]=16;str1[4]=str1[3]=str1[2]=str1[1]=0;ss=4;temp1=temp;temp=0; wei=0;}if(num==14) //如num=14则等功能键按下标志位s1=4,数组初始化,按键次数wei 清零{str[4]=str[3]=str[2]=str[1]=16;str1[4]=str1[3]=str1[2]=str1[1]=0;s1=1;wei=0;}if(num==15) 如num=15则清零功能键按下,标志位flag++,数组初始化,按键次数wei,功能标志位ss清零,{flag++;if(flag>3){flag=0;}str[4]=str[3]=str[2]=str[1]=16;str1[4]=str1[3]=str1[2]=str1[1]=0;temp=0; wei=0; temp1=0; ss=0;}if(num==16) //如无按键保持当前数字{str[4]=str[4];str[3]=str[3];str[2]=str[2];str[1]=str[1];str1[4]=str1[4];str1[3]=str1[3];str1[2]=str1[2];str1[1]=str1[1];temp=temp; wei=wei;temp1=temp1; ss=ss;}if(s1==1){s1=0;switch(ss) //根据功能标志位ss执行相应功能{case 0: break;case 1: temp=temp+temp1;break;case 2: temp=temp1-temp;break;case 3: temp=temp*temp1;break;case 4: temp=temp1/temp;break;default:break;}}if(temp!=0) //分离temp的个十百千位{str1[4]=temp/1000;str1[3]=temp%1000/100;str1[2]=temp%100/10;str1[1]=temp%10/1;if(str1[1]!=0)wei1=1;if(str1[2]!=0)wei1=2;if(str1[3]!=0)wei1=3;if(str1[4]!=0)wei1=4;}else{wei1=1;str1[1]=0;}}void display1() //计算器显示函数{char a;for(a=1;a<wei1+1;a++){if(temp<0||temp>9999){P2=wetable[0];P0=dutable[14];}else{P2=wetable[a-1];P0=dutable[str1[a]];delay(10);}}}void display2()//时间显示函数{uchar i1;for(i1=0;i1<4;i1++){P2=wetable[i1];P0=dutable[str2[i1]];delay(10);}}void diaoshi() //调时函数{if(t0==100) //定时1000ms t0清零,秒加1 {t0=0;miao++;if(miao>59) //加到60秒后秒清零,分加1 {miao=0;fen++;if(fen>59) 加到60分后分清零,时加1{fen=0;shi++;if(shi>23)shi=0;}}}}if(num==10){fen++;if(fen>59){fen=0;shi++;}}if(num==11){fen--;if(fen<0){fen=59;}}if(num==12) {shi++;if(shi>23) {shi=0;}}if(num==13) {shi--;if(shi<0){shi=23;}}str2[0]=fen%10; //分离时,分的个,十位str2[1]=fen/10;str2[2]=shi%10;str2[3]=shi/10;}void main() //主函数{init(); //调用定时器0初始化函数while(1) //循环{shuju();if(flag==3) //如连按键cl键3次显示时间 {diaoshi();display2();}Else //否则显示计算器数display1();}}附录实训题目选择1、数字温度计设计设计任务:⏹测量误差<0.5℃;⏹温度测量范围:⏹超出量程可声光报警。

相关文档
最新文档