文档库 最新最全的文档下载
当前位置:文档库 › 七段数码管显示秒表

七段数码管显示秒表

七段数码管显示秒表
七段数码管显示秒表

沈阳工程学院课程设计摘要

摘要

本文提出了一个利用微机原理与接口技术完成秒表的设计方案,该方案主要是选择8254A的计数器0进行100ms的定时,其输出于OUT0与8259的IRQ7相连,当定时到100ms 的时候产生一个中断信号,在中断服务程序进行秒的计数,并送入相应的存储单元;8255的A口接七段数码管的位选信号,B口接七段数码管的段选信号,C口上面接键盘,通过键盘控制暂停计时、继续计时。秒,毫秒的数值通过对8255的编程可以显示在七段数码管上面。

通过对一个基于微型计算机的能实现电子时钟的设计学习,详细介绍了微型计算机原理控制的应用中的数据转换显示,LED显示原理,微型计算机控制的定时中断原理。从而达到学习、了解微机原理控制的相关指令在各方面的应用。系统由8254、8255、8259等构成,能实现秒表显示的功能,能进行秒、毫秒的显示。

关键词:定时器8254A,并行通信接口芯片8255,七段数码管。

目录

摘要.............................................................................................................................................. I 第1章概述.. (1)

1.1 设计题目 (1)

1.2 设计目的 (1)

1.3 设备器材 (1)

1.4 任务分析 (1)

第2章设计原理 (3)

2.1 设计原理 (3)

2.2 元器件功能特性 (3)

2.2.1 8255简介 (3)

2.2.2 8259简介 (5)

2.2.3 8254简介 (6)

2.2.4 七段LED数码管及其接口 (8)

第3章系统设计 (9)

3.1 硬件设计 (9)

3.2 软件设计 (9)

第4章系统实现 (11)

4.1 概述 (11)

4.2 程序模块 (11)

4.2.1 主程序模块 (11)

4.2.2 显示模块 (12)

4.2.3 小键盘模块 (13)

4.2.4 定时模块 (13)

4.2.5 中断处理模块 (14)

第5章遇到的问题及解决方法 (15)

5.1 遇到的问题 (15)

5.2 解决的方法 (15)

总结 (17)

致谢 (18)

参考文献 (19)

附录 (20)

A1.1 源程序代码 (20)

第1章概述

1.1 设计题目

用七段LED数码管显示秒表

1.2 设计目的

《微型计算机原理及应用》是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。

通过设计实践,不但要培养和提高学生解决工程具体问题,动脑动手的技术工作能力,还能巩固所学的知识。具体要求如下:

1、中断工作原理,定时计数原理。

2、掌握8259芯片,8254芯片,8255芯片功能,结构。

3、掌握8259芯片,8254芯片,8255芯片的编程。

4、能运用所提到的芯片,设计系统并进行程序开发,满足用户需求。

1.3 设备器材

(1)设计环境

PC机一台、TD-ADS软件、TD-PITE实验箱、导线若干。

(2)设计所用设备

8254定时器:用于产生秒脉冲,其输出信号可作为中断请示信号送IRQ7。

8255并口:用做接口芯片,和小键盘及LED相连。

8259中断控制器:用于产生中断。

LED:四个LED用于显示时:秒:毫秒值。

小键盘:用于控制设置。

1.4 任务分析

1、总体内容:设计一秒表,能在数码管上显示时间并计时,而且可通过键盘控制计时、暂停计时。

2、接口设计:根据题目和所用的接口电路芯片设计出完整的接口电路,并在实验系统上完成电路的连接和调试通过.

3、程序设计:要求画出程序框图,设计出全部程序并给出程序设计说明和程序注释。

4、完成的实验有:8259A中断控制器实验,8254定时计数器实验,8255并行接口实验。选择8254A的计数器0进行定时,其输出于OUT0与8259的IRQ7相连,产生一个中断信号,在中断服务程序进行秒的计数,并送入相应的存储单元;8255的A口接七段数码管的位选信号,B口接七段数码管的段选信号,C口上面接键盘,通过键盘控制暂停计时、继续计时。秒,毫秒的数值通过对8255的编程可以显示在七段数码管上面。

第2章设计原理

2.1 设计原理

秒表的总体设计原理是:首先利用定时芯片8254的定时作用定时计数,在给定的时间内逐渐变为0时,就会发出一个中断信号,8259中断器接到此中断信号就会调用MIR7时间显示程序,执行此程序后8255就会工作,扫描键盘,通过开关控制暂停计时、继续计时,最后把接到的二进制时间码转换成ASCII码在四个码管上显示时间。

具体做法是为了实现精确走时,显示秒、毫秒,我们先在数据段开辟一显示缓冲区,用来存储系统时间,初始化我们所要应用的芯片8254,8255,8259后,允许中断信号输入,主程序开始,为了显示秒、毫秒,并被我们识别,先调用DIS程序,实现片选的功能。为了得到良好的显示效果,本程序调用了一段精确的延时程序,使各位在时间显示上有短暂的间隔,延时程序要尽量接近1秒,但又不能超过一秒。同时,由于8254定时器的分频功能,产生中断信号,8259中断器就会调用MIR7时间显示程序,实现位选,通过LED数码管显示出来,时间刷新,再显示,有此循环,就形成了精确走时的秒表。通过扫描键盘,判断是否有键按下来控制秒表的计时、暂停计时。

2.2 元器件功能特性

秒表功能的实现主要由C8086、8255、8254、8259和七段数码管及键盘共同完成。各元器件的功能具体如下:

2.2.1 8255简介

1 8255引脚功能

RESET:复位输入线,当该输入端外于高电平时,

所有内部寄存器(包括控制寄存器)均被清除,

所有I/O口均被置成输入方式。

CS:片选信号线,当这个输入引脚为低电平时,

表示芯片被选中,允许8255与CPU进行通讯。

RD:读信号线,当这个输入引脚为低电平时,允许

8255通过数据总线向CPU发送数据或状态信息,

即CPU从8255读取信息或数据。

WR:写入信号,当这个输入引脚为低电平时,

允许CPU将数据或控制字写入8255。

D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数

据输入锁存器。

PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。

外部:

A0,A1为口地址选择信号线。8255内部

有3个口:A口、B口、C口,还有一个控制寄

存器,它们由程序寻址。

A1 A0 选择

0 0 A口

0 1 B口

1 0 C口

1 1 控制寄存器

2 8255三种工作方式

8255的工作方式分别为工作方式0,工作方式1和工作方式2。

1:工作方式0,又称为基本工作方式。在此方式下,可分别将A口的8条线,B口的8条线,C口高4位对应的4条线和C口的低四位对应的四条线定义为输入或输出。故它们的输入输出共有16种不同的组合。

2:工作方式1,即选通输入输出方式。在这种方式下,A口和B口仍作为数据的输出口和输入口,同时还要利用C口的某些位作为控制和状态信号。

