单片机秒表001s.docx

上传人:b****5 文档编号:12536206 上传时间:2023-04-20 格式:DOCX 页数:22 大小:309.71KB
下载 相关 举报
单片机秒表001s.docx_第1页
第1页 / 共22页
单片机秒表001s.docx_第2页
第2页 / 共22页
单片机秒表001s.docx_第3页
第3页 / 共22页
单片机秒表001s.docx_第4页
第4页 / 共22页
单片机秒表001s.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

单片机秒表001s.docx

《单片机秒表001s.docx》由会员分享,可在线阅读,更多相关《单片机秒表001s.docx(22页珍藏版)》请在冰豆网上搜索。

单片机秒表001s.docx

单片机秒表001s

探※※※※※※※※

2009级单片机

课程设计

探※※※※※※※

单片机课程设计报告书

课题名称

秒表

姓名

石光宇

学号

20096593

院、系、部

电气工程系

专业

电气工程及其自动化

指导教师

焦咏梅

2012年6月30日

秒表

一、设计目的

(1)利用单片机定时器中断和定时器计数方式实现秒、分定时。

(2)通过LED显示程序的调整,熟悉8155与8051,8155与LED的接口技术,熟悉LED动态显示的控制过程。

(3)通过键盘程序的调整,熟悉8155与矩阵式键盘的接口技术,熟悉键盘扫描原理。

(4)通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示、键盘扫描和定时器中断等多种功能的综合程序,初步体会大型程序的编制和调试技巧。

(5)以单片机为基础,设计一个可以实现启动,暂停,继续,复位,可选择正负计时并且可以显示十分之一秒的秒表。

锻炼硬件与软件相结合的设计能力。

二、设计要求

1•可启动、暂停、继续和复位。

2.4位显示,精确到0.1(999.9)

3.可正计时、倒计时。

正计时时,从0000开始,最大到999.9秒,倒计时时,从设定时间开始

4.通过键设定时间,可设定正计时的结束时间和倒计时的开始时间,当到达设定时间或倒计时到0时报警,数码管闪烁最后的时间。

5.要求做出实物。

(同时上传本机地址03耳本机地址为03H,当接到上位机发的03H时,则回发03H当接到上位机发的AAH时,则将当前显示的秒值发给上位机)

三、硬件电路设计

3.1系统框图

3.2系统电路原理图

打开电源后,进行结束时间后需要计时时间的设定,按P3.3键选择给哪一

位进行设置,按P3.2键进行把P3.2设置的位中的值进行加一设置,设定结束后,进行正计时后到计时的选择(P3.5键),开始默认为正计时(即从0000到结束的时间)o按下一次即更改成倒计时(即从设定的时间逐渐减到0000后结束),再

次按下P3.5键后会更改为正计时,如此循环。

设定时间及正负计时后,按下启动键(P3.6键),程序开始进行计时,计数器/定时器T0开始计时中断,计时结束后,置位P0.7进行蜂鸣器报警,同时数码管闪动显示结束时的时间。

在计时结束后按下复位键(P3.0),程序可以回到主程序最开始,可以再次进行设定计时,如此往复循环。

3.4各部分电路设计

1.单片机最小系统

图3.1stc89c52芯片

(1)STC89C5是一种低功耗、高性能CMOS位微控制器,具有8K在系统可编

程Flash存储器。

在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能:

8k字节Flash,512字节RAM32位I/O口线,看门狗定时器,内置4KBEEPRO,MMAX81(复位电路,2个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。

另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM

定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振

汤器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

取咼运作频率35MHz6T/12T可选。

oE—

1

20

DO_

2

19

_00

0-1—

3

IB

—m

D2—

4

17

—02

D3—

5

1C

^03

&4—

15

7

14

—OS

D€—

a

13

C7_

12

—07

GND—

10

11

pLE

图3.274HC573锁存器

输入是和标准CMOS输出兼容的;加上拉电阻,他们能和LS/ALSTTL输出

兼容。

当锁存使能端LE为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。

当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。

1脚三态允许控制端低电平有效

1D〜8D为数据输入端

1Q〜8Q为数据输出端

74HC573弓I脚图

LE为锁存控制端;0E为使能端。

74HC57站部原理图

(2)数码管的显示

图3-3数码管显示原理图

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)

