文档库 最新最全的文档下载
当前位置:文档库 › 计数器设计

计数器设计

计数器设计
计数器设计

目录

1前言 (1)

2设计任务及方案论证 (2)

2.1设计任务 (2)

2.2方案论证 (2)

3电路设计原理 (3)

3.1设计任务及要求 (3)

3.2设计方案 (3)

3.3单元模块 (4)

3.3.1清零电路的设计 (4)

3.3.2光电报警电路的设计 (4)

3.3.3脉冲发生器的设计 (5)

3.3.40~999计数器的设计 (6)

3.3.5译码器的设计 (7)

4电路板的制作及电路焊接与调试 (10)

4.1电路板的制作 (10)

4.2电路的安装 (11)

4.3电路测试 (11)

5设计总结 (13)

参考文献 (14)

鸣谢 (15)

附录一原理图 (16)

1前言

计数器是最常用的时序电路之一,它们不仅可用于对脉冲进行计数,还可用于分频、定时、产生节拍脉冲以及其他时序信号。

计数器的种类不胜枚举,按触发器动作分类,可分为同步计数器和异步计数器;按计数数值增减分类,可分为加计数器、减计数器和可逆计数器;按编码分类,可分为二进制计数器、BCD码计数器、循环码计数器。此外,有时也按计数器的计数容量来区分,例如本设计就是采用十进制计数器74LS160进行设计的。计数器的容量也称为模,一个计数器的状态数等于其模数。

目前,无论是TTL还是CMOS集成电路,都有品种较齐全的中规模集成计数器。只要使用者借助于器件手册的功能表和工作波形图以及引脚的排列,就能正确地运用这些器件设计出自己想要的电路。

2设计任务及方案论证

2.1设计任务

利用数字集成电路(如:74LS160、161、90、290、390、48等)设计一个电子计数器。

2.2方案论证

在设计中采用两个74LS00与非门以及单刀双掷开关等组成脉冲发生电路,此电路不仅能满足按键输入计数方式而且还有去抖功能;计数设计电路中采用74LS160来完成计数功能;通过控制MR、PE、CET、CEP端可实现计数、清零、启动、暂停等功能;而通过74LS48译码器对计数器结果译码并驱动数码管,使数码管显示脉冲发生器产生的脉冲个数,当计数溢出时及计数到999由光电报警电路报警。

综上:该设计不仅能完成设计要求而且精确、经济,所以此设计方案可行。

3电路设计原理

3.1设计任务及要求

利用数字集成电路(如:74LS160、161、90、290、390、48等)设计一个电子计数器。

1、计数范围000~999;

2、设置外部操作开关,控制计数器的直接清零、启动和暂停;

3、设计必要的输入整形电路;

4、计数输入为按键输入方式;

5、计数精度:小于2%;

6、当计数溢出时发出光电报警信号。

3.2设计方案

数字计时器是由计时电路、译码显示电路、脉冲发生电路和控制电路等几部分组成的,其中控制电路按照设计要求由整形电路、清零电路和光电报警电路组成。其具体的原理框图如下图所示:

图3-1总体电路设计原理图

3.3单元模块

3.3.1清零电路的设计

因为本设计要求设置外部操作开关,控制计数器的直接清零,所以按照设计的要求需设计一个直接清零电路,使之具有不掉电清零功能即在电路正常工作时,按动清零开关,使计数器全部回零。

图3-2清零电路

3.3.2光电报警电路的设计

计时电路中二极管和电阻组成光电报警电路,电阻在这儿是起限流的的作用避免电流过高烧坏发光二极管,当计数达到满度溢出时二极管发光则达到光电报警效果。

图3-3 光电报警电路

3.3.3脉冲发生器的设计

电路是为计时电路提供计数脉冲的。根据设计要求需要必要的整形电路并且计数输入为按键输入方式,考虑到设计的要求,脉冲发生这个电路采用SR 触发器。SR 触发器不仅可去除键闭合、断开时的电压波动,并且能达到输入整形的效果。

图3-4 脉冲发生器

3.3.40~999计数器的设计

在本设计中计时电路中的计数器,采用三片同步十进制计数器74LS160来实现000~999的计时。

1、74LS160芯片功能特性描述

图3-5 74LS160芯片引脚图

0P ~3P :并行数据输入端; 0Q ~3Q :数据输出端;

CEP 、CET :计数控制端;

MD :清零端;

PE :同步并行置入控制端。

图3-6计时电路

3.3.5译码器的设计

1、74LS48芯片功能特性描述

图3-774LS48芯片引脚图

(1)LT:是为了检查数码管各段是否能正常发光而设置的。当LT=0时,无论输入A,B,C,D为何种状态,译码器输出均为低电平,若驱动的数码管正常,则显示8。

(2)BI/RBO:控制多位数码显示的灭灯。当BI=0时,不论LT和输入A,B,C,D为何种状态,译码器输出均为低电平,使共阴极7段数码管熄灭。

(3)RBI:灭零输入,它是为使不希望显示的0熄灭而设定的。当对每一

位A= B =C =D=0时,本应显示0,但是在RBI=0作用下,使译码器输出全1。其结果和加入灭灯信号的结果一样,将0熄灭。

表3-2 74LS48功能表

2、74LS48译码器原理

74LS48是BCD-7段数码管译码器/驱动器。74LS48的功能用于将BCD码转化成数码块中的数字,通过它解码,直接把数字转换为数码管的显示数字。译码为编码的逆过程,它将编码时赋予代码的含义“翻译”过来,实现译码的逻辑电路称为译码器。译码器输出与输入代码有唯一的对应关系。74LS48是输出高电平有效的七段数码管译码器驱动器。

3、七段发光二极管(LED)数码管

LED数码管是目前最常用的数字显示器,有共阴管和共阳管之分。一个LED 数码管可用来显示一位0~9十进制数和一个小数点。小型数码管(0.5寸和0.36寸)每段发光二极管的正向压降,随显示光颜色不同略有差别,通常约为2~2.5V,每个发光二极管的点亮电流在5~10mA。

