搜档网
当前位置:搜档网 › 单片机秒表0.01s

单片机秒表0.01s

单片机秒表0.01s
单片机秒表0.01s

单片机课程设计报告书

课题名称 秒表 姓 名

石光宇

学 号 20096593 院、系、部 电气工程系 专 业 电气工程及其自动化

指导教师 焦咏梅

2012年 6 月30日

※※※※※※※※※ ※※

※※ ※※ ※※

※※※※※※※

2009级单片机

课程设计

秒表

一、设计目的

(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、要求做出实物。

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

三、硬件电路设计

3.1系统框图

3.2系统电路原理图

1

2

3

4

5

6

A

B

C

D

6

5

4

3

2

1

D

C

B A

Titl e

Nu mber Rev sio n

Size B Dat e:1-J ul -2011

Sheet o f File:

I:\BAABC5~1.DDB Drawn By:

a b f c g d

e

DP Y 1234567a b c d e f g 8

dp

dp

l1DPY_7-SEG_DP

a b f c g d

e

DP Y 1234567a b c d e f g 8

dp

dp

l2

DPY_7-SEG_DP

a b f c g d

e

DP Y 1234567a b c d e f g 8

dp

dp

l3

DPY_7-SEG_DP

a b f c g d

e

DP Y 1234567a b c d e f g 8

dp

dp

l4

DPY_7-SEG_DP

OC 1C 111D 22D 33D 44D 55D 66D 77D 88D 9

1Q 192Q 183Q 174Q 165Q 156Q 147Q 138Q

12

u 02

74HC573

c0122p

c0222p

y 01

12GND VCC D-/DM D+/DP GND GND

c04CON6

EA/VP 31

X119

X218

RESET 9

P3.7RD 17P3.6WR

16

P3.2INT012P3.3INT113P3.4T 014

P3.5T 115P101P112P123P134P145P156P167P178

P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P27

28

PSEN

29

ALE P 30P3.1T XD

11P3.0RXD 10U1

8051GND Tex IN

GND

GND R21K

GND

S2

SW-PB

51复位

+5v

1

2c7

CON2

p 0.7

R31k

Q1PNP1

GND

SP1

SPEAKER

12

+5V

SW-PB3SW-PB

SW-PB2SW-PB

SW-PB3SW-PB

SW-PB4SW-PB

SW-PB5

SW-PB SW-PB6SW-PB SW-PB7SW-PB SW-PB8SW-PB SW-PB9

SW-PB SW-PB10SW-PB SW-PB11SW-PB SW-PB12SW-PB SW-PB13SW-PB

SW-PB14SW-PB

SW-PB15SW-PB

SW-PB16SW-PB

GND

SW-PB17SW-PB SW-PB18SW-PB SW-PB19SW-PB SW-PB20SW-PB

P3.7

P3.6

P3.5

P3.4

P3.3

P3.2

P3.1

P3.0

P1.4

P1.5

P1.6P1.7

c7CAP GND

+5V

GND v cc P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

P2.0

OC 1

C 111

D 22D 33D 44D 55D 66D 77D 88D 9

1Q 192Q 183Q 174Q 165Q 156Q 147Q 138Q

12

U0374HC573

P1.7

P1.6P1.5P1.4P1.3P1.2P1.1P1.0P3.0P3.1C6

10UP/5U

P3.2

P3.3P3.6P3.7P3.4P3.5P2.1GND GND

3.3系统电路图工作原理

打开电源后,进行结束时间后需要计时时间的设定,按P3.3键选择给哪一位进行设置,按P3.2键进行把P3.2设置的位中的值进行加一设置,设定结束后,进行正计时后到计时的选择(P3.5键),开始默认为正计时(即从0000到结束的时间)。按下一次即更改成倒计时(即从设定的时间逐渐减到0000后结束),再次按下P3.5键后会更改为正计时,如此循环。设定时间及正负计时后,按下启动键(P3.6键),程序开始进行计时,计数器/定时器T0开始计时中断,计时结束后,置位P0.7进行蜂鸣器报警,同时数码管闪动显示结束时的时间。在计时结束后按下复位键(P3.0),程序可以回到主程序最开始,可以再次进行设定计时,如此往复循环。 3.4各部分电路设计

1.单片机最小系统

图3.1 stc89c52芯片

(1)STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash ,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k 字节Flash ,512字节RAM , 32 位I/O 口线,看门狗定时器,内置4KB EEPROM ,MAX810复位电路,2个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM 、定时器

/计数器、串口、中断继续工作。掉电保护方式下,RAM 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz ,6T/12T 可选。

图3.2 74HC573锁存器

输入是和标准 CMOS 输出兼容的;加上拉电阻,他们能和 LS/ALSTTL 输出兼容。当锁存使能端LE 为高时,这些器件的锁存对于数据是透明的(也就是说输出同步)。当锁存使能变低时,符合建立时间和保持时间的数据会被锁存。

OE  ̄ 1 20 Vcc

1D — 2 19

—1Q 2D — 3 18

—2Q 3D — 4 17

—3Q 4D — 5 16

—4Q 5D — 6 15

—5Q 6D — 7 14

—6Q 7D — 8 13 —7Q 8D — 9 12 —8Q GND 10 11 LE OE LE D Q L H H H L H L L

L L X Q0

H X X Z

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

1D~8D为数据输入端

1Q~8Q为数据输出端

74HC573引脚图

LE为锁存控制端;OE为使能端。

74HC573内部原理图

(2)数码管的显示

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

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。LED数码动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,再选通相应的数码管后,即显示字段上得到显示字形码。这种方式数码管的发光效率,而且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。动态扫描显示接口是单片机系统中应用最为广泛的一种显示方式。其接口电路是把所有显示器的8个笔画段A-DP同名端并联在一起,而每个显示器的公共极COM各自独立地接受I/O线控制,CPU向字段输出口送出字段形码是,所有显示器由于同名端并连接收到相同的字形码,但究竟是哪个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以就可以自行决定何时显示哪一位了。而所谓动态扫描是指采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。再轮流点亮扫描过程中,每位显示器的点

亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上个位显示器并非同时点亮,但只要扫描的速度足够快,给人的影响就是一组稳定的显示数据,不会有闪烁感。

(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.流程图

R0=33H

R0=30 RETI R0加一

不是4.2.外部中断程序流程图

检测是否继续

检测是否正计时 检测是否到设定时间

检测是否计时到0000

4.4定时中断程序流程图

跳出中断程序

减一计时

停止计时,并报警

加一计时

停止计时

不是

不是

不是

不是

是 不是

把@R0赋值00H @R0加一

RETI

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

@R0是否为09H

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

显示第一位

显示第二位

显示第三位

显示第四位

图4.5显示程序流程图

五、程序设计如下:

ORG 0000H

AJMP MAIN

ORG 0003H

AJMP IN0

ORG 000BH

AJMP T0_INT

ORG 0013H

AJMP IN1

TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H MAIN: MOV 30H,#00H

MOV 31H,#00H

MOV 32H,#00H

MOV 33H,#00H

MOV R0,#30H

MOV R1,#30H

MOV R2,#20

MOV R3,#20

MOV SP,#40H

MOV TMOD,#02H

MOV TL0,#06H

MOV TH0,#06H

CLR 00H

SETB 01H

CLR 02H

SETB TR0

SETB ET0

SETB EX1

SETB EA

MOV P0,#00H

MOV P3,#0FEH

FH:

XIANSHI1: ;四位数码管显示L3:MOV DPTR,#TAB

MOV A,30H

MOVC A,@A+DPTR

SETB P2.0

CLR P2.1

MOV P1,A

CLR P2.0

SETB P2.1

MOV P1,#0EFH

ACALL DELY1

MOV P1,#0

MOV A,31H

MOV DPTR,#TAB

MOVC A,@A+DPTR

SETB P2.0

CLR P2.1

MOV P1,A

CLR P2.0

SETB P2.1

MOV P1,#0DFH

ACALL DELY1

MOV P1,#0

MOV A,32H

MOV DPTR,#TAB

MOVC A,@A+DPTR

ORL A,#80H

SETB P2.0

CLR P2.1

MOV P1,A

CLR P2.0

SETB P2.1

MOV P1,#0BFH

ACALL DELY1

MOV P1,#0

MOV A,33H

MOV DPTR,#TAB

MOVC A,@A+DPTR

CLR P2.1

MOV P1,A

CLR P2.0

SETB P2.1

MOV P1,#7FH

ACALL DELY1

MOV P1,#0

AJMP L3

JB P3.6,FH

SETB 02H ;是不是启动,开始计数CLR EX0

CLR EX1

MOV R7,33H

MOV A,32H

SWAP A

ADD A,R7

MOV TL1,A

MOV R7,31H

MOV A,30H

SWAP A

ADD A,R7

MOV TH1,A

XIANSHI: ;四位数码管显示L0:MOV DPTR,#TAB

MOV A,30H

MOVC A,@A+DPTR

SETB P2.0

CLR P2.1

MOV P1,A

CLR P2.0

SETB P2.1

MOV P1,#0EFH

ACALL DELY1

MOV P1,#0

MOV A,31H

MOV DPTR,#TAB

MOVC A,@A+DPTR

SETB P2.0

CLR P2.1

CLR P2.0

SETB P2.1

MOV P1,#0DFH

ACALL DELY1

MOV P1,#0

MOV A,32H

MOV DPTR,#TAB

MOVC A,@A+DPTR

ORL A,#80H

SETB P2.0

CLR P2.1

MOV P1,A

CLR P2.0

SETB P2.1

MOV P1,#0BFH

ACALL DELY1

MOV P1,#0

MOV A,33H

MOV DPTR,#TAB

MOVC A,@A+DPTR

SETB P2.0

CLR P2.1

MOV P1,A

CLR P2.0

SETB P2.1

MOV P1,#7FH

ACALL DELY1

MOV P1,#0

JB 03H,SHAN

AJMP L0

SHAN: ;四位数码管逐位显示L1:

MOV DPTR,#TAB

MOV A,30H

MOVC A,@A+DPTR

SETB P2.0

CLR P2.1

MOV P1,A

CLR P2.0

SETB P2.1

MOV P1,#0EFH

ACALL DELY10

MOV A,31H

MOV DPTR,#TAB MOVC A,@A+DPTR SETB P2.0

CLR P2.1

MOV P1,A

CLR P2.0

SETB P2.1

MOV P1,#0DFH ACALL DELY10 MOV P1,#0

MOV A,32H

MOV DPTR,#TAB MOVC A,@A+DPTR ORL A,#80H

SETB P2.0

CLR P2.1

MOV P1,A

CLR P2.0

SETB P2.1

MOV P1,#0BFH ACALL DELY10 MOV P1,#0

MOV A,33H

MOV DPTR,#TAB MOVC A,@A+DPTR SETB P2.0

CLR P2.1

MOV P1,A

CLR P2.0

SETB P2.1

MOV P1,#7FH ACALL DELY10 MOV P1,#0

MOV C,P3.7

JC FW

CLR TR0

AJMP MAIN

FW:AJMP L1

IN0:

CJNE R0,#33H,L MOV R0,#30H

L:INC R0

RETI

IN1:

CJNE R0,#30H,XD

MOV R6,30H

CJNE R6,#09H,XD1

MOV 30H,#00H

RETI

XD1:INC 30H

RETI

XD:CJNE R0,#31H,XD2

MOV R6,31H

CJNE R6,#09,XD3

MOV 31H,#00H

XD3:INC 31H

RETI

XD2:CJNE R0,#32H,XD4

MOV R6,32H

CJNE R6,#09H,XD5

MOV 32H,#00H

XD5:INC 32H

RETI

XD4:MOV R6,33H

CJNE R6,#09H,XD6

MOV 33H,#00H

XD6:INC 33H

RETI

T0_INT:

PUSH ACC ;判断是否有停止和正负的改变P3.4 P3,5

JB P3.4,XY1 ;

CPL 00H ;

XY1:

JB P3.5,XY2 ;

CPL 01H ;

JNB 00H,HERE

XY2:

DJNZ R2,HERE

MOV R2,#20

DJNZ R3,HERE

MOV R3,#20

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

;P3.5用作启动用P3.6用于选择正负计时用MOV R4,31H

MOV A,30H

SWAP A

ADD A,R4

MOV R4,A

MOV R5,33H

MOV A,32H

SWAP A

ADD A,R5

MOV R5,A

CON:

JNB 01H,NEG ; 判定是正还是负计时

JNB 02H,M ;判定是不是第一次执行

MOV 30H,#00H

MOV 31H,#00H

MOV 32H,#00H

MOV 33H,#00H

CPL 02H

M:

MOV A,R4

CJNE A,TH1,LJ

MOV A,R5

CJNE A,TL1,LJ

CLR 00H ;暂停和继续

SETB P0.7

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

HERE:

POP ACC ;P0.7用作接蜂鸣报警

RETI

LJ: MOV R7,33H

CJNE R7,#09H,LJ1

MOV 33H,#00H

MOV R7,32H

CJNE R7,#09H,LJ2

MOV 32H,#00H

MOV R7,31H

CJNE R7,#09H,LJ3

MOV R7,31H

MOV R7,#00H

INC 30H

POP ACC

RETI

LJ3:INC 31H

RETI

LJ2:INC 32H

RETI

LJ1:INC 33H

POP ACC

RETI

NEG:

CJNE R4,#00H,LX

CJNE R5,#00H,LX

SETB P0.7 ;接报警器CLR 00H

SETB 03H

POP ACC

RETI

LX:

CJNE R4,#00H,LX1

MOV 32H,#09H

MOV 33H,#09H

MOV R7,31H

CJNE R7,#00H,LX2

DEC 30H

MOV 31H,#09H

LX2:

DEC 31H

POP ACC

RETI

LX1:MOV R7,33H

CJNE R7,#00H,LX3

MOV 33H,#09H

DEC 32H

POP ACC

RETI

LX3:DEC 33H

POP ACC

RETI

DELY1: ;1MS子程序

MOV R4,#4

D1:MOV R5,#248

D2:DJNZ R5,D2

DJNZ R4,D1

RET

DELY10: ;50ms延时子程序

MOV R4,#200

D3:MOV R5,#248

D4:DJNZ R5,D4

DJNZ R4,D2

RET

END

六、设计总结:

经过一个星期的课程设计,过程曲折可谓一语难尽。在此期间我也失落过,也曾一度热情高涨。从开始时激情高涨到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。在老师的指导下,我们顺利完成了课程设计。让我学到了以下几点:

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

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

3、由于这次课程设计不仅设计编程方面的知识,还涉及了其它学科的知识,例如PROTEL等的基本知识。程序是用汇编语言来编写的,这次课程设计让我在编程能力方面得到了提高。

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

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

七、参考文献:

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

[2] 夏继强. 单片机实验与实践教程[M]. 北京:北京航空航天大学出版社, 2001

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

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

郑州科技学院 单片机课程设计 题目基于单片机的 多功能秒表 学生姓名陈裕禄 专业班级11级通信工程2班学号201151037 院(系)信息工程学院指导教师周喜 完成时间2015 年1 月16 日

目录 1 设计概述 (1) 1.1设计目的 (1) 1.2设计要求 (1) 1.3设计意义 (1) 2 系统总体方案及硬件设计 (2) 2.1系统总体方案 (2) 2.2硬件设计 (2) 2.3时钟电路 (3) 2.4复位电路 (4) 2.5按键电路 (5) 2.6显示电路 (6) 3 软件设计 (7) 3.1设计思路 (7) 3.2程序流程框图设计 (7) 4 PROTEUS软件仿真 (9) 5 课程设计体会 (10) 参考文献 (12) 附录1:总体电路原理图 (13)

附录2:元器件清单 (14) 附录3:实物图 (15) 附录4:源程序 (16)

1 设计概述 1.1 设计目的 设计一个单片机控制的秒表系统。利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计秒表。将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时具有开始/暂停,记录,上翻下翻,清零等功能。 1.2 设计要求 (1)共四位LED显示,显示时间为00:00~59.99 (2)共五个按键,分别是开始/暂停,记录,上翻,下翻,清零键; (3)能同时记录多个相对独立的时间并分别显示; (4)按上下翻按钮查看多个不同的计时值; 1.3 设计意义 (1)通过本次课程设计可以使我们进一步熟悉和掌握单片机内部结构和工作原理,了解单片机应用系统设计的基本步骤和方法。 (2)通过利用AT89C51单片机,理解单片机在自动化仪表中的作用以及掌握单片机的编程方法。 (3)通过设计一个简单的实际应用输入及显示模拟系统,掌握单片机仿真软件PROTEUS的使用方法。 (4)该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、功能,并能同时记录 1

基于51单片机的跑表,秒表程序c语言程序

基于51单片机的跑表,秒表程序c语言程序#include #define uchar unsigned char #define uint unsigned int uchar table[]=" 00:00:00:00 "; bit flag=0; sbit en=P2^0; sbit rs=P2^1; sbit s1=P1^0; sbit s2=P1^1; sbit bb=P1^2; uchar shi,fen,miao,biao,tt,num1,aa; void delay(uint z) { uint i,j; for(i=z;i>0;i--) for(j=110;j>0;j--); } void write_com(uchar com) { rs=0; P0=com;

delay(10); en=1; delay(10); en=0; } void write_date(uchar date) { rs=1; P0=date; delay(10); en=1; delay(10); en=0; } void display(uchar com1,uchar date1) { uchar aa,bb; aa=date1/10; bb=date1%10; write_com(0x80+com1); write_date(0x30+aa);

write_date(0x30+bb); } void init() { TMOD=0x01; ET0=1; TR0=0; EA=1; TH0=(65536-10000)/256; TL0=(65536-10000)%256; en=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80+0x40); for(num1=0;num1<17;num1++) { write_date(table[num1]); delay(5); }

单片机秒表设计报告

广西科技大学 单片机课程设计说明书课题名称单片机秒表系统的设计 系别职业技术教育学院 专业电子信息工程 班级电子Z112 姓名(学号)红头巾组合 指导教师廖贵成 摘要

近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。本文阐述了基于单片机的电子秒表设计。本设计主要特点是计时精度达到0.1s,解决了传统的由于计时精度不够造成的误差和不公平性,是各种体育竞赛的必备设备之一。 本设计是基于AT89C51单片机设计的,我们是分为几个模块来设计的。首先对秒表的硬件进行了设计,它包括时钟电路设计、复位电路设计以及外部显示电路。利用89C51单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。计时精度为0.1s。其次是软件进行了设计,软件系统采用汇编语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等。最后通过仿真调试,在proteus环境下建立了仿真模型,仿真和调试结果表明本设计是正确的。 关键词:单片机;秒表;系统设计

目录 摘要………………………………………………………………………………………I 1 课题内容要求及目的 (1) 1.1课题内容 (1) 1.2课题要求 (1) 1.3 课题目的 (2) 2 硬件设计 (2) 2.1 AT89C51单片机简介 (2) 2.2设计思路 (3) 2.3硬件电路设计 (3) 3软件设计 (6) 3.1程序设计 (6) 3.2源程序 (7) 4系统调试与仿真 (11) 4.1 proteus简介 (12) 4.2仿真调试 (12) 5总结 (15) 参考文献 (16) 致谢 (16)

基于51单片机的秒表设计

江西理工大学应用科学学院信息工程系单片机原理与应用课程设计报告 设计题目:基于51单片机的秒表设计 专业:电子信息工程 班级:电信121 学号: 08060312109 参与人员:贺佳、周代元、周昶旭、张浥中 指导老师:王苏敏 完成日期: 2015年1月20日

目录 1 设计任务和性能指标 (1) 1.1 课题内容 ....................... 错误!未定义书签。 1.2 课题要求 ........................ 错误!未定义书签。 2 设计方案............................. 错误!未定义书签。 2.1 需求分析 (3) 2.2 方案论证 (3) 3系统软件设计 (5) 4.1 系统软件流程图................... 错误!未定义书签。 4.2 实验程序清单 .................... 错误!未定义书签。 4 系统硬件设计 (10) 5.1 调试步骤 (11) 5.2 性能分析 ........................ 错误!未定义书签。5系统硬件设计.......................... 错误!未定义书签。参考文献.. (14)

1 设计任务和性能指标 1 课题内容要求及目的 1.1课题内容 用AT89C51设计一个秒表,该秒表课可显示0.0~99.9秒的时间,进行相应的单片机硬件电路的设计并进行软件编程利用单片机定时 器/计数器中断设计秒表,从而实现秒、十分之一秒的计时。综合运用所学的《单片机原理与应用》理论知识,通过实践加强对所学知识的理解,具备设计单片机应用系统的能力。通过本次系统设计加深对单片机掌握定时器、外部中断的设置和编程原理的全面认识复习和掌握。本系统利用单片机的定时器/计数器定时和记数的原理,通过采用proteus仿真软件来模拟实现。模拟利用AT89C51单片机、LED 数码管以及控件来控制秒表的计数以及计位!其中有三位数码管用来显示数据,显示秒(两位)和十分之一秒,十分之一秒的数码管计数从0~9,满十进一后显示秒的数码管的数字加一,并且十分之一秒显示清零重新从零计数。计秒数码管采用三位的数码管,当计数超过范围是所有数码管全部清零重新计数。 1.2课题要求 本课题是基于单片机的秒表系统设计,它的具体要求有以下几点: (1)用单片机AT89C51实现; (2)以0.1秒为最小单位进行显示; (3)秒表量程为0.0-99.9秒,用 LED显示;

基于单片机的多功能秒表

郑州科技学院 单片机课程设计 题目基于单片机的 多功能秒表 学生姓名 专业班级 学号 院(系) 指导教师 完成时间2015 年1 月16 日

目录 1 设计概述 (1) 1.1设计目的 (1) 1.2设计要求 (1) 1.3设计意义 (1) 2 系统总体方案及硬件设计 (2) 2.1系统总体方案 (2) 2.2硬件设计 (2) 2.3时钟电路 (3) 2.4复位电路 (4) 2.5按键电路 (5) 2.6显示电路 (6) 3 软件设计 (7) 3.1设计思路 (7) 3.2程序流程框图设计 (7) 4 PROTEUS软件仿真 (9) 5 课程设计体会 (10) 参考文献 (12) 附录1:总体电路原理图 (13)

附录2:元器件清单........................................... 错误!未定义书签。附录3:实物图 . (15) 附录4:源程序 (16)

1 设计概述 1.1 设计目的 设计一个单片机控制的秒表系统。利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计秒表。将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时具有开始/暂停,记录,上翻下翻,清零等功能。 1.2 设计要求 (1)共四位LED显示,显示时间为00:00~59.99 (2)共五个按键,分别是开始/暂停,记录,上翻,下翻,清零键; (3)能同时记录多个相对独立的时间并分别显示; (4)按上下翻按钮查看多个不同的计时值; 1.3 设计意义 (1)通过本次课程设计可以使我们进一步熟悉和掌握单片机内部结构和工作原理,了解单片机应用系统设计的基本步骤和方法。 (2)通过利用A T89C51单片机,理解单片机在自动化仪表中的作用以及掌握单片机的编程方法。 (3)通过设计一个简单的实际应用输入及显示模拟系统,掌握单片机仿真软件PROTEUS的使用方法。 (4)该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、功能,并能同时记录

51单片机定时器秒表设计程序

51单片机定时器秒表设计程序 #include typedef unsigned char UINT8; typedef unsigned int UINT16; code UINT8 SEGMENT[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; code UINT8 SHU[10] ={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; code UINT8 SELECT[8] ={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; #define S1 0x0e #define S2 0x0d #define S3 0x0b #define S4 0x07 sbit SPEAK=P3^5; sbit P3_3=P3^3; UINT8 mSecond,Second; void Delay(UINT16 t) { UINT16 i,j; for(i=0;i

单片机的秒表系统设计方案

编号:201834140148 本科毕业设计 基于单片机的秒表系统设计 系 (院>:信息工程学院 姓名: 学号:0835140148 专业:通信工程 年级:2008级 指导教师: 职称:副教授 完成日期:2018年5月

摘要 当今时代,是一个新技术层出不穷的时代。在电子领域,尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。单片机的出现是现代科技发展的一个重要的里程碑。由于单片机的集成度高、功能强,通用性好,特别是它具有体积小、重量轻、能耗低、价格便宜等优点,使单片机迅速得到推广应用,目前已成为测量控制应用系统中的优选机种和新电子产品的关键部件。 本设计是一个利用单片机控制的多功能秒表系统,它是基于51系列的单片机进行的系统设计。它采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及键盘电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现四位LED显示,最大显示时间为59.9秒,每毫秒自动加1,一个开始按键、一个暂停按键、一个复位按键,其突出的优点是:体积小、场外作业、功耗最低、宜用电池作为电源、硬件结构紧凑、简单和软件设计灵活。最后通过仿真调试,在proteus环境下建立了仿真模型,仿真结果表明本设计是正确的。 关键词:单片机;秒表;时钟电路;系统设计 Abstract

In the present era, is a new technology emerge in an endless stream time. In the field of electronics, especially the intelligent automatic control field, the traditional discrete components or digital logic circuit of the control system is at an unprecedented pace was replaced by intelligent control system. SCM has the advantages of small volume, strong function, low cost, wide application range and other advantages, can say, intelligent control and automation is the core of scm. SCM is the emergence of modern science and technology development of an important milepost. As the single-chip high integration, strong function, good versatility, especially it has the advantages of small volume, light weight, low energy consumption, low price, the single chip microcomputer rapidly spreading, has now become the measurement control in the application system of optimization models and the new electronic product key parts. This design is the use of a single chip computer controlled multi-function stopwatch system, which is based on the51 series single-chip system design. It uses AT89C51 microcontroller as the center device, use the timer / counter timing and counting principles, combined with display circuit, power supply circuit, LED digital tube and a keyboard circuit to design the timer. The soft, hardware combination, so that the system can achieve four LED display, maximum display time is 59.9 seconds, each MS add 1, a start button, a pause button, a reset button, the utility model has the advantages of small volume, off-site operations:, lowest power consumption, to use the battery as a power, compact hardware structure, simple and flexible software design. Finally through the simulation debugging, in the Proteus environment to establish the simulation model, the simulation results show that the design is correct. Key words: single chip microcomputer。 stopwatch clock circuit。 system design

51单片机实验 秒表设计

实验报告 一、实验名称 10秒计时的秒表设计 二、实验内容 精确到0.1秒的秒表 三、相关模块 led数码管、usb、独立键盘 四、实验代码 #include "reg52.h" typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; sbit k1=P3^1; sbit k2=P3^0; sbit k3=P3^2; sbit k4=P3^3; u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; u16 s,sec; unsigned int i; unsigned int j; unsigned int a,b,c,d; u8 mb[2]; void Timer0Init() { TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。 TH0=0XFC; //给定时器赋初值,定时1ms TL0=0X18; TR0=0;//打开定时器 } void delay(u16 n) { while(n--); } void DigDisplay1(u16 i)

{ switch(i) { case(0): LSA=0;LSB=0;LSC=0; break; case(1): LSA=1;LSB=0;LSC=0; break; case(2): LSA=0;LSB=1;LSC=0; break; case(3): LSA=1;LSB=1;LSC=0; break; case(4): LSA=0;LSB=0;LSC=1; break; case(5): LSA=1;LSB=0;LSC=1; break; case(6): LSA=0;LSB=1;LSC=1; break; case(7): LSA=1;LSB=1;LSC=1; break; } if (i==1) { P0=smgduan[mb[i]]+0x80;//发送段码 } else { P0=smgduan[mb[i]]; } delay(1); //间隔一段时间扫描 P0=0x00;//消隐 } void DigDisplay2(u16 i) { i=i+3; switch(i) { case(0): LSA=0;LSB=0;LSC=0; break; case(1): LSA=1;LSB=0;LSC=0; break; case(2): LSA=0;LSB=1;LSC=0; break; case(3): LSA=1;LSB=1;LSC=0; break;

单片机 10秒秒表课程设计

赣南师范学院物理与电子信息学院 课程设计Ⅳ设计报告书 基于AT89S52单片机的 10秒秒表的设计 姓名:匡远熹 班级:09电子信息工程 学号:090802015 指导老师:刘小燕 时间:2012.1.01

目录 内容摘要 (1) 关键词................................................................. 错误!未定义书签。Abstract............................................................. 错误!未定义书签。Keywords............................................................. 错误!未定义书签。1绪论. (2) 2 系统设计 (2) 2.1 设计任务与要求 (3) 2.2 方案的选择与论证 (3) 3 系统硬件设计 (4) 3.1 AT89C52简介 (4) 3.2 时钟电路 (5) 3.3 复位电路 (5) 3.4 显示电路 (6) 3.5引脚控制 7 3.6 硬件元件清单 (7) 4软件设计与仿真 (7) 4.1主程序设计 (7) 4.2 仿真软件简介 (9) 4.3 仿真结果 (10) 4.4 系统调试 (11) 结束语 (12) 附录:程序清单 (14) 参考文献 (16)

内容摘要:本文阐述了基于单片机的数字电子秒表设计。本设计主要特点是计时精度达到0.1s,是各种体育竞赛的必备设备之一。本设计的数字电子秒表系统采用8051单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管设计计时器。其中软件系统采用C语言编写程序,包括显示程序,定时中断服务,延时程。硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。 关键字:秒表;单片机AT89S52;硬件;软件;仿真 Abstract:The design of the multi-function stopwatch system uses AT89S52 microcontroller as the central device, and use its timer / counter timing and the count principles, combined with display circuit, LED digital tube, as well as the external interrupt circuit to design a timer. Be able to correctly time at the same time to record a time, and the next time after the last time the time to search automatically added a second in which software systems using assembly language programming, including the display program, timing, interrupt service, external interrupt service routine, delay procedures, key consumer shaking procedures, and KEIL in the commissioning, operation, hardware system uses to achieve PROTEUS powerful, simple and easy to observe the cut in the simulation can be observed on the actual working condition. Keyword:Stopwatch;AT89S52 scm;Hardware;Software;Simulation

单片机电子秒表程序设计

沈阳工程学院课程设计设计题目:电子秒表程序设计

电子秒表程序设计 1.设计主要内容及要求: 要求:1)具有秒表基本功能。 2)显示最小数为0.1秒。 3)能够进行多路计数并分别显示。 2.对设计论文撰写内容、格式、字数的要求: (1).课程设计论文是体现和总结课程设计成果的载体,一般不应少于3000字。 (2).学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。课程设计论文的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。 (3).论文要求打印,打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。 (4). 课程设计论文装订顺序为:封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、参考文献。 3.时间进度安排; 顺序阶段日期计划完成内容备注 1 1月2日教师讲解题目,学生查阅相关资料 2 1月3日查阅相关资料、进行方案论证 3 1月4日确定多路计数和显示方法 4 1月5、6、9 编写程序 日 5 1月10、11日调试程序 6 1月12日撰写论文 7 1月13日论文答辩

沈阳工程学院 单片机课程设计成绩评定表指导教师评审意见 评价内容具体要求权重评分 加权 分 调研论证能独立查阅文献,收集资料;能制定课程设计方案 和日程安排。 0.1 5 4 3 2 工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能 够独立完成设计工作, 0.2 5 4 3 2 工作量按期圆满完成规定的设计任务,工作量饱满,难度 适宜。 0.2 5 4 3 2 说明书的质量 说明书立论正确,论述充分,结论严谨合理,文字 通顺,技术用语准确,符号统一,编号齐全,图表 完备,书写工整规范。 0.5 5 4 3 2 指导教师评审成绩 (加权分合计乘以12) 分加权分合计 指导教师签名:年月日 评阅教师评审意见 评价内容具体要求权重评分 加权 分 查阅 文献 查阅文献有一定广泛性;有综合归纳资料的能力0.2 5 4 3 2 工作 量 工作量饱满,难度适中。0.5 5 4 3 2 说明书的质量说明书立论正确,论述充分,结论严谨合理,文字 通顺,技术用语准确,符号统一,编号齐全,图表 完备,书写工整规范。 0.3 5 4 3 2 评阅教师评审成绩 (加权分合计乘以8) 分加权分合计 评阅教师签名:年月日课程设计总评成绩分

单片机多功能秒表课程设计报告

单片机课程设计 课程设计任务书 20 17 -20 18 学年第一学期第17周-18 周 注:1、此表一组一表二份,课程设计小组组长一份;任课教师授课时自带一份备查。 2、课程设计结束后与“课程设计小结”、“学生成绩单”一并交院教务存档。

摘要 本设计是设计一个单片机控制的多功能秒表系统。 近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动着传统控制检测日新月异的更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。秒表的出现,解决了传统的由于人为因素造成的误差和不公平性。 本设计的多功能秒表系统采用A T89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及按键电路来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计数,并且结合相应的显示驱动程序,使数码管能够正确地显示时间,暂停和中断。我们设计的秒表可以同时记录八个相对独立的时间,通过上翻下翻来查看这八个不同的计时值,可谓功能强大。其中软件系统采用汇编语言编写程序,包括显示程序,计数程序,中断,延时程序,按键消抖程序等,硬件系统利用PROTEUS强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。 关键字:单片机,多功能秒表 小组成员:许乐,郭利铂 小组分工: 小组成员:讨论并确定秒表要实现哪些功能 许乐:硬件电路的设计仿真,查阅资料 郭利铂:编写程序,撰写实验报告

目录 1.概述 (4) 1.1设计目的 (4) 1.2设计要求 (4) 1.3设计意义 (4) 2.系统总体方案及硬件设计 (4) 2.1系统总体方案 (4) 2.2硬件设计 (5) 2.2.189C51单片机 (5) 2.2.2晶体振荡电路 (6) 2.2.3 复位电路 (7) 2.2.5显示电路 (8) 2.2.6 系统电路图 (9) 3.软件设计 (9) 3.1设计特点 (9) 3.2设计思路 (10) 3.2.1程序流程图 (10) 3.2.2程序 (10) 4.PROTEUS软件仿真 (14) 4.1仿真 (14) 4.2仿真结果描述 (15) 4.3结论及进一步设想 (16) 5.元器件清单 (16) 6.课程设计体会 (16) 7.参考文献 (18)

51单片机汇编秒表程序

ORG 0000H LJMP MAIN ORG 0003H LJMP INT_0 ORG 000BH LJMP T0_INT ORG 0013H LJMP INT_1 ORG 001BH LJMP T1_INT MAIN: MOV TMOD,#11H MOV TH1,#0D8H MOV TL1,#0F0H MOV TH0,#3CH MOV TL0,#0B0H SETB EA SETB ET1 SETB ET0 SETB EX0 SETB EX1 SETB IT0 SETB IT1 SETB TR1 MOV 32H,#00H MOV R1,#80H MOV 30H,#00H LOOP: MOV A,R4 CJNE A,33,Y MOV A,R5 CJNE A,32H,Y INC 30H Y: MOV A,P3 CJNE A,#0CFH,Y1 LJMP Y2 Y1: MOV A,30H CJNE A,#01H,LOOP CLR P1^0 LCALL DELAY2 SETB P1^0 LCALL DELAY2

LJMP LOOP Y2: JNB P3^5,Y2 JNB P3^4,Y2 MOV R3,#0AH LJMP Y3 Y3: MOV R4,33H MOV R5,32H MOV A,P3 CJNE A,#0DFH,Y5 Y4:JNB P3^4,OUT JNB P3^5,Y4 INC 32H MOV A,32H CJNE A,#10,Y3 INC 33H MOV 32H,#00H LJMP Y3 Y5: MOV A,P3 CJNE A,#0EFH,Y3 Y6: JNB P3^5,OUT JNB P3^4,Y6 MOV A,32H CJNE A,#00,JJ DEC 33H MOV 32H,#09H LJMP Y3 OUT:JNB P3^5,OUT JNB P3^4,OUT MOV R5,#00H MOV R3,#00H LJMP LOOP JJ: DEC 32H LJMP Y3 INT_0: CPL TR0 RETI INT_1: MOV R6,#00H MOV R5,#00H

基于单片机的秒表设计单片机课程设计

基于单片机的秒表设计单片机课程设计

单片机课程设计 项目名称基于单片机的秒表设计 专业班级通信102班 学生姓名青瓜 指导教师… 2012年11 月20日

摘要 本课程设计的数字电子秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现五位LED显示,显示时间为0~99.99秒,计时精度为0.01秒,能精确地进行计时,并可以随时暂停和开始。软件系统采用C语言编写,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,硬件系统利用PROTEUS强大的功能来实现,简单且易于观察,在仿真中就可以观察到系统实际的工作状态。 关键词:AT89C51单片机;数字秒表;数码管

Abstract This course is designed digital electronic stopwatch system uses the AT89C51 microcontroller devices, the use of timer / counter timing and counting principle, combined with the display circuit LED digital tube as well as the external interrupt circuit designed timer. The hardware and software combine to enable the system to achieve five LED display, the display time of 99.99 seconds, the timing accuracy of 0.01 seconds, the correct timing, and the right to suspend and start. Software system using C language, including the display program, the timer interrupt service external interrupt service routine, delay procedures, hardware system to implement the use of the PROTEUS powerful functionality, simple cut easily observed in the simulation to the actual work can be observed status. Keywords: AT89C51 Microcontroller; Digital stopwatch; Digital tubes

基于单片机的简易计时器设计

南华大学电气工程学院课程设计 摘要:单片机自70年代问世以来得到蓬勃发展,目前单片机功能正日渐完善:单片机集成越来越多资源,内部储存资源日益丰富,用户不需要扩充资源就可以完成项目开发,不仅是开发简单,产品小巧美观,同时抗干扰能力强,系统也更加稳定,使它更适合工业控制领域,具有更广阔的市场前景;提供在线编程能力,加速了产品的开发进程,为企业产品上市赢得了宝贵时间。本设计通过STC89C51单片机以及单片机最小系统和三极管驱动以及外围的按键和数码管显示等部件,设计一个基于单片机的简易计时器。设计通过四位一体共阳极数码管显示,并能通过按键对秒进行设置。 关键词:STC89C51单片机,驱动,四位一体数码管

南华大学电气工程学院课程设计 Abstract:SCM be booming since since the 70 s, MCU functions are increasingly perfect at present: single chip microcomputer integrated more and more resources, internal storage resource increasingly rich, users do not need to expand resources can complete the project development, is not only the development of simple, small beautiful products, at the same time, strong anti-jamming capability, system is more stable, make it more suitable for industrial control field, has a broad market prospect; Provide online programming ability, speeded up the process of product development, product for the enterprise to win the precious time. This design and triode driven by STC89C51 microcontroller and the single chip microcomputer minimum system and peripheral keys and digital tube display components, design a simple timer based on single chip microcomputer. Design through the four digital tube display, a total of anode, and can through the button to set the seconds. Keywords: STC89C51 microcontroller, drive, Four digital tube

单片机秒表课程设计报告

一:课程设计题目 秒表/时钟计时器 二:课程设计任务与要求: 利用89C51单片机设计秒表/时钟计时器,通过LED显示器显示秒十位和个位,在设计过程中用一个存储单元作为秒计数单元,当一秒钟到来时,就让秒计数单元加1,当秒计数达到60时,就自动返回到0,重新开始秒计数。 三:设计过程: 1.设计原理:此次课程设计题目是秒表/时钟计时器,由课程设计的要求和任务,我采用的C语言编程,设计秒表要求一秒定时,采用了定时器和FOR循环来定时,其中一个软件一个硬件,会在方案论证中分析在1秒时采用的是硬件定时,即用单片机内部的定时器T0。先将时钟初始化,赋入初值50ms定时,循环20次来进行1秒定时。然后由定义的变量second来进行加一运算,然后将其值通过P1,P2口在数码管上进行显示。其中数码管的显示时,我在程序中首先定义了一个关于数码管显示的字形码定义,以便在显示时调用即可。 (1)方案论证: 方案1:在方案1中,我们所选用的是软件定时,即用for循环来定时1秒进行显示的变化。 方案2:在方案2中,采用的是硬件定时,即用单片机内部的定时器T0。先将时钟初始化,赋入初值50ms定时,循环20次来进行1秒定时。 方案比较:我们从两方面进行两种方案的比较,第一,由于此次课程设计要求是秒表,则在定时时要求比较精确,所以采用硬件的定时器定时时比较准确的。第二,由于秒表的定时程序是很小的,在利用软件定时占用的CPU并不是很多,不能显现出来,但真正大程序时会很占用资源的,所以在用定时中断过程中是非常节省资源的。综合上述两种比较,我们选用了第二种方案。 (2)创新点: a.在课程要求的基础上,我们做成的电路板上,用复位键来控制秒表计时的重新开始,即清零。 b.在以上设计的基础上,我们又重新设计了一个程序,基本原理没有变,只是将

基于51单片机秒表的程序设计[1]

基于51单片机秒表的程序设计 1.设计目的: (1)利用单片机定时器中断和定时器计数方式实现秒、分定时。 (2)通过LED显示程序的调整,熟悉8155与8051,8155与LED的接口技术,熟悉LED动态显示的控制过程。 (3)通过键盘程序的调整,熟悉8155与矩阵式键盘的接口技术,熟悉键盘扫描原理。 (4)通过阅读和调试简易秒表整体程序,学会如何编制含LED动态显示、键盘扫描和定时器中断等多种功能的综合程序,初步体会大型程序的编制和调试技巧。 2.设计步骤与要求 (1)要求:以8位LED右边2位显示秒,左边6位显示0,实现秒表计时显示。以4×4矩阵键盘的KE0、KE1、KE2等3键分别实现启动、停止、清零等功能。 (2)方法:用单片机定时器T0中断方式,实现1秒定时;利用单片机定时器1方式3计数,实现60秒计数。用动态显示方式实现秒表计时显示,用键盘扫描方式取得KE0、KE1、KE2的键值,用键盘处理程序实现秒表的启动、停止、清零等功能。 (3)软件设计:软件整体设计思路是以键盘扫描和键盘处理作为主程序,LED动态显示作为子程序。二者间的联系是:主程序查询有无按键,无按键时,调用二次LED动态显示子程序(约延时8ms)后再回到按键查询状态,不断循环;有按键时,LED动态显示子程序作为按键防抖延时被连续调用二次(约延时16ms),待按键处理程序执行完后,再回到按键查询状态,同时兼顾了按键扫描取值的准确性和LED动态显示的稳定性。秒定时采用定时器T0中断方式进行,60秒计数由定时器1采用方式3完成,中断及计数的开启与关闭受控于按键处理程序。由上述设计思路可设计出软件流程图如图1.1所示。 (5)程序编制:编程时置KE0键为“启动”,置KE1键为“停止”,置KE2键为“清零”,因按键较少,在处理按键值时未采用散转指令“JMP”,而是采用条件转移指令“CJNE”,每条指令后紧跟着一条无条件跳转指令“AJMP”,转至相应的按键处理程序,如不是上述3个按键值则

单片机多功能秒表

单片机综合实验报告 题目: 多功能数字时钟 班级: 姓名: 学号:

一、实验内容: 设计一个单片机控制的秒表系统。利用单片机的定时器的原理,结合显示电路、LED 数码管以及按键来设计计时器,使系统能够正确地进行加、减(倒)计时,数码管能够正确地显示时间。 目的要求 1)两位LED显示,显示时间为00~99秒。 2)每秒自动加1。 3)一个开始按键、一个复位按键和一个暂停按钮。 4)翻页按钮查看四个不同的计时值。 5)添加倒计时初始值设置功能 6)不同功能通过功能键Setup实现切换。 二、实验电路及功能说明 本实验以51单片机为核心,应用其中断来定时,通过按键来控制时间和日期的调整,通过1602LCD来数字显示时钟,做成一个简易的数字时钟。本实验要求能定时,还要能设置闹铃,由于对C51程序代码的写法不是很熟,没能实现闹铃功能。所以,最后该实验能实现的功能为时间和日期的调整。 其原理图如下图所示: 三、实验程序流程图:

