单片机,电子秒表计时器

合集下载

单片机课程设计——电子秒表

单片机课程设计——电子秒表

安徽科技学院电气与电子工程学院《单片机原理与应用设计》课程设计设计说明书题目: 秒表姓名(学号) ************************************ 专业: 电气工程及其自动化班级: 133 指导教师: ***2016 年 5 月 9 日目录摘要 (1)关键字 (1)第一章硬件的选择与设计 (1)第二章软件设计 (9)第三章调试结果 (19)参考文献 (20)秒表摘要:本次课程设计,我们组设计的是秒表。

使用AT89C51单片机设计一个2位的LED数码显示作为“秒表”:显示时间为00—99秒,每秒自动加1,另设计一个“开始计时/时间锁定”键和一个“复位”键。

通过对键盘的扫描对时钟的走时/停止进行控制,项目采用定时器T0作为计时器,每10ms发生一次中断,每100次中断加1s。

在此期间,如“开始计时/时间锁定”按键按下,程序方将TR0置为1,从而开启中断,秒表开始计时,再按一次“开始计时/时间锁定”按键,则将TR0置0,秒表停止计时;如“复位”按键按下,程序将TR0置为0,同时将存储时间的变量清零,从而中断停止,并实现复位。

我们设计的秒表完成了准确计时,和当前时间的显示。

通过Keil uvison4进行程序软件的编译,通过proteus进行仿真,最后调试通过,完成此次课程设计。

关键字:秒表51单片机MAX7219 定时第一章硬件选择与设计1、芯片简介(1)8051单片机MCS-51是指美国Inter公司生产的一系列单片机的总称。

这一系列单片机包括8031、8051、8751、8032、8052、8752等。

其中8051是最早、最典型的产品,该系列其他单片机都是以8051为核心发展起来的,都具有8051的基本结构和软件特征。

8051单片机内部包含了作为微型计算机所必需的基本功能部件,各部件相互独立地集成在一块芯片上,其基本功能特性如下:a、8位CPU;b、32条双向可独立寻址的I/O线;c、4KB程序存储器(ROM),外部可扩充至64KB;d、12KB数据存储器(RAM),外部可扩充至64KB;e、两个16位定时/计数器;f、五个中断源;g、全双工的串行通信口;h、具有布尔运算能力。

单片机,电子秒表计时器.

单片机,电子秒表计时器.

课程设计说明书课程名称:?单片机技术?设计题目:电子秒表计时器院〔部〕:电子信息与电气工程学院学生姓名:学号:专业班级:指导教师:2021年 5月 17日课程设计任务书设计题目电子秒表计时器学生姓名电子信息与电专业、年级、班所在院部气工程学院设计要求:用 AT89S52 设计一个 3 位的 LED 数码作为“秒表〞。

利用单片机的定时器、计数器定时和记数的原理,结合显示电路、LED 数码管以及按键来设计计时器。

将软、硬件有机的结合起来,使得系统能够正确的进行加计时,数码管能够正确的显示时间,显示时间为 0.0-99.9 秒,每 0.1 秒自动加 1,另外设计一个“开始〞键、一个“复位〞键、一个“停止〞键和一个翻页键。

秒表可单独分别计时,且最多可计 5次。

学生应完成的工作:1、通过单片机原理课程设计,了解单片机应用系统的根本设计方法,设计步骤,熟悉和掌电路参数的计算。

2、设计多个方案,进行论证比较选出最优方案。

3、通过查阅手册和文献资料,提高自己分析和解决实际问题的能力与技巧。

4、进一步熟悉软件的正确使用方法,原理图设计。

5、认真撰写课程设计总结报告。

6、本次设计我主要负责软件设计局部。

参考文献阅读:[1]张毅刚 .单片机原理及应用 .北京:高等教育出版社,[2]杜树春.单片机C语言和汇编语言混合编程实例详解.北京:北京航空航天大学出版社,[3]谢嘉奎 .电子线路〔第四版〕 .北京 :高等教育出版社, 2004.[4]臧春华 .电子线路设计与应用 .北京 :高等教育出版社 ,2005.工作方案: 5 月 7 日:听老师关于此次设计要求及流程的讲座。

5 月 8 日:查阅相关资料,拟定方案。

5月 9 日— 10 日:确定硬件方案并论证。

5 月 11 日:进行软件编程,画出硬件电路图并进行仿真和调试。

5月 14 日— 16 日:焊接并调试。

5月17 日:写课程设计报告。

5月18 日:交课程设计报告及实物。

C51单片机秒表计时(C语言)

C51单片机秒表计时(C语言)

南开大学滨海学院C51嵌入式软件设计(C语言)题目:计时秒表●功能描述:本设计实现在99秒内的秒表计时,一个按键实现开始、暂停、复位。

●原理概述:P1接四位七段数码管,P3。

2接一按键产生外部中断0,P3。

4-P3。

7控制扫描显示。

计时使用定时器0产生10ms中断累计。

按键不同次序决定了对应的控制功能,因为第一次按键必定为开始计时,所以第二次按键判断为暂停,依次第三次为置零.主程序调用显示程序,显示程序实时显示计时时间.●效果显示●图一(电路总图)●图二(效果显示)注:第四位显示为单位:S●程序清单#include<reg51。

h>#include〈stdio.h>unsigned char Tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F };sbit P37=P3^7;sbit P36=P3^6;sbit P35=P3^5;sbit P34=P3^4;unsigned int a=0,cout=0,mm=0;x,y,p,q;/*********延时*********************/void delay(){int g;for(g=70;g>0;g—-);}/*********显示程序*****************/void display(){x=cout/10;//秒十位P34=0;P1=Tab[x];delay();P34=1;y=cout—x*10; //秒各位P35=0;P1=Tab[y]; delay();P1=0x80;delay();P35=1;p=mm/10; //ms的高位P36=0;P1=Tab[p];delay();P36=1;P37=0; //显示单位:SP1=Tab[5]; delay();P37=1;}/*********主程序********************/ void main(){IT0=1;EX0=1;ET0=1;TMOD=0x01;TH0=0xD8;//装初值,10msTL0=0xF0;EA=1;while(1){display(); };}/*********外部按键中断子程序*********/ void int0 ()interrupt 0{if(a==0)//开始计时{ TR0=1;mm=0;a++;}else if(a==1)//暂停计时{TR0=0;a++;}else//置零{ a=0;mm=0;cout=0;}}/*********定时器子程序****************/ void time0()interrupt 1{TH0=0xD8;TL0=0xF0;mm++;if(mm==80)//考虑其它损耗,调整后约为1S {cout++;mm=0;}}。

基于单片机的数字电子秒表的设计与实现

基于单片机的数字电子秒表的设计与实现

主电源引脚Vss和Vcc①Vss接地②Vcc正常操作时为+5伏电源外接晶振引脚XTAL1和XTAL2①XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。

当采用外部振荡器时,此引脚接地。

②XTAL2内部振荡电路反相放大器的输出端。

是外接晶体的另一端。

当采用外部振荡器时,此引脚接外部振荡源。