的数码管,共阴数码管在应用时应将公共极COM接到地线GNDt,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。

LED数码动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,再选通相应的数码管后,即显示字段上得到显示字形码。

这种方式数码管的发光效率,而且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。

动态扫描显示接口是单片机系统中应用最为广泛的

一种显示方式。

其接口电路是把所有显示器的8个笔画段A-DP同名端并联在一

起,而每个显示器的公共极COM各自独立地接受I/O线控制,CPU向字段输出口送出字段形码是,所有显示器由于同名端并连接收到相同的字形码,但究竟是哪

个显示器亮,则取决于COK端,而这一端是由I/O控制的,所以就可以自行决定何时显示哪一位了。

而所谓动态扫描是指采用分时的方法,轮流控制各个显示器的COMm,使各个显示器轮流点亮。

再轮流点亮扫描过程中,每位显示器的点

亮时间是极为短暂的(约1m$),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上个位显示器并非同时点亮,但只要扫描的速度足够快,给人的

影响就是一组稳定的显示数据,不会有闪烁感。

(3)按键扫描电路介绍:

扫描法师在判定有按键按下后逐行逐列的状态出现全非1的状态,这时0状态的行、列焦点的键就是所按下的键位。

确定矩阵式键盘上哪个键位被按下时运用扫描法,进行查询。

判断键盘中有无键位按下,先将全部的焊线Y0~Y3置低电平,然后检测列线的状态。

只要有一列的电平为低电平,则表示键盘中有键位被按下,而且闭合的按键位于低电平线与4根行线交叉的4个按键中,若所有列线均为高电平,则键盘中没有按键按下。

判断闭合键位所在的位置,在确定了有键位按下后,即可进行确定具体闭合键的过程。

其方法是:

一次将行线置为低电平,即在置某根行线为低电平时,其他线为高电平,在确定某根行线位置为低电平后,再逐行检测各列线的电平状态,若某列为低电平,则该列线与置为低电平的行线交叉处的按钮就是闭合的按键•

四、软件设计

1•设计思路

打开电源后,进行结束时间后需要计时时间的设定,按P3.3键选择给哪一

位进行设置,按P3.2键进行把P3.2设置的位中的值进行加一设置,设定结束后,进行正计时后到计时的选择(P3.5键),开始默认为正计时(即从0000到结束的时间)。

按下一次即更改成倒计时(即从设定的时间逐渐减到0000后结束),再

次按下P3.5键后会更改为正计时,如此循环。

设定时间及正负计时后,按下启动键(P3.6键),程序开始进行计时,计数器/定时器T0开始计时中断,计时结束后,置位P0.7进行蜂鸣器报警,同时数码管闪动显示结束时的时间。

在计时结束后按下复位键(P3.0),程序可以回到主程序最开始,可以再次进行设定计时,如此往复循环。

2•流程图

幵始

J

 

 

4.3外部中断1的程序流程图

注:

图2,3中的R0为存放计时数值地址的寄存器,@R0为以该寄存器中数据为地址的数据

显小第位

1

显示第二位

F

显示第二位

F

显示第四位

图4.5显示程序流程图

五、程序设计如下:

ORG0000H

AJMPMAIN

ORG0003H

AJMPIN0

ORG000BH

AJMPT0_INT

ORG0013H

AJMPIN1

TAB:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

MAIN:

MOV30H,#00H

MOV31H,#00H

MOV32H,#00H

MOV33H,#00H

MOVR0,#30H

MOVR1,#30H

MOVR2,#20

MOVR3,#20

MOVSP,#40H

MOVTMOD,#02H

MOVTL0,#06H

MOVTH0,#06H

CLR00H

SETB01H

CLR02H

SETBTR0

SETBET0

SETBEXO

SETBEX1

SETBEA

MOVPO,#OOH

MOVP3,#0FEH

FH:

XIANSHI1:

;四位数码管显示

L3:

MOVDPTR,#TAB

MOVA,30H

MOVCA,@A+DPTR

SETBP2.0

CLRP2.1

MOVP1,A

CLRP2.0

SETBP2.1

MOVP1,#0EFH