3:工作方式2,又称双向输入输出方式。这种方式只有8255的口A才有。在A口工作于双向

输入输出方式时,要利用C口的5条线才能实现。因此,B口只能工作在工作方式0或工作方式1,而C口剩下的3条线可以作为输入输出线使用或B口方式1下的控制线。

功能控制

0:位操作 1:方式选择 3 8255的控制字

7

6

5

4

3

2

1

说明:当控制字bit7=1时,控制字的bit6~bit3这4位用来控制A 组,即A 口的8位和C 口的高4位,而控制字的低3位bit2~bit0用来控制B 组,包括B 口的8位和C 口的低4

2.2.2 8259简介

8259是一种可编程的中断控制器。每块芯片可管理8级向量中断,同时,可通过多片级连实现多达64级的中断管理。

中断控制器8259有四种主要工作方式,即全嵌套、循环优先级、特定屏蔽和程序查询方式。同时,它还有一4种从属工作方式,即结束中断、读状态、中断请求触发和数据缓冲方式。

1 8259的外部引线

D0-D7为双向数据线,与系统总线数据线相连。 WR,RD 为写和读控制信号,与系统总线的读写 信号相连接。

控制C 口抵4位 1:输入 0:输出 控制B 口8位 1:输入 0:输出 方式选择 0:方式0 1:方式1 控制C 口高4位 0:输出 1:输入 控制A 口8位 0:输出 1:输入 方式选择 00:方式0

CS为片选信号。

A0是8259内部寄存器的选择信号。

INT为8259的中断请求输出信号,可直接接到

CPU的INTR输入端。

CAS0-CAS1为级联控制线。

IR0-IR7中断请求输入端。

2 8259的工作方式

1 特殊屏蔽方式

在正常情况下,当一个中断请求被响应时,8259将

被禁止所有同级及更低优先级中断请求这就称为一

般屏蔽方式。但是,在一特殊情况下,希望也允许

较低优先级的中断请求产生中断。

2 中断结束

中断结束分自动结束和利用命令结束

3 优先级循环

它有两种优先级规定:循环优先级和固定优先级。固定优先级规定8个中断源以IR0的优先级最高依次降低。

循环优先级有3个结构:

自动优先级循环用于中断源具有相等优先级的情况。指定优先级循环可以利用命令一次性改变优先级。自动结束方式下的优先级循环,其优先权控制方式与自动优先级循环的相同。

4 查询状态

通过将操作命令字OCW3中的P位置1,可以查询8259的状态。

2.2.3 8254简介

1 8254的引脚

8254具有3个独立的16位计数器,6种不同的工

作方式。计数寄存器用来寄存计数初值,计数工作单元

为16位减1计数器,它的初值便是计数寄存器内容,计数

单元对CLK脉冲计数,每出现一个CLK脉冲,计数器减

1,当减为零时,通过OUT输出指示信号表明计数单元已

为零。当作为定时器工作时,每当计数单元为零时,计数

寄存器内容会自动重新装入计数单元,而且CLK输入

是均匀的脉冲序列,于是OUT输出频率是降低了的(相

对于CLK信号频率)脉冲序列。当作为计数器工作时,

表明只关心在CLK端出现(代表事件)的脉冲个数,当CLK端出现了规定个数的脉冲时,OUT 输出一个脉冲。

本次设计主要利用8254产生10ms的方波,其与总线相连接的引线主要是:

D0~D7双向数据线,用以传送数据和控制字。这里分别与XD0~XD7相连接。

CS输入信号,低电平有效,当它有效时才能选中该定时器芯片,实现对它的读或写,这里与系统IOY3相连接。

RD读控制信号,低电平有效,与系统总线IOR#相连接。

WR写控制信号,低电平有效,与系统总线IOW#相连接。

A0、A1为8254的内部计数器和一个控制寄存器的编码选择信号,其功能如下:

A1 A0 选择

0 0 计数器0

0 1 计数器1

1 0 计数器2

1 1 控制寄存器

CLK0是计数器的时钟输入端。本次设计的时钟为1MH Z,计数器对此时钟信号进行计数。GATE0门控信号,即计数器的控制输入信号,用来控制计数器的工作,这里使其为高电平,直接接系统5V。

OUT计数器输出信号,用来产生不同方式工作时的输出波形,本次设计的1ms方波由此输出。

2 8254的功能

8254的功能用途是:

(1)延时中断

(2)可编程频率发生器

(3)事件计数器

(4)二进倍频器

(5)实时时钟

(6)数字单稳

(7)复杂的电机控制器

3 8254的工作方式

8254有六种工作方式:

(1)方式0:计数结束中断

(2)方式1:可编程频率发生器 (3)方式2:频率发生器 (4)方式3:方波频率发生器 (5)方式4:软件触发的选通信号 (6) 方式5:硬件触发的选通信号

8254有6种方式工作,由于只用来产生方波,所以使其工作在方式3(方波发生器),在此方式下,GATA 信号为低电平时,强迫OUT 输出高电平,当GATA 主高电平时,OUT 输出时称方波。

2.2.4 七段LED 数码管及其接口

七段LED 数码管由七个发光段构成,每段均为1个LED 二极管。通过控制不同段的点亮和熄灭,显示出16进制数字或字符。七段LED 显示器有共阳极和共阴极两种结构,如图所示的七段LED 实际上包含8个LED(7段字形加上小数点DP)。1位LED 显示器有1根位选线和8根段选线,段选线控制字符的选择,位选线控制显示位的亮和暗。

十六进制数及空白字符与数码管的显示段码

字型

共阳级段码 共阴极段码 字型 共阳级段码 共阴极段码 0 C0H 3FH 9 90H 6FH 1 F9H 06H A 88H 77H 2 A4H 5BH B 83H 7CH 3 B0H 4FH C C6H 39H 4 99H 66H D A1H 5EH 5 92H 6DH E 86H 79H 6 82H 7DH F 84H 71H 7 F8H 07H 空白 FFH 00H 8

80H

7FH

P

8CH

73H

第3章系统设计

3.1 硬件设计

LED数码管芯片8254 系统总线芯片8255 及键盘

3.2 软件设计

D0 PB0

D1 PB1

D2 PB2

D3 PB3

D4 PB4

D5 PB5

D6 PB6

D7 PB7

WR

RD PA3

CS PA2

A0 PA1

A1 PA0

PC3

PC2

PC1

PC0

A

B

C

D

E

F

G

DP

X1

X2

X3

X4

Y1

Y2

Y3

Y4 XD0

XD1

XD2

XD3

XD4

XD5

XD6

XD7

IOW#

WOR#

IOY3 IOY0

XA1

XA2

PCLK

MIR7

+5V

D0

D1

D2

D3

D4

D5

D6

D7

WR

RD

CS

A0

A1 CLK0 OUT0 GA TE0

开始

开中断

扫描键盘

Y

是否有键按下调用显示

N

Y

毫秒个位小于秒个位加1

10

N

毫秒个位清零十位加1

