24小时制时、分、秒计时器设计报告

合集下载

秒表计时器毕业设计报告

秒表计时器毕业设计报告

秒表计时器毕业设计报告秒表计时器毕业设计报告一、引言在快节奏的现代社会中,时间对于人们来说显得尤为重要。

无论是工作、学习还是生活,我们都需要一个准确、方便的计时工具来帮助我们管理时间。

因此,我选择了设计并开发一个秒表计时器作为我的毕业设计项目。

本报告将详细介绍我的设计思路、实现过程以及遇到的挑战和解决方案。

二、设计目标1. 实现基本的计时功能:包括开始、停止、暂停和重置功能。

2. 提供多种计时模式:可以选择倒计时模式或计时器模式。

3. 显示准确的计时结果:保证计时的准确性和精确度。

4. 用户友好的界面设计:界面简洁清晰,易于操作。

5. 适用于不同平台和设备:可以在电脑、手机等多种设备上使用。

三、设计思路1. 界面设计:我采用了简洁明了的界面设计,将计时器显示在屏幕中央,并在周围添加开始、停止、暂停和重置按钮,方便用户操作。

2. 计时功能实现:使用编程语言编写代码,通过调用系统时间函数来实现计时功能。

开始计时时记录当前时间,停止计时时再次获取当前时间,两个时间的差值即为计时结果。

3. 计时模式选择:根据用户的需求,提供倒计时模式和计时器模式的选择,用户可以根据实际情况进行设置。

4. 计时结果显示:将计时结果以小时、分钟、秒的形式显示在屏幕上,保证计时的准确性和精确度。

5. 跨平台适配:根据不同设备的屏幕尺寸和分辨率进行适配,确保在不同平台上都能正常显示和使用。

四、实现过程1. 界面设计:使用HTML和CSS进行界面设计,采用响应式布局,确保在不同设备上都能良好显示。

2. 编程语言选择:我选择使用JavaScript作为主要编程语言,因为它具有广泛的应用性和良好的跨平台性。

3. 计时功能实现:通过JavaScript编写代码,使用Date对象获取系统时间,并进行计算和显示。

4. 计时模式选择:使用JavaScript编写代码,通过监听用户的选择,切换不同的计时模式。

5. 计时结果显示:使用JavaScript编写代码,将计时结果以合适的格式显示在屏幕上。

24s倒计时计时器项目报告书

24s倒计时计时器项目报告书

1设计内容及功能本课程设计是可编程控制器的简单应用,设计了篮球竞赛24s计时器。

此计时器功能齐全,可以直接复位、启动、暂停和连续,以及具有光电报警功能,同时应用了七段数码管来显示时间。

此计时器有了启动、暂停和连续的功能,可以方便的实现断点计时功能,当计时器递减到零时,会发出光电报警信号。

本设计完成的中途计时功能,实现了在许多特定的场合进行时间追踪的功能,在社会生活中也具有广泛的实用价值。

设计创作来源:篮球NBA竞赛倒计时秒表。

外观设计成小屋的样式,是考虑到我们即将毕业,面临到房价上涨我们必须面对。

倒计时数码管设计成挂历的样式,是觉得大学时光流逝的太快,已经不能用分钟来计算,只能以秒来计算,要学会珍惜大学时光。

篮球竞赛计时系统的主要功能包括:进攻方24秒倒计时和计时结束警报提示。

攻方24秒倒计时,当比赛准备开始,屏幕上显示24秒字样,当比赛开始后,倒计时从24.秒逐渐倒数到00。

这一模块主要是利用可编程控制器和74LS48来实现;警报提示:当计数器计时到零时,给出提示音。

2设计原理及系统方案设计2.1 设计原理24秒计时器包括计数器、译码显示电路、光电报警电路、彩灯闪烁、控制电路部分组成。

其中计数器和控制电路是系统的主要模块。

计数器完成24秒计时功能,而控制电路完成计数器的直接复位、启动计数、暂停/连续计数及彩灯的闪烁,译码显示电路的显示与灭灯、定时时间到报警等功能。

译码显示电路由74LS48、共阴极七段数码管、LED显示器组成。

报警电路可用发光二极管和蜂鸣器代替。

2.2 计时部分用可编程控制器的加减计时器完成计时器的倒计时功能,减使能端有效时开始键计数,开始时为24s,然后从23.9s开始倒计时,直到时间减到零;开关控制计数器使能端无效时,计数暂停,从而计数器的加使能端有效,实现计数的连续。

