数字式秒表单片机数字秒表课程设计.docx

上传人:b****6 文档编号:7696703 上传时间:2023-01-25 格式:DOCX 页数:22 大小:200.23KB
下载 相关 举报
数字式秒表单片机数字秒表课程设计.docx_第1页
第1页 / 共22页
数字式秒表单片机数字秒表课程设计.docx_第2页
第2页 / 共22页
数字式秒表单片机数字秒表课程设计.docx_第3页
第3页 / 共22页
数字式秒表单片机数字秒表课程设计.docx_第4页
第4页 / 共22页
数字式秒表单片机数字秒表课程设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

数字式秒表单片机数字秒表课程设计.docx

《数字式秒表单片机数字秒表课程设计.docx》由会员分享,可在线阅读,更多相关《数字式秒表单片机数字秒表课程设计.docx(22页珍藏版)》请在冰豆网上搜索。

数字式秒表单片机数字秒表课程设计.docx

数字式秒表单片机数字秒表课程设计

 

《单片机技术》课程设计说明书

数字式秒表

系、部:

学生姓名:

指导教师:

职称

专业:

班级:

完成时间:

 

摘要

 

本次课程设计的数字电子秒表系统采用AT89S52单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计。

将软、硬件有机地结合起来,使得系统能够实现LED显示,0~99.99秒,计时精度为0.01秒,能正确地进行计时。

其中软件系统采用汇编语言编写程序,包括主程序,显示程序,中断服务程序,延时程序,按键程序等,并在KEIL中调试运行,硬件系统利用PROTEUS来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。

关键词:

 秒表;AT89S52;汇编语言

 

目录

1设计课题任务、功能要求说明及总体方案介绍····························1

1.1设计课题任务···················································1

1.2功能要求说明···················································1

1.3设计课题总体方案介绍及工作原理说明·····························1

2硬件系统的设计······················································3

2.1硬件系统各模块功能简要介绍·····································3

2.2电路原理图、PCB图、元器件布局图································5

2.3元器件清单·····················································5

3软件系统的设计······················································6

3.1使用单片机资源的情况···········································6

3.2软件系统各模块功能简要介绍·····································6

3.3软件系统程序流程框图···········································7

3.4软件系统程序清单··············································11

4设计结论、仿真结果、误差分析、教学建议·····························12

4.1设计课题的设计结论及使用说明··································12

4.2设计课题的仿真结果············································12

4.3设计课题的误差分析············································13

结束语································································14

参考文献······························································15

致谢··································································16

附录··································································17

附录A电路原理图··················································17

附录B秒表PCB图··················································18

附录C数字秒表布局图··············································19

附录D元件清单····················································20

附录E软件系统程序清单············································21

 

1设计课题任务、功能要求说明及总体方案

 

1.1设计课题任务

由单片机接受控制键盘的控制递增计时,数码管显示计时时间。

显示格式为XX(分)—XX(秒)—XX(毫秒),绘制硬件接线图,并进行系统仿真和实物板子实现。

画出程序流程图并编写程序实现系统功能。

1.2功能要求说明

用AT89S52单片机作为主要控制芯片,以四位一体共阳极数码显示管通过三极管驱动作为显示部分,设计一个具有特定功能的数字式秒表。

该数字式秒表上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。

该数字式秒表应具有开始、暂停、连续、清零和停止功能。

1.3设计课题总体方案介绍及工作原理说明

使用AT89S52单片机作为核心控制部件,采用12M晶体振荡器及微小电容构成振荡电路;用两个四位一体共阳极数码显示管作为显示部分,构成数字式秒表的主体结构,配合独立式键盘和复位电路完成此秒表的复位、计时、连续、清零、停止各项功能。

对于时钟,它有两方面的意义:

一是指为保障系统正常工作的基准振荡定时信号,主要由晶振和外围电路组成,晶振频率的大小决定了单片机系统工作的快慢;二是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:

一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方法。

LED数码显示器有两种连接方法:

共阳极接法,把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。

共阴极接法,把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。

每个发光二极管的阳极通过电阻与输入端相连。

键盘部分方案:

键盘控制采用独立式按键,每个按键的一端均接地,另一端直接和P1口相连,在按键和P1口之间通过10K电阻与+5V电源相连。

键盘通过检测输入线的电平状态就可以很容易地判断哪个键被按下了,这种方法操作速度高而且软件结构很简单,比较适合按键较少或者操作速度较高的场合,这种独立式接口的应用很普遍。

显示部分方案:

显示部分采用动态显示。

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔画“a,b,c,d,e,f,g,dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字型码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所有我们只要将需要显示数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分的时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

动态显示是利用人眼视觉暂留特性来实现显示的。

