单片机秒表设计实验报告(1)

 

本科学生设计性实验报告

学号     姓名        

学院物理与电子   专业、班级 

实验课程名称     简易秒表设计         

教师及职称               

    开课学期 20## 2014  学年      学期

            填报时间   2014       6       5  

云南师范大学教务处编印

摘要:单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计内容为以 89C51 单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计内容以硬件电路设计,软件设计和PCB 板制作三部分来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。

一、实验设计方案

三.实验总结

 

第二篇:基于单片机的0~99计时秒表的设计(1)

基于单片机的099计时秒表的设计1

本科毕业论文(设计)

论文题目:××××××××××××××××

姓 名:

学 号: 院(系、部): 专 业: 班 级: 指导教师:

完成时间: 年 月

邢台学院2014届本科毕业设计

摘 要

本次设计内容是以AT89C51单片机为核心器件,利用AT89C51和外围电路组成的计时秒表系统,计时秒表是一种先进电子计时器,较多的应用在教学器材、比赛计时等,而且采用数字显示,具有直观、方便读取、功能方便等诸多优点。本设计是由硬件电路和软件程序两部分组成,硬件电路由AT89C51单片机、按键控制电路、数码管显示电路、晶振电路以及复位电路组成,它使用元件少,电路结构简单,功能强大;软件部分程序采用C语言程序设计,使用keil编译源程序,产生的可执行性文件能够让单片机高效快速的执行。该设计能够充分利用单片机内部资源,通过程序利用定时器中断服务程序对计时秒表开始、暂停、清零等操作进行处理,提高单片机的工作效率。

关键字:单片机;秒表;定时器;中断服务程序

1

邢台学院2014届本科毕业设计

Abstract

This design content is based on AT89C51 single-chip microcomputer as the core device, using the timing stopwatch system composed of AT89C51 and peripheral circuit, timing stopwatch is a kind of advanced electronic timer, more application in teaching equipment, timing, etc., and adopts digital display, its intuitive, convenient read, function, and many other advantages.This design is consists of two parts, hardware circuit and software program, the hardware circuit is controlled by AT89C51, key circuit, digital tube display circuit, crystals circuit and reset circuit, it USES less component, circuit structure is simple, powerful;Software part program using C language program design, use the keil compiler source code, can let the enforceability file microcontroller efficient and rapid execution.This design can make full use of the single chip microcomputer internal resources, through the program using the timer interrupt service routine for timing stopwatch start, pause, reset operations such as processing, improve the working efficiency of the single chip microcomputer.

Key Words: Single chip microcomputer;A stopwatch;The timer;Interrupt service routine

2

邢台学院2014届本科毕业设计

目 录

前 言 ...................................................................... 4

1、AT89C51单片机概述 ........................................................ 4

1.1、AT89C51单片机简介 .......................................................................................................... 4

1.2、AT89C51主要特性及管脚说明 .......................................................................................... 5

2、硬件电路的设计 ............................................................ 6

2.1、设计要求 ............................................................................................................................. 6

2.2、总体方案的设计 ................................................................................................................. 7

2.3、总体电路设计 ..................................................................................................................... 7

2.4、晶振电路、复位电路及按键电路 ..................................................................................... 8

2.5、数码管显示电路的设计 ..................................................................................................... 9

2.5.1、数码管的结构及工作原理 ........................................................................................... 9

2.5.2、数码管的编码方式及段码表 ....................................................................................... 9

2.5.3、数码管的显示方式 ..................................................................................................... 10

3、软件设计 ................................................................. 10

3.1、设计思想 ........................................................................................................................... 10

3.2、程序流程图 ....................................................................................................................... 10

3.3、源程序代码 ....................................................................................................................... 11

4、结论..................................................................... 13

5、参考文献 ................................................................. 13

6、谢辞..................................................................... 14

3

邢台学院2014届本科毕业设计

前 言 单片微计算机又称单片微控制器,是目前市面上最常用的嵌入式处理器,通称单片机,单片机芯片常用英文字母MCU表示单片机,它像一般的逻辑功能的芯片,为了完成逻辑运算,而是把一个最小计算机系统系统整合后,集成烧录到这个芯片上,单片机像计算机一样,由运算器、控制器、输入输出设备等组成,因此相当于一个微型的计算机最小系统,但是和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件,同时也是作为电子开发设计入门直选,它也是最早是被用在工业控制领域。

