简易秒表设计实验报告
- 格式:doc
- 大小:41.00 KB
- 文档页数:5
实验报告系别信工系专业班级姓名学号课题名称:简易秒表设计实验目的:1、熟悉Keil C51软件的使用方法及proteus仿真软件的使用;2、综合运用所学的理论知识(数码管、按键),通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
3、通过本次试验,增强自己的动手能力。
认识单片机在日常生活中的应用的广泛性,实用性.设计要求:制作简易秒表,用三个按键分别实现秒表的启动、停止与复位,利用两位共阴级的数码管显示时间。
设计思路:硬件设计:数码管部分采用2位共阴极的数码管,在P0口接上拉电阻,公共端低电平扫描。
按键电路部分,将按键一侧与单片机任一I/O口相连.软件设计:模块化思想,使用定时器T0的工作方式1,编写显示子程序,延时子程序,初始化程序,主程序设计时注意按键消抖.原理图:源代码:#include<reg51。
h>#define uint unsigned int#define uchar unsigned charsbit key1=P3^0; //定义”启动"按钮sbit key2=P3^1; //定义"停止"按钮sbit key3=P3^2; //定义”复位"按钮sbit wei1=P2^6; //定义位选sbit wei2=P2^7;uchar aa;uchar temp;uchar shi;uchar ge;uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴极数码真值表void delay(uint z){uint x,y;for(x=z;x>0;x—-)for(y=110;y〉0;y——);}void display(uchar shi,uchar ge) //显示子程序{shi=temp/10;ge=temp%10;//分离个位和十位wei1=0; //送位选P0=table[shi];//使用动态扫描的方法实现数码管显示delay(1);wei1=1; //关闭位选wei2=0;P0=table[ge];delay(1);wei2=1;}void init()//初始化程序{aa=0;temp=0;TMOD=0x01; //使用定时器T0的方式1TH0=0x4c;TL0=0x00;//定时50ms中断一次EA=1; //终端总允许ET0=1; //允许定时器T0中断}void timer0() interrupt 1{TH0=0x4c; //重装初值TL0=0x00;aa++;//中断计数值加1if(aa==20)//中断20次后,定时时间为20*50ms=1000ms=1s{aa=0;temp++;if(temp==60) //秒表到达60s后回零{temp=0;}}}void main(){init(); //调用初始化子程序while(1){if(key1==0) //检验启动按钮是否按下{delay(10);//延时去抖动if(key1==0);//再次检测启动按钮{while(!key1);//松手检测TR0=1; //启动定时器开始工作}}if(key2==0)//{delay(10);if(key2==0){while(!key2);TR0=0;}}if(key3=0){delay(10);if(key3==0){while(!key3);temp=0;shi=0;ge=0;TR0=0;}}display(shi,ge);}}实验结果:在proteus中编写程序,编译调试后生成hex文件,将hex文件加到仿真电路中,通过对简易秒表进行演示,达到设计要求..实验心得:在keil软件中,即使程序不会需要模仿别人的时候,也必须通过自身再打一遍程序,在多次的通过打印过程,渐渐记住并理解程序,也有助于我们以后的程序创新。
数字秒表设计实验报告(一)数字秒表设计实验报告Introduction•实验目的:设计并实现一个数字秒表•实验时间:2021年10月10日至2021年10月15日•实验对象:本科计算机专业学生•实验设备:计算机、编程软件Experiment Procedure1.寻找合适的编程语言和开发工具2.设计秒表的用户界面3.编写代码实现秒表的计时功能4.测试并调试代码5.完善用户界面,添加重置和暂停功能6.进行性能测试,并分析结果Experimental Findings•选用Python编程语言和PyQt图形库进行开发•按照用户界面设计,实现了秒表的计时功能•通过测试,发现秒表计时准确性较高,误差范围小于0.1秒•添加了重置和暂停功能,提高了秒表的实用性•性能测试表明,在处理大数据量时,秒表的响应速度仍然较快Conclusion通过本次实验,我们成功设计并实现了一个功能完善的数字秒表。
通过合理的编程语言选择和用户界面设计,实验结果表明,我们的秒表具有准确的计时功能、良好的用户体验和较高的性能。
这对于计算机专业学生来说,具有较高的实用价值。
Future Work尽管我们已经取得了较好的实验结果,但仍有一些改进的空间。
在未来的工作中,我们计划:•进一步提高秒表的计时准确性,减小误差范围•探索更多的用户界面设计方案,增加更多便利的功能•优化性能,提高秒表在处理大数据量时的响应速度•结合云服务,实现秒表数据的备份和同步功能Acknowledgements感谢实验组的所有成员共同努力,以及指导老师的支持和指导,使得本次实验取得了圆满成功。
Reference无抱歉,关于数字秒表设计实验报告的文章已经终止。
《简易秒表》设计报告学院:信息学院专业:集成电路设计与集成系统班级:10集成姓名:熊梓淋学号:1015251032一方案设计1.1设计要求①要求设计一个跑步计时用秒表,可以分圈计时,精度为00.01秒;②显示位数为8位,前4位为本圈用时,后4位为总时间;③有启动、暂停、停止、清零功能;④其他可自由发挥。
1.2 系统分析这次设计的电路主要用于实现秒表的功能,并在数秒显示管上显示出来,同时还要求能过分圈计时,要实现分圈这个功能就需要设定两个时间——时间1和时间2,让时间1控制总的时间,时间2控制分圈时间,开始时让两个时间同时计数,当我们按下分圈那个按键时,时间2返回从零开始计数,而时间1则不变仍然计数,这样就达到了分圈的效果。
1.3系统方案方案一:利用逻辑电路设计一个简易的秒表,该电路主要可分为5个模块:毫秒脉冲发生器、计数器、译码显示器、时序控制器、存储电路。
采用555振荡器作为脉冲发生器,计数器和控制电路是系统的主要部分,计数器可用加(减)的计数方法,控制电路具有直接控制计数器的启动计数、暂停、清零、等功能。
显示电路则由译码器和数码显示管实现。
设计框图如二所示方案二:利用STC89C51单片机设计简易秒表。
单片机软件灵活并且具有强大的可修改度。
利用软件编程可实现控制部分和计数部分。
只需在单片机外围添加开关控制电路和数码显示部分就能实现该设计的要求。
如图三所示1.4 方案论证方案一是用逻辑门搭建的,基本也能满足电路设计要求,但要做好是有很大的难度的,线非常之多,元件分散、多,容易把线接错,而且浪费;所以考虑采用了方案二以STC89C51芯片为中心控制系统,实现显示、键盘控制、响铃等功能,大大提高了系统的智能化,也使得系统所测结果精度大大提高。
二硬件设计2.1 控制芯片的介绍STC89C51单片机的外型如图四所示。
单片机可分为通用型和专用型,种类繁多。
这里我们主要介绍STC89C51是一种低功耗、高性能、超抗干扰的单片机,指令代码完全兼容传统的8051单片机。
目录数字秒表设计实验任务书 (1)一、设计实验目的: (1)二、设计实验说明及要求: (1)三、数字秒表组成及功能: (1)四、系统硬件要求: (1)五、设计内容及步骤: (2)六、硬件实现 (2)实验报告 (2)一、数字秒表顶层设计 (2)二、数字秒表内部设计 (3)1、分频器 (3)2、十进制计数器 (4)3、六进制计数器 (5)4、二十四进制计数器 (7)5、数据选择和数码管选择模块 (8)6、数码管驱动模块: (9)三、数字秒表仿真波形 (11)四、硬件验证 (11)五、实验总结 (11)数字秒表设计实验任务书一、设计实验目的:在MAX+plusII软件平台上,熟练运用VHDL语言,完成数字时钟设计的软件编程、编译、综合、仿真,使用EDA实验箱,实现数字秒表的硬件功能。
二、设计实验说明及要求:1、数字秒表主要由:分频器、扫描显示译码器、一百进制计数器、六十进制计数器(或十进制计数器与6进制计数器)、十二进制计数器(或二十四进制计数器)电路组成。
在整个秒表中最关键的是如何获得一个精确的100H Z 计时脉冲,除此之外,数字秒表需有清零控制端,以及启动控制端、保持保持,以便数字时钟能随意停止及启动。
2、数字秒表显示由时(12或24进制任选)、分(60进制)、秒(60进制)、百分之一秒(一百进制)组成,利用扫描显示译码电路在八个数码管显示。
3、能够完成清零、启动、保持(可以使用键盘或拨码开关置数)功能。
4、时、分、秒、百分之一秒显示准确。
三、数字秒表组成及功能:1、分频率器:用来产生100H Z计时脉冲;2、二十四进制计数器:对时进行计数;3、六进制计数器:分别对秒十位和分十位进行计数;4、十进制计数器:分别对秒个位和分个位进行计数;5、扫描显示译码器:完成对7字段数码管显示的控制;四、系统硬件要求:1、时钟信号为10MHz;2、FPGA芯片型号EPM7128LC84—15、EP1K30TC144—3或EP1K100QC208—3(根据实验箱上FPGA芯片具体选择);3、8个7段扫描共阴级数码显示管;4、按键开关(清零、启动、保持);五、设计内容及步骤:1、根据电路持点,用层次设计概念。
EDA课程设计报告——基于VHDL语言的秒表设计课程名称:EDA技术院系:地球物理及信息工程学院专业班级:电子信息工程08级2班学生姓名:学号:指导老师:完成时间:2011年5月18日秒表设计一. 设计要求利用EDA实验箱,通过VHDL语言进行编程,设计一个简单的秒表,并用EDA实验箱进行实现,具体设计要求如下:(1)有使能、暂停、继续、秒表计数功能;(2)带有异步复位功能;(3)显示分、秒信息,若需要,显示秒表信息。
二. 设计的作用、目的在本次设计中,可以简单的了解EDA技术的应用以及VHDL语言编写的方法。
通过设计一个秒表,可以掌握用VHDL设计多位加法计数器的方法,尤其是调整时钟使得每过一秒就改变一个数,达到设计的要求。
三. 设计的具体实现1.系统概述本次系统设计主要分三个部分,一是通过VHDL语言设计一个八位的加法计数器,来实现秒表的计时功能;二是通过调整时钟使秒表计数为每秒改变一个数;三是加入一些控制按键,实现使能、暂停、继续等功能。
2.程序具体设计秒表显示共有6位,两位显示分,两位显示秒,十分秒和百分秒各一位。
设计时使用一个计数器,随着时钟上升沿的到来循环计数,每计数一次,百分秒位加一,通过百分秒位满十进位来控制十分位的计数,十分位满十进位,依次类推,实现秒表计数。
为实现秒位的计时精确,百秒位必须以0.01秒的时间间隔计数,即时钟的频率是100Hz。
为此,本设计采用3MHz的时钟频率通过分频得到100Hz的时钟频率,再送给控制时钟以得到比较精确的CLK信号。
具体程序设计见附录。
引脚定义如下:其中,时钟信号CLK为3MHz的时钟频率,分频后得到的时钟为CLK2,输出引脚CLK2和输入引脚CLK2在外部相连,实现将分频后的时钟送入。
3.调试应用MAX+plus II软件编译调试实验控制程序, 仿真运行结果如下:(1)给时钟后,实现开始功能:开始键按下(STA=‘1’)后,秒表计数开始。
(2)给时钟后,实现暂停功能:从上图可以看出暂停键按下后(POS=‘1’),输出(CQ)保持不变,直到暂停键再次按下(POS=‘0’),输出才继续计数,从而实现了暂停的功能。
秒表的设计性实验一、实验目的:1.了解数字秒表的工作原理。
2.掌握verilog HDL 编写中的一些小技巧。
二、实验任务:实现数字秒表功能,要求有分、秒、1%秒显示,该秒表要能够随时控制启/停,并能实现清零重新计时的功能。
三、实验原理:秒表的工作原理与多功能数字电子钟大致相同,唯一不同的是,由于秒表的分辨率为0.01 秒,所以整个秒表的工作时钟是在100Hz的时钟信号下完成。
假设该秒表的应用场合小于1小时,秒表的显示格式为mm-ss-xx(mm表示分钟:0~59;ss 表示秒:0~59;xx 表示百分之一秒:0~99)。
四、实验步骤:1.Verilog HDL语言编写出秒表电路程序;通过QuartusⅡ进行编辑、编译、综合、适配、仿真测试。
2.按要求锁定管脚,重新综合。
3.在EDA6000软件中建立实验模式。
4.下载设计文件,硬件验证秒表的工作性能。
五、实验程序:module miaobiao(clk,en,rst,dsec0,dsec1,sec0,sec1,secb,secm);input clk,rst,en;output [3:0]dsec0,dsec1,sec0,sec1,secb,secm;reg [3:0]dsec0,dsec1,sec0,sec1,secb,secm;always @ (posedge clk or negedge rst)beginif(!rst)begindsec0<=0;dsec1<=0;sec0<=0;sec1<=0;secb<=0;secm<=0;endelse if(en)beginif(dsec0<9)dsec0<=dsec0+1;elsebegindsec0<=0;if(dsec1<9)dsec1<=dsec1+1;elsebegindsec1<=0;if(sec0<9)sec0<=sec0+1;elsebeginsec0<=0;if(sec1<5)sec1<=sec1+1;elsebeginsec1<=0; if(secb<9)secb<=secb+1;elsebeginsecb<=0; if(secm<5) secm<=secm+1;elsesecm<=0;endendendendendendendendmodule六、实验心得通过本次的实验让我进一步了解了数字秒表的工作原理。
简易秒表设计报告一.前言在电子科学技术高速发展的今天,高科技产品越来越多的应用在我们的日常生活中,给我们的生活带来了非常大的方便,每时每秒我们都能感受到产品的更新换代。
产品和技术革新的日新月异都让人非常惊讶。
像平常我们工作所用的电脑、手机和生活所用的电视机,收音机,Mp3等等,这些高科技产品给我们带来了极大的方便,但这要归功于科学技术的高速发展。
简易秒表是我们的单片机课程设计题目。
简易秒表涉及到《模拟电子技术》和《电路分析》中的相关知识。
本文介绍的简易秒表电路设计新颖具有电路结构简单、成本较低、操作方便、灵敏可靠等优点,经使用效果良好,具有较高的推广价值。
二.系统设计要求⑴硬件设计:根据任务要求,完成单片机最小系统及其扩展设计。
⑵软件设计:根据硬件设计完成显示功能要求,完成控制软件的编写与调试;利用单片机定时器中断和定时器计数方式实现秒定时。
通过LED显示程序的调整,熟悉LED动态显示的控制过程。
⑶ 功能要求:用PB1启动秒表和停止秒表,PB2键将秒表归零,按一下PB1,即开始定时,在数码管上每秒加1,加到99,归零,秒表在暂停状态下,按下PB3键可对秒数加1,按下PB4键可对秒数减1。
(4)通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示、键盘扫描和定时器中断等多种功能的综合程序,初步体会大型程序的编制和调试技巧。
三.设计思路分析本设计以单片机为核心设计的简易秒表方案是:用按钮PB1启动秒表和停止秒表,开启后立刻进入计时状态,用定时器T0进行1s的计数,每隔1s就把预设时间加1,用一个两位的LED数码管显示时间,按钮PB2将秒表归零,如果第二次按一下S1键,计时会立即停止,在数码管上显示当前秒数,这时如果按下PB2键,数码管会显示00,直到再次按下PB1键计时才会开始,当秒数加到99后,下一秒数码管会归零,即从0开始重新每秒加1计时。
另外在P1口的0和1引脚各连接一个按钮,一个进行加1,另一个进行减1。
电子秒表的设计实验报告
《电子秒表的设计实验报告》
摘要:本实验旨在设计一款简单易用的电子秒表,通过实验验证其准确性和稳定性。
实验结果表明,所设计的电子秒表具有较高的准确性和稳定性,能够满足实际使用需求。
引言:电子秒表是一种用于测量时间的工具,广泛应用于实验室、体育比赛和工业生产等领域。
设计一款准确可靠的电子秒表对于提高工作效率和数据准确性具有重要意义。
因此,本实验旨在设计一款简单易用的电子秒表,并通过实验验证其性能。
实验方法:首先,我们选取了一款常用的电子元件,包括计时电路、显示屏和按键等。
然后,我们根据设计要求,进行了电路连接和程序编写。
接着,我们对设计的电子秒表进行了一系列的实验,包括准确性测试、稳定性测试和耐用性测试等。
实验结果:经过实验验证,我们设计的电子秒表具有较高的准确性和稳定性。
在准确性测试中,我们对比了设计的电子秒表与标准秒表的计时结果,发现两者基本一致。
在稳定性测试中,我们对设计的电子秒表进行了长时间计时,结果显示其计时稳定性良好。
在耐用性测试中,我们对设计的电子秒表进行了反复按键操作,发现其按键灵敏度和耐用性均符合设计要求。
结论:通过本实验,我们成功设计了一款简单易用的电子秒表,并验证了其准确性和稳定性。
该电子秒表具有较高的性能表现,能够满足实际使用需求。
未来,我们将进一步改进设计,提高电子秒表的功能和性能,以满足更广泛的应用需求。
致谢:感谢实验室的老师和同学们对本实验的支持和帮助,感谢他们的耐心指导和建设性意见。
同时,也感谢所有参与本实验的人员,他们的辛勤劳动为本实验的顺利进行提供了保障。
基于LCD显示的秒表设计--------------- EDA电子综合设计姓名:班级:学号:指导老师:时间:2012.6.28基于LCD 显示的秒表设计一:设计目的:1、设计的秒表具有清零、暂停/继续技术功能,清零通过拨码开关控制,暂 停/继续通过按键控制,按下一次暂停,按下两次继续。
2、秒表计时范围0—9999.999秒,精度到ms 。
2、LCD 实施显示秒表计时状态。
3、系统时钟采用实验板上提供的50MHz 时钟信号源。
4、设计成同步电路模式。
二:设计原理本实验主要分为四大模块(按键处理,分频,计数,显示)。
下面我将分块阐述: 1:按键处理模块此模块是为了让key1按键即pause 没按下一次有不同的状态。
清零(clear=0)通过拨码开关控制,暂停/继续(pause)通过按键控制,按下一次(pause=1)暂停,按下两次(pause=0)继续。
同步复位键由按键开关控制。
Key D[1] clk主要思想是:通过两个D 触发器使按键通过D[0],和D[1]时产生一个时钟的延时,其目的是没按下一次按键产生一个延时一个时钟的脉冲en_tmp ,通过对en_tmp 的判断是否为高电平实现输出脉冲en 的翻转。
2.分频模块:因为计数模块精确到1ms 所以需将20ns 的系统时钟(clk )分频为1ms 时钟(clk_out);否是开始 Posedge clk? i++D 触发器 D 触发器否是3:计数模块:设计要求显示9999.999,所以每一位用4为二进制表示从0-9的显示,共有4x7=28位二进制数,为方便叙述和代码的书写我将这七个数从高到低定义为4位的Q,B,S,G ,P1,P2,P3。
是否否是i=24999? clk_out=~clk_out 结束 开始Rst=0? Pause=0? 计数 清零 clear=0? 复 位计数小部分:否 是否是否.... ...............结束 赋 值 Posedge clk_out?P3++ P3=9? P2++ 结束开 始 P2=9? P3++4.lcd显示模块:关键点在于ASCII码中数字0为30,1为31,······,因此只需将4b'0011赋值给lcd_data_out的高四位,Q,B,S,G,P1,P2,P3赋值给lcd_data_out的低四位即可显示Q,B,S,G,P1,P2,P3上对应的数值。
实 验 报 告 系别信工系专业班级姓名学号 课题名称:
简易秒表设计
实验目的:
1、 熟悉Keil C51软件的使用方法及proteus 仿真软件的使用;
2、 综合运用所学的理论知识(数码管、按键),通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
3、 通过本次试验,增强自己的动手能力。
认识单片机在日常生活中的应用的广泛性,实用性。
设计要求:
制作简易秒表,用三个按键分别实现秒表的启动、停止与复位,利用两位共阴级的数码管显示时间。
设计思路:
硬件设计:数码管部分采用2位共阴极的数码管,在P0口接上拉电阻,公共端低电平扫描。
按键电路部分,将按键一侧与单片机任一I/O 口相连。
软件设计:模块化思想,使用定时器T0的工作方式1,编写显示子程序,延时子程序,初始化程序,主程序设计时注意按键消抖。
原理图:
XTAL218XTAL119ALE 30EA 31PSEN 29RST 9P0.0/AD0
39P0.1/AD1
38P0.2/AD2
37P0.3/AD3
36P0.4/AD4
35P0.5/AD5
34P0.6/AD6
33P0.7/AD7
32P1.01P1.12P1.23P1.34P1.45P1.56P1.6
7P1.7
8P3.0/RXD
10P3.1/TXD
11P3.2/INT0
12P3.3/INT1
13P3.4/T0
14P3.7/RD 17P3.6/WR
16P3.5/T1
15P2.7/A15
28P2.0/A8
21P2.1/A9
22P2.2/A10
23P2.3/A11
24P2.4/A12
25P2.5/A13
26P2.6/A14
27U1AT89C51C1
1nF
C21nF R110k C31uF 234567891
RP1
RESPACK-8
源代码:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit key1=P3^0; //定义"启动"按钮
sbit key2=P3^1; //定义"停止"按钮
sbit key3=P3^2; //定义"复位"按钮
sbit wei1=P2^6; //定义位选
sbit wei2=P2^7;
uchar aa;uchar temp;uchar shi;uchar ge;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴极数码真值表void delay(uint z)
{
u int x,y;
f or(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display(uchar shi,uchar ge) //显示子程序
{
shi=temp/10;
ge=temp%10; //分离个位和十位
wei1=0; //送位选
P0=table[shi];//使用动态扫描的方法实现数码管显示
delay(1);
wei1=1; //关闭位选
wei2=0;
P0=table[ge];
delay(1);
wei2=1;
}
void init() //初始化程序
{
aa=0;
temp=0;
TMOD=0x01; //使用定时器T0的方式1
TH0=0x4c;
TL0=0x00; //定时50ms中断一次
EA=1; //终端总允许
ET0=1; //允许定时器T0中断
}
void timer0() interrupt 1
{
TH0=0x4c; //重装初值
TL0=0x00;
aa++; //中断计数值加1
if(aa==20) //中断20次后,定时时间为20*50ms=1000ms=1s
{
aa=0;
temp++;
if(temp==60) //秒表到达60s后回零
{
temp=0;
}
}
}
void main()
{
init(); //调用初始化子程序
while(1)
{
if(key1==0) //检验启动按钮是否按下
{
delay(10);//延时去抖动
if(key1==0);//再次检测启动按钮
{
while(!key1);//松手检测
TR0=1; //启动定时器开始工作
}
}
if(key2==0) //
{
delay(10);
if(key2==0)
{
while(!key2);
TR0=0;
}
}
if(key3=0)
{
delay(10);
if(key3==0)
{
while(!key3);
temp=0;
shi=0;
ge=0;
TR0=0;
}
}
display(shi,ge);
}
}
实验结果:
在proteus中编写程序,编译调试后生成hex文件,将hex文件加到仿真电路中,通过对简易秒表进行演示,达到设计要求。
实验心得:
在keil软件中,即使程序不会需要模仿别人的时候,也必须通过自身再打一遍程序,在多次的通过打印过程,渐渐记住并理解程序,也有助于我们以后的程序创新。
内容:实验题目;实验目的;实验原理;实验步骤;数据处理;结果分析
年月日分数精品文档word文档可以编辑!谢谢下载!。