基于51单片机的数字秒表设计

单片机课程设计

设计题目 基于单片机数字秒表的设计 学院名称 电气学院 指导教师 朱卫华

班 级 电子11级02班 学 号

学生姓名

本设计是基于AT89S51单片机的简易数字秒表设计,主要组成是以51单片机最小系统为核心,通过运用单片机的振荡电路实现计时同时用数码管同步显示。本秒表最大计时为99秒。本设计的特点是:大部分功能通过软件实现,使电路简单明了,系统稳定性好。

关键词:AT89S51 振荡电路 计时 数码管

1 设计概述................................................................................................................. 1

1.1 AT89S51概述 ............................................................................................... 1

1.2 系统设计功能概述 ...................................................................................... 1 2 系统设计................................................................................................................. 2

2.1 设计思路 ...................................................................................................... 2

2.2 硬件设计 ...................................................................................................... 2

2.2.1 单片机最小系统的设计.................................................................... 2

2.2.2 数码管显示电路设计........................................................................ 3

2.3 软件设计 ...................................................................................................... 7

2.3.1 软件设计流程图................................................................................ 7

2.3.2 消除开关抖动.................................................................................... 9

2.3.3 数码管延时显示程序........................................................................ 9

2.3.4 延时1秒的程序 ............................................................................. 10

3 软件调试和结果................................................................................................... 10

3.1 软件调试与下载 ........................................................................................ 10

3.2 硬件仿真 .................................................................................................... 11 4 心得体会............................................................................................................... 12

参考文献...................................................................................................................... 14

附录.............................................................................................................................. 15

I基于单片机的数字秒表设计主程序................................................................ 15

IIPCB电路图 ........................................................................................................ 17

III实物图 ............................................................................................................. 17

1 设计概述

1.1 AT89S51概述

AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

AT89S51引脚图

在实际应用中,因为STC的单片机比AT的单片机更加容易下载程序,它们的端口是一模一样的,所以本次设计实际应用的是STC51单片机。

1.2 系统设计功能概述

本设计展现的是一个计时用的秒表。功能为两位七段数码管在开机时显示“00“,并在系统中添加一个按钮开关。

当第一次按下按钮开关后秒表开始计时,

1

第二次按下后计时停止,第三次按下后两个数码管清0,并回到一开始计时状态。由于只设计了两位数码管,故该秒表最大计时99秒。

2 系统设计

2.1 设计思路

根据系统功能,易知我们先要设计一个单片机最小系统,包括振荡电路、复位电路,然后设计一个数码管控制、显示电路,再用软件来控制秒表的计时以及数码管的显示。

2.2 硬件设计

2.2.1 单片机最小系统的设计

1时钟电路设计

如图2.2.1,为了方便计算,本设计采用12MHz的晶振,一个机器周期为1秒。

2复位电路设计

2

图2.2.1

如图2.2.2,为了更好的控制复位电路,用了一个接触式按钮开关。

图2.2.2

2.2.2 数码管显示电路设计

一般来说,不直接用I/O端口直接连接数码管,如图2.2.3,本设计采用74ls48 译码器和共阴极数码管。

3

图2.2.3

74ls48芯片是一种常用的七段数码管译码器驱动器,常用在各种数字电路和单片机系统的显示系统中,如下图,为74Ls48真值表以及特性表。

4

图2.2.4真值表

图2.2.5特性表

因为74ls48输出电流最大为6mA,在数码管的工作电流之内,所以不必用电阻。

共阴极数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,x相应字段就不亮。

5

图2.2.6数码管引脚图

图2.2.7数码管真值表

6

将共阴极数码管一端接地,一端接在单片机上,通过操纵单片机的高低电平,从而控制数码管。

图2.2.5

如图2.2.5,当按钮没有按下时,单片机的I/O口直接连接电源,所以须要上拉电阻进行限流,计算的灌电流为2.5mA,查看AT89S51的数据手册知该电流在其范围内,满足设计要求。