2.3 译码电路用PLC的三个输出口去选通芯片74LS48,四个输出口输出作为74LS48的输入,经74LS48译码输出送给三个七段数码管,显示24s的倒计时。

24秒计时器设计报告

24秒计时器设计报告

24秒计时器设计报告概述本文将介绍一个基于硬件电路的24秒计时器的设计过程。

该计时器可用于篮球比赛等需要精确计时的场合。

我们将逐步讨论设计思路和实施步骤。

设计思路我们的目标是设计一个简单而可靠的24秒计时器。

基于硬件电路的设计通常比软件实现更加稳定和精确。

我们将采用数字集成电路和准确的时钟源来实现计时功能。

步骤一:选择计时器芯片首先,我们需要选择一个合适的计时器芯片。

为了满足精确计时的要求,我们选择了XX型号的计时器芯片。

该芯片具有高精度的时钟源和适配器接口。

步骤二:设计电路原理图在这一步中,我们将根据计时器芯片的规格书设计电路原理图。

根据芯片的引脚定义,我们将确定输入按钮、显示器和报警器的连接方式。

同时,我们需要为芯片提供稳定的电源电压。

步骤三:制作电路板基于电路原理图,我们将制作一个电路板来实现计时器的电路部分。

我们可以使用PCB设计软件来绘制电路板图纸。

然后,我们可以通过特殊的设备将电路图纸转换为实际的电路板。

步骤四:组装计时器外壳当电路板制作完成后,我们将把它安装在一个适当的外壳内。

外壳可以保护电路板免受损坏,并提供按钮和显示器的合适位置。

步骤五:测试和调试在计时器完成组装后,我们将进行测试和调试。

我们将检查所有的功能是否正常工作,包括按钮操作、计时显示和报警器响铃。

如果发现问题,我们将修改电路或芯片的设置。

结论通过以上步骤,我们成功地设计和制作了一个24秒计时器。

这个计时器具有高精度、可靠性和易操作性的优点。

通过硬件电路的实现,我们可以确保计时的准确性,从而满足各种场合的计时需求。

注意:本文中的计时器设计仅为示例,实际设计可能需要根据具体要求进行调整和改进。

数字电子钟设计报告

数字电子钟设计报告

数字电子钟一.摘要数字电子钟是一个将“时”,“分”,“秒”显示于人的视觉器官的计时装置。

它的计时周期为24小时,显示满刻度为23时59分59秒。

因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路和振荡器组成。

主电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、校时电路、整点报时电路组成。

秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现。

将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。

“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。

“时计数器”采用24进制计时器,可实现对一天24小时的累计。

译码显示电路将“时”、“分”、“秒”计数器的输出状态用七段显示译码器译码,通过七段显示器显示出来。

校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整。

采用74160,74393实现24进制和60进制,从而实现计数功能。

目录一.正文 (3)1.1系统设计 (3)1.11设计原理(数字电子钟结构框图): (3)1.12石英晶体振荡器 (3)1.2单元电路设计 (4)1.21时、分、秒计数器的设计: (4)1.2.1.1 元器件的选择:74LS160 同步十进制计数器、与非门 (4)1.2.1.2 二十四进制计数器电路图 (5)1.2.1.3 六十进制计数器电路图 (6)1.2.1.4 秒脉冲谐振电路: (6)1.3系统的测试 (8)1.3.1 N进制级联 (8)1.3.2分频器电路 (8)1.3.3.调校电路 (9)1.4 总结 (10)参考文献 (10)附录 (11)1.元器件的明细表 (12)一.正文1.1系统设计1.11设计原理(数字电子钟结构框图):数字电子钟是一个典型的数字电路系统,其由直流稳压电源,秒脉冲发生器,时、分、秒计数器以及校时和显示电路组成结构框图如下:图表 11.12石英晶体振荡器:石英晶体振荡器的特点是振荡频率准确,电路结构简单,频率易调节。

数字时钟设计报告

数字时钟设计报告

设计要求(1)稳定的显示时、分、秒(要求24小时为一个计时周期);(2)当电路发生走时误差时,要求电路有校时功能;(3)电路有整点报时功能。

报时声响为四低一高,最后一响高音正好为整点。

