多功能秒表系统设计.docx

上传人:b****0 文档编号:12853170 上传时间:2023-04-22 格式:DOCX 页数:21 大小:177.29KB
下载 相关 举报
多功能秒表系统设计.docx_第1页
第1页 / 共21页
多功能秒表系统设计.docx_第2页
第2页 / 共21页
多功能秒表系统设计.docx_第3页
第3页 / 共21页
多功能秒表系统设计.docx_第4页
第4页 / 共21页
多功能秒表系统设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

多功能秒表系统设计.docx

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

多功能秒表系统设计.docx

多功能秒表系统设计

(此文档为word格式,下载后您可任意编辑修改!

 

单片机课程设计

 

课题:

多功能秒表

 

系别:

电气与电子工程系

专业:

电气工程及其自动化

姓名:

学号:

指导老师:

 

河南城建学院

年月日

成绩评定·

一、指导教师评语(根据学生设计报告质量、答辩情况及其平时表现综合评定)。

二、评分

评分项目

设计报告评分

答辩评分

平时表现评分

合计

(100分)

任务完成

情况

(20分)

课程设计

报告质量

(40分)

表达情况

(10分)

回答问题

情况

(10分)

工作态度与纪律

(10分)

独立工作

能力

(10分)

得分

课程设计成绩评定

目录

1概述3

1.1单片机简介……………………………………………………………………3

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

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

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

2.1、复位电路5

2.2、晶体振荡电路6

2.3、键盘电路6

2.4、显示电路7

3软件设计7

3.1、设计思想7

3.2、系统流程图8

3.3源程序代码及注解……………………………………………………10

4Proteus软件仿真15

5课程设计体会…………………………………………………………………………16

6参考文献………………………………………………………………………….17

附录1:

源程清单18

附录2:

系统原理图24

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、一个开始按键、一个复位按键、一个暂停按钮和一个计录按钮(附加功能)。

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

2系统总体方案

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

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

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

它的典型产品有:

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

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复位电路:

采用上电加按钮复位。

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

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

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

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

图3:

复位电路

2.2晶体振荡电路:

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

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

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

图4:

晶振震荡电路

2.3键盘电路:

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

图5:

键盘电路

2.4显示电路:

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

图6:

显示电路

3软件设计

3.1设计思想

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

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

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

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

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

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

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

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

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

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

3.2、程序流程图:

定时器流程图

加1子程序流程图:

3.3程序代码及注解

(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

MOVR2,#04H

MOVR3,#04H

MOVR1,#71H

SETBEA

SETBEX1

CLRET1

SETBET0

CLRPT0

CLRPT1

SETBPX1

SETBIT1

MOVP2,#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.3键按下,暂停记录

LOOP2:

JBP1.3,LOOP3

ACALLDELAY10;延时

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

JNBP1.3,$

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

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

LOOP3:

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

ACALLDELAY10;延时

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

JNBP1.4,$

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

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

LOOP4:

JBP1.5,LOOP;P1.5=0,XIAFAN

ACALLDELAY10;延时

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

JNBP1.5,$

LJMPSHANGFAN;P1.5=0,跳转到下翻子程序

LOOP:

SJMPHERE

(2)停止子程序

软件对定时器0和定时器1的控制位清零,使定时器停止工作

STOP:

CLRTR0

CLRTR1;关闭定时器0,1

ACALLDISP

SJMPHERE

(3)复位子程序

软件对显示的各内存单元清零,并回到开始前的初始状态,具体程序如下所示:

RESET:

CLRTR0

CLRTR1;关闭定时器0,1

MOV20H,#00H

MOV30H,#00H

MOV31H,#00H

ACALLDISP;调用显示子程序

SJMPHERE

(4)按键消抖程序

DELAY10:

MOVR4,#14H

延时10ms再次判断该位的状态,若仍是0则说明该键被按下,弹起后去执行该按键功能;若为1,则说明是抖动则继续向下判断。

例如下面的程序中就调用了这个子程序。

LOOP2:

JBP1.3,LOOP3;P1.3=0时,暂停记录

ACALLDELAY10

JBP1.3,LOOP3

JNBP1.3,$

LJMPJILU

4ISIS7Professionl软件仿真

利用KeiluVision软件对源程序进行编译,编译成功后,把编译结果保存。

然后根据我们的软件在PROTEUS中设计出相应的硬件电路,并将该电路保存到与WAVE程序相同的文件夹中,最后将程序装载到单片机中,通过ISIS7Professionl仿真,看程序是否能够实现预想的功能.

仿真图如下图所示:

图7:

系统仿真结果1

5课程设计体会

经过一周的不懈努力,单片机的课程设计终于完成了。

在这期间我们学会了很多,也学到了很多,同时,对单片机这门课程有了更深一步的理解和掌握。

1、本次课程设计使我加深了对单片机课程的全面认识,复习和掌握,对MC-51单片机有了更深入的了解,对I/O口的使用,晶振电路的接法,以及复位电路等的掌握都有了很大程度的提高,这为以后的实践打下了良好的基础。

2、掌握了定时器、外部中断的设置和编程原理。

3、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

4、还要根据实验的实际情况,添加些额外程序来使系统更加的稳定,如开关的消震荡(采用延迟)。

5、程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。

6、我在编程过程中还有好多不理解的地方,经过同学的帮助终于完成了这次设计。

在这个过程中体会到了合作的好处,更了解的互相帮助的重要性。

由于编程能力的有限和所学知识的局限性,在这个程序和设计系统中虽然实现了所有的基本要求和部分的高级要求,但是这其中还有许多不完善的地方,有时在上翻和下翻时会出现一些问题,这说明我在这方面还存在着很多不足,知识不够完备和系统,在以后的学习中还有待提高。

另外,在实践中虽然焊接好了硬件电路,却没能实践成功,希望老师能在以后的学习和生活中对我多加指导,促使我能取得更大的进步。

6参考文献

【1】余发山编著.单片机原理及应用技术徐州:

中国矿业大学出版社,2003年

【2】杨凌霄编著.微型计算机原理及应用.徐州:

中国矿业大学出版社,2004年

【3】杨宁编著.单片机与控制技术.北京:

北京航空航天大学出版社,2004年

【4】王闪编著.AT89系列单片机原理与接口技术.北京:

北京航空航天大学出版社,2004年

附录:

程序清单:

ORG0000H

LJMPMAIN

ORG0003H

LJMPJILU

ORG000BH

LJMPTIME1

ORG0013H

LJMPZHONGDUAN

ORG001BH

LJMPTIME10

ORG0100H

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

MOVR2,#04H

MOVR3,#04H

MOVR1,#71H

SETBEA

SETBEX1

CLRET1

SETBET0

CLRPT0

CLRPT1

SETBPX1

SETBIT1

MOVP2,#0FFH

CLRTR0

CLRTR1

CLR7FH

ML1:

ACALLDISP

START:

JBP1.0,LOOP1;P1.0=0,STOP

ACALLDELAY10

JBP1.0,LOOP1

JNBP1.0,$

LJMPSTOP

LOOP1:

JBP1.1,LOOP2;P1.1=0时,复位

ACALLDELAY10

JBP1.1,LOOP2

JNBP1.1,$

LJMPRESET

LOOP2:

JBP1.3,LOOP3;P1.3=0时,暂停记录

ACALLDELAY10

JBP1.3,LOOP3

JNBP1.3,$

LJMPJILU

LOOP3:

JBP1.4,LOOP4;P1.4=0时,上翻

ACALLDELAY10

JBP1.4,LOOP4

JNBP1.4,$

LJMPXIAFAN

LOOP4:

JBP1.5,LOOP;P1.5=0时,下翻

ACALLDELAY10

JBP1.5,LOOP

JNBP1.5,$

LJMPSHANGFAN

LOOP:

SJMPHERE

STOP:

CLRTR0;停止程序

CLRTR1

ACALLDISP

SJMPHERE

RESET:

CLRTR0;复位程序

CLRTR1

MOV20H,#00H

MOV30H,#00H

MOV31H,#00H

ACALLDISP

SJMPHERE

JILU:

MOVA,20H;暂停记录程序

MOV@R1,A

INCR1

DJNZR2,HERE

MOVR1,#71H

SJMPSTOP

MOV20H,A

MOVB,#0AH

DIVAB

MOV31H,A

MOV30H,B

LCALLDISP

INCR1

DJNZR2,HERE

MOVR1,#74H

SJMPSTOP

MOV20H,A

MOVB,#0AH

DIVAB

MOV31H,A

MOV30H,B

LCALLDISP

DECR1

DJNZR3,HERE

MOVR1,#71H

SJMPSTOP

HEE:

JNBTF1,HEE

CLRTF1

ACALLJIA1

ACALLDISP

JNBP1.0,STOP

SJMPHEE

HERE:

LJMPML1

ZHONGDUAN:

SETBTR0;启动定时器0

CLRTR1

RETI

TIME1:

PUSHACC;定时1秒

PUSHPSW

MOVTH0,#0D8H

MOVTL0,#0F0H

DJNZ40H,RET0

LCALLJIA1

LCALLDISP

MOV40H,#100

RET0:

POPPSW

POPACC

RETI

TIME10:

PUSHACC;定时10毫秒

PUSHPSW

MOVTH0,#0D8H

MOVTL0,#0F0H

RET1:

POPPSW

POPACC

RETI

JIA1:

MOVA,20H;加1

CLRC

INCA

CJNEA,#100,GO1

MOV20H,#00H

RET

GO1:

MOV20H,A

MOVB,#0AH

DIVAB

MOV31H,A

MOV30H,B

RET

DISP:

MOVR0,#30H;显示

MOVR3,#0FEH

MOVA,R3

PLAY:

MOVP1,A

MOVDPTR,#DSEG1

MOVP2,A

LCALLDL1

MOVP1,#0FFH

MOVA,R3

RLA

JNBACC.2,LD1

INCR0

MOVR3,A

LJMPPLAY

LD1:

RET

DL1:

MOVR7,#05H

DL:

MOVR6,#0FFH

DL6:

DJNZR6,$

DJNZR7,DL

RET

DELAY10:

MOVR4,#14H;延时10毫秒

DL00:

MOVR5,#0FFH

DL11:

DJNZR5,DL11

DJNZR4,DL00

RET

DSEG1:

DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

END

附录2:

系统原理图

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

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

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

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