LED数码管要显示BCD码所表示的十进制数字就需要有一个专门的译码器,该译码器不但要完成译码功能,还要有相当的驱动能力。共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、

g 及dp (小数点);共阴极则是把所有LED 的阴极连接到共同接点com ,而每个LED 的阳极分别为a 、b 、c 、d 、e 、f 、g 及dp 。本设计则是采用共阴显示数码管。由于是显示0到999,所以小数点端不需要利用,又由于是高电平驱动,dp 端则接地。

图3-8 共阴连接(“1”电平驱动)

图3-9 七段显示数码管

B I /R B O

图3-10 译码显示电路

4电路板的制作及电路焊接与调试

4.1电路板的制作

电路板的制作步骤如下:

(1)首先应剪裁合适的线路板。线路板的大小应比电路图的大小大10mm 多,以便在钻孔时固定电路板和热转印固定转印纸用胶布粘贴四周时覆盖了布线,但也不要过大,以节约材料。

(2)打印电路图。将绘制好的电路图用转印纸打印出来,打印时应注意滑的一面向上。

(3)线路板钻孔。依据电子元件管脚的粗细选择不同的钻针,在使用钻机钻孔时,线路板一定要按稳。钻孔时把握好钻针下放的距离以便确保能将线路板钻穿。

(4)打磨线路板。用细砂纸把线路板表面的氧化层打磨掉,以保证在转印电路板时,热转印纸上的碳粉能牢固的印在覆铜板上,打磨好的标准是板面光亮,没有明显污渍。

(5)转印电路板。把印有电路板的一面贴在覆铜板上,焊盘空对齐后,用胶布把转印纸粘贴牢固在覆铜板上,这时把覆铜板放入热转印机。转印时不能用力推覆铜板,应让机器自动运作。一般来说经过2-3次转印,电路板就能很牢固的转印在覆铜板上。转印完后应检查一下电路板是否转印完整,若有少数没有转印好的地方可以用黑色油性笔修补。热转印机事先已预热,温度设定在150-170摄氏度,由于温度很高,操作时应注意安全。

(6)腐蚀线路板。转印完后的电路板就可以腐蚀,等线路板上暴露的铜膜完全被腐蚀掉时,将线路板从腐蚀液中取出清洗干净,这样一块线路板就腐蚀好了。由于腐蚀液是使用强腐蚀性溶液,操作时一定注意安全,避免溅到皮肤或衣物上。

(7)线路板涂松香。清洗干净后的铜膜板等水干后,用松香水涂在线路板有线路的一面,为加快松香凝固,我们用热风机加热线路板,只需2-3分钟松香

就能凝固。

4.2电路的安装

在安装原件前应做好准备工作,将所需的元件和焊接工具准备齐全。

为了美观我们把铜线和所有的原件都焊在同一面。首先应先焊接过孔。接着我们把原件引脚插到对应的孔里,进行简单的布局,安装原件应先安装小的原件再安装大的原件,如这次我们装焊的顺序为电阻、电容、发光二极管、按钮开关、集成块、单刀双掷开关。在插发光二级管时要注意长正短负,反接会使其烧坏。安装电阻、集成块等原件时为了避免出错,可以先安装完同一型号,再安装另一型号。

焊接前应先加热电烙铁,当电烙铁加热到能熔化焊锡的温度后,电烙铁成45度角,将焊锡置于焊点使熔化,焊接时要使焊点周围都有锡,将其牢牢焊住,防止虚焊,但是上锡时,锡不宜过多,当焊点的焊锡成锥形时最好。在焊接引脚过多的原件如集成块、数码管时,应先焊对角的两个引脚使其固定,再逐个焊接。另外,过孔我们用的是铜线连接,在焊接之前先在铜线上涂上助焊锡使其容易焊接。

最后在装集成块时要注意它有方向的,在安装时一定要注意PCB板上的缺口所指方向与器件的缺口所指方向是否一致。

焊接完后对过长的引脚齐根剪去,为了美观在剪引脚时尽量使剩余的引脚长短一致。

4.3电路测试

这是我做的第一个综合电路,所以在做这个课程设计时,出现了许多问题,但在同学和老师的帮助下,这些问题都得到了解决。

在电路板初步完成之后,需要进行调试工作,在调试的过程中我们遇到两个

问题。第一个问题是接通外部电源后发现数码管不计数且发光二极管灯亮。测试电路中脉冲输入端和74LS160的电压发现,U6及76LS160的6脚和8脚有电压,这两端本是接地端应该没有电压,但是检查电路后发现这两个接地端没有连接,最后我们只有用铜线把6脚和8脚连接。接通外部电源后拨动开关S1数码管开始正常计数。

第二个问题是DS1数码管在显示数字3和5时d段不亮。数码管只是在显示3和5时d段不亮,而在显示其它数字时都正常,分析原因和测试电路可知,可能是74LS48和数码管的d和e两根线有可能连接,尽管用肉眼看不见两根线相连,但是有些细微是用肉眼看不见的,于是用美工刀在d和e之间划一下让两根线路分开。接通外部电源后拨动开关S1数码管计数正常。分析可知在显示数字3和5时,d段和e段亮灭相反,而在显示其它数字时,d段和e段亮灭相同,相反时产生冲突所以d段不亮,相同时情况则相反。

5设计总结

通过这次课程设计,我的动手能力有了很大的提高,摆脱了单纯的理论知识学习状态,并且提高了我查阅文献资料、设计手册、设计规范以及PCB制图等其他专业能力水平,而且通过对整体的掌控,以及对细节的处理,都使我的能力得到了锻炼,经验得到了丰富。同时对于设计中出现的问题能积极的去思考、解决,这些都将对以后的生活和学习有很大的帮助。

并且经过本次课程设计,我对74LS160、74LS48和数码管的特性和内部结构有了更深刻的理解和认识,不在局限于书上所讲的。再画封装方面我也有很大的收获,比如引脚的排序,引脚的间距,外框的大小,焊盘的大小,布线的粗细等等,这也使得我对以后的课程设计和学习更有兴趣和把握。

