简易秒表设计实验报告
秒表实验报告_2

实验八秒表一、实验目的:1、了解数字秒表的工作原理。
2、进一步熟悉用VHDL语言编写驱动七段数码管的代码。
3、掌握VHDL编写中的一些小技巧。
二、实验要求:实现数字秒表功能,要求有分,秒,1%秒显示,该秒表能够随时控制启/停,清零重新计时功能。
三、实验原理秒表的工作原理与多功能数字电子钟大致相同,唯一不同的是,由于秒表的分辨率为0.01秒。
所以整个秒表的工作时钟是在100HZ的时钟信号下完成的。
假设该秒表的应用场合小于1小时,秒表的显示格式为mm~~ss~~xx(mm表示分钟:0~59;ss表示秒:0~~59;xx表示百分之一秒:0~~99)。
四、实验步骤1、用VHDL语言编写出秒表电路程序,通过QuartusII 进行编辑、编译、综合、适配、仿真测试。
给出其所有信号的时序仿真波形。
2、按实验要求锁定管脚,重新综合。
3、在EDA6000软件中建立实验模式。
4、下载设计文件,硬件验证秒表工作性能。
五、实验结果1、调试的过程记录在仿真图正确后开始用EDA6000进行检验,所有的管脚都连接好后,通入100Hz的脉冲,秒表开始工作2、实验结果经过调试得到了正常工作的秒表,每一个环节的跳转过程都是正常的最终的波形图:3、实验程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity stopwatch isport(clk,rst,en:in std_logic;minh,minl,sech,secl,msh,msl:out std_logic_vector(3 downto 0)); end entity;architecture behav of stopwatch issignal minhi,minli,sechi,secli,mshi,msli:std_logic_vector(3 downto 0); signal clk1,clk2:std_logic;beginprocess(clk,en,rst)beginif rst='1' then mshi<="0000";msli<="0000";elsif clk'event and clk='1' thenif en='1' thenif (mshi="1001" and msli="1001") thenmshi<="0000";msli<="0000";clk1<='1';elsif msli="1001" thenmsli<="0000"; mshi<=mshi+1;else msli<=msli+1;clk1<='0';end if;end if;end if;end process;process(clk1,en,rst)beginif rst='1' then sechi<="0000";secli<="0000";elsif clk1'event and clk1='1' thenif en='1' thenif (sechi="0101" and secli="1001") thensechi<="0000";secli<="0000";clk2<='1';elsif secli="1001" thensecli<="0000"; sechi<=sechi+1;else secli<=secli+1;clk2<='0';end if;end if;end if;end process;process(clk2,en,rst)beginif rst='1' then minhi<="0000";minli<="0000";elsif clk2'event and clk2='1' thenif en='1' thenif (minhi="0101" and minli="1001") thenminhi<="0000";minli<="0000";elsif minli="1001" thenminli<="0000"; minhi<=minhi+1;else minli<=minli+1;end if;end if;end if;end process;msh<=mshi;msl<=msli;sech<=sechi;secl<=secli;minh<=minhi;minl<=minli; end behav;。
数字秒表设计实验报告(一)

数字秒表设计实验报告(一)数字秒表设计实验报告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无抱歉,关于数字秒表设计实验报告的文章已经终止。
电子秒表实验报告

电子技术设计性实训报告学号:211002146姓名:邱富烨同组人:夏文彬班级:03班指导老师:林雪健日期:2012.09.07目录一.实训目的---------------------------------------------------3二.设计功能要求---------------------------------------------3 三.电路设计---------------------------------------------------4 (一)电路框图--------------------------------------------4 (二)单元电路分析-------------------------------------4四.设计总图及其工作原理---------------------------------5 (一)工作原理--------------------------------------------5 (二)元件清单--------------------------------------------5五.电路调试--------------------------------------------------6(一) 调试过程--------------------------------------------6(二)故障分析与排除-----------------------------------7六.实训心得---------------------------------------------------8一. 实验目的1. 对芯片74LS160芯片以及555的功能的更形象的认知。
2.增强使用EWB软件的能力。
3.进一步提高独立分析问题和解决问题的能力。
4.掌握数字系统的分析和设计方法。
5.对数字集成电路的综合应用有进一步的认识和理解。
实验六 秒表设计