ACALLDELY1

MOVP1,#0

MOVA,31H

MOVDPTR,#TAB

MOVCA,@A+DPTR

SETBP2.0

CLRP2.1

MOVP1,A

CLRP2.0

SETBP2.1

MOVP1,#0DFH

ACALLDELY1

MOVP1,#0

MOVA,32H

MOVDPTR,#TAB

MOVCA,@A+DPTR

ORLA,#80H

SETBP2.0

CLRP2.1

MOVP1,A

CLRP2.0

SETBP2.1

MOVP1,#0BFH

ACALLDELY1

MOVP1,#0

MOVA,33H

MOVDPTR,#TAB

MOVCA,@A+DPTR

SETBP2.0

CLRP2.1

MOVP1,A

CLRP2.0

SETBP2.1

MOVP1,#7FH

ACALLDELY1

MOVP1,#0

AJMPL3

JBP3.6,FH

SETB02H;是不是启动,开始计数

CLREX0

CLREX1

MOVR7,33H

MOVA,32H

SWAPA

ADDA,R7

MOVTL1,A

MOVR7,31H

MOVA,30H

SWAPA

ADDA,R7

MOVTH1,A

XIANSHI:

;四位数码管显示

L0:

MOVDPTR,#TAB

MOVA,30H

MOVCA,@A+DPTR

SETBP2.0

CLRP2.1

MOVP1,A

CLRP2.0

SETBP2.1

MOVP1,#0EFH

ACALLDELY1

MOVP1,#0

MOVA,31H

MOVDPTR,#TAB

MOVCA,@A+DPTR

SETBP2.0

CLRP2.1

MOVP1,A

CLRP2.0

SETBP2.1

MOVP1,#0DFH

ACALLDELY1

MOVP1,#0

MOVA,32H

MOVDPTR,#TAB

MOVCA,@A+DPTR

ORLA,#80H

SETBP2.0

CLRP2.1

MOVP1,A

CLRP2.0

SETBP2.1

MOVP1,#0BFH

ACALLDELY1

MOVP1,#0

MOVA,33H

MOVDPTR,#TAB

MOVCA,@A+DPTR

SETBP2.0

CLRP2.1

MOVP1,A

CLRP2.0

SETBP2.1

MOVP1,#7FH

ACALLDELY1

MOVP1,#0

JB03H,SHAN

AJMPL0

SHAN:

;四位数码管逐位显示

L1:

MOVDPTR,#TAB

MOVA,30H

MOVCA,@A+DPTR

SETBP2.0

CLRP2.1

MOVP1,A

CLRP2.0

SETBP2.1

MOVP1,#0EFH

ACALLDELY10

MOVP1,#0

MOVA,31H

MOVDPTR,#TAB

MOVCA,@A+DPTR

SETBP2.0

CLRP2.1

MOVP1,A

CLRP2.0

SETBP2.1

MOVP1,#0DFH

ACALLDELY10

MOVP1,#0

MOVA,32H

MOVDPTR,#TAB

MOVCA,@A+DPTR

ORLA,#80H

SETBP2.0

CLRP2.1

MOVP1,A

CLRP2.0

SETBP2.1

MOVP1,#0BFH

ACALLDELY10

MOVP1,#0

MOVA,33H

MOVDPTR,#TAB

MOVCA,@A+DPTR

SETBP2.0

CLRP2.1

MOVP1,A

CLRP2.0

SETBP2.1

MOVP1,#7FH

ACALLDELY10

MOVP1,#0

MOVC,P3.7

JCFW

CLRTR0

AJMPMAIN

FW:

AJMPL1

IN0:

CJNER0,#33H,L

MOVR0,#30H

L:

INCRO

RETI

IN1:

CJNER0,#30H,XD

MOVR6,30H

CJNER6,#09H,XD1

MOV30H,#00H

RETI

XD1:

INC30H

RETI

XD:

CJNER0,#31H,XD2

MOVR6,31H

CJNER6,#09,XD3

MOV31H,#00H

XD3:

INC31H

RETI

XD2:

CJNER0,#32H,XD4

MOVR6,32H

CJNER6,#09H,XD5

MOV32H,#00H

XD5:

INC32H

RETI