由于单片机在工业微控制领域的大量应用,单片机由仅有处理器的专用芯片发展而来,最早的开发理念是将一些输入输出设备和专用的CPU整合在一个芯片中,使计算机控制系统更小更适用,应用到各个要求严格的工业控制设备当中。本次毕业设计以单片机为核心,设计简单的电子秒表系统,使得系统能够正确地运行,并且可以用数码管显示,在现实生活中应用广泛,具有现实意义。

1、AT89C51单片机概述

1.1、AT89C51单片机简介

单片机是性能价格比高、体积小、对国民经济渗透力大、最有前途的微控制器。单片机自20世纪70年代初研制成功并发展至今,已进入第四代。它主要是在一块芯片上集成了CPU、存储器以及输入输出电路,在工业过程中被广泛应用在控制电路中。从单片机的系列来看,国内外已超过50个系列、近500个品种,当前正处于更新换代、百花齐放的时期。新的系列和专用系列正在不断涌现。按位数分类有4位、8位、16位以及32位单片机等,4位单片机由于价格低和出现的早得到了广泛的应用,特别是在家电应用领域中其还有很大的优势,为了抵御8位机的竞争,4位机在结构和功能上都有很大的改进。8位机的生产厂家以及品种都很多,在实际的生产中应用也最为广泛,其中Intel公司的8051系列单片机在我国应用最为广泛,另外8位单片机也在其功能和内部结构上不断的进行改进,目前功能是越来越强大。16位单片机在数据处理以及单片机的性能上有了很大的改进。32位单片机是随着高科技产业的发展而产生的。

AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位单片微控制器,又称 4

邢台学院2014届本科毕业设计

单片机,单片机对可擦除的只读存储器可以反反复复擦出烧录1000多次。该器件采用ATMEL高科技的制造技术制造,与工业标准相互兼容。由于将多功能8位处理器和快速存储设备集成到单个芯片里,ATMEL公司生产的AT89C51是一个高效、快速、准确的微控制器,同时该公司生产的AT89C2051是AT89C51的精简版本。AT89C51单片机已经为很多嵌入式工业设备提供了多种性能高、价格便宜的设计方案。现在AT89S51/52已经取代了AT89C51/52。

1.2、AT89C51主要特性及管脚说明 AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 VCC:芯片供电电压。

GND:芯片接地。

P0口:P0口为一个双向I/O口,8位漏级开路并且每个引脚可吸收8倍TTL的门电流。当向P0口8个引脚写1时,此时为高阻状态。P0能够用于外部程序数据存储器,可以作为数据/地址的低八位。此时P0外部必须接上拉电阻。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口引脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。

P3口也是AT89C51的双用功能口,如下所示:

P3.0 RXD串行输入口

P3.1 TXD串行输出口

5

邢台学院2014届本科毕业设计

P3.2 INT0外部中断0

P3.3 INT1外部中断1

P3.4 T0计时器0外部输入

P3.5 T1计时器1外部输入

P3.6 WR外部数据存储器写选通

P3.7 RD外部数据存储器读选通

RST:复位输入

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

2、硬件电路的设计

2.1、设计要求

本设计是基于单片机的0~99计时秒表的设计,利用单片机的控制和计时功能设计一个显示0~99秒的计时秒表。

要求基于单片机的控制功能,利用单片机的内部资源,设计一个简易的计时秒表。要求能够随时开启秒表计时,计时过程中可以随时暂停计时,暂停计时后还可以随时恢复计时,整个计时过程结束后可以停止计时,还要随时可以计时归零。计时精度为0.01秒(即10毫秒),用四个数码管显示十秒、秒、分秒和毫秒。

6

邢台学院2014届本科毕业设计

2.2、总体方案的设计

计时秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字计时秒表,力求结构简单、精度高为目标。并利用AT89C51单片机的定时器原理,使其能准确记数。下图为本设计的总体设计框图:

基于单片机的099计时秒表的设计1

2.3、总体电路设计