设计原理及框图根据题目要求,数字时钟主要由以下6个模块构成:振荡器、秒计时电路、分计时电路、小时计时电路、校时电路和整点报时电路。

但考虑到设计的完善,我组在设计时增加了两项拓展功能:小时计时电路的24进制与12进制转换和星期计时电路。

增加拓展功能后,系统结构大致如下图所示:图1 设计原理框图器件说明开关S1 1只单刀双掷开关S2,S3,S4,S5 4只电阻43 1只电阻50 1只电容10u 1只电容10u 1只导线若干设计过程为保证各模块功能的实现,我组采用分块设计的方法,即先分别设计好各模块,然后进行整体连接。

具体过程如下:1.振荡器振荡器是数字时钟的脉冲信号来源,其工作稳定程度及频率精确程度决定了数字时钟计时的准确程度。

基于此种考虑,我组采用555定时器。

该电路使用灵活、方便,只需接少量的阻容元件就可以构成施密特触发器、单稳态触发器和多谐振荡器,故广泛应用于信号的产生、变换、控制与检测。

其内部电路结构及功能表如下:图2 555定时器内部电路结构图表2 555定时器功能表复位端DR高电平触发端U11低电平触发端U12放电三极管VT D输出端U O0 ××导通01 >2/3V CC >1/3V CC 导通01 <2/3V CC >1/3V CC 不变不变1 >2/3V CC <1/3V CC 截止 11 <2/3V CC <1/3V CC 截止 1图3 多谐振荡器Multisim仿真电路图2.分秒计时电路由于分秒计时电路均为60进制,其设计原理一致,故一并介绍。

为使设计电路尽量简单,我组没有使用十六进制计数器74LS161,而是使用十进制计数器74LS160。

24小时制时、分、秒计时器设计报告

24小时制时、分、秒计时器设计报告

时钟仿真实验报告一、任务及要求用51单片机设计时、分、秒计时器,具体要求如下。

1、具有时、分、秒计时功能和8位数码管显示功能,显示格式为:“时-分-秒”;2、用Proteus设计仿真电路进行结果仿真;3、4人组成设计小组完成,小组成员有明确分工,1人负责总体方案设计及报告撰写,2人负责功能模块函数设计,1人负责仿真电路设计及调试。

4、完成程序设计、仿真电路设计、结果仿真,完成报告并上传空间课程栏目中的课程设计报告子栏目中。

二、设计方案:1、总体方案构思:通过使用定时计数器以及中断溢出,50ms中断溢出一次,溢出20次为1S。

所以当定时溢出计数变量temp自加20次时计数变量miao自加1,直到加到第60次时miao(秒)清零,并且计数变量fen自加1,直到fen加到第60次时,fen(分)清零且shi(时)自加1,直到shi加到第24次时,shi(小时)清零。

最后经译码后,通过扫描显示模块程序将得到的时钟结果以动态显示的方式显示在8位一体共阳数码管上。

2、程序功能模块说明:此时钟程序包括时钟中断计时、延时函数、显示函数等模块3、仿真电路构成:此次时钟程序的仿真电路的设计较简单,硬件部分主要有AT89C52单片机芯片一块、八位一体LED共阳数码管一块、8个普通电阻以及8个逻辑非门。

其中8个普通电阻用作P0口上拉电阻。

另外,由于数码管是共阳的,而实际程序中的位码是以低电平有效的,所以八个逻辑非门用来取反单片机输出的位码。