Y

毫秒十位小

于10

N

毫秒十位清零秒个位加1

秒个位小 Y

于10

N

秒个位清零十位加1

Y

秒十位小于6

N

秒十位清零

发中断结束命令

中断返回

第4章 系统实现

4.1 概述

本系统设计的秒表以8086微处理器作为CPU ,用8254做定时计数器产生时钟频率,8255做可编程并行接口显示时钟和键盘电路,8259做中断控制器产生中断。在此系统中,8254的功能是定时,接入8254的CLK 信号为周期性时钟信号。程序由以下模块组成:系统共有5个功能模块,分别为,主控模块,显示模块,定时模块,中断模块,小键盘模块。 系统框图如下:

4.2 程序模块

4.2.1 主程序模块

主控模块是系统的核心模块,对8255A 进行初始化,主程序开始,为了显示秒、毫秒,并被我们识别,先调用DIS 程序,实现片选的功能。最终把接到的二进制时间码转换成ASCII 码在四个码管上显示时间。

键盘读入

显示缓冲

秒脉冲

显示模块 主控模块

中断模块

定时模块

小键盘模块 四个LED

小键盘

8255A

8254

8259

MOV MSEC,0

INC NUM ;毫秒个位加1

CMP NUM,BYTE PTR 10 ;毫秒个位与10比较

JNZ WAN ;若不为10则显示输出

MOV NUM,0 ;把NUM单元清零

INC NUM+1 ;毫秒十位加1

CMP NUM+1,BYTE PTR 10

JNZ WAN

MOV NUM+1,0

INC NUM+2

CMP NUM+2,BYTE PTR 10

JNZ WAN

MOV NUM+2,0

INC NUM+3

CMP NUM+3,BYTE PTR 6

JNZ WAN

MOV NUM+3,0

4.2.2 显示模块

显示模块是将接到的数值送到LED显示的功能模块,显示缓冲区是由四个字节构成,分别保存秒的高位和低位,毫秒的高位和低位。硬件上由四个LED构成,软件上由扫描显示的方法实现。

DIS: MOV SI,OFFSET NUM

MOV CL,0F7H

LP1: MOV DX,MY8255_A ;将DX中低四位送外设

MOV AL,CL

OUT DX,AL

MOV DX,MY8255_B

MOV AL,[SI]

MOV AH,0 ;AX高四位寄存器清零

MOV DI,BX

ADD DI,AX

MOV AL,[DI]

CMP CL,0FDH

JNZ ADB

OR AL,80H

ADB: OUT DX,AL

CALL DLY

ROR CL,1

TEST CL,80H

JZ LP2

INC SI

JMP LP1

LP2: RET

4.2.3 小键盘模块

小键盘模块送入主控模块的子功能模块。由软件和硬件实现,硬件上由小键盘和8255互连,将小键值由8255送入主控模块。软件上使用行扫描法获得键值并送回主控模块。执行延时程序后再扫描键盘,若标志位RUN=0表示真正有键按下,从而实现秒表的计时、暂停计时。

CCSCAN: MOV AL,00H

MOV DX,MY8255_A ;读端口A地址

OUT DX,AL

MOV DX,MY8255_C ;读端口C地址

IN AL,DX

NOT AL

AND AL,0FH

RET

4.2.4 定时模块

定时模块是为8259提供中断请求信号的。由一片8254实现,选用定时器0,工作在方式3,毫秒表应该10ms走动一次,所以输出值应为10ms,其输出信号可作为8259的中断请求信号。

MOV DX,CON8254 ; 初始化主片8254

MOV AL,36H

OUT DX,AL

MOV DX,A8254

MOV AL,0E8H

OUT DX,AL

MOV AL,03H

OUT DX,AL

4.2.5 中断处理模块

中断模块实现动态显示的,硬件为一片8259,由于中断请求信号为每10ms一次,中断程序该为时间按10ms增加,并显示,只要开中断,便可实现每10ms显示时间增加10ms,从而达到动态显示的效果。

MIR7: STI ; 置中断标志位IF

PUSH DS

PUSH AX

MOV AX,SEG DATA ;回送DATA的段地址值

MOV DS,AX

MOV AL,MSEC

MOV AL,1

MOV MSEC,AL

MRET: MOV AL, 20H ;中断结束命令

OUT 20H, AL

POP AX

POP DS

IRET

第5章遇到的问题及解决方法

5.1 遇到的问题

(1) 七段数码管显示时秒的个位后不显示点

(2) 键盘程序感应不灵敏

(3) 中断程序没被使用

5.2 解决的方法

(1)原因分析:秒的个位七段数码管的DP位没有输入高电位

解决的方法:利用循环右移的方法,判断是否到达显示秒的个位,如果到了就往DP 位送高电平。

ADB: OUT DX,AL

CALL DLY

ROR CL,1

TEST CL,80H

JZ LP2

INC SI

JMP LP1

LP2: RET

(2)原因分析:键盘存在抖动

解决的方法:设置一个运行标志位,消除抖动,提高了按键的灵敏度,还可消除外界干扰。

SDF1:CALL CCSCAN ;扫描

JZ INK1 ;没有键按下跳到INK1

CALL DLY ;调用延时

CALL CCSCAN ;扫描

JZ INK1

MOV AL,RUN

NOT AL

AND AL,01

MOV RUN,AL

MOV AL,RUN

NOT AL

AND AL,01

MOV RUN,AL

(3)当外部产生中断时,系统自动调用中断程序,但中断程序并没把主要的功能写在中断里时,可设置一个中断标志位,实现回送数据段地址的功能。

MIR7: STI ; 置中断标志位IF

PUSH DS

PUSH AX

MOV AX,SEG DATA ;回送DATA的段地址值

MOV DS,AX

MOV AL,MSEC

MOV AL,1

MOV MSEC,AL

MRET: MOV AL, 20H ;中断结束命令

OUT 20H, AL

POP AX

POP DS

IRET

总结

微机原理与接口技术的设计主要是要完成一个数字秒表,并且要求可以显示实时时间,当按下按键来控制秒表的计时、暂停计时。通过这次课程设计历时一个星期的微机原理课程设计,并且在这个星期的学习过程中,发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。

这次的微机原理课程设计是培养我们综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,微机原理已经成为当今计算机应用中空前活跃的领域,在生活当中可以说得是无处不在。因此作为二十一世纪的大学来说掌握微机原理是十分重要的。

在开始做的阶段,首先运用软件工程所学的东西,画出了系统流程图,这为我后来的系统提供了很大的帮助, "微机原理与系统设计" 作为电子信息类本科生教学的主要基础课之一,课程紧密结合电子信息类的专业特点,围绕微型计算机原理和应用主题,以Intelx86CPU为主线,系统介绍微型计算机的基本知识,基本组成,体系结构和工作模式,从而使学生能较清楚地了解微机的结构与工作流程,建立起系统的概念。以前对于编程工具的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。首先,我们一组三人,经过认真的商议和探讨,将主程序的整体框架编译了出来,再运用我们在微机原理课所学到的知识,对程序的主体进行运行,发现错误及时进行修改,经过一段时间,终于可以使程序能够没有错误的运行,接下来是在PC机上的连线,使程序能够和我们编的程序能够结合起来,在主体框架完成的情况下,依据老师的要求,将上述所做东西以报告的形式做成文档。