总体电路包括了晶振电路、复位电路、数码管显示电路、驱动电路以及按键电阻组成。

基于单片机的099计时秒表的设计1

7

邢台学院2014届本科毕业设计

2.4、晶振电路、复位电路及按键电路

这个系统中的复位电路是采用上电加按钮来实现的,因为AT89C51单片机的复位是靠外部电路实现的,AT89C51单片机工作之后,只要在他的RST引线上加载10ms以上的高电平,单片机就能有效地进行复位。AT89C51单片机通常采用上电自动复位、按键复位、以及上电加按键复位等,我们采用的是上电加按键复位方式,这样做的优点是上电后可以直接进入复位状态,当程序出现错误时,可以随时使电路复位。

复位电路:

基于单片机的099计时秒表的设计1

按键电路采用轻触开关,当按下去的时候导通,松开后断开

按键电路:

基于单片机的099计时秒表的设计1

8

邢台学院2014届本科毕业设计

2.5、数码管显示电路的设计

2.5.1、数码管的结构及工作原理

基于单片机的099计时秒表的设计1

基于单片机的099计时秒表的设计1

基于单片机的099计时秒表的设计1

a

bcdefgdp

abcdefgdp

(b)共阴极、共阳极数码管

(a)数码管外形及引脚图

单片机系统扩展LED数码管时多用共阳极LED,共阳极数码管段笔画是用低

电平(“0”)点亮的,要求驱动功率很小;而共阴极数码管段笔画是用高电平(“1”)点亮的,要求驱动功率较大。 2.5.2、数码管的编码方式及段码表 数码管编码方式表如下:

代码位显示段

显示字符

012345678

D7D6D5D4D3D2D1D0

dp

共阳极

字段码C0HF9HA4HB0H99H92H82HF8H80H

gf

共阴极字段码3FH06H5BH4FH66H6DH7DH07H7FH

9

e

显示字符

9ABCDEF“灭”

dc

共阳极字段码90H88H83HC6HA1H86H8EHFFH

ba

共阴极字段码6FH77H7CH39H5EH79H71H00

数码管的字形码表如下:

邢台学院2014届本科毕业设计

2.5.3、数码管的显示方式

静态显示:各数码管的位选控制线连在一起接+5V(地);各数码管的段选控制线分别接一个8位的并行I/O口;

动态显示:由于LED数码显示器为多位,采用动态显示扫描显示方式,即逐个地循环地点亮各位显示器。这样虽然在任一时刻只有1位显示器被点亮,但是由于人眼具有视觉残留效果,看起来与全部显示器持续点亮的效果基本一样。各数码管的段选控制线共用一个8位的并行I/O口,位选控制线分别由相应的I/O口控制。

3、软件设计

3.1、设计思想

单片机秒表计时器的设计是基于单片机定时器的原理,通过设定单片机内部定时器的初始值,来设定单片机定时器中断的时间,进而完成一次定时器的中断。 开始键接在P3.0端口,按下开始键,打开定时器,开始计时;暂停键接在P3.1端口,按下暂停键,计时停止,数码管显示当前时间;清零键接在P3.2端口,按下清零键,计时重置为00.00。

3.2、程序流程图

在启动单片机秒表系统之后,程序首先进行初始化,包括定时器的初始化、变量的初始化等。然后检测按键是否按下,包括检测开始键、暂停键、清零键,如果检测到开始键按下,此时打开定时器,执行定时器中断处理函数,计时开始,数码管动态显示对应的计时时间;如果检测到暂停键按下,此时关闭定时器,计时暂停,数码管显示当前的暂停时间;如果此时清零键按下,将时间变量重置为0,此时数码管显示00.00;如果当计时秒表时间到99.99s,此时关闭定时器,数码管显示99.99。

10

邢台学院2014届本科毕业设计

3.3、源程序代码

#include<reg51.h>

#define LED P0 //定义LED为P1口

unsigned char dig[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90}; //定义共阳极数码管显示0~9

unsigned char wei[]={0XF7,0XFB,0XFD,0XFE}; //定义4位数码管的位码

int num=0;

char flag_get=0; //定义数码管显示的初始值为0

char falg_dot=0;

int miao[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} ;