4、时钟计时程序设计思想分析:采用定时计数器T0,工作方式1,定时50ms,再对定时溢出中断次数计数,若溢出了20次则时间为1秒!5、函数模块程序流程图:时钟中断计时模块流程图:6、仿真电路设计三、程序代码汇集:/*时钟及显示程序,适用于寻迹小车实验板*/#include<reg51.h>//头文件#define uchar unsigned char#define uint unsigned intuchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳七段编码uchar temp=0;//定义定时器溢出计数变量,每隔50ms产生1次溢出,temp加1uchar miao=00; //定义时钟变量,当temp计数加20(20x50ms=1s)时,miao加1uchar fen=00; //定义时钟变量,当miao计数加60(60x20x50ms=60s)时,fen加1uchar shi=00; //定义时钟变量,当fen计数加60时,shi加1 sbit P0_6=P0^6 ;//定义P0端口/*--定时计数器T0及其中断初始化函数--*/void timer0init(void){TMOD=0x01;//设置定时器0为工作方式1TH0=(65536-50000)/256;//16位计数初值除以256得到高8位初值TL0=(65536-50000)%256;//16位计数初值除以256的余数得到低8位初值EA=1;//开总中断ET0=1;//开定时器0中断TR0=1;//启动定时器0}/*----------延时函数---------------*/void delay(uint n){uint i,j;for(i=n;i>0;i--)for(j=124;j>0;j--);}/*定时计数器中断程序,每当定时计数器溢出时触发中断,执行该程序*/void time0() interrupt 1{TH0=(65536-50000)/256;//重装初值TL0=(65536-50000)%256;if(temp==20){temp=0;if(miao==59){miao=0;if(fen==59){fen=0;if(shi==23) shi=0;else shi++;}else fen++;}else miao++;}else temp++;}/*--------------显示函数------------*/void display(void){/*P1=0xfe;*/P1=0x7f;//输出秒的个位的位码 P0=table[miao%10]; //输出秒的个位的段码 delay(5); //亮5ms/*P1=0xfd;*/P1=0xbf;//输出秒的十位的位码 P0=table[miao/10]; //输出秒的十位的段码 delay(5); //亮5ms/*P1=0xfb;*/P1=0xdf;P0=0xbf;delay(5);/*P1=0xf7;*/ P1=0xef; //输出分的个位的位码P0=table[fen%10]; //输出分的个位的段码delay(5);/*P1=0xef;*/P1=0xf7; //输出分的十位的位码P0=table[fen/10]; //输出分的十位的段码delay(5);/*P1=0xdf;*/P1=0xfb;P0=0xbf;delay(5);/*P1=0xbf;*/P1=0xfd; //输出时的个位的位码P0=table[shi%10]; //输出时的个位的段码delay(5);/*P1=0x7f;*/P1=0xfe; //输出时的十位的位码P0=table[shi/10]; //输出时的十位的段码delay(5);}/*----------主函数-----------------*/void main(void){timer0init();//调用初始化函数对定时计数器进行初始化 while(1){display();//调用显示函数显示时间}四、仿真调试:在完成程序仿真调试过程中,出现了很多小问题,这些问题虽然简单,但真正解决起来还是比较棘手的。

时、分、秒计时器的设计实验报告

时、分、秒计时器的设计实验报告

时、分、秒计时器的设计一、实验目的掌握数码管动态显示的基本方法;掌握键盘按键控制的实现方法;根据已知电路和设计要求在实验板上实现时、分、秒计时器。

二、实验内容1、在STC89C52实验平台上实现时、分、秒时钟,4位数码管上显示分、秒或者时、分。

2、应用键盘控制时间的显示。

键盘按键控制“切换时分、分秒显示”、“启动停止”、“加秒显示内容”、“加分显示内容”、“加时显示内容”。

3、根据已知电路和设计要求在PROTEUS平台仿真实现时钟系统。

三、实验原理流程图如下所示:11、主程序流程图2、定时器/计数器T0中断服务程序流程图5 仿真分析在Proteus ISIS的80C51中载入程序生成的HEX文件,按开始符号运行,在数码管上观察程序运行结果,系统仿真结果如图5.1所示。

设计功能如下:(1)、初始状态:未按键之前,上电,数码显示00-00-00。

程序运行后,从秒针开始自动运行。

当秒数到59后,下一秒自动变为00,分针变为01,以此类推。

(2)、调整状态:仿真运行过程中,按p0键,系统暂停,此时,继续按p0无效。

第三次按p0,又开始,如此循环。

(3)、设置状态:按下p0暂停后,按p1,则时针加一,按下p2,则时针减一;按两下p0,在按下p1,则分针加一,按下p2,则分针减一。

时间显示格式为:时分秒;误差分析:实际程序到实验板中的电子钟显示存在一定的误差,误差来源可能为三个方面:第一,在程序运行过程中,时钟周期的不精确导致机器周期与理论值存在一定的差别;第二在中断一秒显示过程中,一些指令需要消耗一定的机器周期,使得一秒延时比实际要长;第三在键抖动的反应程度在运行中比较慢。

25.1实例仿真总结通过这次的课程设计我认识到我对单片机的知识学的太少了,对于书本上很多知识还不能灵活运用,都需要去巩固加强,我会在以后的学习中弥补我的不足。