实验六秒表设计(设计实验)一、实验说明秒表的逻辑结构较简单,它主要由、显示译码器、分频器、十进制计数器、报警器和6进制计数器组成。
在整个秒表中最关键的是如何获得一个精确的100H Z计时脉冲,除此之外,整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。
秒有共有6个输出显示,分别为百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6个计数器与之相对应,6个计数器的输出全都为BCD码输出,这样便与同显示译码器的连接。
当计时达60分钟后,蜂鸣器鸣响10声。
二、结构组成四个10进制计数器:用来分别对百分之一秒、十分之一秒、秒和分进行计数;两个6进制计数器:用来分别对十秒和十分进行计数;分频率器:用来产生100H Z计时脉冲;显示译码器:完成对显示的控制。
三、硬件要求1、6位八段扫描共阴级数码显示管。
2、二个按键开关(归零,启动)。
四、实验内容及步骤1、根据电路持点,可在教师指导下用层次设计概念。
将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口。
让几个学生分做和调试其中之一,然后再将各模块合起来联试。
以培养学生之间的合作精神,同时加深层次化设计概念。
2、了解软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何熔合。
3、配划分前后的仿真内容有何不同概念,仿真信号对象有何不同,让学生有更深一步了解。
熟悉了CPLD设计的调试过程中手段的多样化。
适配划分后的管脚定位,同相关功能块硬件电路接口连线。
5、所有模块全用VHDL语言描述。
6、内部结构图如图6-1所示。
五、实验连线输入接口:1、代表归零,启动信号RESET、START的管脚分别连接按键开关。
2、蜂鸣器鸣响信号SPEAKER接蜂鸣器的输入。
3、代表计数时钟信号CLK的管脚同2.5MHZ时钟源相连。
输出接口:代表扫描显示的驱动信号管脚SEL2,SEL1,SEL0和A~G参照其它实验的连法。
图6-1 秒表内部结构示意图。
简易秒表报告

