中南科技大学课程设计(论文)题目名称基于单片机的秒表系统设计课程名称单片机原理及在电气测控学科中的应用学生姓名学号系、专业电气工程系、09电气测控类指导教师2011年月日邵阳学院课程设计(论文)任务书注:1.此表由指导教师填写,经教研室审批,指导教师、学生签字后生效;2.此表1式3份,学生、指导教师、教研室各1份。
指导教师(签字):学生(签字):邵阳学院课程设计(论文)评阅表学生姓名学号系专业班级09电气测控一班题目名称基于单片机的秒表系统设计课程名称单片机原理及在电气测控学科中的应用一、学生自我总结二、指导教师评定注:1、本表是学生课程设计(论文)成绩评定的依据,装订在设计说明书(或论文)的“任务书”页后面;2、表中的“评分项目”及“权重”根据各系的考核细则和评分标准确定。
摘要近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。
本文阐述了基于单片机的电子秒表设计。
本设计主要特点是计时精度达到0.1s,解决了传统的由于计时精度不够造成的误差和不公平性,是各种体育竞赛的必备设备之一。
本设计是基于AT89C51单片机设计的,我们是分为几个模块来设计的。
首先对秒表的硬件进行了设计,它包括时钟电路设计、复位电路设计以及外部显示电路。
利用89C51单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。
计时精度为0.1s。
其次是软件进行了设计,软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等。
最后通过仿真调试,在proteus环境下建立了仿真模型,仿真结果表明本设计是正确的。
关键词:单片机;秒表;系统设计目录摘要 (I)1 课题内容要求及目的 (1)1.1课题内容 (1)1.2课题要求 (1)1.3 课题目的 (1)2 硬件设计 (2)2.1 AT89C51单片机简介 (2)2.2设计思路 (2)2.3硬件电路设计 (3)3软件设计 (5)3.1程序设计 (5)3.2源程序 (6)4系统调试与仿真 (11)4.1 proteus简介 (11)4.2仿真调试 (12)5总结 (13)参考文献 (14)致谢 (15)1 课题内容要求及目的1.1课题内容用AT89C51设计一个秒表,该秒表课可显示0.0~59.9秒的时间,进行相应的单片机硬件电路的设计并进行软件编程利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。
综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。
通过本次系统设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握。
本系统利用单片机的定时器/计数器定时和记数的原理,通过采用proteus仿真软件来模拟实现。
模拟利用AT89C51单片机、LED数码管以及控件来控制秒表的计数以及计位!其中有三位数码管用来显示数据,显示秒(两位)和十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。
计秒数码管采用三位的数码管,当计数超过范围是所有数码管全部清零重新计数。
1.2课题要求本课题是基于单片机的秒表系统设计,它的具体要求有以下几点:(1)用单片机AT89C51实现;(2)以0.1秒为最小单位进行显示;(3)秒表量程为0.0-59.9秒,用LED显示;(4)有清零、开始、停止功能、每到一秒有声音提示;1.3课题目的通过课程设计,进一步熟悉和掌握AT89C51单片机的结构及工作原理,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。
通过完成一个包括电路设计和程序开发的完整过程,进一步了解开发一单片机应用系统的全过程,通过此综合训练,为以后毕业设计打下一定的基础。
(1)通过本次课程设计加深对单片机课程的全面认识。
(2)掌握定时器、外部中断的设置和编程。
(3)该实验通过单片机的软件延时设计,设计简单的计时器系统,能正确的计时。
(4)通过本次课程设计能够对程序进行编辑,校验。
2.硬件设计2.1 AT89C51单片机简介AT89C51是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器(FPEROM-Flash Programmable and Eraseable Read Only Memory)的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与89C51引脚和指令系统完全兼容。
引脚分别如图2.1所示。
图2.1 单片机引脚分布图图2.1所示的单片机是引脚双列直插封装方式,电源引脚40脚与接地脚20。
P0口作输入口使用时,应先向口锁存器写入1。
P1口是一个带有内部上拉电阻的8位双向I/O端口。
P1的输出缓存可驱动4个TTL输入。
P2口是一个带有内部上拉电阻的8位双向I/O端口。
P3口也是一个带有内部上拉电阻的8位双向I/O端口,P3端口还用于一些复用功能。
2.2设计思路这次的试验要求进行计时并且在数码管上显示时间,先要基本了解硬件内在结构,确定用p2并行端口进行数码管控制输入,使用P1.6,P1.5,P1.4进行选择0.1秒位,秒位,十位秒位,以P3.0为开始控制,P3.1为停止控制,P3.2为清零控制。
本次实验设计的基本思路是要求借助AT89C51单片机做出一个0-59.9s的秒表从十位秒到0.1位秒数这些计时的位数是存在一个内嵌的结构,就是0.1秒位满足条件然后进行跳位使秒位加一的过程,当0.1s到0.9s时该位自动清零并且秒位加一,秒位达到9时也自动清零并向十秒位加一。
当计数超过范围是所有数码管全部清零重新计数。
其次开始控制,停止控制,清零控制等功能,我们采用蜂鸣器进行提示,该信号由P1.0输出由7406非门与外加电源驱动,通过一个延时子程序加以控制。
最后就是根据硬件的条件进行编程,要求软硬件相互兼容。
这也是设计的关键之处。
因此需查阅相关书籍。
2.3硬件电路设计(1)时钟电路与复位电路利用12分频的晶振的一个机器周期为一微妙,通过循环延时产生0.1秒的延时,晶振电路原理及单片机复位电路图如图2.2所示。
图2.2 时钟与复位电路图单片机的时钟信号用来提供单片机内各种微操作的时间基准,89C51片内设有一个由反向放大器所构成的振荡电路,XTAL1和XTAL2分别为振荡电路的输入和输出端,89C51单片机的时钟信号通常用两种电路形式得到:内部振荡方式与外部振荡方式。
外部方式的时钟很少用,若要用时,只要将XTAL1接地,XTAL2接外部振荡器就行。
对于复位操作,我们采用手动复位,通过按钮开关使单片机进入复位状态,这是单片机能否正常工作的关键。
(2)硬件电路设计使用proteus软件设计的硬件电路包含了三个功能控制键和一个单片机复位按钮及蜂鸣器控制开关。
具体如图2.3所示。
图2.3 硬件电路连接图时钟电路与复位电路已在前边介绍,在此主要介绍端口电路,对于外显电路的设计我们采用四位数码管,事实上根据要求只用到三位,我们利用p1.4、p1.5、p1.6对数码管进行位选。
对于按钮开关电路,我们利用p3.0、p3.1、p3.2分别作为开始、停止及清零功能的电路接口。
对于声音提示我们采用蜂鸣器装置,信号由p1.0口接入经过非门和驱动电源构成。
3软件设计3.1程序设计根据课题内容,可做出主程序流程图如图3.1所示。
图3.1 主程序流程图流程图体现着设计程序的思路程序,开始后首先进行数据初始化然后是条件判断满足条件或不满足则进行对应的处理,如首先依次判断是否暂停是否清零,然后十分之一妙位计数,再判断是否进位,若是秒位就加一,秒位加一后进行声音提示,接着再判断是否有进位,若有则十秒位加一,若十秒位产生进位则重新计时。
3.2源程序:HAOMIAO EQU 34HMIAO EQU 35HSHIMIAO EQU 36HORG 0000HAJMP STARTORG 0030HSTART: CLR CSETB P1.6SETB P1.5SETB P1.4MOV HAOMIAO,#0MOV MIAO,#0MOV SHIMIAO,#0MOV DPTR,#TABLEMOV A,#00HMOVC A,@A+DPTRCLR P1.6MOV P2,AMOV A,#00HMOVC A,@A+DPTRCLR P1.4MOV P2,AMOV DPTR,#TABLE1MOV A,#00HMOVC A,@A+DPTRCLR P1.5MOV P2,ALCALL KAISHILCALL MAINSHIWEI : SETB P1.5MOV DPTR,#TABLE ;十秒位显示MOV MIAO,#0 ;使秒位从零位重新循环INC SHIMIAOMOV A,SHIMIAOCLR CSUBB A,#6JZ STARTAJMP MAINRETTINGZHI: MOV A,#00H ;判断是否有清零指MOV A,P3ANL A,#04HJZ STARTMOV A,#00H ;判断是否有停止指令MOV A,P3CLR CANL A,#02HLCALL YANSHIJZ MAINLJMP TINGZHISTART1 : LJMP STARTSHIWEI1: LJMP SHIWEIMAIN : SETB P1.5SETB P1.4SETB P1.6MOV A,#00H ; 判断是否有清零指令MOV A,P3ANL A,#04HJZ START1MOV A,#00H ;判断是否有停止指令MOV A,P3ANL A,#02HJZ TINGZHIMOV DPTR,#TABLE ; 0.1位秒显示I NC HAOMIAO ;加一,可查下一位数据MOV A, HAOMIAO ; 判断是否进位CLR CSUBB A,#10JZ MIAOZHENLCALL YANSHI ;延时0.1秒AJMP MAINRET ;继续计时MIAOZHEN:SETB P1.4MOV DPTR,#TABLE1 ;秒位显示MOV HAOMIAO,#0 ;使0.1秒从零重新循环INC MIAO ;加一,可查下一位数据MOV A,MIAO ;判断是否进位CLR CSUBB A,#10JZ SHIWEI1LCALL SNDAJMP MAIN ;返回0.1秒计YANSHI: MOV R6,#30DL2: MOV A,#00H ;判断是否有清零指令MOV A,P3ANL A,#04HJZ START1MOV DPTR,#TABLEMOV A,SHIMIAOMOVC A,@A+DPTRMOV P2,AACALL YIHAOMIAOSETB P1.6MOV A,HAOMIAOMOVC A,@A+DPTRCLR P1.4MOV P2,AACALL YIHAOMIAOSETB P1.4MOV DPTR,#TABLE1MOV A,MIAOMOVC A,@A+DPTRCLR P1.5MOV P2,AACALL YIHAOMIAOSETB P1.5DJNZ R6,DL2RET YIHAOMIAO:MOV R7,#250CV:NOPNOPDJNZ R7,CVRETKAISHI: MOV A,#0MOV A,P3ANL A,#01HJNZ KAISHIRETSND: SETB P1.0MOV R1,#1EHDL: MOV R0,#0F9HDL1: DJNZ R0,DL1DJNZ R1,DLCLR P1.0RETTABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH, 6FH;0,1,2,3,4,5,6,7,8,9TABLE1:DB0BFH,086H,0DBH,0CFH,0E6H,0EDH,0FDH, 087H,0FFH,0EFHEND4系统调试与仿真4.1仿真软件简介(1)Proteus是英国Labcenter electronics公司出版的仿真软件。