我也了解了80C51集成环境和PROTEUS仿真软件的使用,用此软件练习电子时钟的设计,不仅使我熟悉了软件的使用方法,而且复习了单片机编程的相关知识。

24时制数字电子钟设计

24时制数字电子钟设计

实验八 综合设计实验——设计24时制数字电子钟一、实验方案数字钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置.它的计时周期为24小时,显示满刻度为23时59分59秒,另外应有闹钟功能和报时功能.。

因此,一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”计数器、校时电路、报时电路和振荡器组成.干电路系统由秒信号发生器、“时、分、秒”计数器、译码器及显示器、整点报时电路、闹钟电路组成。

秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,一般用石英晶体振荡器加分频器来实现.将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发现胡一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲.“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”.“时计数器”采用24进制计时器,可实现对一天24小时的累计.译码显示电路将“时”、“分”、“秒”计数器的输出状态菁七段显示译码器译码,通过LED 七段显示器显示出来.整点报时电路及闹钟电路是根据计时系统的输出状态产生一脉冲信号,然后去触发一音频发生器实现报时.(由于EWB 元件中没有扬声器,故电路中一红色小灯泡代替)。

二、系统框图三、数字时钟的原理图:1、信号源及分频器信号源及分频器是数字电子中的核心,其作用是信号源产生一个频率标准,即时间标准信号,然后再由分频器生成秒脉冲。

由于实验室的信号源可提供10Hz 的信号,故要分频成1hz。

74290的引脚图74290的功能表分频电路的仿真图为:2、振荡器(如果要做成一个独立的电子时钟,则要一个能自动产生信号的电路,即振荡电路)振荡器是数字电子中的核心,其作用是产生一个频率标准,即时间标准信号,然后再由分频器生成秒脉冲。

我们有三种选择,即石英晶体振荡器、集成逻辑门与RC组成的时钟源振荡器和由集成电路定时器555和RC组成的多谐振荡器。

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

时钟仿真实验报告
一、任务及要求
用51单片机设计时、分、秒计时器,具体要求如下。

1、具有时、分、秒计时功能和8位数码管显示功能,显示格式为:“时-分-秒”;
2、用Proteus设计仿真电路进行结果仿真;
3、4人组成设计小组完成,小组成员有明确分工,1人负责总体方案设计及报告撰写,2人负责功能模块函数设计,1人负责仿真电路设计及调试。

4、完成程序设计、仿真电路设计、结果仿真,完成报告并上传空间课程栏目中的课程设计报告子栏目中。

二、设计方案:
1、总体方案构思:通过使用定时计数器以及中断溢出,50ms中断溢出一次,溢出20次为1S。

所以当定时溢出计数变量temp自加20次时计数变量miao自加1,直到加到第60次时miao(秒)清零,并且计数变量fen自加1,直到fen加到第60次时,fen(分)清零且shi(时)
自加1,直到shi加到第24次时,shi(小时)清零。

最后经译码后,通过扫描显示模块程序将得到的时钟结果以动态显示的方式显示在8位一体共阳数码管上。

2、程序功能模块说明:此时钟程序包括时钟中断计时、延时函数、显示函数等模块
3、仿真电路构成:此次时钟程序的仿真电路的设计较简单,硬件部分主要有AT89C52单片机芯片一块、八位一体LED共阳数码管一块、8个普通电阻以及8个逻辑非门。

其中8个普通电阻用作P0口上拉电阻。

另外,由于数码管是共阳的,而实际程序中的位码是以低电平有效的,所以八个逻辑非门用来取反单片机输出的位码。