我感觉到到对知识真正的掌握制在于应用,这次设计用到了数字电路基础的知识,微机原理知识,电路基础等,当这些知识深深地结合在一起的时候,我感觉到了基础知识是如此的重要,把这些零散的知识组合在一起居然能够实现如此现代化的需求,设计出如此有价值的数字秒表。设计的完成要感谢老师的细心指导和尊尊教诲,相信这些经历对我以后的工作乃至于生活都会有着有用的指导意义。

致谢

微机原理课程设计算是圆满结束了,经过一周的实习,我最大的收获就是理解了微机的一些简单的程序设计。在这个课程设计的过程中得到了王庆利、踪念品老师的悉心指导。两位老师在整个课程设计的过程中一直耐心的为我们进行指导,时时关注我们的进展,给我们提出很多建议,帮助我开拓解决问题思路,并耐心对我们遇到的问题进行指导、讲解。虽然只有短短一周的时间,却给以终生受益无穷之道。对两位老师的感激之情是无法用言语表达的。

感谢学校对我们此次课程设计的大力支持,为我们安排了充分的时间使用学校的机房。为我们安排了两位出色并且负责的老师来解答我们的疑虑。

最后我要感谢我们组的其他成员,经过我们的一起讨论,共同解决问题,并且借给我很多参考资料。也给了我很大帮助。

基于51单片机的4位数码管秒表

原理图: 源程序: /************************************************************* 标题:定时器中断精确到00.01的秒表 效果:能清零重新开始,暂停,继续计时,能精确到0.01秒 作者:皖绩小挺 说明:使用12M晶振,四位数码管,3个按键 ****************************************************************/ #include #define uint unsigned int #define uchar unsigned char uint temp,tt,qian,bai,shi,ge; sbit smg_q=P1^0; sbit smg_b=P1^1; sbit smg_s=P1^2; sbit smg_g=P1^3; sbit key1 = P3^7; sbit key2 = P3^6; sbit key3 = P3^5; uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90};

uchar code table1[]={0x40,0x79,0x24,0x30,0x19, 0x12,0x02,0x78,0x00,0x10}; //带小数点 void keyscan(); void display(uint shi,uint ge); void delay(uint z); void init(); /************************************************************** 主函数 ******************************************************************/ void main() { init();//初始化子程序 while(1) { if(tt==1) { tt=0; temp++; if(temp==10000) { temp=0; } qian=temp/1000; bai=temp%1000/100; shi=temp%100/10; ge=temp%10; } keyscan(); display(shi,ge); } } /********************************************************************* 延时 ***********************************************************************/ void delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /*********************************************************************

数码管显示转换的电压值数码管显示秒表

数码管显示转换的电压值数码管显示秒表 标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

电子科技大学微电子与固体电子学院 实验报告 实验名称现代电子技术综合实验 姓名:詹朋璇 学号:20 评分: 教师签字 电子科技大学教务处制

电子科技大学 实验报告 学生姓名:詹朋璇学号: 20 指导教师:熊万安 实验地点: 211大楼308 实验时间:2014. 晚 一、实验室名称:单片机技术综合实验室 实验项目名称:数码管显示A/D转换的电压值&数码管显示秒表 二、实验学时: 12 三、实验目的与任务: 1、熟悉系统设计与实现原理 2、掌握KEIL C51的基本使用方法 3、熟悉实验板的应用 4、连接电路,编程调试,实现各部分的功能 5、完成系统软件的编写与调试 四、实验器材 1、PC机一台 2、实验板一块

五、实验原理、步骤及内容 试验要求:数码管的第1位显示任务号1,第3位到第5位显示、A/D转换的电压值,可调节电压,第7、8位显示两位学号;数码管第2位和第6位显示“-”号; 按按键key1进行切换,此时数码管第1位显示任务号2,第7、8位显示循环倒计时的秒表,范围为08秒到01秒后,再过01秒,秒表又显示为08秒;(单片机系统中利用定时器/计数器计数秒表的值:利用定时器T0延时1秒进行计数。),其它位显示不变,按按键key2时,秒表停止计数,再按按键key2时,秒表继续计数,按key1键,又回到任务1的显示状态。 当电压值大于2伏时,按按键不起作用。 1、硬件设计(可打印) 2、各部分硬件原理(可打印) 数码管动态扫描 TLS549ADC工作时序图 3、软件设计 按下

用LED数码管显示的秒表设计

单片机课程设计说明书 用LED 数码管显示的秒表设计 专业 电气工程及其自动化 学生姓名 刘宁 班级 B 电气081 学 号 04 指导教师 张兰红 完成日期 2011年 6月 26 日

目录 1、概述 (2) 2、课题方案设计 (2) 系统总体设计要求 (2) 系统模块结构论证 (2) 3、系统硬件设计 (3) 总体设计 (3) 单片机运行的最小系统 (4) 52单片机最小系统电路介绍 (4) 单片机的振荡电路与复位电路 (7) 数码管介绍 (8) 驱动电路 (9) 4、软硬件联调及调试结果 (10) 软硬件调试中出现的问题及解决措施 (10) 实物图 (11) 调试结果 (13) 5、结束语 (13) 参考文献 (14) 附录 (14) 附录1:基于单片机的秒表设计原理图 (14) 附录2:基于单片机的秒表设计PCB图 (15) 附录3:PROTEUS仿真图 (16) 附录4:基于单片机的秒表设计C语言程序清单 (17) 附录5:基于单片机的秒表设计元器件目录表 (19)

1、概述 21世纪是一个电子技术和电子元件有更大发展的世纪。回顾百年来电子技术和电子工业发展的成就,举世瞩目。作为一个电气专业的大学生,我们不但要有扎实的基础知识、课本知识,还应该有较强的动手能力。现实也要求我们既精通电子技术理论,更要掌握电子电路设计、实验研究和调试技术。课程设计就是一个理论联系实际的机会。 本次设计主要完成具备基本功能的电子秒表的理论设计,电子秒表是重要的记时工具,广泛运用于各行各业中。作为一种测量工具,电子秒表相对其它一般的记时工具具有便捷、准确、可比性高等优点,不仅可以提高精确度,而且可以大大减轻操作人员的负担,降低错误率。 在设计中应用到数码管,数码管主要用于楼体墙面,广告招牌、高档的DISCO、酒吧、夜总会、会所的门头广告牌等。特别适合应用于广告牌背景、立交桥、河、湖护栏、建筑物轮廓等大型动感光带之中,可产生彩虹般绚丽的效果。用护栏管装饰建筑物的轮廓,可以起到突出美彩亮化建筑物的效果。事实证明,它已经成为照明产品中的一只奇葩,绽放在动感都市。 2、课题方案设计 系统总体设计要求 用AT89C52设计一个2位LED数码显示“秒表”,显示时间为00~59秒,每秒自动加一。另设计一个“开始”按键和一个“复位”按键,一个“暂停”按键。接上电源后从00开始计时,至59后再回到00,继续循环。 系统模块结构论证 1.单片机模块选择 方案一:选用飞思卡尔单片机,飞思卡尔单片机功能强大,但是价格相对要高,而且对此不熟悉。