2.3 软件设计 2.3.1 软件设计流程图

7

8

2.3.2 消除开关抖动

当手指按下开关时,如果我们的动作足够完美,那么P1.0应该立即出现一个低电平,并且这个低电平一直保持到我们抬起手指为止。但实际情况是,我们没有经过专业的按开关训练和开关自身存在着接触点接触不良的问题,导致在按下开关的过程中产生一个微妙的跳变电平接触过程:开关在一个很短的时间内,会出现多次的接通与断开过程。这样在P1.0端口出现一个电平在VCC和0V之间抖动的过程。这对于具有高灵敏触角的单片机来说,会产生误动作。因此,如图2.3.1,本设计采用延时程序设计来避开抖动电平。

图2.3.1延时程序

上述程序所花时间为(248*2+2+2)*60=30ms,30ms足以消除抖动。

2.3.3 数码管延时显示程序

在本次的秒表系统电路设计图中,两位七段数码管与P0口相连,并分别占了P0.0-P0.3和P0.4-P0.7.因为有译码器为接口,只要控制I/O口输出BCD码便能得到相应数字了。如显示0,由于0的BCD码为0000,所以指令为MOV P0,#00H。

秒表启动后,当第一次按下按钮开关后秒表开始计时。系统延时1秒,然后利用ADD指令,把显示的数字加一,这样就显示01,再延时再显示,如此循环,直到显示至99后,又返回00重新开始计时。

9

2.3.4 延时1秒的程序

MOV R5,#10 ADD_1:

MOV R6,#200 CALL DELAY DJNZ R5,ADD_1 DELAY:

MOV R7,#248 JNB P1.0,PRESS_2 DJNZ R7,$ DJNZ R6,DELAY

RET

上述程序所花时间为(2+2+248*2)*200*10=1s。

3 软件调试和结果

将完整的程序在uVision中进行编辑和汇编,编译成功后就可以通过51开发板下载到硬件平台中。

3.1 软件调试与下载

单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的

10

不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,如图3.1所示,利用keil软件生成hex文件。

图3.1在keil中编辑程序

生成hex文件后,利用单片机开发板用stc-isp软件下载到单片机中。

3.2 硬件仿真

如图,利用proteus仿真电路。

11

图3.2数字秒表数字电路

4 心得体会

单片机可以应用于各个领域,而单片机本身也是融合了各个领域的知识。我们可以通过单片机去实现很多的电子产品,因为它的应用领域非常的广泛,所以发展很迅速。本次设计时以单片机为中心进行设计,但是仅仅有单片机的知识还不够,同时还需要具有硬件的知识和软件的知识,并将它们有机的结合起来。因此,我重新复习了下模拟电路和单片机原理,并查阅了相应的资料,才理清了思路。本次设计,先通过KEIL软件对软件进行编辑、调试、编译。然后通过STC-ISP软件学习如果在单片机种下载程序代码;最后通过proteus软件,对数字秒表的硬件进行仿真。

在编译程序的过程中,刚开始一直不出结果,经过查资料得知,原来没有将文件变成asm格式。在下载程序到单片机的时候,刚开始一直下不成功,通过询问同学,得知我用的是AT89S51,要下载程序的话,还要用专门的驱动,因此,我改成了STC的。在做实物图的时候,虽然我用的是洞洞板,不用画PCB,但是为了更好的布局,我画了pcb

版,实际证明这也是对的,尽管我的线很复杂,但由

12

于之前统筹帷幄了,我的布局还算整洁。

13

参考文献

[1]康华光.模拟电子技术基础[M].北京:高等教育出版社,2006年5月第5版 [2]杨欣.51单片机应用从零开始[M].北京:清华大学出版社,2008年1月第一版 [3]李广弟、朱月秀、冷祖祁等.单片机基础[M].北京:北京航空航天大学出版社,2007年6月第三版