事实上,显示器上任何时刻只有一个数码管有显示。

由于各数码管轮流显示的时间间隔短、节奏快,人的眼睛反应不过来,因此看到的是连续显示的现象。

为防止闪烁延时的时间在1ms左右,不能太长,也不能太短。

本设计可采用P0口直接驱动八段数码管显示。

此方案成本低,而且单片机的I/O口占用较少,可以节约单片机接口资源,而且功耗更低。

此电路采用单片机的P0口作为数码显示管的段控,采用P2口作为数码管的位控。

8个独立式键盘分别接在单片机的P1口上,以及其他部分构成数字式秒表的硬件电路。

通过编写程序使用单片机的定时计数器,以及软件延时,中断资源来实现秒计时和相关控制。

此数字式秒表的硬件整体结构如图1所示。

 

图1数字式秒表的硬件结构图

 

2硬件系统的设计

 

2.1硬件系统各模块功能简要介绍

2.1.1AT89S52简介

(1)与MCS-51产品相兼容;

(2)具有8KB可改写的Flash内部程序存储器,可擦写1000次;

(3)256字节内部RAM;

(4)32根可编程I/O口;

(5)3个16位定时器/计数器;

(6)8个中断源;

(7)可编程中串行口;

(8)低功耗空闲掉电方式。

它的价格便宜,功能强大,能耗低。

很大程度上减少总电路的复杂性,提高了所设计系统的稳定性。

其芯片引脚图如图2所示。

图2单片机AT89S52引脚图

2.1.2时钟电路

时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。

在AT89S52芯片内部有一个高增益反相放大器,其输入端为芯片引脚ATAL1,输出端为引脚XTAL2,在芯片的外部通过这两个引脚跨接晶体振荡器和微调电容,形成反馈电路,就构成一个稳定的自激振荡器。

此电路采用12MHz的石英晶振。

2.1.3键盘电路

此设计使用独立式键盘接在单片机的P1口上但通过软件赋予其中五个按键功能,其中S2是开始键,S3是暂停键,S4继续计时键,S5是停止键,S6是清零键。

注意使用时只有在暂停状态下才能继续计时,在停止时不能继续计时。

2.1.4复位电路的选择

复位是单片机的初始化操作,其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。

除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要按复位键以重新启动。

RST引脚是单片机复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个振荡周期(即2个机器周期)以上,使用频率为12MHz的晶振,则复位信号持续时间应超过2us才能完成复位操作。

复位操作上有电自动复位和按键手动复位两种方式。

上电自动复位是通过外部复位电路的电容充电来实现的。

按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的。

在本设计中采用了按键电平复位方式,其复位电路如图2-4所示。

2.1.5驱动及显示电路

数码管实际上是由二极管构成发光二极管正常工作时,其两端正向压降约为1.6V,正向电流约为10mA,为了使数码管达到一定的亮度而又不至于由于电流过大而损坏,我们使用三极管S8550作为数码管的驱动,同时在P0口和P2口上串上470Ω的电阻。

此处使用四位一体共阴极数码管,由于驱动电路决定了此处共阴极数码管和共阳极数码管均可采用而且均采用共阳极代码来编写显示程序。

2.1.6单片机下载口电路

下载口主要是一个十芯的底座,可以通过使用USB下载线对单片机进行程序下载。

2.2硬件系统设计图

2.2.1电路图原理

此处电路原理图以及PCB原理图的绘制均使用protel99完成,protel99提供一个集成的设计环境,包括原理图设计和PCB布线工具。

根据硬件接线要求设计绘制电路原理图及PCB。

具体电路图见附录

2.2.2PCB图

PCB图设计时,首先要使元器件尽量少,这样既可以节约材料,又可以使布线更加短,减少干扰,同时还应该注意尽量减少线路之间的寄生电容和电感,布线时需要将线宽设置得比较宽这样可以提高腐蚀电路板时的成功率,焊盘大小也要设置的比较大,这样在腐蚀环节和焊接环节比较容易成功。

不易出现短线的现象和焊盘剥离的现象。

双面布线时芯片和针脚多的元件需将焊接点置于底层,这样才能比较方便焊接。

电路板PCB图见附录。

2.2.3元器件布局图

图见附录C

2.3元器件清单

图见附录D

 

3软件系统的设计

 

3.1使用单片机资源情况

本次电子钟设计除了使用单片机工作所必须的硬件资源(如连接晶振的引脚XTAL1和XTAL2,复位引脚RESET)外,对单片机的硬件资源还做了具体的安排。

(1)P0口:

P0.0-P0.7作为数码管显示器的段控。

(2)P1口:

P1.0-P1.3作为独立式键盘的输入端。