单片机简易秒表课程设计..

单片机课程设计 题目:简易秒表 系部:机电工程系 专业:机电一体化 班级: 0 9 4 班 姓名:张三 学号:2009044056 指导教师:杨富强

目录 一摘要 (1) 二绪论 (2) 2.1单片机的发展 (2) 2.2 MCS-51系列单片机介绍 (4) 三设计任务及要求 (5) 四工作原理 (5) 4.1 七段数码管概述 (5) 4.2 MCS--51的引脚及相关功能 (7) 五简易秒表电路图 (8) 六流程图 (9) 七源程序 (10) 八系统硬件设计 (11) 九总结 (12) 十课程设计心得 (13) 参考文献 (14)

一摘要 单片机自70年代问世以来得到蓬勃发展,目前单片机功能正日渐完善:单片机集成越来越多资源,内部存储资源日益丰富,用户不需要扩充资源就可以完成项目开发,不仅是开发简单,产品小巧美观,同时抗干扰能力加强,系统也更加稳定,使得它更加适合工业控制领域,具有更加广阔的市场前景;提供在线编程能力,加速了产品的开发进程,为企业产品上市赢得宝贵时间。此外单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用广泛、通用性强等突出优点。单片机的设计目标主要是增强“控制”能力,满足实时控制的需要。 本文的主要内容是掌握各种单片机的结构、接口、片上外设的特点,并利用自行制作的单片机最小系统,完成一个简单应用(简易秒表)的设计与软件及硬件设计制作,让读者掌握数字单片机最小系统的设计及单片机系统的应用方法。

二绪论 当前社会信息化建设在各地蓬勃发展,作为信息发布的终端显示设备,LE D显示屏己经广泛应用于工作和生活的各个方面,主要用于显示文字、图像、动画等。L E D显示屏的应用涉及社会的许多领域,主要包括:金融证券、体育场馆、道路交通、邮政电信、商场购物中心等服务领域的业务宣传及信息显示。L ED 是发光二极管的简称(L ig ht Em it ti ng D io de)。由于它具有亮度高、响应速度快、低电压、功耗小、耐震动、寿命长等优点,使其成为室内外信息显示终端的主要发光器件。LE D显示屏是20世纪90年代出现的新型平板显示器件,由于其亮度高、画面清晰、色彩鲜艳,使它在公众多媒体显示领域一枝独秀,因此市场空间巨大。LE D显示屏的发展可分为以下几个阶段:第一阶段为1990年到1995年,主要是单色和16级双色图文屏。用于显示文字和简单图片,主要用在车站、金融证券、银行、邮局等公共场所,作为公共信息显示工具。第二阶段是1995年到1999年,出现了64级、256级灰度的双基色视频屏。视频控制技术、图像处理技术、光纤通信技术等的应用将LE D显示屏提升到了一个新的台阶。LE D显示屏控制专用大规模集成电路芯片也在此时由国内企业开发出来并得以应用。第三阶段从1999年开始,红、纯绿、纯蓝LE D大量涌入中国,同时国内企业进行了深入的研发工作,使用红、绿、蓝三原色LE D生产的全彩色显示屏被广泛应用,大量进入体育场馆、会展中心、广场等公共场所,从而将国内的大屏幕带入全彩时代。 2.1单片机的发展 单片机也被称为微控制器(M ic ro co nt r ol le r),是因为它最早被用在工业控制领域。单片机由芯片内仅有CP U的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CP U集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。IN TE L的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。单片机又称单片微控制器,它不是完成某一个逻辑功能的

2位数码管显示00-99的89c51单片机电子秒表设计 的程序和电路图

/*应该是2位数码管显示00-99的89c51单片机电子秒表设计的程序和电路图*/ P0段选,P2.0个位位选,P2.1十位位选。共阳数码管16M晶振。STRT EQU P2.5 STP EQU P2.6 CLRR EQU P2.7 ORG 00H AJMP MAIN ORG 0BH AJMP T0INT ORG 30H MAIN: MOV R0,#20 MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H MOV DPTR,#TABLE SETB EA SETB ET0 k1: LCALL DISP JB STRT,K2 LCALL DISP JNB STRT,$-3 AJMP START k2: JB STP,K3 LCALL DISP JNB STP,STOP K3: JB CLRR,K1 LCALL DISP JNB CLRR,CLEAR AJMP K3 START: SETB TR0 AJMP K1 STOP: CLR TR0 AJMP K2

CLEAR: CLR TR0 MOV 40H,#0 AJMP K1 T0INT: MOV TH0,#3CH MOV TL0,#0B0H DJNZ R0,RTI MOV R0,#20 MOV A,40H CJNE A,#99,ADD1 MOV 40H,#00H CLR TR0 AJMP RTI ADD1: ADD A,#01H MOV 40H,A RTI: RETI DISP: MOV A,40H MOV B,#10 DIV AB ;//当前值除以10 MOV 20H,A ;//得出的商送给十位MOV 21H,B ;//得出的余数送给个位 CLR P2.0 SETB P2.1 MOV A,20H ;//十位显示 MOVC A,@A+DPTR MOV P0,A LCALL DELAY CLR P2.1 SETB P2.0 MOV A,21H ; //个位显示 MOVC A,@A+DPTR MOV P0,A RET DELAY: ;误差0us

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

南华大学电气工程学院课程设计 摘要:单片机自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

秒表-六位数码管有效显示2

秒表-六位数码管有效显示 C51单片机

1.#include 2.#include 3.#define uchar unsigned char 1.void delay_ms(uchar ms); // 延时毫秒@12M,ms最大值255 2.void key_scan(); // 按键扫描 3.void key_to(); // 按键处理 4. 5.uchar code dis_code[11] = {0xc0,0xf9,0xa4,0xb0,0x99, //段 码表 6.// 0 1 2 3 4 对应内容 7. 0x92,0x82,0xf8,0x80,0x90,0xbf}; 8.// 5 6 7 8 9 - 9. 10.uchar data dis[8]; // dis[0]为百分之一秒值,dis[1]为十分之 一秒值 11. // dis[2],dis[5]为'-'段码的偏移量 12. // dis[3]为秒个位值,dis[4]为秒十位 值 13. // dis[6]为分个位值,dis[7]为分十位 值 14. 15.uchar data dot = 0; // 百分之一秒计数器(0.00s-0.99s) 16.uchar data sec = 0; // 秒计数器(00s-59s) 17.uchar data min = 0; // 分计数器(00m-99m) 18. 19.uchar data dis_b; // dis_b为位码选通数码管 20.uchar data dis_r; // dis_r为取段码时的偏移量 21. 22.uchar data key_t = 0; // 按键次数,初始为0 23. 24.sbit K = P1^4; // K键与P1.4相连 25. 26.void main() 27.{ 28. P2 = 0xff; // 关所有数码管 29. P1 = 0xff; // p1为准双向口,作输入时先写1 30. dis[2] = 10; // '-'在段码表中偏移量为10 31. dis[5] = 10; // '-'在段码表中偏移量为10 32. dis_b = 0x7f; // 初始选通P2.7口数码管 33. dis_r = 0; // 初始化偏移量为0 34. 35. TMOD = 0x11; // 定时/计数器0,1工作于方式1