图1.2 8051单片机引脚图控制或与其它电源复用引脚RST/VPD,ALE/PROG,PSEN和EA/Vpp①RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。

接电源及额定段导通电流来确定相应的限流电阻。

图1.4 (a)数码管引脚图(b)共阳极内部结构图(c)共阴极内部结构图本设计采用共阴极数码显示管做显示电路,由于采用的是共阴的数码显示管,所以只要数码管的a、b、c、d、e、f、g、h引脚为高电平,那么其对应的二极管就会发光,使数码显示管显示0~9的编码见表1.1。

表1.1 共阴极数码显示管字型代码字型共阴极代码字型共阴极代码0 3FH 5 6DH1 06H 6 7DH2 5BH 7 07H3 4FH 8 7FH4 66H 9 6FH动态显示电路由显示块、字形码驱动模块、字位驱动模块三部分组成。

如图1.3所示为本系统的5位LED动态显示器接口电路。

图中,5个数码管的8段段选线分别与外接上拉电阻的单片机P0口对应相连,而5个数码管的位控制端则和NPN型三极管的集电极相连接。

单片机的P2.0~P2.4口则分别对应数码显示管的最低位到最高位,P2.0~P2.4口分别和五个NPN型三极管的基极相连,做三极管导通的控制端,而NPN型三极管选用9013型三极管。

根据9013的资料显示:其耐压值为40V,最大功率为0.65W,最大反向放大器所构成的振荡电路,XTAL1和XTAL2分别为振荡电路的输入和输出端,8051单片机的时钟信号通常用两种电路形式得到:内部振荡方式与外部振荡方式。

单片机简易秒表正计时时间可设置

单片机简易秒表正计时时间可设置

单片机简易秒表正计时时间可设置秒表是一种用来测量时间流逝的仪器,广泛应用于体育比赛、科学实验和日常生活中。

在现代科技的推动下,秒表的功能和精准度都得到了极大提升。

本文将介绍一种单片机实现的简易秒表,能够进行正计时,并可设置计时时间。

用于实现秒表功能的单片机芯片有很多种,通常选择计时和定时功能强大的单片机,如STC89C52、AT89C51等。

这些单片机具有丰富的外设和强大的计时能力,非常适合实现秒表功能。

在开始设计之前,我们需要明确几个关键的功能要求。

首先是正计时功能,我们需要编写程序来实现从0开始的计时。

其次是计时时间可设置,即用户可以设置计时的起始时间和结束时间。

最后是计时的精确度,单片机通常使用定时中断来实现计时,我们需要考虑到时钟频率和定时器的精度,确保计时的准确性。

首先,我们需要连接单片机与显示器和按键开关。

单片机的引脚可以通过通用I/O口或专用的定时器引脚与显示器和按键开关相连接。

这里我们选择7段LED数码管作为显示器,用来显示计时结果。

按键开关用于设置计时时间。

接下来,我们需要编写程序来实现秒表的功能。

首先,初始化单片机的定时器和中断。

我们需要设置定时器的工作模式、时钟频率和计时的时间间隔。

然后,我们需要编写中断服务函数,该函数在定时器达到设定的时间时被调用。

在中断服务函数中,我们将对计时进行加法操作,并将结果显示在LED数码管上。

同时,我们还需要判断计时是否达到设置的结束时间,如果达到,则停止计时。

为了使用户可以设置计时时间,我们可以通过按键开关来实现。

当用户按下设定时间的键时,我们将进入设定模式,用户可以通过按键来设定起始时间和结束时间。

通过LED数码管来显示用户设置的时间。

最后,我们需要对秒表进行测试和调试,确保其功能的正常运行。

我们可以逐步测试每个功能点,如正计时功能、计时时间设置功能和计时精确度等。

通过串口输出调试信息,我们可以对程序进行调优和改进,提高秒表的性能和稳定性。

51单片机4位数码管秒表代码

51单片机4位数码管秒表代码

主题:51单片机4位数码管秒表代码内容:1. 介绍51单片机51单片机是一种通用的单片机系列,广泛应用于各种电子设备中。

它具有稳定性好、成本低、易于编程等优点,因此备受电子爱好者和专业工程师的青睐。

2. 4位数码管秒表4位数码管秒表是一种常见的电子计时器,通过LED数码管显示出当前的时间,可以用于各种计时应用,比如比赛计时、实验计时等。

3. 代码编写以下是一段简单的51单片机4位数码管秒表代码:```c#include <reg52.h>#include <intrins.h>// 数码管位选端口sbit wei1 = P2^2;sbit wei2 = P2^3;sbit wei3 = P2^4;sbit wei4 = P2^5;// 数码管显示段选端口sbit se2 = P0^2;sbit se1 = P0^3;sbit se4 = P0^4;sbit se3 = P0^5;unsigned char code smgduan[17] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,0x00}; // 显示0~9,A,b,C,d,E,F,无的值void delay(unsigned int i) { // 延时while(i--);}void display(unsigned char *tab) { // 数码管显示 unsigned char i;for(i=0; i<7; i++) {P0=0; // 清除段选,以选中所显示的数码管 switch(i) { //确定位选case(0):wei1=0;wei2=wei3=wei4=1;break;case(1):wei2=0;wei1=wei3=wei4=1;break;case(2):wei3=0;wei1=wei2=wei4=1;break;case(3):wei4=0;wei1=wei2=wei3=1;break;default:break;}P0=tab[i]; //段码输出delay(5); // 数码管微秒级延迟}}void m本人n() {unsigned char a=0,b=0,c=0,d=0; //时钟的4位数据 unsigned int i=0;wei1=wei2=wei3=wei4=1; //段选、位选初始化while(1) {a++; // 微秒级的计数if(a==100) { //达到100a=0; b++; //b加1if(b==60) { //当b=60时b=0; c++; //c加1if(c==60) { //当c=60时c=0; d++; //d加1if(d==24) { //当d=24时d=0; //归零}}}}display(smgduan+d10); //显示个秒wei1=1;wei2=wei3=wei4=0; //位选delay(500); //延时display(smgduan+c/10+10); //显示十秒wei2=1;wei1=wei3=wei4=0; //位选delay(500); //延时display(smgduan+b10); //显示个分wei3=1;wei1=wei2=wei4=0; //位选delay(500); //延时display(smgduan+b/10+10); //显示十分wei4=1;wei1=wei2=wei3=0; //位选delay(500); //延时if(i++==200) { //当i=200时i=0;}}}```4. 代码分析该代码通过对51单片机的引脚进行控制,实现了4位数码管秒表的计时功能。

基于单片机的电子秒表

基于单片机的电子秒表

基于单片机的电子秒表课程设计(论文)说明书题目:基于单片机的电子秒表院(系):信息与通信学院专业:电子信息工程学生姓名:学号:指导教师:武小年职称:副教授2012年 12 月 9 日桂林电子科技大学课程设计(论文)报告用纸第 0 页共 3 页摘要近年来随着科技的飞速发展,单片机的应用正在不断地走向深入。

