单片机课程设计
题 目 基于单片机的
多功能秒表
目 录
1 设计总体方案 ....................................................................................... 1
1.1 设计要求与目的 .................................................................................. 1 1.2 设计思路 .............................................................................................. 1 1.3工作原理 ............................................................................................... 2 1.4 功能说明 .............................................................................................. 2
2 主要元器件介绍 .................................................................................. 3
2.1 AT89C51单片机 .................................................................................. 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
1.3工作原理
本系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序等,并调试运行,硬件系统利用proteus强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。
1.4 功能说明
开始按钮是用来开始进行计数的。停止按键用来暂停程序的运行,当按下暂停键时,程序停留在原地,等待再次按下暂停键,再次按下暂停键后,程序继续运行。计数按钮用来记录数据,每按下一次计数按钮,程序自动记录一个数据,并存放到指定内存单元中。复位按钮是用来对程序复位,每当程序出现死循环的时候,按下复位键即可跳出死循环,回到程序的开始。
这些功能分别用开始/暂停键、记录键、上翻键、下翻键以及复位键来实现。还有一个是清零键,用于对当前数码管的计数进行清零,但是对芯片内存单元保存的记录并不产生影响,这点事清零键与复位键的区别。
2
2 主要元器件介绍
2.1 AT89C51单片机
AT89C51单片机是低电压、高性能CMOS 8位微处理器,是一种带2k字节闪存可编程可擦除只读存储器。单片机的可擦除只读存储器可以反复擦除1000次,含128字节内部RAM,32个I/O口线,2个16位定时/计数器,一个全双工串行通信口,片内振荡器及时钟电路。空闲时停止CPU的工作,但允许RAM、定时/计数器、串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。引脚图见图2-1所示:
图2-1 AT89C51引脚图
3
VCC:供电电压。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数
4
据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/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 四位共阴数码管
5
3 系统硬件设计
本系统中,硬件电路主要有电源电路,时钟电路,复位电路,显示电路,以及一些按键电路等。
3.1 电源电路
电源电路是指提供给用电设备电力供应的电源部分的电路设计、使用的电路形式和特点。电源有交流电源也有直流电源。 电源电路是系统最基本的部分,任何电路都离不开电源部分,由于三端集成稳压器件所组成的稳压电源线路简单、性能稳定、工作可靠、调整方便,已逐渐取代分立元件,在生产中被广泛采用。
3.2 时钟电路
MCS--51单片机内部的振荡电路是一个高增益反相放大器,引线 XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。这里,我们选用51单片机12MHZ的内部振荡方式,电容器C1、C2起稳定振荡频率、快速起振的作用,C1和C2可在20-100PF之间取,这里取33P,接线时要使晶体振荡器X1尽可能接近单片机。电路见图3-1所示:
图3-1 时钟电路
6
3.3 复位电路
采用上电和和按键复位电路。上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使用使RST持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。当程序出现错误时,可以随时使电路复位。电路见图3-2所示:
图3-2 复位电路
3.4 显示电路
我们采用的是数码管显示电路。在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的I/O口。在设计中,我们采用LED动态显示,用P0口驱动显示。由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。电路见图3-3所示:
7
图 3-3 显示电路
3.5 键盘电路
通过1/0口连接,将每个按钮的一端接到单片机的I/O口,另一端接地,这是最简单的办法。如图3-4所示是实验板上按钮的接法,其功能很简单,五个键定义如下: 按键1:开始/暂停计时 按键2:记录时刻 按键3:上翻记录时刻 按键4:下翻记录时刻 按键5:清零当前记录时刻
8
图3-4 键盘电路
4 软件设计
在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。
各程序模块都要完成一个明确的任务,实现某个具体的功能,如:加计数、减计数、延时、快加、快减,计数和显示等,在具体需要时调用相应的模块即可,设计流程框图见图4-1所示:
9
开始 初始化化 P1.0=0?Y N N P1.1=0?Y N N P1.2=0? 记录 Y P1.3=0?Y 上翻 N P1.4=0?Y 够8个个? 下翻 清零 Y 停止 N 图4-1 设计流程框图
10
5 系统调试及结果分析
因为整个系统都是数字电路,因此可以用仿真软件来对其进行调试。本次实际的电子秒表系统是用于测量较短而且较精准的时间,它具体有以下一些功能: (1)整个系统由六个小开关控制。
(2)系统在用之前能清零,即电子秒表开始计时之前,其他时间显示零。
(3)若不需要计时或需要中途暂停计时,则秒表能及时停止计时,但能保留停止计时之前所计的时间。
用PROTEUS将编译生成的秒表.HEX 文件下到单片机中,点击运行按相应的操作键即可看到下图的效果:
图5-1 仿真结果
经proteus软件仿真后,系统运行良好,结果正确。
11
6总结
经过一个星期的课程设计,过程有曲折也有顺利。在此期间我也失落过,也曾一度热情高涨。在老师的指导下,我们顺利完成了课程设计的实物设计。让我学到了以下几点: 1将学习的理论知识通过实验融会贯通,让我对它的理解更加深刻,对程序的编译过程了解透彻。
2本次课程设计以合作设计为主,因此培养了学习的积极性,让我能够配合同伴去分析问题、发现问题、解决问题,更增强与老师同学交流沟通和合作完成任务的能力。
3由于这次课程设计不仅设计编程方面的知识,还涉及了其它学科的知识,例如PROTEUS等的基本知识。程序是用汇编语言来编写的,这次课程设计让我在编程能力方面得到了提高。 4由于水平有限,实验程序运行有一定的限制,以后会加强改进。
总之,通过这次课程设计,不仅加深了我对单片机理论方面的理解,将理论更好的运用的实践方面,而且锻炼了我们各方面的能力,培养了坚强的毅力和做事的耐心和细心,认识合作的重要性,还希望老师能够多多指导,促进我不断的进步。
12
参考文献
[1] 余发山.单片机原理及应用技术.中国矿业大学出版社,2003.49~77 [2] 杨凌霄.微型计算机原理及应用.中国矿业大学出版社,2004. [3] 李群芳.单片机原理、接口及应用.清华大学出版社,2005. [4] 陈忠平.单片机原理及接口.清华大学出版社,2007.125~131 [5] 刘同法.单片机基础与最小系统实践.北京航空航天大学出版社,2007. [6] 王东峰等.单片机C语言应用100例[M].电子工业出版社,2009. [7] 陈海宴.51单片机原理及应用[M].北京航空航天大学出版社,2010.
13
附录1:总体电路原理图
14
附录2:元器件清单
序号 1 2 名称 单片机 数码管 型号规格 AT89C51 7SEG-MPX4-CC 200Ω 3 电阻 1K 800Ω 6 7 8 9 10 11 电容 电容 排阻 晶振 按键开关 导线 22uF 33pF PESPACK-8 XTAL18 数量 1 1 1 5 1 1 2 1 1 6 若干
15
附录3:实物图
16
附录4:源程序
(1)停止子程序
按键后,使秒表停止,即关闭定时器0,1,程序如下: STOP: CLR TR0
CLR TR1;关闭定时器0,1 ACALL DISP;显示 (2)暂停记录子程序
按键结束后,通过条件转移指令判断是否存够4个数,若存够则停止,否则继续。
JILU : MOV A,20H MOV @R1, A INC R1
DJNZ 50H, HERE;是否够四个数? MOV R1, #71H MOV 50H, #04H MOV 51H, #04H SJMP STOP;够4个数停止 (3)加1子程序
此程序只为简单的加1,并判断是否到100?到则从0开始,否则继续。
JIA1: MOV A,20H CLR C INC A
CJNE A, #100, GO1;是否加到100?
17
MOV 20H, #00H RET
GO1: MOV 20H, A;将个位十位分开显示 MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B RET
(4)显示子程序,采用动态显示 DISP: MOV R0,#30H MOV R3, #0FEH MOV A, R3 PLAY:
MOV P2, A MOV A,@R0
MOV DPTR, #DSEG1 MOVC A,@A+DPTR MOV P0, A LCALL DL1 MOV P2, #0FFH MOV A, R3 RL A JNB ACC.2, LD1 INC R0 MOV R3, A
18
LJMP PLAY LD1: RET
DL1: MOV R7, #05H DL: MOV R6, #0FFH DL6: DJNZ R6, $ DJNZ R7, DL RET (5)延时子程序 例如延时10ms程序: DELAY10:MOV R4,#14H DL00: MOV R5, #0FFH DL11: DJNZ R5, DL11 DJNZ R4, DL00 RET (6)按键消抖程序
延时10ms再次判断该位的状态,若仍是0则说明该键被按下,弹起后去执行该按键功能;若为1,则说明是抖动则继续向下判断。 L1: JB P1.1,L2 P1.1=0,快减 ACALL DELAY10 JB P1.1, L2 JNB P1.1, $ LJMP KJIAN
19
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作 者 签 名: 日 期:
指导教师签名: 日 期:
使用授权说明
本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设
20
计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
21
期: 日
学位论文原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。
作者签名: 日期: 年 月 日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影
22
印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名: 日期: 年 月 日
导师签名: 日
日期:23
年 月
注 意 事 项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作) 2)原创性声明
3)中文摘要(300字左右)、关键词 4)外文摘要、关键词 5)目次页(附件不统一编入)
6)论文主体部分:引言(或绪论)、正文、结论 7)参考文献 8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。 3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。 4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印 4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档 5.装订顺序
24
1)设计(论文)
2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订 3)其它
25
因篇幅问题不能全部显示,请点此查看更多更全内容