XD4:

MOVR6,33H

CJNER6,#09H,XD6

MOV33H,#00H

XD6:

INC33H

RETI

T0_INT:

PUSHACC

P3,5

JBP3.4,XY1

CPL00H

XY1:

JBP3.5,XY2

CPL01H

JNB00H,HERE

XY2:

DJNZR2,HERE

MOVR2,#20

DJNZR3,HERE

MOVR3,#20

;P3.7用作复位P3.4用暂停或继续

;P3.5用作启动用P3.6用于选择正负计时用

MOVR4,31H

MOVA,30HSWAPA

ADDA,R4

MOVR4,A

MOVR5,33H

MOVA,32HSWAPA

ADDA,R5

MOVR5,A

CON:

JNB01H,NEG

JNB02H,M

MOV30H,#00H

MOV31H,#00H

MOV32H,#00H

MOV33H,#00H

CPL02H

M:

;判定是正还是负计时

;判定是不是第一次执行

MOVA,R4CJNEA,TH1,LJ

MOVA,R5

CJNEA,TL1,LJ

CLR00H

SETBP0.7

SETB03H

HERE:

POPACC

RETI

;暂停和继续

;03H判断是不是计时结束

;P0.7用作接蜂鸣报警

LJ:

MOVR7,33HCJNER7,#09H,LJ1MOV33H,#00HMOVR7,32HCJNER7,#09H,LJ2MOV32H,#00HMOVR7,31HCJNER7,#09H,LJ3MOVR7,31HMOVR7,#00H

INC30H

POPACC

RETI

LJ3:

INC31H

RETI

LJ2:

INC32H

RETI

LJ1:

INC33H

POPACC

RETI

NEG:

CJNER4,#00H,LX

CJNER5,#00H,LX

SETBP0.7

CLR00H

SETB03H

POPACC

RETI

LX:

CJNER4,#00H,LX1

MOV32H,#09H

MOV33H,#09H

MOVR7,31H

CJNER7,#00H,LX2

DEC30H

MOV31H,#09H

LX2:

DEC31H

POPACC

RETI

LX1:

MOVR7,33H

CJNER7,#00H,LX3

MOV33H,#09H

DEC32H

POPACC

RETI

LX3:

DEC33H

POPACC

RETI

DELY1:

MOVR4,#4

D1:

MOVR5,#248

;接报警器

;1MS子程序

D2:

DJNZR5,D2

DJNZR4,D1

RET

DELY10:

;50ms延时子程序

MOVR4,#200

D3:

MOVR5,#248

D4:

DJNZR5,D4

DJNZR4,D2

RET

END

六、设计总结:

经过一个星期的课程设计,过程曲折可谓一语难尽。

在此期间我也失落过,也曾一度热情高涨。

从开始时激情高涨到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。

在老师的指导下,我们顺利完成了课程设计。

让我学到了以下几点:

1、将学习的理论知识通过实验融会贯通,让我对它的理解更加深刻。

对程序的编译过程了解透彻。

2、本次课程设计以自己设计为主,因此培养了学习的积极性,让我能够独立去分析问题、发现问题、解决问题,更增强我与老师同学交流沟通和合作完成任务的能力。

3、由于这次课程设计不仅设计编程方面的知识,还涉及了其它学科的知识,例如PROTEL等的基本知识。

程序是用汇编语言来编写的,这次课程设计让我在编程能力方面得到了提高。

4、由于水平有限,实验程序运行有一定的限制,以后会加强改进。

总之,通过这次课程设计,不仅加深了我对单片机理论方面的理解,将理论更好的运用的实践方面,而且锻炼了我们各方面的能力,培养了坚强的毅力和做事的耐心和细心,认识合作的重要性,虽然程序可能有一定的浪费资源,且较罗嗦,但这需要在实践中慢慢提高,还希望老师能够多多指导,促进我不断的进步。

最后再一次感谢焦老师对我的悉心指导和无私帮助。

七、参考文献:

[1]高峰.单片微型计算机原理与接口技术•科学出版社,2007

[2]夏继强.单片机实验与实践教程[M].北京:

北京航空航天大学出版社

2001

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

当前位置:首页 > 求职职场 > 简历

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

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