本设计采用AT89S52单片机、3-8线译码器74LS138芯片、74hc573锁存器以及max232芯片设计了一个数字电子秒表系统,利用定时器/计数定时和计数的原理,结合显示电路、LED数码管以及外部中断电路来设计的计时器;系统使用6位数码管显示;还设置了复位和暂停等按键,方便使用者控制。

软件系统采用C 语言编程输入程序。

本文将软、硬件有机地结合起来,使得系统能够实现6位LED 显示,显示时间从秒到小时,计时范围比较广。

关键字:单片机; 数字电子秒表; LED数码管AbstractIn recent years along with the rapid development of science and technology, SCM applications are constantly deepening. In this paper based on singlechip digital electronic stopwatch design. This design is mainly characterized by the use of 6 digital tube display, in seconds, while the precision is not very high, but solves the stopwatch is cumbersome, and the design is also provided with a reset and pause button, convenient for users to control.The design of the digital electronic stopwatch system using AT89S52 microcontroller as the center device, using the timer / counter timing and counting principles, combined with the display circuit, the LED digital tube as well as the external interrupt circuit to design the timer. The software and hardware combination, so that the system can achieve 6 LED display, display the time from seconds to hours, a relatively wide range of timing. The software system adopts C language programming input program. The hardware also used 3-8 line decoder 74LS138 chip, 74hc573 latch and an MAX232 chip.Key word:SCM; Digital electronic stopwatch; LED Digital tube目录引言 (1)1 电子秒表的工作原理 (1)1.1 电子秒表简介 (1)1.2 电子秒表的工作原理 (1)2 硬件设计 (2)2.1键盘模块 (2)2.2 控制模块 (3)2.3 显示模块 (8)3 软件设计 (11)3.1 秒表设计流程 (11)3.2 延时模块 (12)3.3 中断模块 (13)4 电子秒表的制作与调试分析 (14)4.1 使用protel99se软件设计电路图 (14)4.2 电路板的制作 (15)4.3 电路板的调试与分析 (15)5 结束语 (16)谢辞 (17)参考文献 (18)附录 (19)桂林电子科技大学课程设计(论文)报告用纸第 0 页共25页引言随着时代的发展与进步,人们对时间的要求越来越高,需要计时的也越来越多;现在的很多体育赛事都需要用到秒表。

电子秒表的原理

电子秒表的原理

电子秒表的原理一、引言电子秒表是一种精确测量时间的仪器,广泛应用于体育比赛、实验室研究、工业生产等领域。

本文将介绍电子秒表的工作原理以及常见的实现方式。

二、电子秒表的工作原理电子秒表的工作原理基于计时器的原理,通过精确的计时器芯片来测量时间。

电子秒表的主要组成部分包括计时器芯片、显示屏、按钮等。

1. 计时器芯片计时器芯片是电子秒表的核心,它能准确测量时间并进行显示。

计时器芯片内部通常含有频率稳定的晶振,它提供了一个基准时间信号。

计时器芯片通过记录基准时间信号的变化来精确计时。

2. 显示屏显示屏通常采用液晶显示技术,能够清晰地显示时间。

计时器芯片通过与显示屏的连接,将计时结果传输给显示屏进行展示。

3. 按钮电子秒表还配备了操作按钮,用于启动、停止、清零等操作。

通过按钮的按下,可以控制计时器的工作状态。

三、电子秒表的实现方式根据具体的设计要求和应用场景,电子秒表可以采用不同的实现方式。

1. 单片机实现一种常见的实现方式是使用单片机来搭建电子秒表。

单片机通过编程控制计时器芯片的工作状态,并根据需要进行时间转换和显示控制。

这种方式具有灵活性高、功能丰富的特点。

2. 集成模块实现另一种常见的实现方式是使用现成的集成模块来构建电子秒表。

这些集成模块通常具有计时器芯片、显示屏和按钮等基本组成部分,可以直接使用。

这种方式具有简单方便、应用广泛的特点。

3. 软件应用实现随着智能手机等移动设备的普及,电子秒表的功能也可以通过软件应用来实现。

通过下载安装相应的应用程序,智能手机可以具备计时器的功能,并提供更加灵活多样的操作方式。

四、总结电子秒表是一种精确测量时间的仪器,基于计时器的原理进行工作。

它通过计时器芯片、显示屏和按钮等组成部分来实现精确计时和操作控制。

电子秒表可以采用单片机实现、集成模块实现或者通过软件应用实现。

无论采用何种方式,电子秒表在各个领域中都发挥着重要的作用。

(文章长度已为1500字,满足题目要求,无需再增加字数)。

[单片机课设]秒表时钟计时器的设计

[单片机课设]秒表时钟计时器的设计

辽宁工学院《单片机与接口技术》课程设计(论文)题目:秒表/时钟计时器的设计院(系):专业班级:学号:学生姓名:指导教师:教师职称:起止时间:课程设计(论文)任务及评语目录第1章方案论证 (1)第2章硬件设计 (3)2.1秒表/时钟计时器的总体设计 (3)2.2 AT89C52单片机最小系统 (4)2.3 74LS244芯片说明 (6)2.4 LED显示器的显示方法及其与单片机的接口 (6)2.5电源电路的设计 (8)第3章软件设计 (9)3.1主程序 (9)3.2显示子程序 (9)3.3定时器T0中断服务程序 (10)3.4 T1中断服务程序 (10)3.5调时功能程序 (11)3.6整点响程序 (11)3.7时钟/秒表功能程序 (11)3.8 程序清单 (11)第4章设计总结 (21)参考文献 (23)第1章方案论证现今的计时器通常只能通过启/停按键实现断点计时的功能,即通过启/停按键来记录一段时间。

这种计时器查看的时间只能为计时结束时刻。

实际的应用中往往需要在不影响正常计时的基础上,能查看记录过程中的某些点的时间。

本课设即针对此问题,设计了一种能通过按键方式查看记录过程中任一时刻值的计时器。

这种计时器在查看中间值时不会影响整个记录过程,并且能把相应数据送入存储模块及显示模块,以便查看。

本系统采用AT89C52单片机作控制器,LED数码管,实现显示时、分、秒,以24小时计时方式。

为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法。

由于静态显示法需要数据锁存器等硬件,结构较为复杂,考虑时钟显示只有六位,且系统没有其他复杂的处理任务,所以采用动态扫描法实现LED的显示。

单片机采用AT89C52系列,有足够的空余硬件资源实现其它的扩充功能。

秒表/时钟计时器的总体设计框图如下图所示。

图1.1 系统总体设计框图系统主要实现如下功能:1.时钟功能对于时钟功能,需要在数码管上显示小时、分钟和秒钟,因此,可以在内部存储空间分别定义它们的显示缓存空间,来存放小时、分钟和秒钟的BCD码,各2个字节。

单片机课程设计秒表计时器

单片机课程设计秒表计时器

课程设计名称:单片机原理及接口技术题目:基于单片机的秒表计时器设计学期:2014-2015学年第一学期专业:电气技术班级:姓名:学号:指导教师:辽宁工程技术大学课程设计成绩评定表课程设计任务书一、设计题目秒表计时器二、设计任务本课题以单片机为核心.设计和制作一个秒表计时器。

