基于单片机的秒表系统设计毕业论文 - 图文

更新时间:2023-11-02 01:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机课程设计

题目:基于单片机的秒表系统设计

张峰 学生姓名: 学号:102012221 机械工程系

系 部: 机械电子工程

专 业: 张麟华

指导教师:

二○一三年六月

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课题目的

希望通过本实践学生能够进行简单单片机系统的开发,使之进一步掌握软硬

件设计的方法,提高学生的综合应用能力。

2.硬件设计

2.1 AT89C51单片机简介

AT89C51是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读

存储器(FPEROM-Flash Programmable and Eraseable Read Only

Memory)的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且

与89C51引脚和指令系统完全兼容。

单片机是引脚双列直插封装方式,电源引脚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秒的延时,单片机的时钟信号用来提供单片机内各种微操作的时间基准,89C51片内设有一个由反向放大器所构成的振荡电路,XTAL1和 XTAL2分别为振荡电路的输入和输出端,89C51单片机的时钟信号通常用两种电路形式得到:内部振荡方式与外部振荡方式。外部方式的时钟很少用,若要用时,只要将XTAL1接地,XTAL2接外部振荡器就行。

对于复位操作,我们采用手动复位,通过按钮开关使单片机进入复位状态,这是单片机能否正常工作的关键。

2) 硬件电路设计

使用proteus软件设计的硬件电路包含了三个功能控制键和一个单片机

复位按钮及蜂鸣器控制开关。具体如图2.3所示。

硬件电路连接图

时钟电路与复位电路已在前边介绍,在此主要介绍端口电路,对于外显电路的设计我们采用四位数码管,事实上根据要求只用到三位,我们利用p1.4、p1.5、p1.6对数码管进行位选。对于按钮开关电路,我们利用p3.0、p3.1、p3.2分别作为开始、停止及清零功能的电路接口。对于声音提示我们采用蜂鸣器装置,信号由p1.0口接入经过非门和驱动电源构成。

3软件设计

1) 程序设计 根据课题内容,可做出主程序流程图如图所示

开 始 初始化 N Y 有进位吗? 有暂停指令吗? N Y 十秒位加一 Y Y 有清零指令吗? N 有进位吗? N 0.1秒位加一 声音提示 秒位加一 Y 有进位吗? N

主程序流程图

流程图体现着设计程序的思路程序,开始后首先进行数据初始化然后是条件

判断满足条件或不满足则进行对应的处理,如首先依次判断是否暂停是否清零,然后十分之一妙位计数,再判断是否进位,若是秒位就加一,秒位加一后进行声音提示,接着再判断是否有进位,若有则十秒位加一,若十秒位产生进位则重新计时。

2) 源程序:

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 SHIWEI :

MOV DPTR,#TABLE 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

TINGZHI: 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

; 判断是否有清零指令 ; 判断是否有停止指令 ; 0.1位秒显示

;加一,可查下一位数据 ; 判断是否进位

SUBB A,#10 JZ MIAOZHEN

LCALL YANSHI ;延时0.1秒 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 MOV P2,A

ACALL YIHAOMIAO SETB P1.6 MOV A,HAOMIAO MOVC A,@A+DPTR CLR P1.4

;秒位显示

;使0.1秒从零重新循环 ;加一,可查下一位数据 ;判断是否进位 ;返回0.1秒计 ;判断是否有清零指令

本文来源:https://www.bwwdw.com/article/0bv2.html

Top