在本次课程设计的制作过程中发现只要合理应用印刷板上的铜膜不仅可以省去很多导线还可以使电路板更加美观简洁,如在我们的制作的我们就是利用铜膜把外围的一些地线连接。在制作中我们用铜线连接过孔免去了我们制作双面的麻烦。和我们在生活中一样,只要我们善于观察,有效利用资源,就可以轻松的解决很多难题。通过这次课程设计,我还学会了怎么检查电路的连接情况和如何调试电路。

参考文献

[1] 康华光.电子技术基础.高等教育出版社,第五版.

[2] 数字电子实验基础.

[3] 唐颖.单片机原理与应用.北京大学出版社.

鸣谢

衷心感谢我的指导老师在整个设计和制作的过程中对我的悉心指导,他严谨精细的治学态度,渊博的知识,孜孜不倦的工作热忱和诲人不倦的精神,我将铭记在心!要特别感谢我的家人,他们的关爱使我对生活充满信心,勇敢地面对生活、学习中的各种压力。最后感谢图书馆、电子阅览室为我提供查找资料的场所和优质的服务。

附录一原理图

1k

B I /R B O

编写一个计算器程序课程设计报告-范例

学号 《金融IT入门-程序设计》 课程设计报告 中国地质大学长城学院XX 系 2017年月 3 日 目录 一.总体概述: 二.设计目标: 三.程序流程图: 四.程序代码: 评分细则 评分项优秀良好中等差 上课出勤 上课表现 上机情况 平时作业完成情况 期末大作业: (1)书写认真程度 题目:用Python编写简易计算器程序 学号: 专业: 班级: 姓名: 指导教师: 2016-2017学年第二学期

(2)内容详实程度(3)文字表达能力(4)是否体现观点 简短教师签名: 年月日 评 分 等 级 备 注 评分等级有五种:优秀、良好、中等、及格、不及格

一、设计内容 ------------------------------------------------------------------------------------------------- - 1 - 1. 课程设计目的:-------------------------------------------------------------------------------------- - 1 - 2.课程设计任务: --------------------------------------------------------------------------------- - 1 - 3.创新要求:---------------------------------------------------------------------------------------------- - 2 - 4.设计要求: ------------------------------------------------------------------------------------------------ - 2 - 二、原理和分析 ---------------------------------------------------------------------------------------------- - 2 - 1.开发的技术及功能 ----------------------------------------------------------------------------------- - 2 - 2.设计思路------------------------------------------------------------------------------------------------ - 2 - 3.设计效果图--------------------------------------------------------------------------------------------- - 2 - 三、设计过程 ------------------------------------------------------------------------------------------------- - 3 - 1. 程序思路: -------------------------------------------------------------------------------------------- - 3 - 2.功能实现:---------------------------------------------------------------------------------------------- - 4 - 1)加减乘除求余以及指数运算----------------------------------------------------------------- - 4 - 2)其他运算 ------------------------------------------------------------------------------------------ - 4 - 3)主要方法说明------------------------------------------------------------------------------------ - 5 - 4)程序流程图 --------------------------------------------------------------------------------------- - 5 - 3.算法思路:---------------------------------------------------------------------------------------------- - 6 - 4.数据分析:---------------------------------------------------------------------------------------------- - 7 - 四、设计结果和分析------------------------------------------------------------------------------------------ - 7 - ⒈运行调试------------------------------------------------------------------------------------------------ - 7 - 1)进行加减乘除求余以及指数运算----------------------------------------------------------- - 7 - 2)求倒 ------------------------------------------------------------------------------------------------ - 9 - 3)退格 ------------------------------------------------------------------------------------------------ - 9 - 4)清零 ---------------------------------------------------------------------------------------------- - 10 - 5)求余弦、求正切、对e求幂、求平方根、求自然对数、求倒运算 ------------- - 11 - 6)连续运算(例:2*3*4=24.0)------------------------------------------------------------- - 11 - 7)异常处理(例:求倒时输入数为0) --------------------------------------------------- - 11 - 五、设计体会和小结 -------------------------------------------------------------------------------------- - 12 - 六、参考文献 ----------------------------------------------------------------------------------------------- - 13 - 七、源程序--------------------------------------------------------------------------------------------------- - 13 - 一、设计内容 1.课程设计目的: 1)掌握Java语言的程序设计方法; 2)理论联系实际,进一步提高学生的软件开发技术; 3)培养学生分析、解决问题的能力; 4)提高学生实践论文撰写能力。 2.课程设计任务:

计数器的设计实验报告

计数器的设计实验报告 篇一:计数器实验报告 实验4 计数器及其应用 一、实验目的 1、学习用集成触发器构成计数器的方法 2、掌握中规模集成计数器的使用及功能测试方法二、实验原理 计数器是一个用以实现计数功能的时序部件,它不仅可用来计脉冲数,还常用作数字系统的定时、分频和执行数字运算以及其它特定的逻辑功能。 计数器种类很多。按构成计数器中的各触发器是否使用一个时钟脉冲源来分,有同步计数器和异步计数器。根据计数制的不同,分为二进制计数器,十进制计数器和任意进制计数器。根据计数的增减趋势,又分为加法、减法和可逆计数器。还有可预置数和可编程序功能计数器等等。目前,无论是TTL还是

CMOS集成电路,都有品种较齐全的中规模集成计数器。使用者只要借助于器件手册提供的功能表和工作波形图以及引出端的排列,就能正确地运用这些器件。 1、中规模十进制计数器 CC40192是同步十进制可逆计数器,具有双时钟输入,并具有清除和置数等功能,其引脚排列及逻辑符号如图5-9-1所示。 图5- 9-1 CC40192引脚排列及逻辑符号 图中LD—置数端CPU—加计数端CPD —减计数端CO—非同步进位输出端BO—非同步借位输出端 D0、D1、D2、D3 —计数器输入端 Q0、Q1、Q2、Q3 —数据输出端CR—清除端 CC40192的功能如表5-9-1,说明如下:表5-9-1 当清除端CR为高电平“1”时,计数