三、设计计划课程设计一周第1天:查找资料.方案论证。

第2天:各部分方案设计。

第3天:各部分方案设计。

第4天:撰写设计说明书。

第5天:校订修改.上交说明书。

四、设计要求1、绘制软件流程图并利用汇编语言编写软件程序;2、绘制系统硬件原理图;3、形成设计报告。

指导教师:教研室主任:2014年 5月 26 日本设计利用89C51单片机设计秒表计时器.通过LED显示秒十位和个位.在设计过程中用一个存储单元作为秒计数单元.当一秒到来时.就让秒计数单元加一.通过控制使单片机秒表计时.暂停.归零。

设计任务包括控制系统硬件设计和应用程序设计。

关键词:51单片机;74HC573;LED数码管综述 (1)1 程序方案 (2)方案论证 (2)总体方案 (2)2部分设计 (3)89C51单片机 (3)晶体振荡电路 (4)硬件复位电路 (5)显示电路 (6)整体电路图 (7)3程序设计 (8)程序流程框图 (8)显示程序流程图 (9)汇编源程序 (10)4调试说明 (13)概述 (13)电路原理图 (13)心得体会 (15)参考文献 (16)单片机是集定时.计数和多种接口于一体的微控制器。

他体积小.成本低.功能强.广泛应用于智能产品和工业自动化上。

而51单片机是各单片机中最位典型和最有代表性的一种。

中国使用单片机的历史只有短短的30年.在初始的短短五年时间里发展极为迅速。

纵观我们现在生活的各个领域.从导弹的导航装置.到飞机上各种仪表的控制.从计算机的网络通讯与数据传输.到工业自动化过程的实时控制和数据处理.以及我们生活中广泛使用的各种智能IC卡、电子宠物等.这些都离不开单片机。

单片机 秒表计时器 课程设计3

单片机 秒表计时器 课程设计3

单片机课程设计报告书学院:土木工程学院班级:土木023 设计人:田春杰1设计题目:设计一个电子秒表计时器2总体设计:完成按下按扭启动,开始计时;再次按下该按扭后停止计时。

按下另一个按扭时,秒表清零的功能,计时数值最大为99分59秒99。

用LED数码管显示计时的时间,显示的时间应有百分之一秒为、十分之一秒位、秒个位、秒十位、分个位、分十位;利用单片机的外部中断,某键为低时产生中断开始计时,再一次为低时产生中断停止计时。

当来一外部脉冲时,产生中断使时间清零。

3 硬件系统设计:将P1.2口接到一按钮开关上,作为一个停止或开始计时的中断。

外部中断0的引脚INT0接一按钮开关,作为清零中断。

利用定时器0产生一个百分之一秒的计时中断。

4源程序如下:A_BIT EQU 20H ;数码管个位数存放内存位置B_BIT EQU 21H ;数码管十位数存放内存位置TEMP EQU 22H ;计数器数值存放内存位置;开机初始化MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入MOV P0,#0FFH;使显示时间数码管熄灭CLR F0CLR F1MOV DPTR,#NUMTAB ;指定查表启始地址;等待按键输入;根据按键的输入判断执行什么功能;按键1按下则执行功能1MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入MOV P0,#0FFH;使显示时间数码管熄灭START:JB P3.6,START1;循环判断开始按钮K1是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.6,START;如果是干扰就返回JNB P3.6,$;等待按键松开LJMP GN1;按键2按下则执行功能2START1: JB P3.7,START;循环判断开始按钮K2是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.7,START1;如果是干扰就返回JNB P3.7,$LJMP GN2;数码管显示秒表时间的程序GN1: ;先初始化S1:MOV A,#0MOV TEMP,AGOON1: MOV R2,#2JS1: MOV R3,#250TIME1: MOV A,TEMP ;将TEMP中的十六进制数转换成10进制MOV B,#10 ;10进制/10=10进制DIV ABMOV B_BIT,A ;十位在AMOV A_BIT,B ;个位在BLCALL DPLOP1;插入一段判断定时过程中是否有按键输入的程序段C1: JB P3.6,B1ACALL DELAY10;延时10毫秒消抖JB P3.6,C1JNB P3.6,$;等待按键松开CPL F0ZT1: ; MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入JB P3.6,$;循环判断开始按钮K1是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.6,ZT1;如果是干扰就返回JNB P3.6,$;等待按键松开LCALL DPLOP1B1: JB P3.7,LOOP1ACALL DELAY10;延时10毫秒消抖JB P3.7,B1JNB P3.7,$;等待按键松开AJMP OVERLOOP1: DJNZ R3,TIME1 ;2毫秒循环执行250次,时间约0.5秒DJNZ R2,JS1 ;循环执行2次,时间为1 秒钟INC TEMP;满一秒钟对时间加1MOV A,TEMPCLR CSUBB A,#60JNZ GOON1;判断TEMP的数值是否为60?不为60循环ACALL OVERRETGN2: MOV A,#14H ; 设定倒计时的时间20SMOV TEMP,A;数码管显示倒计时时间的程序;初始化MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入MOV P0,#14H;使显示时间为设定的倒计时时间GOON2: MOV R2,#2JS2: MOV R3,#250TIME2: MOV A,TEMP ;将TEMP中的十六进制数转换成10进制MOV B,#10 ;10进制/10=10进制DIV ABMOV B_BIT,A ;十位在AMOV A_BIT,B ;个位在BMOV DPTR,#NUMTAB ;指定查表启始地址DPLOP2: MOV A,A_BIT ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码MOV P0,A ;送出个位的7段代码CLR P2.5 ;开个位显示ACALL DEL Y1;显示1毫秒SETB P2.5;关闭个位显示,防止鬼影MOV A,B_BIT ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码MOV P0,A ;送出十位的7段代码CLR P2.6 ;开十位显示ACALL DEL Y1;显示1毫秒SETB P2.6;关闭十位显示,防止鬼影;插入一段判断定时过程中是否有按键输入的程序段C2: JB P3.6,B2ACALL DELAY10;延时10毫秒消抖JB P3.6,C2JNB P3.6,$;等待按键松开ZT2: MOV P3,#0FFH;对P3口初始化,设置为高电平,用于按键输入JB P3.6,$;循环判断开始按钮K1是否按下?ACALL DELAY10;延时10毫秒触点消抖JB P3.6,ZT2;如果是干扰就返回JNB P3.6,$;等待按键松开B2: JB P3.7,LOOP2ACALL DELAY10;延时10毫秒消抖JB P3.7,B1JNB P3.7,$;等待按键松开AJMP OVERLOOP2: DJNZ R3,TIME2 ;2毫秒循环执行250次,时间约0.5秒DJNZ R2,JS2 ;循环执行2次,时间为1 秒钟DEC TEMP;满一秒钟对时间减1MOV A,TEMPJNZ GOON2;判断TEMP的数值是否为0?不为0循环ACALL OVERRET;结束定时OVER: AJMP START;退到开机初始化状态;1毫秒延时子程序DELY1: MOV R4,#2D1:MOV R5,#248DJNZ R5,$DJNZ R4,D1RET;10毫秒延时子程序DELAY10: MOV R4,#20D2:MOV R5,#248DJNZ R5,$DJNZ R4,D2RET;实验板上的两位一体的数码管0~9各数字的显示代码NUMTAB: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H DPLOP1: MOV A,A_BIT ;取个位数MOVC A,@A+DPTR ;查个位数的7段代码MOV P0,A ;送出个位的7段代码CLR P2.5 ;开个位显示ACALL DEL Y1;显示1毫秒SETB P2.5;关闭个位显示,防止鬼影MOV A,B_BIT ;取十位数MOVC A,@A+DPTR ;查十位数的7段代码MOV P0,A ;送出十位的7段代码CLR P2.6 ;开十位显示ACALL DEL Y1;显示1毫秒SETB P2.6;关闭十位显示,防止鬼影RETEND5自评分和收获体会:通过本次设计让我又一次认识到了单片机应用的广泛性,同时也看到了自己在单片机应用上的不足之处,以后还要加强学习。