《简易秒表》设计报告学院:信息学院专业:集成电路设计与集成系统班级: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、 熟悉Keil C51软件的使用方法及proteus 仿真软件的使用;2、 综合运用所学的理论知识(数码管、按键),通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
3、 通过本次试验,增强自己的动手能力。
认识单片机在日常生活中的应用的广泛性,实用性。
设计要求:制作简易秒表,用三个按键分别实现秒表的启动、停止与复位,利用两位共阴级的数码管显示时间。
设计思路:硬件设计:数码管部分采用2位共阴极的数码管,在P0口接上拉电阻,公共端低电平扫描。
按键电路部分,将按键一侧与单片机任一I/O 口相连。
软件设计:模块化思想,使用定时器T0的工作方式1,编写显示子程序,延时子程序,初始化程序,主程序设计时注意按键消抖。
原理图:XTAL218XTAL119ALE 30EA 31PSEN 29RST 9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD 17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C11nFC21nF R110k C31uF 234567891RP1RESPACK-8源代码:#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文件加到仿真电路中,通过对简易秒表进行演示,达到设计要求。
电子秒表课程设计设计报告
电子秒表电路设计实验报告一. 实验目的1.进一步提高独立分析问题和解决问题的能力。
2.掌握数字系统的分析和设计方法。
3.对数字集成电路的综合应用有进一步的认识和理解。
二. 设计题目:制作一个简易的电子秒表 功能要求:(1) 具有两位数码显示。
分别显示1/10秒和秒计数。
(2) 有两个按键分别控制启动(开始计时)/停止和清零。
功能表如下:三、概述:要完成题目要求的电子秒表功能,系统应具有如下几部分电路: 1、定时电路;题目要求最小计时单位为1/10秒,即100ms 。
这部分电路必须能准确的产生周期为100ms (频率为10Hz )的时钟信号。
2、计时电路:题目要求系统具有两位显示器,分别显示秒和1/10秒信号。
所以本系统应具有两个十进制计数器,分别对定时信号进行计数,以产生1/10秒和秒计数。
系统计数范围从0.0~9.9秒。
3、显示译码驱动电路:将计数器的计数结果(BCD 码)通过译码器译成七段显示码并驱动LED 数码管显示出来。
4、控制电路:根据题目要求,本电子秒表应具有两个按键。
其中一个控制秒表的启/停,本按键应有自锁功能,按一次启动计时,再按一次停止计时。
另一个按键控制清“0”,本按键不需自锁,按下时系统清“0”;放开时系统回复正常计时功能。
系统电路结构框图如图1所示。
图1 系统结构框图四、电路设计方案:1、定时电路:系统的定时电路要求产生周期为100ms的时钟信号。
在此我们用555定时器来实现。
定时器是电子秒表的核心,其作用是产生一个标准频率10赫兹的脉冲信号。
振荡频率的精度和稳定度决定了秒表的质量(如图2),图3为脉冲信号宽度图2 555定时器器图3 脉冲信号2、计时电路:本电路需要两位十进制加法计数器,对定时电路的时钟信号进行计数。
可用两片74LS160实现。
74LS160是同步十进制加法计数器,其功能表如下:应用两片74LS160组合级联可构成100进制计数器。
其级联方式可分为串行进位方式和并行进位方式两种。
EDA秒表设计 实验报告
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’),输出才继续计数,从而实现了暂停的功能。
秒表时间研究实验报告
5、 绘制管制界限图。 选择对第三组数据进行异常值剔除 第三组的平均值如上表所示 平均值=5.235 标准差=1.219 管制上限UCL=5.235+3×1.219=8.894 管制下限LCL=5.235—3×1.219=1.578 数值1.2小于1.578,在管制下限之外,为异常值,应剔除。
6、 分析秒表测时法确定转向器部件装配过程的标准时 间的结果。
1、 实验目的
1、学会秒表测时的方法。 2、学会用秒表测时来制定标准时间
2、 使用仪器、材料
汽车转向器、装拆工具、铅笔、橡皮、秒表、时间研究表格等。
3、 实验过程
1、收集资料
2、划分操作单元 划分操作单元的原则如下:
(1)每一单元应有明显易辨的起点和终点;(2)单元时间愈短愈好; (3)尽可能每一单元为操作的基本动作;(4)不变单元与可变单元应 分开;(5)人工操作单元应与机器单元分开;(6)规则单元、间歇性 单元和外来单元分开;(7)每一单元应有完整而详细的说明。
3、测时 采用连续法记录时间研究,在现场记录时用铅笔填写秒表读
数“W.R”,见附件:时间研究表(一)。计算基本时间“B.T”。
4、填写时间研究表(二),剔除异常值,用三倍标准法决定正常值范围 (正常值范围在x±3σ内)。
5. 决定宽放时间 取宽放率为:15%。
宽放时间=正常时间×宽放率
6. 计算标准时间:标准时间=平均操作时间×评比系数+宽放时间
因为标准时间=平均操作时间×评比系数+宽放时间,即标准时间=正常时 间+宽放时间。秒表测时法测定的时间是操作者完成某单元的实际时间, 表二中已算出操作者完成操作所需的标准时间,由于是选取20个同学的 操作数据,数值存在着些许差异,操作者的操作速度可能比标准动作快 (正常速度操作),也可能比标准动作慢,所以,不能直接将表二中算 的的平均值认为是操作者以正常速度操作所需的时间,因此我们要对操 作者的作业进行评定,并以此对观测时间进行修正,即将求得的平均值 乘上评定系数。使操作所需的时间变为不快不慢的正常时间。这样才能 保证制定的标准时间的科学性。在计算标准时间的时候,我们还计算了 宽放时间,因为正常时间并未考虑操作者个人需要和各种不可避免的延 迟因素所耽误的时间。如果以正常时间为标准时间,则会使操作者从早 到晚的工作。显然这是不合理的,所以我们在秒表测时法确定标准时间 以前,还必须找出操作者所需的停顿和休息的时间,即宽放时间。这样 才符合实际需要。因此我们在用秒表测时法确定转向器部件装配过程的 标准时间的时候,计算了正常时间及宽放时间,以保证标准时间的科学
简易秒表设计报告
简易秒表设计报告一.前言在电子科学技术高速发展的今天,高科技产品越来越多的应用在我们的日常生活中,给我们的生活带来了非常大的方便,每时每秒我们都能感受到产品的更新换代。
产品和技术革新的日新月异都让人非常惊讶。
像平常我们工作所用的电脑、手机和生活所用的电视机,收音机,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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实 验 报 告
系别 信工系 专业 班级 姓名 学号
简易秒表设计
实验目的:
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<>
#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)
{
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的方式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软件中,即使程序不会需要模仿别人的时候,也必须通过自身再打一遍程序,在多次的通过打印过程,渐渐记住并理解程序,也有助于我们以后的程序创新。
内容:实验题目;实验目的;实验原理;实验步骤;数据处理;结果分析
年月日分数。