器直接清零;CR置低电平则执行其它功能。当CR为低电平,置数端LD也为低电平时,数据直接从置数端D0、D1、D2、D3 置入计数器。 当CR为低电平,LD为高电平时,执行计数功能。执行加计数时,减计数端CPD 接高电平,计数脉冲由CPU 输入;在计数脉冲上升沿进行8421 码十进制加法计数。执行减计数时,加计数端CPU接高电平,计数脉冲由减计数端CPD 输入,表5-9-2为8421 码十进制加、减计数器的状态转换表。加法计数表5-9- 减计数 2、计数器的级联使用 一个十进制计数器只能表示0~9十个数,为了扩大计数器范围,常用多个十进制计数器级联使用。 同步计数器往往设有进位(或借位)输出端,故可选用其进位(或借位)输出信号驱动下一级计数器。 图5-9-2是由CC40192利用进位

c语言程序设计课程计算器设计报告

课程设计说明书 题目计算器程序设计 起讫日期2006 年7月3日至2006 年8月6日 所在院系软件学院 专业机械+软件班级04-2 学生姓名偶偶哦学号 指导教师 2006年8 月日

摘要 当今社会是信息社会,科技经济高速发展的社会!为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。由于它体积小巧,携带方便,价格便宜,构造简单等诸多的优点成为人们生活中的必备品! 随着科技的发展计算器的种类变得更多,功能变得更强大,体积变得更小!电脑的出现改变人们的生活习惯,很多事情都可以电脑来完成!电脑的更大一个优点就是可以通过软件的应用无限的延伸电脑功能的外延!下面我们将用我们学习的c语言编写一个简易的计算器程序!实现简单的初步的计算功能! 本程序的编写基础是Tubro C2.0汉化版,它在tubro c的原有基础上实现了多汉字的支持方便了我们的使用。生成的程序可移植性强兼容性好稳定!现在只实现了加、减、乘、除、求幂、求模,求平方根,求Sin,求Cos,求Log10,以及一个时钟原代码。这个系统是基于软件发展的生命周期来研制的,它可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。但是,每次只能运算一个表达式。不能运算多个表达式。在程序里面在添加一组选择函数即可。本论文主要介绍了本课题的开发背景,开发的过程和所要完成的功能。重点的说明了系统设计思想,设计的步骤、难点技术和解决方案。 关键词:C语言T ubro c 2.0汉化版计算器时钟

目录 第一章综述 (1) 1.1 课题的现实意义 (1) 1.2 软件环境 (1) 1.3 硬件环境 (1) 第二章系统设计流程图 (2) 2.1 系统流程图 (2) 2.2 主要功能表 (2) 第三章系统分析和设计 (3) 3.1 图形的绘制和输出 (3) 3.2 文本的输出显示 (3) 3.3 计算函数的调用 (4) 3.4 程序的运行和退出 (5) 第四章系统测试 (6) 4.1 系统测试 (6) 4.2 调试 (6) 4.3 错误原因分析一 (6) 4.4 错误原因分析二 (6) 第五章用户使用说明书 (8) 5.1 运行Turbo C程序进入计算器界面 (8) 5.2 计算器的使用 (9) 5.3 退出程序 (9) 第六章工作总结 (10) 参考文献 (11) 附录: 源代码

Java计算器课程设计报告 - 副本

JAVA课程设计 小型计算器 学生姓名: 指导教师:李明江 系别:计算机科学系 专业:计算机科学与技术 年级:2008 应用2班 提交时间:2010年 12 月 22日学号:

目录 一概述 (3) 二总体方案设计 (4) 三详细设计 (6) 四程序的调试与运行结果说明.. 10 五课程设计总结 (19) 六附录...... 错误!未定义书签。

一设计任务书 1.程序具备的功能: (1)使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、除运算符;“等于”符号;复位按钮; (2)完成整数、实数的四则运算(加、减、乘、除); (3)通过按钮点击实现数据的复位(清零);(4)实数运算中小数位的精度一致。 2.课程设计的主要设计思想 对于此计算器程序,首先要设计其GUI 界面,总体界面有一个文本框,18个按钮,总体界面用BorderLayout布局。 文本框放置在最NORTH,然后0到9以及+,-,*,/的按钮放置到一个面板Panel 中,添加到整体布局的CENTER,界面设计

完成。 布局设计好后再添加按钮事件。对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。 在进行加、减、乘、除计算时要把点击加、减、乘、除按钮之前的数值保存下来,运算时是这个被保存下来的数值和文本框中的数值加、减、乘、除。 二总体方案设计 1.界面设计 界面设计要求用GUI,界面设计中有用到swing组件的TextField和Button,用到awt 中的BorderLayout和GridLayout布局管理方

基于QuartusII的同步计数器设计

基于QuartusII的同步计数器设计 目录 一、软件及语言概述 二、实验设计 三、学习感悟 四、参考文献 一、软件及语言概述 1.1软件介绍: Quartus II是Altera公司在21 世纪初推出的FPGA/CPLD开发环境,是Altera前一代FPGA/CPLD集成开发环境MAX+PLUS II的更新换代产品,其优点是功能强大、界面友好、使用便捷。它支持原理图、VHDL、VerilogHDL以及AHDL 等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II支持Altera的IP内核,包含了 LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性,加快了设计速度。此外,Quartus II通过和DSP Builder工具与Matlab/Simulink的相结合,可以方便的实现各种DSP应用系统;支持Altera 的片上可编程系统开发,集系统设计、嵌入式软件开发。可编程逻辑设计于一体,是一个综合性的开发平台。 Quartus II有严格的设计流程,分为设计输入与约束、分析和综合、布局布线、仿真及编程与配置等。本次仿真设计所用到的版本为Quartus II 9.0,其用户界面如下图所示: 1.2 Verilog HDL语言概述: Verilog HDL即Verilog硬件描述语言,它主要应用于数字电路和系统设计、数字电路和系统仿真等,即利用计算机和相关软件对用Verilog HDL等硬件语言建模的复杂数字逻辑电路设计进行仿真验证,再利用综合软件将设计的数字电路自动综合,以得到符合功能需求并且在相应的硬件电路结构上可以映射实现的数字逻辑网表,然后布局布线,根据网表和选定的实现器件工艺特性自动生成具体电路,同时软件生成选定器件的延时模型,经过仿真验证确定无误后写入器件中,最终实现电路设计。Verilog HDL语言不仅定义了语法而且对每个语法结构都定义了清晰的模拟、仿真语义。因此用这种语言编写的模型能够使用Verilog仿真