基于单片机89C51的计时器或秒表

基于单片机89C51的计时器或秒表

基于单片机89C51的计时器或秒表AT89C51单片机秒表程序和电路图要求就是这样的了:1. 设计中采用的单片机以及显示器件,用AT89C51设计一个2位LED数码显示秒表,有开始,停止,清零就行。

2. 设计实现的基本功能,系统显示时间为00~99秒,每秒自动加1,设计越简单越好。

求电路图和相应的C程序,过程最好能详细些,因为要写实验报告~~希望高手帮忙悬赏分:50 - 解决时间:2010-6-1 15:51就是那个秒表问题,你给我的设计,汇编程序能改成C吗?悬赏分:0 - 解决时间:2010-6-1 18:25//---------------------------------------------下面是00-99秒计数的语言C程序。

#include<reg52.h>#include<intrins.h>unsigned char i, j;unsigned char code table[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99,0x92, 0x82, 0xf8, 0x80, 0x90};bit k;//---------------------------------------------void main( ){TMOD = 0x01; //;T0定时方式1TH0 = (65536-50000) / 256; //;50ms@12MHzTL0 = (65536-50000) % 256;TR0 = 1; //;定时器初始化结束ET0 = 1; //;开启定时中断EX0 = 1;EX1 = 1;EA = 1;i = 0;j = 0;P0 = 0xC0;P2 = 0xC0;while(1);}//---------------------------------------------void timer0(void) interrupt 1{TL0 = (65536-50000) % 256;TH0 = (65536-50000) / 256; //;50ms@12MHzif (k) {j++;if (j == 20) {j = 0;i++;if (i == 100) i = 0;P0 = table[i / 10];P2 = table[i % 10];}}}//--------------------------------------------- void x0(void) interrupt 0{k = ~k;}//--------------------------------------------- void x1(void) interrupt 2{i = 0;j = 0;P0 = 0xC0;P2 = 0xC0;}//---------------------------------------------。

单片机秒表工作原理

单片机秒表工作原理

单片机秒表工作原理
单片机秒表的工作原理主要基于定时器/计数器模块。

以下是一个简单的步
骤说明:
1. 选择计时器:选择单片机上的一个可用计时器,通常是定时/计数器模块,作为秒表的计时器。

2. 初始化:在程序开始时,将计时器清零并设置适当的计数模式和分频比,以获得所需的计时精度。

这可以通过寄存器设置来完成。

3. 开始计时:启动计时器,开始计时。

4. 计时器中断:使用计时器中断功能来在计时达到特定时间时触发中断。

中断处理程序可以用于更新显示、记录时间等任务。

5. 显示计时:通过适当的数码显示器或LCD显示屏等外部硬件,将计时器
的值以秒、分和时的形式显示给用户。

6. 暂停和复位:实现暂停和复位功能,使用户可以暂停计时和重新启动。

通过这些步骤,单片机秒表可以完成时间计量和显示任务。

具体的实现细节可能会根据单片机的型号和编程语言有所不同。

单片机课程设计电子秒表

单片机课程设计电子秒表

电子综合设计实训题目电子秒表姓名李军专业电子科学与技术学号 201131006指导教师李大海目录前言 ..................................... 错误!未定义书签。

1 电子秒表总体设计 (5)1.1课程设计的目的 (5)1.2任务要求 (5)1.3任务分析 (5)1.4 方案设计及论证 (6)1.4.1 方案设计 (6)1.4.2方案确定 (7)1.5 设计步骤 (8)2 系统的硬件电路 (9)2.1时钟电路 (9)2.2 复位电路 (10)2.3显示模块设计 (11)2.4 按键电路 (11)3 软件设计 (13)3.1主要模块流程图 (13)3.2 程序的主要模块 (14)4 仿真与调试 (15)4.1 仿真分析 (15)4.2硬件调试 (15)结论 (17)参考文献 (18)附录 (19)电子秒表的设计摘要本次设计是基于AT89C51单片机的电子秒表的设计,单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。

本次设计内容为以AT89C51单片机为核心的秒表,采用两个4位LED数码管显示以及外部中断电路来实现数字秒表的基本功能。

它采用键盘输入,单片机技术控制。

设计内容以硬件电路设计,软件设计和 PCB 板制作三部分来设计。

利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。

将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示计时。

本次课程设计主要完成具备基本功能的电子秒表的理论和实践设计,电子秒表是重要的记时工具,广泛运用于各行各业中。

作为一种测量工具,电子秒表相对其它一般的记时工具具有便捷、准确、可比性高等优点。

提高了精确度,而且可以大大降低错误率。

因此电子秒表常常用于体育竞赛及各种其他要求有较精确时间的各领域中。

关键词:AT89C51单片机;电子秒表;数码管前言近年来随着科技的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统控制检测日新月异更新。

单片机 秒表计时器 课程设计5

单片机 秒表计时器 课程设计5

电子秒表计时器理学院物理021班客建红学号:020032一、总体设计1 实现功能:本试验设计的是一个秒表计时器,计时数值最大为99分59秒99。

按下按钮启动,开始计时;再次按下按钮后停止计时。

按下另一个按钮时,秒表清零。

2 解决方案:用LED数码管显示计时的时间,显示的时间应有百分之一秒位、十分之一秒位、秒个位、秒十位、分个位、分十位;利用单片机的外中断,某键为低时产生中段开始计时,再一次为低时产生中断停止计时;另一键为低时产生中断使时间清零。

二、硬件系统设计1 所需设备:DICE-5013S实验系统一个,并行接口8155一个,PC微机(P4)一台。

2 接线方式:将P1.2接到按钮开关1上,作为一个停止或开始计时的中断;外部中断0的引脚INT0接按钮开关2,作为清零中断。

3 资源分配:用定时器0产生一个百分之一秒的计时中断。

三、硬件系统设计1 功能模块:显示模块用来显示秒表计时时间,循环模块用来判断是否百分秒位已到100,秒位已到60,分位已到100,来控制进位。

设置初值模块来设置计时器初值。

清零模块将计时器清零。