单片机实验——秒表--(详细步骤)

简易秒表制作 1子情境内容:制作简易秒表,利用按键构成键盘实现秒表的启动、停止与复位,利用LED数码管显示时间。 2 子情境目标: (1)通过简易秒表的制作,进一步熟悉LED数码管与单片机的接口电路(2)学习定时/计数器、中断技术的综合运用并会使用简易键盘 3 知识点链接 独立式按键的使用:图5-49为按键与单片机的连接图。 机械式按键再按下或释放时,由于机械弹性作用的影响,通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如图5-50所示,抖动时间的长短与开关的机械特性有关,一般为5~10ms。 在触点抖动期间检测按键的通与断状态,可能导致判断出错。即按键一次按下或释放被错误地认为是多次操作,这种情况是不允许出现的。为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。本子情境中采用软件去抖。 图按键与单片机连接图图按键被按下时电压的变化 4 任务步骤 4.1 步骤一:PROTEUS电路设计,简易秒表的原理图如图5-51所示。 1、选取元器件 ①单片机:AT89C51 ②两位共阴极蓝色数码管:7SEG-MPX2-CC-BLUE ③排阻:RESPACK-8 ④按钮:BUTTON 2、放置元器件、放置电源和地、连线、元器件属性设置 简易秒表的原理图如图5-51所示,整个电路设计操作都在ISIS平台中进

行。与子情景3相似,故不详述。 图简易秒表的原理图4.2 步骤二:源程序设计与目标代码文件生成(1)程序流程图

主程序

图5-52 秒表流程图 (2)源程序设计 #include #define uint unsigned int #define uchar unsigned char sbit key1=P3^0; //定义"启动"按钮 sbit key2=P3^1; //定义"停止"按钮 sbit key3=P3^2; //定义"复位"按钮 uchar temp,aa,shi,ge; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; //共阴极数码管编码 void display(uchar shi,uchar ge); //声明显示子函数 void delay(uint z); //声明延时子函数 void init(); //声明初始化函数 void main() { init(); //调用初始化子程序 while(1) { if(key1==0) //检测"启动"按钮是否按下 { delay(10); //延时去抖动 if(key1==0) //再次检测"启动"按钮是否按下 { while(!key1); //松手检测,若按键没有释放,key1始终为 0,那么!key1始终为1,程序就一直停在此 while语句处 TR0=1; //启动定时器开始工作

51单片机秒表计时器课程设计报告(含C语言程序)

XXXXXX学院 51单片机系统设计课程设计报告 题目:秒表系统设计 专业、班级: 学生姓名: 学号: 指导教师: 分数:

[摘要]本设计是一个秒表计时器,采用51单片机实现。电路包括以下几部分: 单片机最小系统部分,数码管显示部分,摁键开关部分部分。电路选用共阴型4位数码管组成时钟显示电路;时钟的增减控制以及清零部分主要由轻触开关构成的摁键系统组成;信号接收和处理部分主要由单片机来执行。接通电源后,秒表计时器处于初始状态,4位数码管显示000.0。当摁下“开始”开关时,秒表开始计时,数码管显示当前状态的时间。当再次摁下开关时,数码管停止计时。摁下“清零”键后,系统重新回到初始状态。 [关键词]单片机最小系统秒表计时摁键控制

1、任务 设计一个秒表计时器,在51单片机的控制作用下,采用4个LED数码管显示时间,计时范围设置为00.0~60.0秒,即精确到0.1秒,用按键控制秒表的“开始”、“暂停”、“复位”,按“开始”按键,开始计时;按“暂停”按键,系统暂停计时;再按“开始”键,系统继续计时;数码管显示当前计时值;按“复位”按键,系统清零。 2、设计要求 (1)开始时显示00.0。每按下S1键一次,数值加1s; (2)每按下S2键一次,数值减1s; (3)每按下S3键一次,数值清零; (4)每按下S4键一次,启动定时器使数值开始自动每秒加1, 再次按下S4键,数值停止自动加1,保持显示原数。 3、发挥部分 (1)开关按键3:“复位 60.0”按键(用来60秒倒计时)。按键按下去时数码管复位为“60.0”(用于倒计时)。 (2)开关按键4:倒计时“逐渐自减”按键。按键按下去则是数码管开始“逐渐自减”倒计时。 (3)开关按键5:倒计时初始值“增加”按键。 (4)开关按键6:倒计时初始值“减小”按键。 4、课程设计的难点 单片机电子秒表需要解决三个主要问题,一是有关单片机定时器(一个控制顺序计时,一个控制倒计时)的使用;二是如何实现 LED 的动态扫描显示;三是如何对键盘输入进行编程。 5、课程设计仪器 集成电路芯片STC89C52,八段数码管,MCS-51系列单片机微机仿真课程系统中的软件(keil uvision2)。

用定时器计数器设计一个简单的秒表

目录 摘要................................................................................................ 错误!未定义书签。 1 Proteus简介错误!未定义书签。 2 主要相关硬件介绍错误!未定义书签。 AT89C52简介错误!未定义书签。 四位数码管错误!未定义书签。 74LS139芯片介绍错误!未定义书签。 3 设计原理错误!未定义书签。 4 电路设计错误!未定义书签。 电路框图设计错误!未定义书签。 电路模块介绍错误!未定义书签。 控制电路错误!未定义书签。 译码电路错误!未定义书签。 数码管显示电路错误!未定义书签。 仿真电路图错误!未定义书签。 5 设计代码错误!未定义书签。 6 仿真图错误!未定义书签。 7 仿真结果分析错误!未定义书签。 8 实物图错误!未定义书签。 9 心得体会错误!未定义书签。 参考文献错误!未定义书签。

摘要 现在单片机的运用越来越宽泛,大到导弹的导航装置、飞机上各种仪表的控制、计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理,小到广泛使用的各种智能IC卡、各种计时和计数器等等。本次课设我们要设计一个能显示计时状态和结果的秒表,它是基于定时器/计数器设计一个简单的秒表。 本次设计的数字电子秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现四位LED显示,显示时间为0~秒,计时精度为秒,能正确地进行计时,并显示计时状态和结果。其中软件系统采用汇编或者C语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,并在keil中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。 关键词:秒表,AT89C51,proteus,C语言

