基于单片机的多功能秒表系统课程设计.docx

上传人:b****2 文档编号:367374 上传时间:2022-10-09 格式:DOCX 页数:23 大小:237.81KB
下载 相关 举报
基于单片机的多功能秒表系统课程设计.docx_第1页
第1页 / 共23页
基于单片机的多功能秒表系统课程设计.docx_第2页
第2页 / 共23页
基于单片机的多功能秒表系统课程设计.docx_第3页
第3页 / 共23页
基于单片机的多功能秒表系统课程设计.docx_第4页
第4页 / 共23页
基于单片机的多功能秒表系统课程设计.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

基于单片机的多功能秒表系统课程设计.docx

《基于单片机的多功能秒表系统课程设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的多功能秒表系统课程设计.docx(23页珍藏版)》请在冰豆网上搜索。

基于单片机的多功能秒表系统课程设计.docx

基于单片机的多功能秒表系统课程设计

基于单片机的多功能秒表系统课程设计

 

单片机课程设计报告

 

多功能秒表系统设计

 

姓名:

学号:

专业班级:

指导老师:

所在学院:

 

2009年6月10日

摘要

单片机已经无处不在,与我们生活更是息息相关并已渗透到了生活的方方面面。

单片机的特点是体积小,重量轻,功能强,通用性好,也就是说集成度高,其内部的结构是普通的计算机系统的简化。

在增加一些外围电路之后,就能成为一个完整的系统。

在众多单片机中,MCS-51系列单片机具有系统结构完整,特殊功能寄存器规范化以及指令系统的控制功能强等特色,使起成为单片机中的主流机型。

本设计是一个由AT89C51单片机控制,利用单片机的定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及键盘电路按键计时来实现的多功能秒表系统。

在本次设计中我们以AT89C51单片机为主要器件,利用它的定时器/计数器定时和记数的原理,结合7809电源提供的+5V稳压电压,上电加按钮复位电路,晶体振荡电路,由P0口驱动的LED动态显示电路,键盘电路等来完成多功能秒表的设计。

这个多功能秒表系统能够实现两位LED显示,显示的时间为00~99秒,每秒自动加1,能正确地进行加、减(倒)计时,能同时记录4个相对独立的时间,通过上翻键和下翻键来查看这4个不同的计时值,还具有快加和复位功能,基本上实现了老师的要求。

我们使用汇编语言来编写程序,采用模块化程序设计方法,主程序有多个子程序构成,这些子程序可以单独的设计,调试和管理,其中包括加1子程序、减1子程序、延时子程序、快加子程序,复位子程序和显示子程序等。

将源程序代码在WAVE中进行编译和调试,硬件系统利用Proteus软件来实现,可以方便的看到运行结果。

关键词:

多功能秒表、单片机、子程序模块、Proteus仿真

 

1.2设计任务………………………………………………………………………3

1.3设计要求………………………………………………………………………3

 

1概述

1.1单片机简介

单片机是性能价格比高、体积小、对国民经济渗透力大、最有前途的微控制器。

单片机自20世纪70年代初研制成功并发展至今,已进入第四代。

它主要是在一块芯片上集成了CPU、存储器以及输入输出电路,在工业过程中被广泛应用在控制电路中。

从单片机的系列来看,国内外已超过50个系列、近500个品种,当前正处于更新换代、百花齐放的时期。

新的系列和专用系列正在不断涌现。

按位数分类有4位、8位、16位以及32位单片机等,4位单片机由于价格低和出现的早得到了广泛的应用,特别是在家电应用领域中其还有很大的优势,为了抵御8位机的竞争,4位机在结构和功能上都有很大的改进。

8位机的生产厂家以及品种都很多,在实际的生产中应用也最为广泛,其中intel公司的8051系列单片机在我国应用最为广泛,另外8位单片机也在其功能和内部结构上不断的进行改进,目前功能是越来越强大。

16位单片机在数据处理以及单片机的性能上有了很大的改进。

32位单片机是随着高科技产业的发展而产生的。

1.2设计任务:

设计一个单片机控制的多功能秒表系统,利用单片机的定时器/计数器定时和记数的原理,结合显示电路、用两个LED数码管以及按键来设计00~99秒计时器。

将软、硬件有机地结合起来,使得系统能够正确地进行加计时,同时数码管能够正确地显示时间。

1.3设计要求:

1、能同时记录四个相对独立的时间并分别显示。

2、两位LED动态显示,显示时间为00~99秒。

3、每秒自动加1。

4、一个开始按键、一个复位按键、一个暂停按钮和一个快加按钮(每10ms快速加一)。

5、翻页按钮查看四个不同的计时值。

 

2系统总体方案及硬件设计

本设计的最主要的元器件就是MCS-51单片机。

MCS-51单片机在一块芯片上集成了CPU,存储器RAM,ROM以及输入与输出接口电路,这种芯片习惯上被称为单片微型计算机,简称单片机。

MCS-51单片机是INTEL公司在1980年推出的高档8位单片机。

它的典型产品有:

8051,8031,8751,80C51,80C31,87C51。

 

"

 

图1:

AT89C51单片机

AT89C51(图1)单片机由CPU,振荡器与时序电路,4个8位的I/O端口(P0,P1,P2,P3),串行口等组成。

P0口有三个功能:

1、外部扩展存储器时,当做数据总线(如图中的D0~D7为数据总线接口)。

2、外部扩展存储器时,当作地址总线(如图中的A0~A7为地址总线接口)。

3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。

P1口只做I/O口使用:

其内部有上拉电阻。

P2口有两个功能:

1、扩展外部存储器时,当作地址总线使用;

2、做一般I/O口使用,其内部有上拉电阻;