2 (1)主程序流程图:(2)计时中断程序流程图:四、程序清单ORG 0000HAJMP MAINORG 0003HAJMP CLEAR ;清零中断ORG 000BHAJMP JISHI ;计时中断ORG 0013HAJMP STOP ;停止中断MAIN: MOV TMOD,#01H ;T/C0工作方式为方式1MOV IE, #87HMOV TL0, #78H ;置T/C0初值(216-10000/2=0EC78H)MOV TH0, #0ECHSETB TR0 ;开启各个中断SETB IT0SETB IT1MOV R4, #00H ;1/100秒置初值MOV R3, #00H ;秒置初值MOV R2, #00H ;分置初值MOV 79H, #00H ;1/100秒位置初值MOV 7AH, #00H ;1/10秒位置初值MOV 7BH, #00H ;秒个位置初值MOV 7CH, #00H ;十秒位置初值MOV 7DH, #00H ;分个位置初值MOV 7EH, #00H ;十分位置初值SETB P1.2DISP: MOV SP,#5FH ;显示MOV A,#03H ;对8155初始化,A口、B口输出,C口输入MOV DPTR,#0FF20HMOVX @DPTR,ADISP4: MOV R5,#01H ;置字位码初值MOV R0,#79H ;显示缓冲区指针初值MOV A,R5LD0: MOV DPTR,#0FF21H ;字位码送8155A口MOVX @DPTR,AMOV DPTR,#0FF22HMOV A,@R0ADD A,#0EHMOVC A,@A+PC ;查字型码MOVX @DPTR,A ;字型码送8155B口ACALL DLAY ;延时1MSINC R0MOV A,R5JB ACC.5,LD1RL AMOV R5,AAJMP LD0LD1: SJMP DISP4DB 0C0H,0F9H,0A4H,0B0H,99H,92H ;字型码表DB 82H,0F8H,80H,90H,88H,83H,0C6HDB 0A1H,86H,8EH,0FFH,0CH,89HDB 0C8H,0C1H,7FH,0BFHDLAY: MOV R7,#02H ;延时子程序DL1: MOV R6,#0FFHDL2: DJNZ R6,DL2DJNZ R7,DL1RETJISHI: MOV TL0, #78HMOV TH0, #0ECHPUSH ACCJNB P1.2,NEXT ;P1.2为0则返回不计时INC R2MOV A, R2MOV B, #10DIV ABMOV 79H, B ;存1/100秒位MOV 7AH, A ;存1/10秒位CJNE R2, #100, NEXT ;1/100秒到100则秒加一MOV R2, #00HMOV 79H, #00HMOV 7AH, #00HINC R3MOV A, R3MOV B, #10DIV ABMOV 7BH, B ;存秒位MOV 7CH, A ;存十秒位CJNE R3, #60, NEXT ;秒到60则分加一MOV R3, #00HMOV 7BH, #00HMOV 7CH, #00HINC R4MOV A, R4MOV B, #10DIV ABMOV 7DH, B ;存分位MOV 7EH, A ;存十分位CJNE R4, #100, NEXT ;分到100则还原MOV R4, #00HMOV 7DH, #00HMOV 7EH, #00HNEXT: POP ACCRETICLEAR: MOV R2, #00H ;计时器清零MOV R3, #00HMOV R4, #00HMOV 79H,#00HMOV 7AH,#00HMOV 7BH,#00HMOV 7CH,#00HMOV 7DH,#00HMOV 7EH,#00HRETISTOP: CPL P1.2 ;停止或开始RETIEND五、调试程序方法将程序在W A VE中编译,调试成功后联机。

单片机数字秒表计时器编写

单片机数字秒表计时器编写

单⽚机数字秒表计时器编写这次做了51单⽚机的实验数字秒表显⽰,⽤到了定时器,中断服务函数,还有就是数码管的动态显⽰,还有就是程序的逻辑考虑初次在这⾥写,经验不⾜,排版不够美观代码如下:#include<reg52.h>#define uchar unsigned charsbit s0=P1^0;sbit s1=P1^1;sbit s2=P1^2;sbit s3=P1^3; //数码管的位选uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0~9的数码管段码uchar count=0;uchar second=0;uchar minite=0;uchar number=200;void delay(void){uchar a,b;for(b=1;b>0;b--)for(a=90;a>0;a--);}void delay_LED(){ uchar a,b;for(b=38;b>0;b--)for(a=80;a>0;a--);}void ini_display() //初始化数码管显⽰“ help” 字样{ uchar x=1000;while(x--){s0=0;s1=1;s2=1;s3=1;P0=0x89;delay();P0=0xff;s0=1; s1=0; s2=1; s3=1; P0=0x86; delay(); P0=0xff;s0=1; s1=1; s2=0; s3=1; P0=0xc7; delay(); P0=0xff;s0=1; s1=1; s2=1; s3=0; P0=0x8c; delay(); P0=0xff;}}void display() // 显⽰ XX(分):XX(秒) 四个数码管共阳极{if(second<=9){s0=1; s1=1; s2=1; s3=0; P0=table[second]; delay_LED(); P0=0xff;s0=1; s1=1; s2=0; s3=1; P0=table[0]; delay_LED(); P0=0xff;s0=1; s1=0; s2=1; s3=1; P0=table[minite%10]; delay_LED(); P0=0xff;s0=0; s1=1; s2=1; s3=1; P0=table[minite/10]; delay_LED(); P0=0xff;}if(second>=10&&second<60){s0=1; s1=1; s2=0; s3=1; P0=table[second/10]; delay_LED(); delay_LED(); P0=0xff; s0=1; s1=1; s2=1; s3=0; P0=table[second%10]; delay_LED(); P0=0xff;s0=1; s1=0; s2=1; s3=1; P0=table[minite%10]; delay_LED(); P0=0xff;s0=0; s1=1; s2=1; s3=1; P0=table[minite/10]; delay_LED(); P0=0xff;}if(second==60){minite++;second=0;}if(minite==60){minite=0;}}void main(){ uchar flag=0;EA=1;ET1=0;ET0=1;TMOD = 0x21; //定时器0作定时50msTH0 = 0x3c;TL0 = 0xb0;TR0 = 1;TH1 = 0xfd;TL1 = 0xfd; // 定时器1做波特率发⽣器TR1 = 1;EX1 = 1;IT1 = 1;ES = 1;SM0 = 0;SM1 = 1;REN = 1; //设置串⼝⽅式SBUF=temp; //触发串⼝处的中断while(1){if(flag==0){ini_display();flag = 1;}else{display();}}}void timezhongduan( ) interrupt 1 //定时50ms后,计数20次,就是⼀秒----->秒表计时器{TH0 = 0x3c;TL0 = 0xb0;count++;if(count==20){count=0;SBUF=table[minite/10];SBUF=table[minite%10];SBUF=table[second/10];SBUF=table[second%10];second++;}}void waibuint()interrupt 2 //外部中断1,会清零从头开始计数{EX1=0;second=0;minite=0;EX1=1;}void series()interrupt 4 //置零TI{if(TI){TI=0;}}。

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