14

附录

I基于单片机的数字秒表设计主程序

ORG 00H START:

MOV P0,#00H JB P1.0,$ CALL FILTER JNB P1.0,$ MOV R0,#00H PRESS_1: MOV A,R0 MOV P0,A MOV R5,#10 ADD_1: MOV R6,#200 CALL DELAY DJNZ R5,ADD_1 MOV A,R0 ADD A,#01H DA A MOV R0,A

15

JMP PRESS_1 PRESS_2: CALL FILTER JB P1.0,PRESS_3 JMP PRESS_2 PRESS_3: JB P1.0,$ CALL FILTER RELEASE: JB P1.0,START JMP RELEASE DELAY: MOV R7,#248 JNB P1.0,PRESS_2 DJNZ R7,$ DJNZ R6,DELAY RET FILTER: MOV R6,#60 F1:

MOV R7,#248

16

DJNZ R7,$ DJNZ R6,F1 RET

END

IIPCB电路图

III实物图

17

18


相关文章

  • 电子秒表的设计与制作
  • 课 程 设 计 题 目 学 院 专 业 班 级 姓 名 指导教师 2012 年 7 月 3 日 课程设计任务书 学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 电子秒表的设计与制作 初始条件: (1) 计数精度可达1/100秒 ( ...

  • 电子类毕业设计
  • 电子通讯] 出租车计价系统 [过程控制] 基于单片机实现单回路智能调节.. [电子通讯] 脉冲数字频率计 [机床仪表] 仪表机床数控系统的设计(论文.. 磁流体发电论文 [电子通讯] 基于VC++6.0的PC机与单片机串行.. [电子通信] ...

  • 单片机原理及系统课程设计
  • 明 德 学 院 单片机原理及系统课程设计 院 系: 明德学院机电系 年 级: 2013级 专 业:机械设计制造及自动化 班 级: 机电13 学 号: 姓 名: 指导教师: 目 录 一.设计题目和要求: ................... ...

  • 电子时钟LED显示设计
  • 微机应用课程设计报告 题 目:基于51单片机的电子时钟LED显示设计 专 业: 班 级: 姓 名: 学 号: 地 点: 时 间:指导老师: 摘 要 数字电子时钟具有走时准确,一钟多用等特点,在生活中已经得到广泛的应用.虽然现在市场上已有现成 ...

  • 简易数字钟电路设计基本思路
  • VTECHNOLOGY职业 技术理论研究 简易数字钟电路设计基本思路黑 龙 江 邵 兰一.概述随着数字电视的普及,电子计算机技术在广播电视行业得到了越来越广泛的应用.掌握电子计算机应用及网络管理方面的知识和技能已经成为业内人员必须具备的基本 ...

  • 设计秒表时钟
  • 计算机控制系统综合实践报告 题 目: 秒表/时钟计时器的设计 系 别:____ 电子信息与电气工程系__________ 专 业:_____ 自动化专业________________ 班 级:____ 08自动化(2)班_________ ...

  • 数字定时闹钟的设计-毕业论文
  • 兰州交通学博文学院 毕 业 论 文(设计) 题 目: 姓 名: 学 院: 专 业: 班 级: 学 号:指导教师: 基于51单片机的数字时钟的设计 杨海国 兰州交通大学博文学院 20122122 2016年5月4日 毕业论文(设计)诚信声明 ...

  • 基于51单片机的秒表程序
  • 基于51单片机的秒表程序 #include sbitADDR3=P1^3; sbitENLED=P1^4; sbitKEY1=P2^4; sbitKEY2=P2^5; sbitKEY3=P2^6; sbitKEY4=P2^7;//单片机I/ ...

  • 单片机设计报告
  • 目录 目录 ................................................................. I 摘要 ........................................... ...

© 2024 范文参考网 | 联系我们 webmaster# 12000.net.cn