P3口有两个功能:

除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由寄存器来设置。

ALE:

地址锁存控制信号

PSEN:

外部程序存储器读选通信号

EA/VPP:

访问和序存储器控制信号

RST:

复位信号XTAL1和XTAL2外接晶振引脚VCC:

电源+5V输入VSS:

GND接地。

图2:

整体设计电路图

2.1电源:

采用7809电源提供+5V稳压电压。

电源电路是单片机系统最基本的部分,所以我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所忽略,电源部分做好才能保证电路的正常工作。

对电源电路来说,最重要的就是稳压,我们采用的是7809电源提供的+5V稳压电压。

2.2复位电路:

采用上电加按钮复位。

其中,在这个系统中的复位电路是采用上电加按钮来实现的。

因为MCS-51单片机的复位是靠外部电路实现的。

MCS-51单片机工作之后,只要在他的RST引线上加载10ms以上的高点平,单片机就能有效地进行复位。

MCS-51单片机通常采用上电自动复位、按键复位、以及上电加按键复位等,我们采用的是上电加按键复位方式,这样做的优点是上电后可以直接进入复位状态,当程序出现错误时,可以随时使电路复位。

图3:

复位电路

2.3晶体振荡电路:

通过XTAL1和XTAL2外接晶体振荡器构成内部振荡方式。

由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。

MCS--51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。

 

图3晶振电路

2.4显示电路:

采用LED动态显示,用P0口驱动显示。

显示电路既可以选用液晶显示器,也可以选用数码管显示。

我们采用的是数码管显示电路。

在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示的程序比较复杂,但是所使用的端口比较少,可以节省单片机的I/O口,我们在这次系统设计中采用的是动态显示。

但是由于我们编程知识的局限性,显示的结果并没有达到我们预期的效果,敬请老师原谅。

图5:

显示电路

 

2.5键盘电路:

用部分P1口做开始开关,P1.0停止,P1.1复位,P1.2快加,P1.3暂停记录,P1.4上翻,P1.5下翻,用外中断INT0开始,用软件法消除抖动。

图5:

键盘电路

 

3软件设计

3.1设计思想

因为秒表设计相对较为简单,因此在软件设计中我们一般采用模块化程序设计的方法。

模块是一个具有独立功能的程序,可以单独设计、调试与管理,模块可分为功能模块和控制模块两类。

我们通过模块化程序设计可按适当的原则把一个情况复杂、规模较大的程序系统划分为一个个较小的、功能相关而又相对独立的模块。

每个小的模块完成一个确定的功能,在这些小的模块之间建立必要的联系,互相协作完成整个程序要完成的功能。

它具有明显的优点,把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。

其中的模块即为子程序,子程序是功能独立的程序段。

子程序的基本思想是编写一次,可以重复使用。

子程序的形式可以是一个程序文件,也可以是一个过程或函数。

子程序总被其他程序调用而不单独执行,这与主程序相对。

这个主程序也是由多个子程序模块组成,各程序模块都要完成一个明确的任务,实现某个具体的功能,加计数、减计数、延时、快加、复位,计数和显示等,在具体需要时调用相应的模块即可。

程序模块设计:

(1)主程序

MAIN:

MOVSP,#50H

MOVTMOD,#11H

MOVTH1,#0D8H;定时10ms

MOVTL1,#0F0H

MOVTH0,#0CFH;定时25ms

MOVTL0,#02CH

MOV20H,#00H;BINSECOND

MOV30H,#00H;SECOND

MOV31H,#00H

MOV40H,#40

MOV71H,#00H

MOV72H,#00H

MOV73H,#00H

MOV74H,#00H;对71H—74H单元清零

MOVR2,#04H

MOVR3,#04H

MOVR1,#71H

SETBEA

SETBEX1

CLRET1

SETBET0

CLRPT0

CLRPT1

SETBPX1

SETBIT1

MOVP0,#0FFH

CLRTR0

CLRTR1

CLR7FH

判断是否有键按下,并确定是哪一个键,转移到相应的子程序的入口地址去执行子程序。

没有键按下则一直等待,直到有键按下。

ML1:

ACALLDISP;调用显示程序

P1.0键按下时,计数停止

START:

JBP1.0,LOOP1

ACALLDELAY10;延时

JBP1.0,LOOP1;P1.0=1,跳转到LOOP1执行

JNBP1.0,$

LJMPSTOP;P1.0=0,跳转到停止子程序

P1.1键按下时,数字清零复位

LOOP1:

JBP1.1,LOOP2

ACALLDELAY10;延时

JBP1.1,LOOP2;P1.1=1,跳转到LOOP2执行

JNBP1.1,$

LJMPRESET;P1.1=0,跳转到复位子程序

P1.2键按下时,进行快加计数

LOOP2:

JBP1.2,LOOP3

ACALLDELAY10;延时

JBP1.2,LOOP3;P1.2=1,跳转到LOOP3执行

JNBP1.2,$

LJMPKUAIJIA;P1.2=0,跳转到快加子程序

P1.3键按下时,执行记录功能

LOOP3:

JBP1.3,LOOP4

ACALLDELAY10;延时

JBP1.3,LOOP4;P1.3=1,跳转到LOOP4执行

JNBP1.3,$

LJMPJILU;P1.3=0,跳转到暂停记录子程序

P1.4键按下时,执行上翻功能

LOOP4:

JBP1.4,LOOP5;P1.4=0,SHANGFAN

ACALLDELAY10;延时

JBP1.4,LOOP5;P1.4=1,跳转到LOOP5执行

JNBP1.4,$

LJMPXIAFAN;P1.4=0,跳转到上翻子程序

P1.5键按下时,执行下翻功能

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1