计算器程序设计报告

题目一计算器 1.1 题目简介 用Java语言、MyEclipse工具、设计一个GUI简易计算器,编写计算器的基本运算的程序,用户可以通过鼠标一次输入参加计算的数值,进行加减乘除等混合运算,基本实现计算器的四则运算和三角函数运算功能以及开方和求对数的基本运算。本计算器只适用十进制的运算,不限制十进制的大小。编写本计算器运用java的类得调用和直接在程序中定义类,实现计算器的基本功能,在这个计算器中对于执行的操作可以进行复制和保存以便以后能直接查看运行结果本计算器保存没不得运行结果,只有点清除键是才可以清除每步的结果。 1.2 设计的内容、要求和目标 设计内容:设计一个GUI简易计算器,用户可以通过鼠标一次输入参加计算的数值,进行加减乘除等混合运算。 设计要求:由于现代用户更倾向于由鼠标方便操作的图形用户界面,所以我们采用GUI来实现计算器,并采用Swing组件,AWT事件来处理等实现具体功能。 (1)、应具有相应的界面,可参考下图进行设计:

(2)、操作符号定为:“+”“-”,“*”,“/”等。 (3)、用户通过点击面板中的各种组件输入的表达式,应在上方文本框。 (4)、党用户点击“=”时,文本框中之前的内容应清空,直接显示表达式运算结果。例如:输入表达式“7*8”之后按“=”,显示结果“56”。 (5)、具有菜单栏,内有相应的编辑“复制”、“粘贴”等菜单,提供相应的功能。 设计目标:利用Java语言设计一个简单的计算器,以实现基本的加减乘除功能,还有sin、|cos、tan、log等算术运算;同时实现退格、清零等运算。 1.3总体设计 1)、对计算器面板的整体布局 首先是对计算器的整体面板进行一个简单的设计,整体布局是采用layout (边框布局)布局,对计算器中的一些数字按钮和运算符按钮采用gridlayout 布局(网格布局)。 2)、创建实现程序所需的类 整理思路,确定一个主类CalculatorWindow,然后对Dialog、HandleBack、HandleClear、HandleCos、HandleCot、HandleSin、HandleTan、HandleDigit、HandleDot、HandleDownNumber、HandleEquality、HandleLog、HandleOperation、HandlePOrN、HandlePositiveOrNegative、NumberButton、OperationButton、SelectJTree等类的创建。 3)、对所创建类算法的分析和实现 确定了主类CalculatorWindow,其他类为其所调用。编写各类的实现算法,增加面板所需的按钮,并对程序进行调试运行及分析。

最新光电计数器的设计

光电计数器的设计

北京交通大学 海滨学院 课程设计题目:光电计数器的设计 专业:光电信息工程班级:光电1101 学号: 11141006 姓名:陈国营

摘要 光电计数器的设计可以对某项物件进行计数,计数物件速度可慢,可快,在实际生产生活中具有广泛的应用,对通过的物体进行计数,在生产流水线包装数量控制等领域的应用,既能节省劳动力有能高效地完成任务,其次它也是光电技术的基础。 在光电计数部分我们考虑到脉冲信号的稳定度、方便检测是否能够产生脉冲信号,因此在电压比较器和NE555之间我们选择了NE555,又要利用遮断式红外控制原理对通过的物件计数,为了感应良好,我们使红外发光管与光电接收管相对安放,同时为避免自然光线干扰引起的误计数,同时因实验室条件有限,在光电计数器工作时尽可能的让房间里没有自然光照射进来。本计数器可实现0~99的计数显示。 每当物件通过一次,红外光被遮挡一次,光电接收管的输出电压发生一次变化,这个变化的电压信号通过放大和处理后,形成计数脉冲,去触发一个十进制计数器,便可实现对物件的计数统计。 关键字:计数脉冲感应光电

本课程设计主要是对于电子信息类专业的学生两年多来的专业知识学习的一个考验以及应用,也是相关专业的同学们开启理论通向实践之门的金钥匙,具有十分重要的意义,既能锻炼同学们的动手操作能力,又能反映出同学们对于电子设备的熟练程度及对简单典型电路原理应用和了解。 本课程设计为光电计数器的设计。光电技术是一门得到迅猛发展的学科,已经渗透到许多的相关的科学领域,应用非常的广泛,而具有代表性的是半导体激光器的广泛应用,具有高量子效率的负电子亲和势。光电阴极的光电倍增管和第三代微光像增强器件的实用化,超大规模的CCD面阵的固体摄像器件已在工业和民用领域都得到了广泛应用,在热成像光电中的红外焦平面技术的应用等等。 本文所讨论的光电计数器是一种比较初级的利用光电感应信号发出的脉冲进行计数的一种简单光电系统。

简易计算器的设计与实现

沈阳航空航天大学 课程设计报告 课程设计名称:单片机系统综合课程设计课程设计题目:简易计算器的设计与实现 院(系): 专业: 班级: 学号: 姓名: 指导教师: 完成日期:

沈阳航空航天大学课程设计报告 目录 第1章总体设计方案 (1) 1.1设计内容 (1) 1.2设计原理 (1) 1.3设计思路 (2) 1.4实验环境 (2) 第2章详细设计方案 (3) 2.1硬件电路设计 (3) 2.2主程序设计 (7) 2.2功能模块的设计与实现 (8) 第3章结果测试及分析 (11) 3.1结果测试 (11) 3.2结果分析 (11) 参考文献 (12) 附录1 元件清单 (13) 附录2 总电路图 (14) 附录3 程序代码 (15)