课程设计说明书课程名称:《单片机技术》设计题目:电子秒表计时器院(部):电子信息与电气工程学院学生姓名:学号:专业班级:指导教师:2013年5月17日课程设计任务书电子秒表计时器摘要:本次设计主要完成具备基本功能的电子秒表的理论和实践设计,此计时器系统使用AT89C51单片机为中心器件,由电源电路、时钟电路、复位电路、显示电路组成。

其中软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,硬件系统利用PROTEUS软件进行仿真,使得系统能够实现三个8位LED数码管显示,显示时间为0.0~99.9秒,能正确的进行计时,能同时进行五次计时,并能对所记录的时间进行查询,此系统易于仿真、制作简单且使用方便。

关键词:AT89C51、电子秒表、数码管显示、仿真目录1.设计背景 (1)1.1单片机简介 (1)1.2设计目的 (1)2.设计方案 (1)2.1方案一 (1)2.2方案二 (1)2.3综合比较 (2)3.方案实施 (2)3.1整体工作原理 (2)3.2硬件系统设计 (3)3.3软件程序设计 (5)3.4系统仿真 (5)3.5系统的制作过程 (6)4.结果与结论 (7)4.1结果 (7)4.2结论 (7)5.收获与致谢 (7)6.参考文献 (7)7.附件 (8)1. 设计背景1.1单片机简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除100次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。

89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

1.2设计目的电子秒表是重要的记时工具,广泛运用于各行各业中。

作为一种测量工具,电子秒表相对其它一般的记时工具具有便捷、准确、可比性高等优点。

不仅可以提高精确度,而且可以大大减轻操作人员的负担,降低错误率。

因此电子秒表常常用于体育竞赛及各种其他要求有较精确时间的各领域中。

其中开启、停止按键的使用方法与传统的机械计时器相同,即按一下开启按键,启动计时器开始计时,按一下停止按键计时终止。

而复位按键可以在任何情况下使用,即使在计时过程中,只要按一下复位按键,计时应立即终止,并对计时器清零。

2.设计方案2.1方案一静态显示,静态显示方式下的数码管的显示字符一经确定,相应锁存器锁存的断码输出將维持不变,直到送入另一个字符的断码为止。

因而此设计中使用的显示位数使用了三个8位并行I/0口。

这种方法的优点是占用CPU时间少,显示便于检测和控制。

缺点是硬件电路比较复杂,成本较高。

2.2方案二动态显示,这个显示方式是将所有显示位的段码线的相应段并联在一起,由一个8位I/O口控制,将所有位数码管的段选线并连在一起,由段选线控制哪一位数码管有效。

选用数码管采用动态扫描显示。

所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光的余晖和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

动态显示的亮度比静态显示要差一些。

2.3综合比较本设计分为时钟电路、按钮电路、显示电路和单片机四大部分,这些模块中单片机占主控地位。

其模块电路如图2-1所示。

时钟电路常用的有内部时钟方式和外部时钟方式,但因为本设计中只需要一片单片机,所以采用内部时钟方式比较简单。

按钮电路中的“复位”按钮是按键手动复位,它有电平和脉冲两种方式,比较电路的复杂程度,本设计选择了按钮电平复位电路,其他几个按钮则是通过单片机判断高低电平的不同来控制按钮。

显示电路所用的数码管有共阴和共阳之分,不管使用何种数码管,P0口作为I/O 使用时都是需要上拉电阻才能驱动数码管。

因而不管在使用共阴数码管时,单片机输出口也必须使用上拉电阻提高输出电流,才能驱动数码管。

为了使电路简单化,本设计选用共阳数码管。

根据显示方式的不同,由以上两种方案的对比,选用静态显示方式。

图2.13. 方案实施3.1整体工作原理本系统采用89C51系列单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计数器,将软、硬件有机的结合起来。

其中软件系统采用汇编语言编写程序,包括显示程序,加1技术程序,演示程序,按键消抖程序等,硬件系统利用PROTEUS强大功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。

3.2硬件系统设计1.电源电路模块电源电路模块原理图如图3.2所示。

图3.1 电源电路图电源电路由桥堆、1个22uF电解电容、7805、1个100pF瓷片电容、一个电源指示灯和一个300欧姆电阻组成,通过电源电路实现整流、滤波和稳压的作用,能够输出5V 的稳定直流电压使单片机工作在稳定的5V直流激励下。

2.晶体振荡电路模块电路图如3.3所示。

AT89C51单片机内部的振荡电路是一个高增益反相器,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。

这里,我们选用52单片机12MHz的内部振荡方式,电路如下:电容器C1、C2起稳定振荡频率,快速起振的作用,C1和C2可在20-100PF 之间取,这里取30P,接线时要晶体振荡器X1极可能接近单片机。

图3.2 晶体振荡电路3.复位电路模块复位模块电路图如图3.3所示。

采用上电+按键复位电路,上电后由于电容充电,使RST持续一段高电平时间。

当单片机已在运行之中时,按下复位键也能使用RST持续一段时间的高电平,从而实现上电加开关复位的操作。

这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。

图3.3 复位电路4.硬件原理图设计的硬件原理图如图3.5所示。

由电源模块、复位模块、数码管模块以及时钟模块等组成。

图3.4 硬件原理图3.3软件程序设计1.软件设计概述在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。

把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可能性,使程序的结构层次一目了然。

应用系统的程序由包含多个模块的主程序和各种子程序组成。

各程序模块都要完成一个明确的任务,实现某个具体的功能,如:加计数延时,计数和显示等,在具体需要时调用相应的模块即可。

功能描述:根据设计要求,显示时间为0.0-99.9秒,每0.1秒自动加1,另外设计一个“开始”键、一个“复位”键和一个“停止”键。

秒表可单独分别计时,且最多可计5次。

3.2主程序流程图单片机的程序可用汇编语言也可用C语言,为了提高使用汇编语言的能力,本设计特用了汇编语言编写程序,设计流程图如图3.5所示,具体程序见附件。

图3.5 主程序流程图3.4系统仿真此系统采用Proteus软件进行仿真,按下START键开始仿真,连续按五次STOP键停止计时,连续按下FANYE键可以显示出五次计时记录的时间,按下FUWEI键,可以使数码管复位,显示00.0,仿真图如3.6所示。

图3.6 仿真图3.5系统的制作过程在完成了软件设计与硬件仿真之后,便开始了系统的制作,此次制作用到的是万能板。

使用万能版需要注意:1.初步确定电源、底线的布局。

利用此板布置有贯穿整个板子的铜箔,应将其用作电源线和地线。

2.善于利用元器件的引脚。

万能版的焊接需要大量的跨接、跳线等,不要急于剪断元器件多余的引脚,有时候直接跨接到周围待连接的元器件引脚上会事半功倍。

在焊接时需要注意:先给焊盘预热,然后加锡,再撤走锡丝,最后拿走烙铁,整个过程应少于五秒,焊接完后要检查有无虚焊,连焊等现象,确保焊接质量。

另外在剪掉元件引脚时,应避免留有尖头,否则会产生自激现象,影响产品性能。

系统焊接结束之后,需要把程序烧到单片机上。

