强烈推荐基于单片机的多功能秒表的毕业论文.docx
- 文档编号:24863750
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:17
- 大小:273.03KB
强烈推荐基于单片机的多功能秒表的毕业论文.docx
《强烈推荐基于单片机的多功能秒表的毕业论文.docx》由会员分享,可在线阅读,更多相关《强烈推荐基于单片机的多功能秒表的毕业论文.docx(17页珍藏版)》请在冰豆网上搜索。
强烈推荐基于单片机的多功能秒表的毕业论文
郑州科技学院
单片机课程设计
题目基于单片机的
多功能秒表
学生姓名
专业班级
学号
院(系)
指导教师
完成时间2015年1月16日
目录
1设计总体方案1
1.1设计要求与目的1
1.2设计思路1
1.3工作原理2
1.4功能说明2
2主要元器件介绍3
2.1AT89C51单片机3
2.2四位共阴数码管5
3系统硬件设计6
3.1电源电路6
3.2时钟电路6
3.3复位电路7
3.4显示电路7
3.5键盘电路8
4软件设计9
5系统调试及结果分析11
6总结12
参考文献13
附录1:
总体电路原理图14
附录2:
元器件清单15
附录3:
实物图16
附录4:
源程序17
1设计总体方案
1.1设计要求与目的
设计一个单片机控制的多功能秒表系统,利用单片机的定时器计时器定时和计数的原理,结合显示电路、用四位共阴极LED数码管以及按键来设计秒表计时器,实现暂停与清零功能,并多次计数。
在设计系统前,我们主要考虑以下一些原则:
节约元器件,尽量降低系统实现成本;硬件电路尽量简单,使得硬件实现、问题检查、软件编程以及系统调试的难度都降低;能在软件上实现,使芯片利用率尽可能高;软件设计方案要优化,使得做成实物尽可能简单,方便仿真与检测;设计方案要和当前的试验平台相应;充分利用各种资源,尽量采用成熟与经典的电路。
1.2设计思路
因为秒表的设计相对较为简单,因此在软件设计中我们一般采用模块化程序设计的方法。
模块是一个具有独立功能的程序,可以单独设计、调试与管理,模块可以分为功能模块和控制模块两类。
我们通过模块化程序设计可按适当的原则把一个情况复杂、规模较大的程序划分为一个个较小的、功能相关而又相对独立的模块。
根据电子秒表的设计要求,主要设计一个计数系统、译码驱动、数码显示系统、控制系统。
其主要核心技术在于产生秒表信号的计数脉冲与计数器之间的级联。
1.3工作原理
本系统采用AT89C51单片机为中心器件,利用其定时器计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。
其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序等,并调试运行,硬件系统利用proteus强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。
1.4功能说明
开始按钮是用来开始进行计数的。
停止按键用来暂停程序的运行,当按下暂停键时,程序停留在原地,等待再次按下暂停键,再次按下暂停键后,程序继续运行。
计数按钮用来记录数据,每按下一次计数按钮,程序自动记录一个数据,并存放到指定内存单元中。
复位按钮是用来对程序复位,每当程序出现死循环的时候,按下复位键即可跳出死循环,回到程序的开始。
这些功能分别用开始暂停键、记录键、上翻键、下翻键以及复位键来实现。
还有一个是清零键,用于对当前数码管的计数进行清零,但是对芯片内存单元保存的记录并不产生影响,这点事清零键与复位键的区别。
2主要元器件介绍
2.1AT89C51单片机
AT89C51单片机是低电压、高性能CMOS8位微处理器,是一种带2k字节闪存可编程可擦除只读存储器。
单片机的可擦除只读存储器可以反复擦除1000次,含128字节内部RAM,32个IO口线,2个16位定时计数器,一个全双工串行通信口,片内振荡器及时钟电路。
空闲时停止CPU的工作,但允许RAM、定时计数器、串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
引脚图见图2-1所示:
图2-1AT89C51引脚图
VCC:
供电电压。
P0口:
P0口为一个8位漏级开路双向IO口,每脚可吸收8TTL门电流。
P1口:
P1口是一个内部提供上拉电阻的8位双向IO口,P1口缓冲器能接收输出4TTL门电流。
P2口:
P2口为一个内部上拉电阻的8位双向IO口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入
P3口:
P3口管脚是8个带内部上拉电阻的双向IO口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INT0(外部中断0)
P3.3INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALEPROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
EAVPP:
当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2.2四位共阴数码管
共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。
从左下角开始逆时针一圈分别是1至12个引脚,12、9、8、6为数码管的公共端,a、b、c、d、e、f、g、dP分别为数码管的段引脚,这些段引脚分别对应11、7、4、2、、1、10、5、3这些位置,A1、A2、A3、A4分别表示数码管的四个位。
图2-2四位共阴数码管
3系统硬件设计
本系统中,硬件电路主要有电源电路,时钟电路,复位电路,显示电路,以及一些按键电路等。
3.1电源电路
电源电路是指提供给用电设备电力供应的电源部分的电路设计、使用的电路形式和特点。
电源有交流电源也有直流电源。
电源电路是系统最基本的部分,任何电路都离不开电源部分,由于三端集成稳压器件所组成的稳压电源线路简单、性能稳定、工作可靠、调整方便,已逐渐取代分立元件,在生产中被广泛采用。
3.2时钟电路
MCS--51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。
这里,我们选用51单片机12MHZ的内部振荡方式,电容器C1、C2起稳定振荡频率、快速起振的作用,C1和C2可在20-100PF之间取,这里取33P,接线时要使晶体振荡器X1尽可能接近单片机。
电路见图3-1所示:
图3-1时钟电路
3.3复位电路
采用上电和和按键复位电路。
上电后,由于电容充电,使RST持续一段高电平时间。
当单片机已在运行之中时,按下复位键也能使用使RST持续一段时间的高电平,从而实现上电加开关复位的操作。
这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。
当程序出现错误时,可以随时使电路复位。
电路见图3-2所示:
图3-2复位电路
3.4显示电路
我们采用的是数码管显示电路。
在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的IO口。
在设计中,我们采用LED动态显示,用P0口驱动显示。
由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。
电路见图3-3所示:
图3-3显示电路
3.5键盘电路
通过10口连接,将每个按钮的一端接到单片机的IO口,另一端接地,这是最简单的办法。
如图3-4所示是实验板上按钮的接法,其功能很简单,五个键定义如下:
按键1:
开始暂停计时
按键2:
记录时刻
按键3:
上翻记录时刻
按键4:
下翻记录时刻
按键5:
清零当前记录时刻
图3-4键盘电路
4软件设计
在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。
把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。
各程序模块都要完成一个明确的任务,实现某个具体的功能,如:
加计数、减计数、延时、快加、快减,计数和显示等,在具体需要时调用相应的模块即可,设计流程框图见图4-1所示:
图4-1设计流程框图
5系统调试及结果分析
因为整个系统都是数字电路,因此可以用仿真软件来对其进行调试。
本次实际的电子秒表系统是用于测量较短而且较精准的时间,它具体有以下一些功能:
(1)整个系统由六个小开关控制。
(2)系统在用之前能清零,即电子秒表开始计时之前,其他时间显示零。
(3)若不需要计时或需要中途暂停计时,则秒表能及时停止计时,但能保留停止计时之前所计的时间。
用PROTEUS将编译生成的秒表.HEX文件下到单片机中,点击运行按相应的操作键即可看到下图的效果:
图5-1仿真结果
经proteus软件仿真后,系统运行良好,结果正确。
6总结
经过一个星期的课程设计,过程有曲折也有顺利。
在此期间我也失落过,也曾一度热情高涨。
在老师的指导下,我们顺利完成了课程设计的实物设计。
让我学到了以下几点:
1将学习的理论知识通过实验融会贯通,让我对它的理解更加深刻,对程序的编译过程了解透彻。
2本次课程设计以合作设计为主,因此培养了学习的积极性,让我能够配合同伴去分析问题、发现问题、解决问题,更增强与老师同学交流沟通和合作完成任务的能力。
3由于这次课程设计不仅设计编程方面的知识,还涉及了其它学科的知识,例如PROTEUS等的基本知识。
程序是用汇编语言来编写的,这次课程设计让我在编程能力方面得到了提高。
4由于水平有限,实验程序运行有一定的限制,以后会加强改进。
总之,通过这次课程设计,不仅加深了我对单片机理论方面的理解,将理论更好的运用的实践方面,而且锻炼了我们各方面的能力,培养了坚强的毅力和做事的耐心和细心,认识合作的重要性,还希望老师能够多多指导,促进我不断的进步。
参考文献
[1]余发山.单片机原理及应用技术.中国矿业大学出版社,2003.49~77
[2]杨凌霄.微型计算机原理及应用.中国矿业大学出版社,2004.
[3]李群芳.单片机原理、接口及应用.清华大学出版社,2005.
[4]陈忠平.单片机原理及接口.清华大学出版社,2007.125~131
[5]刘同法.单片机基础与最小系统实践.北京航空航天大学出版社,2007.
[6]王东峰等.单片机C语言应用100例[M].电子工业出版社,2009.
[7]陈海宴.51单片机原理及应用[M].北京航空航天大学出版社,2010.
附录1:
总体电路原理图
附录2:
元器件清单
序号
名称
型号规格
数量
1
单片机
AT89C51
1
2
数码管
7SEG-MPX4-CC
1
3
电阻
200Ω
1
1K
5
800Ω
1
6
电容
22uF
1
7
电容
33pF
2
8
排阻
PESPACK-8
1
9
晶振
XTAL18
1
10
按键开关
6
11
导线
若干
附录3:
实物图
附录4:
源程序
(1)停止子程序
按键后,使秒表停止,即关闭定时器0,1,程序如下:
STOP:
CLRTR0
CLRTR1;关闭定时器0,1
ACALLDISP;显示
(2)暂停记录子程序
按键结束后,通过条件转移指令判断是否存够4个数,若存够则停止,否则继续。
JILU:
MOVA,20H
MOV@R1,A
INCR1
DJNZ50H,HERE;是否够四个数?
MOVR1,#71H
MOV50H,#04H
MOV51H,#04H
SJMPSTOP;够4个数停止
(3)加1子程序
此程序只为简单的加1,并判断是否到100?
到则从0开始,否则继续。
JIA1:
MOVA,20H
CLRC
INCA
CJNEA,#100,GO1;是否加到100?
MOV20H,#00H
RET
GO1:
MOV20H,A;将个位十位分开显示
MOVB,#0AH
DIVAB
MOV31H,A
MOV30H,B
RET
(4)显示子程序,采用动态显示
DISP:
MOVR0,#30H
MOVR3,#0FEH
MOVA,R3
PLAY:
MOVP2,A
MOVDPTR,#DSEG1
MOVP0,A
LCALLDL1
MOVP2,#0FFH
MOVA,R3
RLA
JNBACC.2,LD1
INCR0
MOVR3,A
LJMPPLAY
LD1:
RET
DL1:
MOVR7,#05H
DL:
MOVR6,#0FFH
DL6:
DJNZR6,$
DJNZR7,DL
RET
(5)延时子程序
例如延时10ms程序:
DELAY10:
MOVR4,#14H
DL00:
MOVR5,#0FFH
DL11:
DJNZR5,DL11
DJNZR4,DL00
RET
(6)按键消抖程序
延时10ms再次判断该位的状态,若仍是0则说明该键被按下,弹起后去执行该按键功能;若为1,则说明是抖动则继续向下判断。
L1:
JBP1.1,L2P1.1=0,快减
ACALLDELAY10
JBP1.1,L2
JNBP1.1,$
LJMPKJIAN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 强烈推荐 基于 单片机 多功能 秒表 毕业论文