int fenmiao[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

sbit start=P3^0;

sbit stop=P3^1;

sbit qingling=P3^2;

void delay(int z) //延迟函数

{

int x,y;

基于单片机的099计时秒表的设计1

11

邢台学院2014届本科毕业设计

for(x=z;x>0;x--)

for(y=0;y<110;y++);

}

void display()

{

P2=0XFF;

P2=wei[0]; //使第一位数码管显示

LED=dig[flag_get/10]; // 第一位数码管显示数字

delay(8);

P2=0XFF;

P2=wei[1]; //是第二位数码管显示

LED=dig[flag_get%10]&0X7F; // 第二位数码管显示数字 delay(8);

P2=0XFF;

P2=wei[2]; //使第三位数码管显示

LED=dig[falg_dot/10]; // 第三位数码管显示数字

delay(8);

P2=0XFF;

P2=wei[3]; //是第四位数码管显示

LED=dig[falg_dot%10]; // 第四位数码管显示数字

delay(8);

}

void main() //定义主函数

{

TMOD=0X01; //初始化中断设置

EA=1;

ET0=1; //定时器0

while(1) //无线循环,使数码管一直动态显示 {

display();

if(start==0)

TR0=1;

if(stop==0)

TR0=0;

if(qingling==0)

flag_get=falg_dot=0;

if((flag_get==99)&&(falg_dot==99))

TR0=0;

}

}

void timer0() interrupt 1 using 1

{

num++;

TH0=(65536-1000)/256; //每次溢出50ms

12

邢台学院2014届本科毕业设计

TL0=(65536-1000)%256;

if(num==10) //20次即1s

{

num=0;

falg_dot++; //显示数字加1

if(falg_dot==100) //当后两位到99时,此时从0开始再次显示

{ falg_dot=0;

flag_get++;

}

}

}

4、结论

经过这段时间的不懈努力,电子秒表的设计终于完成了。在这期间我们学会了很多,也学到了很多,同时,对单片机这门课程有了更深一步的理解和掌握。

1、本次设计使我加深了对单片机课程的全面认识,复习和掌握,对AT89C51单片机有了更深入的了解,对I/O口的使用,晶振电路的接法,以及复位电路等的掌握都有了很大程度的提高,这为以后的实践打下了良好的基础。

2、掌握了定时器和编程原理。

3、通过此次设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

4、程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。

5、我在编程过程中还有好多不理解的地方,经过同学的帮助终于完成了这次设计。在这个过程中体会到了合作的好处,更了解的互相帮助的重要性。

5、参考文献

[1]余发山编著.单片机原理及应用技术徐州:中国矿业大学出版社,20xx年

[3]杨宁编著.单片机与控制技术.北京:北京航空航天大学出版社,20xx年

[4]王闪编著.AT89系列单片机原理与接口技术.北京:北京航空航天大学出版社,20xx年

[1]李全利.单片机原理与接口技术[M].北京:高等教育出版社,2009

[2]张毅刚.单片机原理及应用[M].北京:高等教育出版社,2003

[3]韩志军.单片机应用系统设计[M].北京:机械工业出版社,2005

13

邢台学院2014届本科毕业设计

[4]罗印升.单片微机原理与应用[M].北京:机械出版社,2012

6、谢辞

首先诚挚的感谢指导老师项老师,项老师为我对本文的完成提供了良好的设施和环境,从论文的选定到实验研究,从资料收集到方案确定,项老师都给了我大量的中肯的建议和意见,我的每步工作都凝聚了老师们辛勤汗水。同时,项老师的严谨的治学态度和忘我的工作精神以及高尚的师德给我留下了深深的影响,这将激励我更好地完成今后的学习和工作。借此机会对项老师的精心教育和指导表示忠心的感谢;也借此机会,感谢大学三年来辛勤教育指导我的各科任老师。我也很感谢论文答辩的各位评委老师,感谢他们在百忙之中抽出时间帮我们答辩。还要感谢班里的同学对我不懈的支持与帮助。

通过这次设计,我学到了很多知识,同时也认识到在团队工作中需要有合作精神,我想这会为今后自己踏上工作岗位、更好地融入新的团队打下良好的基础。 14

相关推荐