4. 结果与结论4.1结果按照理论上电路的连接方法,先仿真,仿真成功后做实物,可能是数码管的连线太多太乱,最终调试不成功,电源灯和数码管都不亮,在电路焊接的过程中应该有错误,因此又把器件从板子上拔下来重新焊接,这次电源灯亮了,但数码管仍然不亮,可能是由于电路连接不当致使数码管烧坏,为了使此次设计成功,老师又重新给了零件,我们又对板子进行了重新焊接,这次电源灯和数码管都能亮,但是数码管不受开始、复位等键的控制,由此判断是单片机烧坏,更换单片机,板子终于可以正常工作。

4.2结论经过这一次的课程设计,从搜索资料到硬件、软件的调试成功,每一步、每一个细节自己都经过思考,共同讨论各方案的比较选择和画图、做板和硬、软件的调试。

本次设计内容较多,关系到电路的设计与制作,以及程序的设计和两者的匹配组合,每一部分都要注意,每一部分都要严格要求,否则,就会出现错误,影响最后的结果。

本次设计还是存在着许多缺陷。

这块电路板不能随意查看记录的数据,而是必须在计完五次数据后才能依次的翻页查看,复位后所计数据便会丢失,不能翻看历史,所计数据组数不能满足现实需要。

还有很大的改进空间。

5. 收获与致谢通过这次设计我们学习了Keil、Proteus Isis等电子软件。

同时复习了单片机课程的知识,使我们对单片机更加深刻,更加热爱。

虽然短短的两周不能使我们的知识有特别独到的见解,但做出这个设计是我认识到学习的乐趣和合作的重要性。

感谢老师这两个星期对我们的敦敦教导。

没有老师的呕心沥血,我们也不会学到单片机这么实用的课程,这次课程设计让我懂得在以后的学习中一定要扎实刻苦,多听取别人的意见,多参考资料。

最后,衷心感谢老师对我的指导和帮助。

谢谢老师。

6. 参考文献[1] 张毅刚.单片机原理及应用.北京:高等教育出版社,2009.11[2] 杜树春.单片机C语言和汇编语言混合编程实例详解.北京:北京航空航天大学出版社,2006.6[3] 谢嘉奎.电子线路(第四版).北京:高等教育出版社,2004.[4] 臧春华.电子线路设计与应用.北京:高等教育出版社,2005.7. 附件附程序如下:D EQU 60HE EQU 61HF EQU 62HG EQU 63HH EQU 64HI EQU 65HORG 0000HLJMP MAINORG 000BH ;定时器T0的入口地址LJMP DINGSHIORG 0013H ;外部中断1的入口地址LJMP STOP1ORG 0030H ;主程序入口地址MAIN: MOV P0,#0C0H ;置初值MOV P2,#0C0HMOV P1,#0C0HMOV DPTR,#TABLE ;数据指针指向表头地址SETB EA ;开中断SETB EX0SETB EX1SETB ET0SETB PX0 ;设中断优先级SETB PX1MOV TMOD,#01H ;工作方式为方式1;******************************************** ;开始及计数程序;******************************************** START: MOV R0,#40HMOV R1,#50HMOV R2,#00HCLR P1.0MOV TH0,#0D8H ;置计数初始值MOV TL0,#0F0HMOV R3,#00HMOV R4,#00HMOV R7,#00HMOV B,#10MOV SP,#30HMOV D,#60HMOV E,#61HMOV F,#62HMOV G,#63HMOV I,#65HMOV R5,#05XUNHUAN: JB P1.7,START1 ;p1.7=0是开始LCALL DELAY10 ;按键消抖JB P1.7,XUNHUANJNB P1.7,$LJMP GN1LJMP XUNHUANSTART1: JB P3.0,XUNHUANLCALL DELAY10JB P3.0,XUNHUANJNB P3.0,$LCALL FANYELJMP XUNHUAN;******************************************** ;翻页模块;******************************************** FANYE: MOV A,@R0MOV R3,AMOV A,@R1MOV R4,ADEC R5CJNE R5,#04,LOP1MOV A,DMOV R7,ALJMP L1LOP1: CJNE R5,#03,LOP2MOV A,EMOV R7,ALJMP L1LOP2: CJNE R5,#02,LOP3MOV A,FMOV R7,ALJMP L1LOP3: CJNE R5,#01,LOP4MOV A,GMOV R7,ALJMP L1LOP4: CJNE R5,#00,FANYEMOV A,IMOV R7,ALJMP L1L1: INC R0INC R1INC R2CJNE R2,#5,LOOP2MOV R0,#40HMOV R2,#00HLOOP2:LCALL XIANSHIRET;******************************************** ;数码管记录程序;********************************************GN1: SETB TR0LOOP: CJNE R2,#05H,LOOPMOV R0,#40HMOV R1,#50HMOV R2,#00HCLR EAAJMP XUNHUAN;******************************************** ;1毫秒延时子程序;******************************************** DELAY1: MOV R6,#2DL1: MOV H,#248DJNZ H,$DJNZ R6,DL1RET;******************************************** ;10毫秒延时子程序;******************************************** DELAY10: MOV R6,#20DL2: MOV H,#248DJNZ R6,DL2RET;********************************************;外部中断1中断程序,停止模块;******************************************** STOP1 : PUSH ACCPUSH PSWLCALL DELAY10 ;延时10毫秒消抖JB P3.3, FAN1JNB P3.3,$MOV A, R3MOV @R0 , AMOV A, R4MOV @R1, ADEC R5CJNE R5, #04, LOP5MOV A, R7MOV D, ALJMP L4LOP5: CJNE R5, #03, LOP6MOV A, R7MOV E, ALJMP L4LOP6: CJNE R5, #02, LOP7MOV A, R7MOV F, ALJMP L4LOP7: CJNE R5, #01, LOP8MOV A, R7MOV G, ALJMP L4LOP8: CJNE R5, #00, STOP1MOV I,ALJMP L4L4: INC R0INC R1INC R2FAN1: POP PSWPOP ACCRETI;******************************************** ;显示子程序;******************************************** XIANSHI:MOV A ,R3 ;扫描十分位上的数字MOV DPTR ,#TABLEMOVC A ,@A+DPTRMOV P2 ,AMOV A ,R4 ;扫描个位上的数字MOV DPTR ,#TABLEMOVC A ,@A+DPTRMOV P0 ,AMOV A ,R7 ;扫描十位上的数字MOV DPTR ,#TABLEMOVC A ,@A+DPTRMOV P1 ,ARET;******************************************** ;定时器T0中断程序;******************************************** DINGSHI:PUSH ACCPUSH PSWMOV B,#10AJMP COUNTCOUNT: INC R3CJNE R3,#0AH,DH2MOV R3,#00HINC R4CJNE R4,#0AH,DH2MOV R4,#00HINC R7CJNE R7,#0AH,DH2MOV R7,#00HDH1: MOV TH0,#0D8HMOV TL0,#0F0HSETB TR0DH2: POP PSWPOP ACCLCALL XIANSHIRETITABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END附实物图如下:附元器件清单如下:。

相关文档
最新文档