




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
简易秒表的制作完结优质资料(可以直接使用,可编辑优质资料,欢迎下载)
简易秒表的制作完结优质资料(可以直接使用,可编辑优质资料,欢迎下载)课题设计论文课题名称:简易秒表的制作班级:P14电气2班姓名:潘娟康盼红学号:202103170131202103170130指导教师:李红艳2021年12月28日一、设计任务与设计要求1、设计任务用8051单片机设计4位LED数码管显示“分值”和“秒值”。2、设计要求用8051单片机,采用动态扫描的方式,用4位LED数码管显示秒值,晶振采用6赫兹。具体要求如下:a.从右向左显示秒值的个位、十位,分值的各位和十位,个位能向十位进位。b.上电后首先显示00.00,表示从00.00秒开始计时,当时间显示到59.59时,4位显示都清零从头开始。c.以三个独立式按键实现复位、启动、停止。二、设计方案本设计分为时钟电路、复位电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式。复位电路中的“复位”按钮是按键手动复位,它有电平和脉冲两,种方式,本设计选择了按键电平复位电路,显示电路所用的数码管有共阴和共阳之分,不管使用何种数码管,P0口作为I/O使用时都是需要上拉电阻才能驱动数码管。另外,因为单片机的4个并行I/O口的输出电流一般是1mA,短路电流为4mA左右,而数码管的最少驱动电流也需要10mA,因而不管在使用共阴数码管时,单片机输出口也必须使用上拉电阻提高输出电流,才能驱动数码管。为了使电路简单化,本设计选用共阳数码管。使用动态显示方式是将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,而各位的共阴或共阴极分别由相应的I/O线控制,形成各位的分时选通。根据硬件设计,由单片机的p2口控制位码输出,p0口控制段码输出。动态显示程序中,在单片机内部RAM中设置待显示数据缓冲区,由查表程序完成显示译码,将缓冲区内待显示数据转换成相应的段码,再将段码通过8051的p0口输出:位码数据由累加器循环左移指令产生,再通过p2口输出。整体程序主要分为3部分:主程序、显示子程序、和定时器中断程序。主程序主要是初始化部分和不断调用动态显示子程序部分。动态显示子程序完成4位LED的轮流位扫描,它被主程序不断调用,以保证稳定可靠的显示。显示时间的刷新由定时器中断产生,定时器每秒50ms中断一次,当中断20次后(即1s后),对时间单元(秒计数单元、分计数单元)进行更新,然后通过拆字子程序将时间单元里面的十六进制数拆开为两个BCD码,并送到显示缓冲区。返回主程序后显示缓冲区的待显示数据被刷新一次,数码管相应的显示数值也就随之发生变化。通过键盘扫描方式取得KE0、KE1、KE2的键值,用键盘的中断处理程序实现秒表的启动、停止、复位。三、主要硬件电路设计1、单元电路设计(1)时钟电路注://单元电路设计中的网络标号的数字即为单片机的管脚//时钟电路如图所示,时钟电路的晶振频率越高,系统的时钟频率越高,单片机的运行速度也就越快。晶振频率根据设计需要设为6MHz,又根据谐振性质,电路中的电容C1、C2选择为30pF左右。该电容的的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。(2)复位电路复位电路如图所示,单片机复位条件是,必须使RST\VPD或RST引脚9加上持续2个机器周期的高电平。在本次设计中时钟频率为6MHz,每个机器周期为2us,则需要4us以上时间的高电平,在RST引脚出现高电平后的第二个机器周期执行复位。(a)为上电复位电路,它是利用电容充电来实现的。在接电瞬间,RST端的电位与VCC相同,随着充电电流的减少,RST的电位逐渐下降。只要保证RST为高电平的时间大于两个机器周期,便能正常复位。(b)为按键复位电路,该电路除了具有上电复位功能外,若要复位只需按图中的RESET键,此时电源VCC经电阻R1、R2分压,在RST端产生一个复位高电平。(3)显示电路4位LED显示的位码由单片机的P2口输出,段码由P0口输出,P2口线与LED之间接有500欧母限流电阻;LED为共阳极数码管,显示方式为动态显示方式;3个按键可以采用独立式键盘,其中两个按键分别连接到外部中断INT0、INT1,第3个按键连接到定时器1的T1端口,以中断方式实现键盘的扫描。动态显示程序中,在单片机内部RAM中设置待显示数据缓冲区,由查表程序完成显示译码,将缓冲区内待显示数据转换成相应的段码,再将段码痛过8051的P0口输出;位码数据由累加器循环左移指令产生,再通过P2口输出。2、电路元件介绍51单片机的引脚图8051微控制器属于MCS-51系列,自1980年开始由inter公司设计以来,由于其完善的指令集,在嵌入系统中占有很大的市场。其资源包括8K的程序存储器,1K的数据存储器,两个16bit的计数控制器和四组八位的通用I\O口。CPU结构:8051内部CPU是一个字长为二进制8位的中央处理单元,也就是他对数据的处理是按字节为单位进行的。8051内部CPU也是由运算器、控制器和专用寄存器组三部分电路组成。存储器:标准8501单片机在物理上有4个存储空间:片内程序存储器和片外程序存储器、片内数据存储器、片外数据存储器。I\O输入、输出端口:1、P0.0~P0.7P0口位双向口线(在引脚的39—32号端子)。2、P1.0~P1.7P1口8位双向口线(在引脚的1—8号端子)。3、P2.0~P2.7P2口8位双向口线(在引脚的21—28号端子)。4、P3.0~P3.7P3口8位双向口线(在引脚的10—17号端子)其中单片机的P3口有第二功能:8051单片机P0、P1、P2、P3口介绍:P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入端用。在访问外部数据存储器或程序存储器时,P0口被分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流。RST——复位端:当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。数码管数码管由8个发光二极管构成数码管又分为共阴极和共阳极二种结构。共阳极数码管的8个发光二极管的阴极连接在一起,通常接高电平,其他管脚接段驱动电源输出端。当某段驱动电源的输出端为低电平时,该端所连接的字段导通并点亮。共阴极数码管的8个发光二极管的阴极连在一起,通常接低电平,其他管脚接段驱动电源输出端当某段驱动电路的输出端为高电平时,该端所连接的字段导通并点亮。元件清单元件名称数量备注元件名称数量备注数码管4块80c511块按钮3个电容2个33pF电阻2个电容1个100uF晶振1个6MHz四、主要软件电路设计1、资源分配表名称地址分配用途初始化值MSEC20H定时器50ms计数单元14HSECOND21H秒计数单元00HMIN22H分计数单元00H30H~35H显示缓冲区30H:秒的个位31H秒的十位32H:分的个位33H分的十位00H40H以上堆栈区2、程序流程图显示子程序流程图主程序流程图开始显示子程序流程图主程序流程图开始定时器中断初始化秒单元初始化显示缓冲区初始化子程序入口保护现场显示初始化查表取字型码段码送p0口位码送p2口延时显示位码右移显示缓冲区下一位四位显示完?保护现场返回启动定时器调用显示子程序定时器中断子程序1s到吗?定时器中断子程序1s到吗?调用拆字子程序60分到吗?恢复现场调用拆字子程序调用拆字子程序置定时器初始值保护现场中断入口调用拆字子程序60s到吗?秒清0调用拆字子程序分单元加1调用拆字子程序分单元清0返回置50ms计数初始值秒加1源程序设计如下:MSECEQU20HSECONDEQU21HMINEQU22HORG0000HAJMPMAINORG0003HAJMPKE1ORG000BHAJMPCONTORG0013HAJMPKE0ORG001BHAJMPKE2MAIN:MOVTMOD,#61HMOVTH0,#9EHMOVTL0,#58HMOVTH1,#0FFHMOVTL1,#0FFHMOVSECOND,#00HMOVMIN,#00HMOVMSEC,#14HMOVSP,#3FHMOV30H,#00HMOV31H,#00HMOV32H,#00HMOV33H,#00HMOVIE,#8FHSETBTR1START:LCALLDISPSJMPSTARTDISP:MOVR0,#30HMOVR7,#00HMOVR2,#04HMOVR3,#08HMOVA,@R0MOVP2,#0FFHDISP1:MOVDPTR,#TABMOVCA,@A+DPTRMOVP0,AMOVA,R3MOVP2,ADJNZR7,$DJNZR7,$RRAMOVR3,AINCR0MOVA,@R0DJNZR2,DISP1RETTAB:DB0C0H,0F9H,0A4H,0B0H,99HDB92H,82H,0F8H,80H,90HCONT:PUSHACCMOVTH0,#9EHMOVTL0,#58HDJNZMSEC,RNMOVMSEC,#14HINCSECONDMOVA,SECONDMOVR1,#31HLCALLBINBCDMOVA,SECONDCJNEA,#60,RNMOVA,#00HMOVSECOND,AMOVR1,#31HLCALLBINBCDMOVA,MINCJNEA,#60,RNMOVA,#00HMOVMIN,AMOVR1,#33HLCALLBINBCDRN:POPACCRETIBINBCD:MOVB,#10HDIVABMOV@R1,ADECR1MOVA,BMOV@R1,AKE0:SETBTR0RETIKE1:CLRTR0RETIKE2:MOVSEC,#00HMOV30H,#00HMOV31H,#00HMOV32H,#00HMOV33H#00HRETIEND设计总结首先,通过这次应用系统设计,在很大程度上提高了自己的独立思考能力和单片机的专业知识,也深刻了解写一篇应用系统的步骤和格式,有过这样的一次训练,相信在接下来的日子我们都会了,而且会做得更好。写完这篇设计报告,我思考了很多关于单片机的设计问题。首先是一个能够实际用于生产的设计的完成,单片机设计也是需要团队合作的,一个大的,完美的系统不太可能由一个人独力完成。然后单片机设计成本控制是一个非常重要的部分,单片机的特点之一是价格便宜。还有功耗控制,功耗控制好第一是省电,第二是能提高稳定性,因为电流大的会发热,发热高会引起诸多问题。单片机在我们的生活中已经无处不在,家用电器基本上都是有单片机做控制电路的。比如全自动洗衣机,遥控器等等。电脑上的每一个部件也是一个单片机。在这里举例这么多单片机是为了说明单片机市场大。作为新时代的大学生,我们不可以学了技术不知道怎么转化为实际产品,要学以致用才行。南昌航空大学南昌航空大学14数字秒表的设计与制作南昌航空大学测光学院110812班魏铄岩
课程设计论文题目:数字秒表的设计与制作学院:测试与光电工程学院专业名称:测控技术与仪器学生姓名:魏铄岩班级学号:11081211指导教师:金信鸿二〇一四年六月数字秒表的设计与制作学生姓名:魏铄岩班级:110812—11指导老师:金信鸿摘要:通过本电路掌握rs触发器,单稳态触发器,时针发生器及计时器,译码显示单元电路的应用,u1a,u1b构成基本rs触发器,其作用是启动和停止秒表工作,按动k2,u1a-3为高电平,u1b-6为低电平,计数停止。按动k1,计数器清零并开始计数。U2a,u2b构成微分型单稳态触发器,其输入触发负脉冲加到计时器的清除端mr。其职能是为计数器提供清零信号。Ne555构成多谐振荡器,调节rl可以使得555输出100hz的矩形波,u6,u7,u8构成计数器及分屏器。74ls160为同步十进制加法计数器.u8作为十分频器,对100hz信号进行十分频,得10hz矩形波,即在其进位输出端tc取得0.1秒矩形脉冲信号,计数器u6,u7接成8421码十进制形式。同时计数器u7又经十分频得到1秒的矩形脉冲信号作为u6的时针信号.计数器u6,u7分别作为秒表和0.1秒位数器他们的输出端与译码单元的对应输入端连接,可现实0.1-9.9秒数字。U4,u5和数码管形成显示单元,74ls247为bcd码输入的四线-七段译码器,数码管采用共阳数码管.关键词:rs触发器,单稳态触发器,时针发生器及计时器,译码显示单元电路指导老师签名:课程设计任务书数字式秒表的设计(一)、任务和要求:设计并制作一个数字式秒表,要求如下:1、用三位数码管及一个LED发光二极管显示秒表计时,格式如下:秒十位秒个位秒十分位○↑分开机时数码管显示000,LED灯灭;当计时超过59秒时,LED灯亮;计到1分59秒时,过一秒LED灯灭,同时数码管重新计时显示。计时最小单位为0.1秒。2、具有如下功能键:开始/清零键:按第一下时计时开始,同时显示;按第二下,停止计时恢复到初始状态;固定显示键:按第一下时,显示固定,但计时仍继续;再按下时,显示从新时间开始。3、要求自制0.1秒信号源。4、设计并制作本电路所用直流电源。(二)、提示和参考文献直流稳压电源见参考资料P23《数字电子技术实验任务书》实验六前言课程设计是针对某一理论课程的要求,对学生进行综合性实践训练的实践教学环节,可以培养学生运用课程中所学的理论知识与时间紧密结合,独立地解决实际问题的能力。本次课程设计的数字式秒表的电路是利用不同功能的芯片和逻辑电路构成的数字电路,其中所需的芯片如计数器、译码器、锁存器等,它与我们所学的数电、模电密切相关。数字、模拟电子技术是电子、通信专业的重要基础课程,其特点之一是实践性强,因此电子电路课程设计也是其教学过程的重要组成部分。课程设计的目的及意义:1、基础知识更深层次的理解和掌握;2、逻辑思维的培养和锻炼;3、各学科之间的联系与整合;
4、培养严谨的治学态度和优良的学习作风;5、培养各小组成员之间的团结协作精神。电子技术综合课程设计应达到如下基本要求:1、综合运用所学到的理论知识(比如数、模电)去独立完成一个设计课题;2、通过查阅手册和文献资料,培养学生独立分析和解决实际问题的能力;3、进一步熟悉需用电子器件的类型和特性,并掌握合理选用元器件的原则;4、学会电子电路的安装与调试技能;5、进一步熟悉各种电子仪器(如示波器)的正确使用方法;6、学会撰写课程设计总结报告;7、培养严肃认真的工作作风和严谨的科学态度。做课程设计的我们也应该做到以上基本要求,努力完成此次课程设计,以达到此次课程设计的意义。在此非常感谢指导老师的耐心教导,以及组员们的竭力协作。目录课程设计任务书1前言21、方案的论证和选择51.1整体结构框图51.2设计方案51.3方案的选择72、单元电路的设计72.1电源的设计72.2信号源的设计(0.1s)82.3控制电路的设计82.3.1开始/暂停计时开关82.3.2清零开关92.4显示电路的设计92.4.1六进制计数器的设计10十进制计数器的设计11译码锁存电路设计123、软件仿真123.1仿真软件的介绍12multisim简介123.1.2proteus7简介123.2电源的仿真133.3信号源仿真143.4显示和控制电路的仿真143.5总体电路图初稿164、电路的装调和数据分析174.1电源的装调174.2信号源的装调174.3显示译码锁存电路的装调174.4控制电路的装调174.5整体电路装调184.6数据处理184.7改进措施185、总结196、附录:216.1总体电路图216.2元器件清单226.3芯片管脚图23参考文献:261、方案的论证和选择1.1整体结构框图根据任务书的要求,我们的整体思路框图如图1所示:图1数字秒表组成框图1.2设计方案这次我们组设计的数字秒表实际上是一个计数及其一些简单的控制电路,对10HZ频率的信号进行计数、锁存、清零及其显示。对10HZ时间信号必须做到准确稳定,通常使用石英晶体振荡器电路构成数字钟。但是在要求不高的情况下也可用555定时器构成的信号源。再对该信号进行分频使之成为有用信号及10Hz信号,再用计数器对其进行计数,用译码显示电路进行显示,即可完成。该系统是否能满足最终要求最重要的是信号源产生的信号是否稳定,所以方案有以下两种:方案一使用具有译码、锁存功能CD4511,计数器74LS160来设计显示控制部分74LS16074LS16055574LS16074LS160CD4511CD4511CD451174LS76方案二使用单独的芯片,译码驱动器74LS47,锁存器74LS373,计数器74LS160设计的显示控制部分55555574LS16074LS16074LS16074LS16074LS37374LS4774LS4774LS37374LS4774LS3731.3方案的选择方案一和方案二的不同主要是译码和锁存部分。方案一是用CD4511,该芯片集译码和锁存于一体,使用的芯片少,使电路大大的简化,总体的设计比较合理。方案二使用了译码器和锁存器独立的设计,即译码器用74LS48,而锁存器用74LS373组合起来对计数器进行操作,而且方案二多了一片74LS160,这片74LS160主要使用其清零端对二极管进行清零操作。方案二总体来说使用芯片较多,布线较麻烦。最终考虑到实验室没有CD4511,于是只好采用方案二。2、单元电路的设计2.1电源的设计根据实验要求必须接入是220v的交流电,而实验所用电源都使直流5v,所以需要一个8-9v的变压器,变压器只能转化成交流电,故此处可使用整流电路加上滤波和稳压就可以得到所需电压。它的一般设计步骤如下:变压器得到可用交流电;经过整流二极管对其整流;再用电容对其滤波;最后用7805稳压系统对其进行稳压。其电源的总电路图如图2所示:图2电源电路图2.2信号源的设计(0.1s)555定时器是一种多用途的数字-模拟混合集成电路,用它能方便的构成施密特触发器、单稳态触器和多谐振荡器。由于使用灵活方便,所以它在波形的产生与变换、测量与控制、家用电器、电子玩具等许多领域得到广泛的应用。实验所需信号时频率为10Hz的信号,故用555定时器做一个占空比为1/2,周期为0.1s的信号源,具体电路图如图3所示:图30.1s信号源2.3控制电路的设计开始/暂停计时开关本设计使用的是双JK触发器,属下降沿触发的触发器。它的1Q输出端接8D锁存器74LS373的LE端来对译码器74LS47进行锁存,当下降沿到来的时候,从而达到固定显示的目的。清零开关JK触发器的2Q输出端接计数器74LS160的RD非端,当下降沿到来的时候,从而使计数器清零。通过接入脉冲式开关及其上拉电阻来产生脉冲,再将JK触发器接成T触发器,这样保证了有单脉冲,之后电路状态必翻。如图4所示,J和K都必须接高电平保证触发器成为一个T触发器使之成为必翻电路。当脉冲开关没按下时时钟信号是一个低电平;当脉冲开关按下时时钟信号由低电平变成高电平,导致Q也有相应的变化。这样就可以手动控制电路状态。图4控制电路2.4显示电路的设计计数器是数字系统中使用最多的时序电路。它是由触发器和控制门组成。它不仅可以用来计数,还可以用于数字系统的定时、分频执行数字运算等。计数器的种类繁多,分类方法也有多种。按计数器中的触发器翻转次序可分为异步和同步计数器;按计数器的编码方法分为二进制、十进制和其它进制计数器;按计数过程中的数字增减分为加法与减法计数器。本次课设所用的74LS160就是同步置数、异步清零的。因为74LS160兼有异步清零和同步置数功能,所以置零法和置数发均可采用。由于置零法信号随着计数器被置零而立即消失,所以置零信号持续时间极短,如果触发器的复位速度有快有慢,则可能动作慢的触发器还未来得及复位,置零信号已经消失导致电路误动作,因此这种接法的电路可靠性不高。为了克服这一缺点在本次设计中采用置数法来设计电路。六进制计数器的设计这部分是由74LS160N、74LS00N、74LS48、4205共阴数码管和74LS373组成。由于74LS160N计数器是一个十进制的、异步清零的,当其第六个状态到达时必须清零。设计时将74LS160的置数端全部接地,输出端Q2,Q3端经与非门接到LOAD端,使其第六个状态到达时整体置零。具体电路图如图5所示:图5六进制电路图十进制计数器的设计这部分是由74LS160N、74LS48、4205共阴数码管和74LS373组成。设计时将74LS160的置数端全部接地,由于74LS160是一个十进制计数器所以可以直接连接,LOAD接高电平。故电路如图6所示:图6十进制电路译码锁存电路设计在数字系统中常常需要将测量或处理的结果直接显示成十进制数。为此,首先将BCD码表示的结果送到译码器进行译码,用它的输出去驱动显示器件,由于显示器的工作方式不同,对译码器的要求也就不同,译码器的电路也不同。具体接法在十进制计数器设计跟六进制计数器设计中都已连接好。根据74LS373所能实现的功能,在74LS373的OE端接地,LE端接控制端,受开关的控制,当触动开关使下降沿到来,74LS373工作在锁存状态下,从而达到锁存的的功能。当74LS373的LE端接高电平的话,芯片为直通的,输入跟输出保持一致。译码驱动器74LS48驱动的是共阴数码管,所以接共阴数码管。将芯片悬空的控制引脚统一接高电平以免引起误差。具体图形参照图5、图6。3、软件仿真3.1仿真软件的介绍multisim简介仿真软件NICircuitDesignSuite(NI电路设计套件)是美国国家仪器(NationalInstrument简称NI公司)下属的ElectronicsWorkbenchGroup推出的以Windows为基础的仿真工具,它可以实现对电路原理图的图形输入、电路硬件描述语言输入方式、电路分析、电路仿真、仿真仪器测试、射频分析、单片机分析、PCB布局布线、基本机械CAD设计等应用。NI电路设计套件包含下列ElectronicsWorkbench软件产品:NIMultisim、NIUltiboard和NIMultisimMCUModule(以前被称为MultiMCU)。NIMultisim10.1特点:丰富的元器件,提供了世界主流元件提供商的超过16000多种元件,同时能方便的对元件各种参数进行编辑修改,能利用模型生成器以及代码模式创建模型等功能。强大的仿真能力,以SPICE3F5和Xspice的内核作为仿真的引擎,通过Electronicworkbench带有的增强设计功能将数字和混合模式的仿真性能进行优化。包括SPICE仿真、RF仿真、MCU仿真、VHDL仿真、电路向导等功能。proteus7简介ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。④具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。3.2电源的仿真图7电源仿真图电源仿真用multisim10.1进行,可以稳定输出直流5v电压,如图7所示。3.3信号源仿真图8信号源仿真图图9信号源波形图信号源仿真要求得到10Hz矩形波,用图8所示电路在multisim10.1中仿真,就得到如图9所示的矩形波。3.4显示和控制电路的仿真由于显示部分跟控制电路仿真时很难单独来完成,所以将显示控制部分一起仿真图10显示控制电路图显示控制电路图是在Proteus7中仿真,可得到实验要求显示的电路如图10,也可通过开关控制电路的开始、清零和锁存。3.5总体电路图初稿仿真软件中的空间有限,由于我们所使用的元器件比较多,在proteus7中很难清楚的表示出来,所以将电源部分省略。图11总体电路草图4、电路的装调和数据分析4.1电源的装调做电源时,因为当时设计时使用的是IN4007,在领器件时,考虑到使用整流桥方便,便更改为整流桥。但连接时,对整流桥不熟,便采用逐脚测试,试出了正确引脚接法。4.2信号源的装调接好信号源纸都一直没有输出信号,我们检查了连线没有问题之后,加发光二极管测试输出信号,结果没有显示,经过大家的分析,调整最后才发现原来是二极管接反了,改正之后信号源正常工作。在信号源的输出过程中测得信号源的输出脉冲比0.1秒稍慢,这是由于在领元器件的时候我们需要使用的72.15KΩ的电阻没有,结果我们领到得是75KΩ的电阻,导致信号源的输出稍有误差。4.3显示译码锁存电路的装调在调试显示部分的时候,我们设计仿真的时候用的是74LS48共阴驱动译码器,在元器件清单上写的是共阴数码管,结果领器件时没有74LS48只好用74LS47代替,在测试时数码管一直不亮,在检查连线没有问题之后,一致认为是数码管出现问题,经过查阅资料跟请教同学,才知道数码管应该选用共阳的,在替换了数码管之后显示部分才有所显示。在连线部分也出现了一些问题,将74LS47的输出与BCD数码管的输入接错,导致我们的数字显示为乱码,经过仔细的检查,我们将接错的线纠正了之后数码管才正常显示。4.4控制电路的装调我们连好电路图并检查无误,但是开关部分却不起作用,经过排查才发现时面包板的问题,在移动电路重新插好之后电路正常工作。在控制电路部分我们刚开始给JK触发器的CLR直接接高电平,结果在测试的时候我们设置的开始开关不起作用,插上电源后计数器就直接开始计数,而且初始状态并非000而是一个随机的数字,说明计数器刚一开始没有达到一个稳定的状态。经过老师和同学的指点,我们在CLR端加电阻接高电平加电容接地,使得初始状态达到一个稳定的状态000。4.5整体电路装调在整体电路的装调过程中,将之前独立的部分连接起来,将电源与信号源首先连接起来,然后将显示及控制部分的接高电平和低电平的地方跟电源连接好。再将信号源的输出信号加在74LS160的CLK端,控制电路中JK触发器的Q1端接74LS373的LE端从而达到锁存的目的,Q2端接端,做为清零信号。在整体电路的链接过程中,由于刚开始的时候各个模块是相对独立的,并且各部分的连线比较复杂,连线时要仔细认真,各部分的连接线一定要接在对应位置,布线要合理,面包板的空间比较有限,尽量使得布局看起来整齐简洁。当我们把各自的单元电路图连接在一起时,就产生了问题,数码管虽然显示正常,但与实际的秒表误差太大,因此我们就想办法,最后我们知道那是信号源的问题,信号源的周期有点大,因此我们就调电位器,当调到70K到75K之间的时候,数码管的显示才与秒表的误差不到1秒,最后一个问题就是接通电源好数码管显示不是三个0,最后通过大家的意见,在JK触发器上加了个RC振荡回路后,再试以后,终于成功了。4.6数据处理因为我们需要0.1秒的信号源,占空比为1/2。由公式充电时间:T1=R1CLn2。而放电时间:T2=R2CLn2。输出脉冲的占空比为:Q=R1/R1+R2当Q=1/2时,R1=R2,电路的振荡周期为:T=T1+T2=(R1+R2)CLn2=1/2电容C=1uF,代入数值得:R1=R2=72.15K。4.7改进措施开始设计的控制电路给端直接加高电平,结果使得初始状态不稳定,最后在端加电阻接高电平并且加电容接地,使得初始状态达到稳定值,再将Q2加到74LS160的端。电路图如图12所示:图12清零改进图5、总结通过这次对数字电子钟的设计作,让我了解了电路设计的基本步骤,也让我了解了关于数字钟的原理与设计理念。在这次课程设计作业的过程中由于在设计方面我们没有经验,理论基础知识掌握得不牢固,在设计中难免会出现这样那样的问题:在选则74LS160的进位及连接方式时,还有74LS373和74LS47的工作原理及管脚图的诸多方面;其次在确定设计方案时,拖了好久,比如所开关运用触发器的选择上面等,同学们在这方面的知识比较缺乏,幸好得到了同学的帮助,找到了方法,把问题解决了;再次,在控制电路中也遇到了很多问题,比如说,如何实现任务书上的要求的功能如何实现,怎样用7476来实现控制电路,在同学的帮助下逐步解决了。这些都暴露出了前期我在这些方面知识的欠缺和经验的不足,对于我来说,收获最大的是方法和能力。这次课设是我们第一次使用仿真软件进行设计的,从这次的仿真中,我发现仿真和实际的电路也有不少差别,仿真的电路图放在实际中不一定就可以用,因为仿真软件会帮你把一些细小部分自动完善,但实际连接的电路就不能按照预定目标实现,比如我们设计的显示电路在仿真软件中正常运行着,但实际连好后,却不能实现开机清零功能,最后我们在同学的帮助之下把电路进行了完善,才得到我们预期的电路。在整个课程设计的过程中,我发现我们在经验方面十分缺乏,空有理论知识,没有理性的知识,有些东西可能与实际脱节。我们最初的设计就因为器材的限制而无法实现,而且通过对此课程的设计,我不但知道了以前不知道的理论知识,也巩固了以前知道的知识。最重要的是在实践中理解了书本上的知识,明白了学以致用的真谛。也明白老师要求我们做好这个课程设计的原因。教会我们如何运用所学的知识去解决实际的问题,提高我们的动手能力。总体来说,我觉得像课程设计这种类型的作业对我们的帮助还是很大的,它需要我们将学过的相关知识系统地联系起来,从中暴露出自身的不足,以待改进!6、附录:6.1总体电路图6.2元器件清单元器件名称型号数量JK触发器74LS761片与非门74LS001片BCD七段数码管SM41053片电阻75KΩ、1个电阻1KΩ2个面包板2个发光二极管1个导通二极管1个开关2个555定时器1个整流桥1个计数器74LS1604片译码驱动器74LS473片锁存器74LS3732片稳压管78051个陶瓷电容1μF2个陶瓷电容0.047μF1个陶瓷电容0.01μF1个电解电容2200μF2个电解电容1000μF1个电位器100KΩ2个变压器次级线圈的电压为9v1个电源线1条导线若干6.3芯片管脚图74LS4774LS37312345678123456789101112131474LS001A1B2A2B2YGND3Y3A3B4A4BVCC1Y4Y74LS00是四二输入与非门。74LS1601123456789101112131474LS160RDCPD1GNDEPVCCD01516D2D3LDETQ3Q2Q1Q0CORDLDETEPCPD3D2D1D0Q3Q2Q1Q00××××××××000010××↑DCBADCBA110××××××保持11×0×××××保持1111↑××××计数74LS160功能表74LS7674LS76芯片管脚图74LS76真值表7805其中1脚是输入,2脚是接地,3脚是输出。BCD七段显示数码管参考文献:[1]华成英,童诗白.模拟电子技术基础.四版.北京:高等教育出版社,2006.[2]阎石.数字电子技术基础.五版.北京:高等教育出版社,2006.[3]何碧华.数字电子技术实验指导书.电工电子实验指导中心,2021.JJINGCHUUNIVERSITYOFTECHNOLOGY《一个简单的计算器设计》课程设计报告学院:计算机工程学院学号:2012304030223姓名:朱钟雄专业年级:12计算机应用技术2班指导教师:游明坤时间:2014年12月25日基于对话框的计算器MFC方法实现随着社会的发展,人们在日常生活中经常需要用到计算器来进行简单或者复杂的运算,计算器在人们生活中的地位也越来越重要.简单的计算器能实现加、减、乘、除、开方、平方等运算。学习了C++的程序设计语言这门课程,可以利用基于VC的MFC方法制作一个简易的计算器,实现基本的运算功能,从而满足生活中的需要,降低计算的难度。一.面向对象的程序设计方法区别与面向过程的“先功能后数据”思想,面向对象的程序设计方法把状态(数据)和行为(功能)捆绑在一起,形成了对象。当遇到一个具体的问题时,我们只需要将一个系统分解成一个个的对象,同时将状态和行为封装在对象中.
面向对象的程序设计方法具有三个基本特点:封装、继承和多态.
(1)
封装性
封装是一个用来指代将对象的状态和行为捆绑到一个单一逻辑单元的机制的正式术语。它不是面向对象语言所特有的,面向过程的C语言用结构封装了数据,函数封装了逻辑。但是面向对象封装了两者,从这种意义上来说,面向对象的封装更加完美。
出于一些安全性与方便性的考虑,对象经常会限制对它们特征(包括属性和方法)的访问,这种限制称为信息隐藏。作为对象的抽象,类通常只公开对象可以公开的东西,主要是一个特定对象对系统的服务,而隐藏执行服务的内部细节和为了完成这些服务而设计的数据。
(
2)
继承性
继承是定义新类的一种机制,使用这种机制创建新类时只需要声明新类和已创建类之间的差别。
对于一个特定的继承关系,我们将创建的新类称为子类(subclass),被继承的原始类称为超类(superclass).子类可以使用超类定义属性和方法,也可以自己定义新的属性和方法。超类的特征不会受到子类的影响.
继承带来的第一个且是最显而易见的好处是减少了代码冗余,因此也减轻了需要改进或重写代码时的负担.
进一步地,子类会比不使用继承时更加简洁,这点应当不难理解;通过继承可以不加修改地重用和扩展已经彻底测试的代码,这避免了工程性的组装对已经完成测试代码的影响;最好的一点,即使没有已有类的源代码,仍然可以从已有的类中派生出新类,只要我们拥有那个类编译后的字节码.
(3)多态性
术语多态指的是属于两个或多个不同类的对象以各自的类相关的不同方式响应同一消息(方法调用)的能力。同一个消息根据发送的对象不同而采用多种不同的行为方式.换句话说多态使得消息发送者能给一组具有公共接口的对象发送相同的消息,接收者做出相应的回应。
多态的作用:增强了代码的可读性、操作的透明性,增强了代码的灵活性和可扩充性。二。MFC程序设计方法
(1)API
应用程序编程的接口函数
一个应用程序要和具体的硬件打交道,比如接收按键值,接收鼠标左击或右击,记录鼠标的坐标等,就势必要有所有这些硬件的驱动,这样加大了程序的代码量。而且,每一个应用程序都得写,增加了不必要的重复工作。操作系统就是解决这些问题的。
操作系统基于硬件和应用程序之间,它提供应用程序调用的函数,应用程序可通过这些函数与硬件打交道。而这些函数就是API.
(2)MFC(Microsoft
Foundation
Class)微软基础类库
MFC类库集成了大量已经预先定义好的类,用户可以根据编程的需要调用响应的类,或根据需要自定义有关的类.
(3)窗口
就是一个应用程序能够看到的部分。是Windows应用程序中一个非常重要的元素。
通常都包含标题栏、菜单栏、系统菜单等
(4)消息和消息队列
消息
:应用程序接收的事件都会产生相应的消息,消息的产生是因为事件发生的结果。如键盘有键盘按下和抬起消息,鼠标有点击消息,画面有刷新消息,重画消息等。
编写应用程序时,如果需要对某事件进行响应,如需要当按下Ctrl+S组合键就进行保存操作时,就需要对Ctrl+S这个事件对应的消息设计响应函数。
消息队列
:
应用程序对事件消息进行的响应时从它本身的消息队列里取出消息来执行的。事件是有操作系统接收的,然后把它转化成消息,再把消息送到应用程序所在的队列中,供应用程序取走。
(5)事件驱动
Windows应用程序函数执行过程没有一个固定的顺序。一条消息过来就对应进行响应(只要设计了响应函数),那条消息来就执行那条对应的函数,没有消息就等待。
MFC程序设计的好处:一是MFC提供了一个标准化的结构,通过创建时的选择就可以实现一个基本的程序功能.这样不必从头开始设计创建和管理一个标准Windows应用程序所需的代码,节省了时间;二是它可以自动生成很多代码,比如只要用类向导(ClassWizard)添加了一个成员变量,它就会自动在代码的相应位置添加代码进去,如果手动添加,不光麻烦,而且文件很多,位置不固定可能会遗漏。所以类向导是经常需要用的,以提高编程效率,减少出错。
MFC编程的主要过程就是编写消息响应函数的过程,因为其他的工作都自动生成了。因此就需要我们知道如何添加消息响应函数(用类向导),响应函数中写什么内容。
响应函数的内容主要是调用系统函数,类里定义的成员函数,系统的系统函数,以及变量的传递等.三。MFC实现计算器的程序设计程序流程图点击加减乘除点击加减乘除等进行运算选择点击数字键,输入第二个操作数点击数字键,输入第一个操作数点击“=”键,输出运算结果程序开始显示运算结果主要程序代码如下://为了能在同一个编辑框里显示完整的算式,我添加了两个编辑框,同时输入,一个负责计算数据的不可见,另一个可见的用来显示。voidCJncalDlg::OnNUM1()//点击数字键1时显示1{UpdateData(TRUE);ﻩm_str1=m_str1+”1";/在编辑框1的字符串后加上字符1ﻩm_str2=m_str2+"1";/在编辑框2的字符串后加上字符1UpdateData(FALSE);}voidCJncalDlg::OnNUM2()//按下数字键2时显示数字2{UpdateData(TRUE); m_str1=m_str1+”2";//在编辑框1的字符串后加上字符2ﻩm_str2=m_str2+"2”;//在编辑框2的字符串后加上字符2UpdateData(FALSE);}voidCJncalDlg::OnNUM3()//按下数字键3时显示数字3{UpdateData(TRUE); m_str1=m_str1+”3";//在编辑框1的字符串后加上字符3ﻩm_str2=m_str2+"3”;//在编辑框2的字符串后加上字符3UpdateData(FALSE);}数字键4、5、6、7、8、9、0、00的代码同上voidCJncalDlg::OnSUB()//加法{UpdateData(TRUE); m_str2=m_str2+"+";//显示框上显示“+"UpdateData(FALSE);ﻩSaveValue1();//调用函数将第一个操作数变为double型并保存m_Sign=0;//选择语句的条件赋值}voidCJncalDlg::OnDEC()//减法{UpdateData(TRUE); m_str2=m_str2+”—";//显示框上显示“-”UpdateData(FALSE);ﻩSaveValue1();//调用函数将第一个操作数变为double型并保存m_Sign=1;//选择语句的条件赋值}voidCJncalDlg::OnMUL(){UpdateData(TRUE); m_str2=m_str2+"×";//显示框上显示“×”UpdateData(FALSE); SaveValue1();//调用函数将第一个操作数变为double型并保存m_Sign=2;//选择语句的条件赋值}voidCJncalDlg::OnDIV()//除法{UpdateData(TRUE);ﻩm_str2=m_str2+”÷”;//显示框上显示“÷"UpdateData(FALSE);ﻩSaveValue1();//调用函数将第一个操作数变为double型并保存m_Sign=3;//选择语句的条件赋值}voidCJncalDlg::OnEQUAL()//“="操作{ﻩCalculator();//调用Calculator函数}voidCJncalDlg::SaveValue1()//保存第一个操作数函数{UpdateData(TRUE);ﻩm_num1=atof(m_str1);//第一个编辑框内的字符转换为数字并赋给m_fNumber1ﻩm_str1="”;//清空第一个编辑框UpdateData(FALSE);}voidCJncalDlg::Calculator()//Calculator函数{UpdateData(TRUE);ﻩm_num2=atof(m_str1);//编辑框1内的字符转换成数字并赋值给m_fNumber2ﻩdoubler=0.0f;ﻩswitch(m_Sign)//选择语句ﻩ{ﻩcase0://加ﻩf=m_num1+m_num2; break;ﻩcase1://减 f=m_num1-m_num2; break; case2://乘 f=m_num1*m_num2; break;ﻩcase3://除 if(m_num2==0.0f)ﻩ{MessageBox(”输入错误,请重新输入”);ﻩ}ﻩelseﻩ{ﻩf=m_numn1/m_num2;ﻩ}ﻩbreak;ﻩcase4://平方 f=m_num2*m_num2; break;ﻩcase5://开方 f=sqrt(m_num2)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《战略更新课件:引领企业未来》
- 2025年江西省南昌市中考物理一调试卷(解析版)
- 合同终止时的员工权益
- 数据库技术COMPUTER课件
- 铁路桥隧无损检测任务三隧道检测的内容课件
- 铁路市场营销市场定位的涵义课件
- 《Python程序设计基础》课件 第七章 面向对象编程
- 铁路信号与通信设备接发列车工作31课件
- 中医灸法技能培训班课件
- 中专文化课课件
- (广东二模)2025年广东省高三高考模拟测试(二)语文试卷(含答案解析)
- 2025-2030中国类脑计算行业市场发展现状及建设案例与发展趋势研究报告
- 2025-2030中国磁悬浮发电机行业市场现状分析及竞争格局与投资发展研究报告
- 2024年四川宜宾环球集团有限公司招聘考试真题
- 脑出血病人护理新进展
- SL631水利水电工程单元工程施工质量验收标准第3部分:地基处理与基础工程
- 2025时政试题及答案(100题)
- 2024-2025学年统编版七年级语文下册第四单元检测A卷(原卷+答案)
- 医疗器械操作规范与安全知识培训试题库
- 安全阀培训课件
- 市场集中度与消费者行为-全面剖析
评论
0/150
提交评论