(3)P2口:

P2.0-P2.7分别控制数码管LED0-LED7的位控码驱动。

(4)使用通用寄存器RO、R1来延时,R2-R7作为数据的保护和处理。

(5)P3.4作为开始和停止的分开运行的标志,P3.5作为暂停和继续的分开运行标志。

3.2软件系统各模块功能简要介绍

显P程序和键扫程序(主程序,显示P,也判断有无键按下,若有,则跳转相应标志地方执行相应程序)

数码管显示程序(显示当前的各位的数据情况)

数据处理程序(让秒表的每个位随时间变化并保存在寄存器里)

KS(键扫描子程序)

DL(毫秒延时子程序)

TAB(共阳数码管字型代码表)

 

3.3软件系统程序流程框图

3.3.1显P程序和键扫流程框图

图3显P程序和键扫流程框图

 

3.3.2数码管显示流程框图

图4数码管显示流程框图

 

3.3.3数据处理流程框图

3.3.4延时子流程框图

 

图6延时子流程框图

 

3.3.5有无闭合键子流程框图

图7有无闭合键子流程框图

3.4软件系统程序清单

按照流程图应用软件keil汇编语言编程实现秒表功能。

程序见附录E

 

4设计总结

 

4.1设计结论及使用说明

通过设计和调试,数字式秒表能顺利完成各项功能。

上电或复位后显示“P.”提示符,此时按P1.0对应的键S2便可开始计时。

在计数状态下,按下P1.1对应的键S3即可实现暂停,按下P1.2键S4可继续计时,在计时状态下按下P1.3对应的键S5实现计时停止,在停止状态下按下P1.4对应的键S6,可实现计数清零。

4.2程序仿真与结果

我们在我们是在Keil软件里编写程序并编译通过才能被硬件电路所应用。

Keil的功能比较强大,但他编译过程中他只能检查出所编写的语法错误,所以我们一步一步的去在硬件电路里仿真去达到我们所设计要求的功能。

经仿真修改和完善均已达到设计要求.“P.”显示,电子钟准备状态与电子钟自动运行状态的仿真如下图所示

(1).“P.”显示如图8所示。

 

(2).数字式秒表准备状态仿真的显示如图9所示。

4.3误差分析及解决方法

经过下载到板子和仿真测试,发现数字式秒表计数一段时间和标准时间相比有误差,所设计的数字式秒表比我们的标准时间要快或者慢,而且相比较的时间越长他的时差越大。

经过分其主要原因与硬件和软件都有关。

软件原因:

延时程序只能起到一个大概的延时,具体也与所有执行了的程序所用时间也有关系,对于时间一长,误差就能明显。

硬件原因:

因为制板做的不能够排除整体对计时有影响,所以仿真和板子计时也有一些误差。

针对这样的问题我们就能只能去减小误差。

软件方面我们可以通过计算设计子程序去减少响应的时差。

硬件部分我们可以采用一些稳定,精确度比较高的电子元件去完善,但是在最后调试出的还是有误差但我尽可能的减少差误差。

 

结束语

 

本文利用AT89S52单片机设计了具有计时开始、暂停及清零功能的数字秒表,计时最大值为59分59.99秒,计时精度为0.01秒。

利用Proteus和Keil软件进行了仿真,达到了预期的效果。

整体电路的计时精度高,电路结构简单,抗干扰能力强,具有广泛的应用前景。

上了一个学期单片机课后看了看这些课程设计题目,感觉压力比较大,毕竟自己还是初学者,对各方面都不是了解的很透彻,因为都看上去都比较有难度,于是选定了一个觉得适合自己的课题,熟悉了单片机的内容后觉得还是可以做的出来了,一开始不知道从哪里开始下手,于是问了一些人上网查了点资料,有些是c编还有些是汇编,于是参考了一下,也和别人一起探讨了一下,一开始在设计中觉得难点在显示和秒表的不断加时的地方,通过不断翻阅书,于是编写了一个符合的程序,于是开始确定按键作用的编程,一开始想像别人一样弄几个按键多功能,于是写了一下但是还是程序有问题,最终还是弄了多个按键,经过一个整合于是程序就弄好了,感觉在编程的过程中,书本的总体知识运用比较难,难在逻辑上的紧密结合,虽然弄好了一个整体的程序也能执行,但是觉得还是有些地方也可以改进,条理还是得加强。

 

参考文献

[1]李广第,朱月秀,冷祖祁.单片机基础[M].北京:

北京航空航天大学出版社,2007.6

[2]马忠梅,籍顺心,张凯,马岩.单片机的C语言应用程序设计(第四版)[M].北京:

北京航空航天大学出版社,2007.1