第1章总体设计方案 1.1 设计内容 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除1位无符号数字的简单四则运算,并在6位8段数码管上显示相应的结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的8751单片机,输入采用4×4矩阵键盘。显示采用6位8段共阳极数码管动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,最终选用汇编语言进行编程,并用protel99se涉及硬件电路。 1.2 设计原理 在该课程设计中,主要用到一个8751芯片和串接的共阳数码管,和一组阵列式键盘。作为该设计的主要部分,下面将对它们的原理及功能做详细介绍和说明。 1)提出方案 以8751为核心,和数码管以及键盘用实验箱上已有的器件实现计算器的功能。 2) 总体方案实现 (1)要解决键值得读入。先向键盘的全部列线送低电平,在检测键盘的行线,如果有一行为低电平,说明可能有按键按下,则程序转入抖动检测---就是延时10ms再读键盘的行线,如读得的数据与第一次的相同,说明真的有按键按下,程序转入确认哪一键按下的程序,该程序是依次向键盘的列线送低电平,然后读键盘的行线,如果读的值与第一次相同就停止读,此时就会的到键盘的行码与列码

数字电路实验计数器的设计

数字电路与逻辑设计实验报告实验七计数器的设计 :黄文轩 学号:17310031 班级:光电一班

一、实验目的 熟悉J-K触发器的逻辑功能,掌握J-K触发器构成异步计数器和同步计数器。 二、实验器件 1.数字电路实验箱、数字万用表、示波器。 2.虚拟器件: 74LS73,74LS00, 74LS08, 74LS20 三、实验预习 1. 复习时序逻辑电路设计方法 ①根据设计要求获得真值表 ②画出卡诺图或使用其他方式确定状态转换的规律 ③求出各触发器的驱动方程 ④根据已有方程画出电路图。 2. 按实验内容设计逻辑电路画出逻辑图 Ⅰ、16进制异步计数器的设计 异步计数器的设计思路是将上一级触发器的Q输出作为下一级触发器的时钟信号,置所有触发器的J-K为1,这样每次到达时钟下降沿都发生一次计数,每次前一级 触发器从1变化到0都使得后一级触发器反转,即引发进位操作。 画出由J-K触发器组成的异步计数器电路如下图所示:

使用Multisim仿真验证电路正确性,仿真图中波形从上到下依次是从低位到高位 触发器的输出,以及时钟信号。: 可以看出电路正常执行16进制计数器的功能。 Ⅱ、16进制同步计数器的设计 较异步计数器而言,同步计数器要求电路的每一位信号的变化都发生在相同的时间点。

因此同步计数器各触发器的时钟脉冲必须是同一个时钟信号,这样进位信息就要放置在J-K 输入端,我们可以把J-K端口接在一起,当时钟下降沿到来时,如果满足进位条件(前几位触发器输出都为1)则使JK为1,发生反转实现进位。 画出由J-K触发器和门电路组成的同步计数器电路如下图所示 使用Multisim仿真验证电路正确性,仿真图中波形从上到下依次是从低位到高位触发器的输出,计数器进位输出,以及时钟信号。:

《计算器程序设计》课程设计

成都理工大学 C#计算器 课程设计报告(计算机科学与技术学院) 题目:计算器 班级:XX 姓名:XXX 指导教师:XXX 2013-2014学年度第二学期

目录 1.需求分析 (1) 1.1计算器应用软件的功能分析(二级标题,四号黑体) (1) 1.2计算器软件的功能图 (1) 2.界面设计 (1) 3.功能实现 (2) 3.1计算数字现实的功能代码 (2) 3.2小数点设置的功能代码 (3) 3.3连续运算的功能代码 (3) 3.4实现键盘控制的功能代码 (4) 3.5删除的功能代码 (5) 4.设计总结 (5) 参考文献 (6)

计算器的开发与应用 摘要:计算器的产生和发展是建立在电子计算机基础之上的,现代社会很需要一个健全、高效率的计算器。为了提高自己的实践能力和将来开发一个更实用更全能更智能的计算器,以设计与实现计算器为课题。此次设计的计算器应用软件从visual studio 2012编程环境中开发,是一个简单的窗体应用程序,实现简单的计算器功能。以微软自带的计算器为模板,设计了简单易懂的计算器。这款计算器不仅实现了简单的四则运算的功能,还能连续运算,实现小键盘的操作,光标的转移。虽然这个简单的计算器只能实现这些功能,但是具有简洁的图文外观,即时准确的获得所需要要计算的结果,充分降低了数字计算器的难度和所需要的时间,对人们生活和学习具有有很大的帮助。 关键词:计算器;功能;界面;窗口;事件。 1.需求分析 通过对微软附件计算器软件进行调研、分析,研究,使用。我们了解到了作为一个计算器所应该有的一些简单功能和界面的排版,我们知道了怎样使编写的计算器程序向微软附件计算器靠拢。 1.1计算器应用软件的功能分析 计算器软件的主要功能是: 1)可以显示计算数字 2)可以进行加减乘除四则运算 3)可以实现键盘操控的功能 4)可以进行清零运算 5)可以进行退格键运算 6)可以进行连续计算 1.2计算器软件的功能图 根据以上需求分析,计算器软件功能如图1-1所示。 2.界面设计计算器主界面 显示 计算 数字 连 续 计 算 功 能图1-1计算器功能图 进 行 四 则 运 算 键 盘 操 控 清 零 运 算 退 格 键 功 能

LABVIEW计算器设计报告

虚拟仪器大作业——模拟计算器 班级:电1004 姓名: 学号:20102389