4、时钟计时程序设计思想分析:采用定时计数器T0,工作方式1,定时50ms,再对定时溢出中断次数计数,若溢出了20次则时间为1秒!
5、函数模块程序流程图:
时钟中断计时模块流程图:
6、仿真电路设计
三、程序代码汇集:
/*时钟及显示程序,适用于寻迹小车实验板*/
#include<reg51.h>//头文件
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//共阳七段编码
uchar temp=0;//定义定时器溢出计数变量,每隔50ms产生1次溢出,temp加1
uchar miao=00; //定义时钟变量,当temp计数加20(20x50ms=1s)时,miao加1
uchar fen=00; //定义时钟变量,当miao计数加60(60x20x50ms=60s)
时,fen加1
uchar shi=00; //定义时钟变量,当fen计数加60时,shi加1 sbit P0_6=P0^6 ;//定义P0端口
/*--定时计数器T0及其中断初始化函数--*/
void timer0init(void)
{
TMOD=0x01;//设置定时器0为工作方式1
TH0=(65536-50000)/256;//16位计数初值除以256得到高8位初值
TL0=(65536-50000)%256;//16位计数初值除以256的余数得到低8位初值
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
}
/*----------延时函数---------------*/
void delay(uint n)
{
uint i,j;
for(i=n;i>0;i--)
for(j=124;j>0;j--);
}
/*定时计数器中断程序,每当定时计数器溢出时触发中断,执行该程序*/
void time0() interrupt 1
{
TH0=(65536-50000)/256;//重装初值
TL0=(65536-50000)%256;
if(temp==20)
{
temp=0;
if(miao==59)
{miao=0;
if(fen==59)
{fen=0;
if(shi==23) shi=0;
else shi++;
}
else fen++;
}
else miao++;
}
else temp++;
}
/*--------------显示函数------------*/
void display(void)
{
/*P1=0xfe;*/P1=0x7f;//输出秒的个位的位码 P0=table[miao%10]; //输出秒的个位的段码 delay(5); //亮5ms
/*P1=0xfd;*/P1=0xbf;//输出秒的十位的位码 P0=table[miao/10]; //输出秒的十位的段码 delay(5); //亮5ms
/*P1=0xfb;*/P1=0xdf;
P0=0xbf;
delay(5);
/*P1=0xf7;*/ P1=0xef; //输出分的个位的位码P0=table[fen%10]; //输出分的个位的段码
delay(5);
/*P1=0xef;*/P1=0xf7; //输出分的十位的位码
P0=table[fen/10]; //输出分的十位的段码
delay(5);
/*P1=0xdf;*/P1=0xfb;
P0=0xbf;
delay(5);
/*P1=0xbf;*/P1=0xfd; //输出时的个位的位码
P0=table[shi%10]; //输出时的个位的段码
delay(5);
/*P1=0x7f;*/P1=0xfe; //输出时的十位的位码
P0=table[shi/10]; //输出时的十位的段码
delay(5);
}
/*----------主函数-----------------*/
void main(void)
{
timer0init();//调用初始化函数对定时计数器进行初始化 while(1)
{
display();//调用显示函数显示时间
}
四、仿真调试:
在完成程序仿真调试过程中,出现了很多小问题,这些问题虽然简单,但真正解决起来还是比较棘手的。

例如,数码管显示时、分、秒的位置错乱,或者是某一位数码管不亮,这样的问题对于高手来说就是小菜一碟,一看就知道是哪出了问题,可我却找了半天才查到,原来是显示函数模块中送入位码时位码的编码出错,为了解决这个下问题,我将每一个数码管的位码都重新编写一次。

这个问题解决后,再次仿真时钟并没有按要求显示出来,而是出现下图一样的错误显示,通过仔细观察发现,只是小时与分、分与秒之间的那两位数码管显示错误,于是直接检查那两个标志位数码管的段码,发现原来是输送段码时只是将g段送了个0,以致显示时标志位总是跟随前一位数码管显示。

通过我们的不断修改和调试,最终八位数码管能正确显示时钟如下(零时零二分二十三秒):
五、设计总结:
对于51单片机设计时、分、秒计时器程序的编写与结构的分析,我想这些都是我们从不懂到懂的慢慢转变的一个过程,记得在刚开始做这个实验报告的时候,我们遇到了很多的问题,首先的时候我们感觉连程序都读不懂,更不用去说写这些程序并分析它的逻辑了。

但是困难总是伴随着我们的努力慢慢的解决。

我们开始学会参照老师的原始的99秒计数的程序,根据其逆向的思维进行我们分秒时的程序编写。

当我们慢慢的了解每个语句的意思所在时,我们再根据其逻辑思想,慢慢的我们了解到了这个程序我们应该怎么去写!怎么去分析它了。

通过这次也让我对数字钟的设计与制作,了解了设计电路的程序,也让我了解了关于数字钟的原理与设计理念,要设计一个电路总要先用仿真仿真成功之后才实际接线的。

但是最后的成品却不一定与仿真时完全一样,因为,在实际接线中有着各种各样的条件制约着。

所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。

总的来说在这一次的实验报告中我们学到了很多,我们开始学会去分析程序,然后写出程序了。

我感觉这是我们学习C语言的一次非常大的进步!
11。

相关文档
最新文档