[3]恰汗•合孜尔.C语言程序设计(第三版)[M].北京:

中国铁道出版社,2010

[4]谢自美.电子线路设计•实验•测试(第三版)[M].武汉:

华中科技大学出版社,2006

 

致谢

 

经过为期几个多月的课程设计,我们顺利完成课程设计,感谢各位老师的指导以及我们团队的默契配合。

本文是在指导老师凌云老师的悉心指导下完成的。

从课程设计的选题、具体设计到说明书的最后完稿所取得的每一点成绩都倾注了老师的心血。

指导老师严谨治学的态度、渊博的学识、对事业执着追求的精神以及对本人在学习、生活等各方面无微不至的关怀和帮助,都将使我终生受益。

值此说明书完成之际,谨向指导老师致以最崇高的敬意和最衷心的感谢!

也感谢寝室成员密切的配合。

感谢湖南工学院在实验仪器及器材上,为我们提供了最贴心的帮助,开放的实验室环境对我们顺利完成课题有莫大的帮助。

过程是艰辛的,成功是大家有目共睹的。

 

附录

附录A电路原理图

 

附录B:

数字秒表电路的PCB图

底层PCB

顶层PCB

附录C:

数字秒表的布局图

 

 

附录D:

元器件清单

元器件及材料名称

规格

数目

AT89S52加底座

40P

1

四位一体共阳数码管加底座

40P

2

晶振

12MHz

1

发光二极管

9

单排插

40脚

1

三极管

9012

9

蜂鸣器

1

小按键

9

下载口座子

十芯

1

六脚按键开关

1

Usb电源线加接口

1

电阻

200

1

电阻

1K

3

电阻

470

24

电解电容

22uf

1

瓷片电容

33pf

2

排阻

10k

2

短路冒

2

杜邦线8P

1

PCB板子

1

 

附录E:

软件系统程序清单

LED数码管显示器设定:

P0.7---P0.0段控线,接LED的显示段dp,g,f,e,d,c,b,a;

P2.7---P2.0位控线,从左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0);

独立式键盘设定:

8个按键S2至S9分别依次接在P1.0至P1.7口线;

子程序:

KS(键扫描子程序);

DL(毫秒延时子程序);

p3.4作为开启和停止的标志位

p3.5作为暂停和继续的标志位

用到寄存第00组:

R0、R1用于延时子程序,R2-R7用来保护和相应的处理数码管显示的数据,相应的八个依次亮的显示时间为毫秒记数的间隔。

p1.0对应的键S2的功能为启动(标识符为P3.4当它为0时启动,为1时顺序执行)

p1.1对应的键S3的功能为暂停(标识符为P3.5当它为0时暂停,为1时跳转到相应位置)

p1.2对应的键S4的功能为继续(标识符为P3.5当它为1时继续,为0时顺序执行)

p1.3对应的键S5的功能为停止(标识符为P3.4当它为1时停止,为0时跳转到相应位置)

p1.4对应的键S6的功能为清零

 

LOOP:

CLRP2.0

MOVP0,#0CH

LCALLKS

JNZLOOP1

SJMPLOOP

LOOP1:

JBP1.0,LOOP2

CLRP3.4

SJMPKSHI

LOOP2:

JBP1.1,LOOP3

CLRP3.5

LJMPZZ1

LOOP3:

JBP1.2,LOOP4

SETBP3.5

LJMPZZ1

LOOP4:

JBP1.3,LOOP5

SETBP3.4

LJMPZZ1

LOOP5:

JBP1.4,LOOP6

LOOP7:

MOVP2,#00H

MOVP0,#0C0H

LCALLKS

JNZLOOP6

SJMPLOOP7

LOOP6:

LJMPLOOP1

KSHI:

MOVR2,#00H

MOVR3,#00H

MOVR4,#00H

MOVR5,#00H

MOVR6,#00H

MOVR7,#00H

ZZ1:

MOVP2,#0FFH

CLRP2.0

MOVA,R2

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

LCALLDL

MOVP2,#0FFH

CLRP2.1

MOVA,R3

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

LCALLDL

MOVP2,#0FFH

CLRP2.2

MOVA,#0BFH

MOVP0,A

LCALLDL

MOVP2,#0FFH

CLRP2.3

MOVA,R4

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

LCALLDL

MOVP2,#0FFH

CLRP2.4

MOVA,R5

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

LCALLDL

MOVP2,#0FFH

CLRP2.5

MOVA,#0BFH

MOVP0,A

LCALLDL

MOVP2,#0FFH

CLRP2.6

MOVA,R6

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

LCALLDL

MOVP2,#0FFH

CLRP2.7

MOVA,R7

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1