一、设计思想: .创建3个字符串显示控件num1,num2,num3,其中: 1、第一个输入数据存储在num1中 2、第二个输入数据存入num2中 3、将其赋给 num3,并使num2为空,以便输入的数据存入num2 4、所有的运算是在num1和 num3间进行 5、运算结果都赋给result,同时赋给num1,用于下一次的运算 .创建4个布尔开关按钮change,change1,change2,change3,其中: 1、Change的真假用来判断是第一个数据还是第二个数据 2、change1的功能是在输入=,运算完后,不需要初始化即可进行下一次运算 3、change2用来去掉数据小数末尾的0 4、change3用来保证backspace键仅对输入的数据有效,对运算结果无效 .创建2个数值显示控件type1,type2,并分别在其后面板的属性——数据类型——表示法中选择U8其中: 1、type1用来存储运算符号 2、type2用来保证连续“+、-、*、/”的正确性 3、所有的运算结果都赋给result 4、result经过去零处理后得到result1,将数据显示在前面板上。 二、实现过程 1、面板按键的设计及感应 首先,在前面板上建立一个簇 然后在簇中再建立布尔量,复制20个以满足键的需求(0--9十个数字键,一个小数点键,一个等号键,四则运算键,一个开方键,一个平方键,一个倒数键,一个反号键,一个清零键及一个退出键并注意按键的顺序)。 将按键给值并作适当的美化处理

在后面板中通过将簇中元素按产生的顺序组成一个一维数组,这样就实现了每个键与数字(0--20)之间的对应。每次按下一个键时,通过 查找出对应的键并把结果(对应的数字)连接到一个case结构,然后执行对应case结构中的程序,至此就完成了对一个键的感应过程。 2、数字的键入(0~8键入1~9数字) 由于第一个输入和第二个输入所存放的地方不同(第一个存于num1,第二个存于num2→mun3再清空num2),所以有必要对此分开处理。创建2分支(真、假)的case结构。 用change控制分支的选择:在处创建局部变量并转换为读入。由于数字的键入是数据输入,change3用来保证backspace键仅对输入的数据有

my计算器程序设计报告

计算器程序设计报告 计算器是一种在日常生活中很常用的计算工具,它在计算方面给了我们提供很大的方便。本程序的功能包括:(1)加,减,乘,除运算,正弦,余弦,正切,余切,反正切,反余切,反正弦,反余弦,自然对数,以10为底的对数还有阶乘等函数功能。(2)还包括存储清,存储显示,存储相加。 “计算器”是一个关于多种控件,以及控件数组应用的程序,它包含许对字符串的处理,多模块程序设计,数学函数的使用。它所需知识点较多,必须对各个方面都有所了解. 数学模型:主界面 界面:进制转化界面 数学函数代码 代码:存储清代码 进制转化代码 第一步,要编辑计算器界面,如右图, 对于界面上的按钮较多,我们可以分成四组,这就是控件数组的使用,而且每个按钮的属性都一一设置,而且要调入图片.第二个界面如右图 比较简单,只是一些普通的控件. 计算器是一个输入原始数据,运算中间数据和结果数据都显示在窗口顶部的同一个文本框的工具,这就要求我们可以把文本框的内容付给两个不同的变量,对于这一点我们就可以用一个逻辑变量来实现.比如, If not boolean str1=str Else str2=str 计算器的主要功能就是运算,但是任何一个数值的输入都是以字符串的形式进行的,而字符串是无法参与运算的,所以必须用CInt()转换成整形变量,而输出时必须用CStr()转化成字符串的形式输出,更为麻烦的是,在进行进制转换时,两种变量之间的转换更为频繁。在编程过程中要时刻注意!就拿一个简单的程序中的一部分来说吧:

If not boolean then str=str1 Else str=str2 Str=text1.text n=CInt(str) ‘“将其转换成整形变量" ……. t4 =str( ) ‘“ 将返回值转换成字符串" 计算器的功能程序简单易懂,但编制过程极为烦琐,我在编程的过程中,体会最深的就是其过程有重复,但又不得再编,在这里尤其要注意,有些过程虽然相似,但它们却存在着质的区别,就拿删除按扭来说吧, "C","0->M","CE","->"按扭都有删除的功能,在这里我就它们的区别作一下详细介绍: 将"C","CE","->"作为一个控件数组,其程序如下: If not boolean str1=str else str2=str Select Case Index Case 0 str1=" ",str2=" ", Text1.text=" " "C"键 Case1 str=" " "CE"键 Case2 str=Left(str,len(str)-1) "->"键 而"0->M"在另一个数组控件中,其程序的一部分如下: Case0 n4=0: Text1.text="0" 可见它们的代码是存在区别的,这就要求在编程时弄清楚它们的区别,不可想当然把同一种代码复制过来. 这里我再介绍一下小数点的使用 Private Sub Command2_Click(Index As Integer) If Index<10 Then str=str+CStr(Index) "输入数字" Else If InStr(str,".")=0 Then str=str+"." "输入小数点" End If If Len(str)>1 And Left(str,1)="0" And Mid(str,2,1)<>"."Then str=Right(str,Len(str)-1) "删除前面多余的0" End If Text1.text=str "显示输入的数据 " If not boolean Then str1=str Else str2=str "用两个字符串变量存放" End Sub 计算器虽复杂,但大部分还是比较简单的,最难的地方就是进制转换器的编码了,要编好这一部分必须对各进制之间的转换关系了如指掌.其中各个进制都和二进制有着直接的转换关系.而其他三个之间都不可直接进行转换.对于不能直接转化的,可以间接转化,例如,可以将十六进制先转化成十进制然后再转化成八进制. ElseIf Option4 = True Then t4 = "" str = Text1.Text

基于单片机的计数器设计 (1)

百度文库- 让每个人平等地提升自我! - 1 - 湖南科技大学 单片机课程设计 题目基于单片机的计数器设计姓名李建雄 学院机电工程学院 专业测控技术与仪器 学号09030303 指导教师戴巨川 成绩 二〇一二年六月二日

