单片机课程设计
课程题目:基于51单片机的秒表设计 专业:电子信息工程 班级:电信121 学号: 姓名:
1 课题内容要求及目的 1.1课题内容
用ATC51设计一个秒表,该秒表课可显示0.0~99.9秒的时间,进行相应的单片机硬件电路的设计并进行软件编程利用单片机定时器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。通过本次系统设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握。本系统利用单片机的定时器/计数器定时和记数的原理,通过采用proteus仿真软件来模拟实现。模拟利用ATC51单片机、LED数码管以及控件来控制秒表的计数以及计位!其中有三位数码管用来显示数据,显示秒(两位)和十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。计秒数码管采用三位的数码管,当计数超过范围是所有数码管全部清零重新计数。 1.2课题要求
本课题是基于单片机的秒表系统设计,它的具体要求有以下几点: (1)用单片机ATC51实现;
(2)以0.1秒为最小单位进行显示;
(3)秒表量程为0.0-99.9秒,用 LED显示; (4)有清零、开始、停止功能。 1.3课题目的 通过课程设计,进一步熟悉和掌握ATC51单片机的结构及工作原理,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。通过完成一个包括电路设计和程序开发的完整过程,进一步了解开发一单片机应用系统的全过程,通过此综合训练,为以后毕业设计打下一定的基础。
(1)利用单片机定时器计数器中断设计秒表,从而实现秒、十分之一秒的计时。
(2)综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力,加深对单片机课程的全面认识。 (3)通过本次课程设计能够对程序进行编辑,校验。
(4)通过本次系统设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握,对单片机实际的应用作进一步的了解。 ( 5)通过本次系统设计,增强自己的动手能力。认识单片机在日常生活中的应用的广泛性,实用性。
(6)该实验通过单片机的软件延时设计,设计简单的计时器系统,能正确的计时。
软件设计 2.1软件程序
根据课题内容,可作出主流程序树状图如图3.1所示:
图3.1
实验程序清单:
HAOMIAO EQU 34H MIAO EQU 35H SHIMIAO EQU 36H ORG 0000H AJMP START
ORG 0030H
START: CLR C
SETB P1.6 SETB P1.5 SETB P1.4
MOV HAOMIAO,#0 MOV MIAO,#0 MOV SHIMIAO,#0 MOV DPTR,#TABLE SHIWEI : TINGZHI: MOV A,#00H
MOVC A,@A+DPTR CLR P1.6 MOV P2,A MOV A,#00H
MOVC A,@A+DPTR CLR P1.4 MOV P2,A
MOV DPTR,#TABLE1 MOV A,#00H
MOVC A,@A+DPTR CLR P1.5 MOV P2,A LCALL KAISHI LCALL MAIN SETB P1.5
MOV DPTR,#TABLE ;十秒位显示
MOV MIAO,#0 ;使秒位从零位重新循环INC SHIMIAO MOV A,SHIMIAO CLR C SUBB A,#6 JZ START
AJMP MAIN RET
MOV A,#00H ;判断是否有清零指 MOV A,P3 ANL A,#04H JZ START
MOV A,#00H ;判断是否有停止指令 MOV A,P3 CLR C
ANL A,#02H LCALL YANSHI JZ MAIN
LJMP TINGZHI START1 : LJMP START SHIWEI1: LJMP SHIWEI MAIN : SETB P1.5 SETB P1.4 SETB P1.6
MOV A,#00H ; 判断是否有清零指令 MOV A,P3 ANL A,#04H JZ START1
MOV A,#00H MOV A,P3 CLR C
ANL A,#02H JZ TINGZHI
MOV DPTR,#TABLE I NC HAOMIAO MOV A, HAOMIAO CLR C
SUBB A,#10
JZ MIAOZHEN
LCALL YANSHI AJMP MAIN
RET MIAOZHEN: SETB P1.4
MOV DPTR,#TABLE1 MOV HAOMIAO,#0 INC MIAO MOV A,MIAO CLR C
SUBB A,#10 JZ SHIWEI1 LCALL SND
AJMP MAIN YANSHI: MOV R6,#30
DL2: MOV A,#00H MOV A,P3 ANL A,#04H JZ START1
MOV DPTR,#TABLE MOV A,SHIMIAO MOVC A,@A+DPTR CLR P1.6
; 判断是否有停止指令 ; 0.1位秒显示
;加一,可查下一位数据 ; 判断是否进位 ;延时0.1秒 ;继续计时 ;秒位显示
;使0.1秒从零重新循环 ;加一,可查下一位数据 ;判断是否进位 ;返回0.1秒计 ;判断是否有清零指令 MOV P2,A
ACALL YIHAOMIAO SETB P1.6
MOV A,HAOMIAO MOVC A,@A+DPTR CLR P1.4 MOV P2,A
ACALL YIHAOMIAO SETB P1.4
MOV DPTR,#TABLE1 MOV A,MIAO
MOVC A,@A+DPTR CLR P1.5 MOV P2,A
ACALL YIHAOMIAO SETB P1.5 DJNZ R6,DL2 RET YIHAOMIAO: MOV R7,#250 CV:NOP NOP
DJNZ R7,CV RET
KAISHI: MOV A,#0 MOV A,P3 ANL A,#01H JNZ KAISHI RET SND: SETB P1.0
MOV R1,#1EH DL: MOV R0,#0F9H DL1: DJNZ R0,DL1 DJNZ R1,DL CLR P1.0 RET
TABLE:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH, 6FH;0,1,2,3,4,5,6,7,8,9 TABLE1:DB0BFH,086H,0DBH,0CFH,0E6H,0EDH,0FDH, 087H,0FFH,0EFH END }
3.设计实验电路图
设计的实验原理图如下所示: 4.实验设计总结
通过这两周程设计,我对一些专业知识和电子设计有了更深的了解,同时也尝试着去应用自
己的所掌握的知识。本次电子课程设计主要是对已学习的模拟电子技术、数字电子技术和单片机的综合应用,同时加上电路等知识,设计完成了利用软件模拟的秒表。经过几天的奋战,我感受很深.
我们一小组四个人一块儿讨论设计了此次试验,在设计过程中深感自己在培养动手能力这方面还需很大的努力。同时,通过这次我们积极的通过网络,书籍等资源,在同学的帮助下,把这个课程设计作为一次锻炼,为以后生活学习中培养善于动手,乐于动手的习惯。单片机课程设计不仅给我们提供了一个良好的应用自己所掌握的知识的平台,又是检验自己所学知识的一次考核。我们运用各自在各方面的优势中和起来,形成了一个团队.通过团队力量,才使设计得以完成.可以说,我们三个人是一个不可或缺的整体,少了任何一个人都是无法完成任务的。
在设计的过程中我们也不可避免的遇到了很多的问题。尤其是在调试过程中,会因为某些原因出不来结果,或三个人之间出现了意见分歧,但在最后都达成一致。通过这次的课程设计,我们也发现了不少自己不会的知识,通过查询各方面资料,我们也进步了很多,有学会了很多上课时没掌握的东西,最后在调试结果出来后,我们更是无比的兴奋,无比的自豪。总之,通过这次电子课程设计,我不仅对自己的知识有了更好的掌握和应用,更了解到团队精神的力量.在以后的学习和生活中受用终身。