主程序:主程序流程图 子流程图(按键功能设置) 四、实验结果分析 经过proteus仿真可知:该方案可行,能够对时间进行精确的调整,也能对日期进行更

正,基本上能实现上述功能。 五、心得体会 通过该试验我对51的了解更加深入了一层,特别是对C51的写法更加了解,还对1602的基本操作有了一定的了解。同时,也发现C语言的重要性,以后要多加强对C语言的学习. 六、程序清单 #include #include //库函数头文件,代码中引用了_nop_()函数// 定义控制信号端口 sbit RS=P2^4; //P2.4 sbit RW=P2^5; //P2.5 sbit E=P2^6; //P2.6 sbit set=P1^4; //设置键 sbit add1=P1^5; //加1键 sbit sub1=P1^6; //减1键 sbit enter=P1^7; //确认键 bit k=0,f=0;//k为0表示运行状态,k为1表示设置状态;f为0表示第一行显示,f为1表示第二行显示 char sec,n,m; unsigned char count,key; unsigned char lcdd[]="0123456789"; /*声明调用函数*/ void dispd(); //日期显示函数 void dispt(); //时间显示函数 unsigned char keys();//按键扫描函数 void lcd_w_cmd(unsigned char com); //写命令字函数 void lcd_w_dat(unsigned char dat); //写数据函数 unsigned char lcd_r_start(); //读状态函数 void int1(); //LCD初始化函数 void delay(unsigned char t); //可控延时函数 void delay1(); //软件实现延时函数,5个机器周期 /*主函数*/ void main() { TMOD=0x01; //设置为定时器模式1 TH0=(65536-50000)/256; //晶振6MHz,定时时间100ms TL0=(65536-50000)%256; IE=0x82; //开全局中断和定时中断 TR0=1; //启动定时器 sec=0; //秒 count=0; //中断次数清0 n=-3; //设置键按下次数,第一行日期 m=-3; //设置键按下次数,第二行时间 P0=0xff; // 送全1到P0口int1(); // 初始化LCD delay(255); while(1) { key=keys(); //读取按键 switch(key) { case 0xe0: //按下设置键 { TR0=0; k=1; if(f==0) { n=n+3; if(n==9) { n=0; m=0; f=1; } } else { m=m+3; if(m==12) { m=0; n=0; f=0; } } if(f==0) { lcd_w_cmd(0x0d); lcd_w_cmd(0x86+n); }

相关主题