百度文库- 让每个人平等地提升自我! - 2 - 摘要 本设计是根据我们所学习的单片机课程,按照课程要求进行的课程检验。单片 机技术是一个不可或缺的技术,尤其是对于我们测控技术与仪器专业来说它是我们必须要掌握的技能之一,使我们未来工作和生活的根本。现在的社会是一个信息科技高速发展的社会,也是一个电子技术和微机计算机迅速发展的时代,单片机的档次和水平在不断的提高,其应用的领域和范围也越来越广,成为现代电子系统中最重要的智能化核心部分。 随着计数器技术的不断发展与进步,计数器的种类越来越多,应用的范围越来越广,随之而来的竞争也越来越激烈。过硬的技术也成为众多生产厂商竞争的焦点之一。厂商为了在竞争中处于不败之地,从而不断地改进技术,增加产品的种类。 现计数器的种类以增加到:电磁计数器、电子计数器、机械计数器(拉动机械计数器、转动机械计数器、按动机械计数器、测长机械计数器)、液晶计数器等。 计数器的应用范围也遍布印刷、纺织、印染、针织、电缆、电讯、军工、轻工、机械、开关、断路器、矿山、实行多班制的纺织行业的织布机、织带机、制线、制带、造纸、制革、薄膜、高压开关电器产品、试验设备,印刷设备、短路器、医疗、纺织、机械、仓库和码头的货运、行人及车辆过往的数量计数、冶金、食品、国防、包装、配料、石油、化工、发电、机床、仪表、自动化控制等行业。

百度文库- 让每个人平等地提升自我! - 3 - 目录 2.2设计原理 (6) 数码管的介绍 ............................................................................................................................... - 11 -3.3电路仿真. (11)

简单计算器设计报告

简单计算器设计报告 045 一、基本功能描述 通过文本编辑框实现基本整数的加减乘除运算 二、设计思路 如下图是整个程序进行的流程图,基本方法是在ItemText文本编辑框输入字符,程序对字符进行判断,若输入不是数字则提示错误。输入正常时,通过下拉框ComboBox_InsertString 选择相应运算符。点击等号IDC_OK,即可得出运算结果。操作简便,算法简单。 三、软件设计 1、设计步骤 打开Microsoft Visual C++ 6.0,在文件中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名zhoutong及其所在位置,点击确定 1

将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成 MFC AppWizard就建立了一个基于对话窗口的程序框架

四、主要程序分析 1、字符判定函数 BOOL IsInt(TCHAR*str) { int i=atoi(str); TCHAR strtemp[256]; wsprintf(strtemp,"%i",i); if(strcmp(str,strtemp)!=0) { return FALSE; } Else { return TRUE; } } 该函数通过atoi把文本编辑框读取的字符转换为数字,再通过wsprintf把转换数字转换为字符,通过strcmp比较原字符和转换得来的字符。如相同返回true,不通则返回false. 3、运算符选择程序 BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) { HWND hwndComboOP=GetDlgItem(hwnd,IDC_COMBOOP); ComboBox_InsertString(hwndComboOP,-1,TEXT("+")); ComboBox_InsertString(hwndComboOP,-1,TEXT("-")); ComboBox_InsertString(hwndComboOP,-1,TEXT("*")); ComboBox_InsertString(hwndComboOP,-1,TEXT("/")); return TRUE; } 3

100进制同步计数器设计

实验名称:100进制同步计数器设计 专业班级:姓名:学号:实验日期: 一、实验目的: 1、掌握计数器的原理及设计方法; 2、设计一个0~100的计数器; 3、利用实验二的七段数码管电路进行显示; 二、实验要求: 1、用VHDL 语言进行描写; 2、有计数显示输出; 3、有清零端和计数使能端; 三、实验结果: 1. VHDL程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; PACKAGE my_pkg IS Component nd2 -- 或门 PORT (a,b: IN STD_LOGIC; c: OUT STD_LOGIC); END Component; Component led_decoder PORT (din:in std_logic_vector(3 downto 0 ); --四位二进制码输入 seg:out std_logic_vector(6 downto 0) ); --输出LED七段码 END Component; 1

Component CNT60 --2位BCD码60进制计数器 PORT ( CR:IN STD_LOGIC; EN:IN STD_LOGIC; CLK:IN STD_LOGIC; OUTLOW:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); OUTHIGH:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) ); END Component; Component CNT100 --带使能和清零信号的100进制计数器PORT ( CLK:IN STD_LOGIC; EN:IN STD_LOGIC; CLR:IN STD_LOGIC; OUTLOW:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); OUTHIGH:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) ); END Component; Component freq_div --50MHZ时钟分频出1Hz PORT ( clkinput : IN STD_LOGIC; output : OUT STD_LOGIC ); END Component;

C#计算器程序设计

C#计算器程序设计 1)创建项目 ①单击文件-》新建-》项目,弹出如下对话框 ②模板中选择“windows窗体应用程序”-》名称中输入“jsq”-》位置单击“留了”-》选择“J:\新建文件夹”-》单击确定按钮 2)计算器界面设计

①向Form1中添加1个TextBox控件,1个Label控件和27个Button控件,控件布局如图所示 ②修改27个Button控件的Text属性,结果如图 ③Label控件的BorderStyle属性选择“Fixed3D”-》Text属性设置为“”-》Form1的Text属性设置为“计算器”-》Backspace控件、CE控件等的ForeColor属性选择“Red”,结果如图:

3)显示窗口数据对齐方式设置 TextBox控件的TextAlign属性选择“Right”;4)数字键程序设计 ①双击”0”按钮控件-》编写代码如下: if (textBox1.Text != "0")//不能连续多个0出现 { textBox1.Text += "0";//添加“0”数字 } ②双击”1”按钮控件-》编写代码如下: if (textBox1.Text == "0")//数字前面不能出现多个0 { textBox1.Text = "1"; } else { textBox1.Text += "1";//添加“1”数字 } ③双击”2”按钮控件-》编写代码如下: if (textBox1.Text == "0")//数字前面不能出现多个0 { textBox1.Text = "2"; } else { textBox1.Text += "2";//添加“2”数字 } ④双击”3”按钮控件-》编写代码如下: if (textBox1.Text == "0")//数字前面不能出现多个0 { textBox1.Text = "3";

相关文档