秒表-六位数码管有效显示

?/************************************************************************** ?* 标题: 秒表-六位数码管有效显示(C51) ?* 作者: wentao https://www.wendangku.net/doc/c610753564.html, ? https://www.wendangku.net/doc/c610753564.html, ?* 日期: 2007.3.3 ?* 软件: Keil C51 V8.02 ?* 芯片: AT89X51 ?* 说明: 实验板实测通过,数码管为8位共阳 ?* 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途! ?**************************************************************************/? ?#include ?#include ?#define uchar unsigned char ? ?void delay_ms(uchar ms); // 延时毫秒@12M,ms最大值255 ?void key_scan(); // 按键扫描 ?void key_to(); // 按键处理 ? ?uchar code dis_code[11] = {0xc0,0xf9,0xa4,0xb0,0x99, //段码表 ?// 0 1 2 3 4 对应内容 ? 0x92,0x82,0xf8,0x80,0x90,0xbf}; ?// 5 6 7 8 9 - ? ?uchar data dis[8]; // dis[0]为百分之一秒值,dis[1]为十分之一秒值 ?// dis[2],dis[5]为'-'段码的偏移量 ?// dis[3]为秒个位值,dis[4]为秒十位值 ?// dis[6]为分个位值,dis[7]为分十位值 ? ?uchar data dot = 0; // 百分之一秒计数器(0.00s-0.99s) ?uchar data sec = 0; // 秒计数器(00s-59s) ?uchar data min = 0; // 分计数器(00m-99m) ? ?uchar data dis_b; // dis_b为位码选通数码管 ?uchar data dis_r; // dis_r为取段码时的偏移量 ? ?uchar data key_t = 0; // 按键次数,初始为0 ? ?sbit K = P1^4; // K键与P1.4相连 ? ?void main() ? { ?P2 = 0xff; // 关所有数码管 ?P1 = 0xff; // p1为准双向口,作输入时先写1

数码管显示AD转换的电压值数码管显示秒表

电子科技大学微电子与固体电子学院实验报告 实验名称现代电子技术综合实验 姓名:詹朋璇 学号:2011031030024 评分: 教师签字 电子科技大学教务处制

电子科技大学 实验报告 学生姓名:詹朋璇学号:2011031030024 指导教师:熊万安 实验地点:211大楼308 实验时间:2014. 6.30 晚 一、实验室名称:单片机技术综合实验室 二、 实验项目名称:数码管显示A/D转换的电压值&数码管显示秒表 三、实验学时:12 四、实验目的与任务: 1、熟悉系统设计与实现原理 2、掌握KEIL C51的基本使用方法 3、熟悉实验板的应用 4、连接电路,编程调试,实现各部分的功能 5、完成系统软件的编写与调试 五、实验器材 1、PC机一台 2、实验板一块 六、实验原理、步骤及内容 试验要求:数码管的第1位显示任务号1,第3位到第5位显示、

A/D转换的电压值,可调节电压,第7、8位显示两位学号;数码管第2位和第6位显示“-”号; 按按键key1进行切换,此时数码管第1位显示任务号2,第7、8位显示循环倒计时的秒表,范围为08秒到01秒后,再过01秒,秒表又显示为08秒;(单片机系统中利用定时器/计数器计数秒表的值:利用定时器T0延时1秒进行计数。),其它位显示不变,按按键key2时,秒表停止计数,再按按键key2时,秒表继续计数,按key1键,又回到任务1的显示状态。 当电压值大于2伏时,按按键不起作用。 1、硬件设计(可打印) 2、各部分硬件原理(可打印)

数码管动态扫描 TLS549ADC工作时序图3、软件设计

思考题:按键改用外部中断模式,电路如何修改(画示意图)?程序如何修改,写出中断服务程序。 答:将KEY1与KEY2键通过跳线分别接到INT0与INT1接口上。 开启中断: SysInit() { … EA=0; //禁止总中断 EX1=1; //使能/INT1 中断 EX0=1; //使能/INT0 中断 EA=1; }//使能总中断 中断服务程序: void INT0SVC () interrupt 0 { if(cnt<=31) cnt++;} void INT1SVC () interrupt 2 { if(cnt>=17) cnt--;} 七、总结及心得体会 1.利用单片机开发板上丰富的资源可以实现一个有一定功能的

简易秒表LED数码管显示接口技术应用

单片机原理及应用 课程设计 设计题目:简易秒表LED数码管显示接口技术应用姓名:廖承润 学号:110105011118 专业班级:11级光信1班 指导教师:叶念渝 2014年5月

目录 1 内容及要求 (1) 2 设计思路 (1) 3 工作原理 (2) 4 硬件设计 (2) 5 软件设计 (3) 6 调试 (8) 7 修改意见 (9) 8 源程序 (9) 9 收获及体会 (12) 简易秒表LED数码管显示接口技术应用

1,内容及要求 (1)内容 ?如何运用单片机实现计时; ?如何显示时间; ?如何利用按键实施对秒表的控制。 ?定时器T0 或Tl 的定时时间作为时钟计时的基准 ?启动与停止定时器工作实现计时。 ?先用两个数码管动态显示时间,时间范围为0-60s ?用三个独立式按键实现秒表的启动、停止和复位功能。 ?A机发送,B机接收* (2)要求 ?通过简易秒表的制作,熟悉LED 数码管与单片机的接口方式; ?定时/计数器、中断技术的综合应用; ?学会简易键盘的使用。 ?利用按键构成键盘实现秒表的启动、停止与复位, ?利用LED 数码管显示时间。 ?*进行简单的串行通信。 2,设计思路 (1)硬件 ?采用P0 口输出并联控制两个数码管的8 个段选控制端。 ?用P2.0、P2.1分别控制两个LED 数码管的位选控制端。 ?这是典型的动态显示电路接法,LED 采用共阳极数码 ?三个按键采用独立式键盘接法, ?两个按键连接到外部中断INT0 、INT1 的输人引脚P3.2和P3.3, ?S4按键接到T1的外部脉冲输入引脚P3.5,以中断方式实现键盘输入状态 的扫描。 ?其中S2为启动按钮,S3为停止按钮,S4 清零按钮。 ?K1为复位键 (2)软件 ?根据设计的总体要求划分出各功能程序模块,分别确定主程序、子程序及 中断服务程序结构。 ?对各程序模块占用的单片机资源进行统一调配。 ?对各模块间的逻辑关系进行细化,优化程序结构; ?设计出各模块程序结构流程图。 ?最后依据流程图编制具体程序。 ?将整个程序划分为主程序、键盘扫描程序、秒计时程序三大模块。

数码管电子秒表程序

数码管电子秒表程序 8位数码管电子秒表,显示精确到0.01秒。使用共阳数码管,51单片机的P0口输出段码,P2口输出位码。晶振11.0592MHz。 控制按钮K1接P1.0口,单片机检测低电平。第一次按下时,启动开始计时;第二次按下时,停止计时、显示当前值;第三次按下时,显示归零,做好重新计时准备。 完整源程序: #include #include unsigned char data dis_digit; unsigned char key_s, key_v; unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0, // 0, 1, 2, 3 0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off unsigned char dis_buf[8]; // 显示缓冲区 unsigned char sec_bcd[8]; // 秒计数值, BCD码

unsigned char dis_index; // unsigned char key_times; // K1 按下次数 void clr_time(); void update_disbuf(); bit scan_key(); void proc_key(); void delayms(unsigned char ms); sbit K1 = P1^0; void main(void) { P0 = 0xff; P2 = 0xff; TMOD = 0x11; // 定时器0, 1工作模式1, 16位定时方式 TH1 = 0xdc; TL1 = 0; TH0 = 0xFC; TL0 = 0x17; clr_time(); // dis_digit = 0x7f; // 初始显示P20口数码管 dis_index = 0; // key_times = 0; key_v = 0x01; IE = 0x8a; // 使能timer0, timer1中断 TR0 = 1; TR1 = 0; while(1) { if(scan_key()) { delayms(10); if(scan_key()) { key_v = key_s; proc_key(); }

用LED数码管显示的秒表设计

课程设计说明书 用LED数码管显示的秒表设计 专业新能源科学与工程 学生姓名 班级 学号 指导教师 完成日期

用LED数码管显示的秒表设计 摘要:对采用LED数码管显示的秒表进行了设计。所设计的秒表,可通过两位数码管显示00-59。每秒自动加一。 在对系统功能分析的基础上,采用AT89C52单片机。相对而言比较简单,贴近书本,比较熟悉。对所要实现的功能也能很好地满足,焊接也比较简单。设计主要采用硬件和软件两部分。硬件包含数码管按钮模块、单片机控制模块、数码管显示模块、驱动电流放大模块。按钮模块采用独立式按键,控制模块选用AT89C52单片机,显示模块采用两位数码管,放大模块选用NPN三极管。软件采用模块化的程序,分为主程序和定时器计时服务子程序。 在多孔板上制作了LED数码管显示的秒表,使用protus完成了系统仿真,对硬件和软件部分分别进行了调试,进行了软硬件联调,最后调试成功样机实物,完成了毕业设计任务书的要求。 关键词:单片机;数码管;秒表

A stopwatch design with LED digital tube display Abstract: For the LED digital tube display of a stopwatch is used for design. The stopwatch, designed by two digital tube display 00 ~ 59. Automatically add a per second. On the basis of the analysis of system function, using the AT89C52 single chip microcomputer. Relatively simple, close to the book, familiar with. To in order to realize the function also can well satisfy, welding is more simple. The design mainly adopts two parts of hardware and software. Hardware consists of digital tube button module, single-chip microcomputer control module, digital tube display module, the drive current amplifier module. Button module USES the independent type key, choose AT89C52 single chip microcomputer control module, using two digital tube display module, amplifier module selects the NPN transistor. Software adopts the modular program, main program and timer timing service subroutine. On the perforated plate made of LED digital tube display a stopwatch, use protus completed system simulation, the hardware and the software part, has carried on the debugging, the software and hardware alignment, the final debugging success physical prototype, completed the graduation design specification requirements. Key Words:Single chip microcomputer; Digital tube; A stopwatch.

LED数码管秒表制作

应用工程学院 单片机应用技术实训报告 专业:应用电子 学号:1504150137 姓名:许林 日期:2016/12/24

项目二: LED数码管秒表制作 一、任务目的 1.了解并掌握数码管静态和动态显示原理。 2.掌握秒表计时原理与编程思想。 3.了解并掌握单个按键次数的识别。 二、任务要求 a)上电后数码管最右边显示自己学号。 b)按下功能键后,右边6个数码管上显示秒表定时初值,格式为00-00.0。 c)第二次按下功能键后,以一百毫秒为最小计时单位从0开始计时,第三 次按下功能键后暂停计时,第四次按下功能键后时间清0。 三、硬件电路设计

四、软件设计 #include unsigned char sec,mmiao,miao,fen; sbit K=P3^2; unsigned char a=0; void delayms(unsigned int i) { unsigned char k; while(i--) for(k=0;k<120;k++); } void time1() interrupt 1 { TH0=0x3c; TL0=0xb0; sec++; if(sec==2) { mmiao++; sec=0; if(mmiao==10) { miao++; mmiao=0; if(miao==60) { fen++; miao=0; if(fen==60) { fen=0; }}}}} void time2() interrupt 0 {unsigned char n; if(K==0) for(n=0;n<1200;n++); if(K==0) { while(K==0); for(n=0;n<1200;n++); a++; switch(a) { case 1:mmiao=0;miao=0;fen=0;break;

用单片机AT89C51设计一个2位的LED数码显示作为“秒表”—单片机课程设计

目录 一、设计题目和要求: (2) 二、设计目的: (2) 三、设计内容: (3) 四、课程设计心得体会 (25) 五、参考文献 (26) 六、课程设计指导教师评审标准及成绩评定 (27) 附件1:秒表原理图(实际接线图) (28) 附件2:仿真图1 (30) 附件3:仿真图2 (31)

一、设计题目和要求: 题目三:秒表 应用AT89C51的定时器设计一个2位的LED数码显示作为“秒表”:显示时间为00~99s,每秒自动加1,设计一个“开始”键,按下“开始”键秒表开始计时。设计一个“复位”键,按下“复位”键后,秒表从0开始计时。 任务安排:李座负责绘制电路原理图;梁宗林负责收集资料及电子版整理;付忠林负责程序和仿真。 二、设计目的: 1.进一步掌握AT89C51单片机的结构和工作原理; 2.掌握单片机的接口技术及外围芯片的工作原理及控制方法; 3.进一步掌握单片机程序编写及程序调试过程,掌握模块化程序设计方法; 4.掌握PROTEUS仿真软件的使用方法; 5.掌握LED数码管原理及使用方法。 6.掌握定时器、外部中断的设置和编程原理。 7.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 8.该课程设计通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、复位功能,并同时可以用数码管显示。

三、设计内容: 了解8051芯片的的工作原理和工作方式,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、清零功能,精确到1秒。 AT89C51单片机的主要工作特性: ·内含4KB的FLASH存储器,擦写次数1000次; ·内含28字节的RAM; ·具有32根可编程I/O线; ·具有2个16位可编程定时器; ·具有6个中断源、5个中断矢量、2级优先权的中断结构; ·具有1个全双工的可编程串行通信接口; ·具有一个数据指针DPTR; ·两种低功耗工作模式,即空闲模式和掉电模式; ·具有可编程的3级程序锁定定位; AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz. AT89C51各部分的组成及功能:

相关文档
相关文档 最新文档