第 3 章 数码管显示

22
第3第 第第第第第 3.1 第第 3.1.1 LED 第第第第第 第第 0.5 第 第第第第第第 () LED 第第第 第第第第第 第第第第 ,一

Upload: duff

Post on 09-Jan-2016

72 views

Category:

Documents


3 download

DESCRIPTION

第 3 章 数码管显示. 3.1 概述. 3.1.1 LED 数码管简介. 对于 0.5 吋(对角线尺寸) LED 数码管,每段对应一个发光管. 3.1.2 数字和字符的数码管显示图样. 3.1.3 共阳和共阴数码管. 共阳极:点亮时加高电平. 共阴极:点亮时加低电平. 段码:高电平驱动. 段码:低电平驱动. 3.2 数码管显示. 3.2.4 静态显示和动态显示. 静态显示 每个数码管有独立的驱动电路,亮度高电路复杂,编程容易。. 3 位共阳极数码管静态显示. 公共极直接接 +5V 电源. 独立的段码驱动电路. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 3 章  数码管显示

第 3 章 数码管显示 3.1 概述3.1.1 LED 数码管简介

对于 0.5 吋(对角线尺寸) LED 数码管,每段对应一个发光管

Page 2: 第 3 章  数码管显示

3.1.2 数字和字符的数码管显示图样

Page 3: 第 3 章  数码管显示

1 2 3 4

A

B

C

D

4321

D

C

B

ATitle

Number RevisionSize

A4

Date: 24-Jul-2012 Sheet of File: D:\C51_JIA_MA\½ÌѧÓõç·ͼ.Ddb Drawn By:

com

a

b

c

d

e

f

g

dp

com

a

b

c

d

e

f

g

dp

3.1.3 共阳和共阴数码管

共阳极:点亮时加高电平

共阴极:点亮时加低电平

段码:高电平驱动段码:低

电平驱动

Page 4: 第 3 章  数码管显示

1 2 3 4

A

B

C

D

4321

D

C

B

ATitle

Number RevisionSize

A4

Date: 24-Jul-2012 Sheet of File: D:\C51_JIA_MA\½ÌѧÓõç·ͼ.Ddb Drawn By:

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED1

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED2

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED31 2 3 4 5 6 7 8

16 15 14 13 12 11 10 9

1 2 3 4 5 6 7 8

16 15 14 13 12 11 10 9

1 2 3 4 5 6 7 8

16 15 14 13 12 11 10 9

+5V

3.2.4 静态显示和动态显示 3.2 数码管显示

静态显示每个数码管有独立的驱动电路,亮度高电路复杂,编程容易。

独立的段码驱动电路

3位共阳极数码管静态显示

公共极直接接 +5V 电源

(在“串口应用”讲解 )

Page 5: 第 3 章  数码管显示

3.2.4 静态显示和动态显示

动态显示 所有数码管的段码共有一套驱动电路采用扫描显示。亮度稍低,电路简单,编程复杂, CPU 实时扫描显示占用 CPU 的时间。

以 4位共阳极数码管动态显示为例

▶视频

Page 6: 第 3 章  数码管显示

1

0

0

0

0

1

0

0

0

0

1

0

0

0

0

1

一个扫描周期

共阳极数码管动态显示“ 1234”的过程(位扫描)

送 1的段码送 2的段码送 4的段码送 3的段码

Page 7: 第 3 章  数码管显示

消隐——扫描切换时,先灭掉“当前显示的数码管”,然后送下一位的段码,再点亮下一位数码管

使用公共教室,必须先下课,再上课,有一个

“间隙”,否则会怎样?

Page 8: 第 3 章  数码管显示

1 2 3 4

A

B

C

D

4321

D

C

B

ATitle

Number RevisionSize

A4

Date: 26-Aug-2012 Sheet of File: D:\C51_JIA_MA\½ÌѧÓõç·ͼ.Ddb Drawn By:

EA/VP31

X119

X218

RESET9

RD17

WR16

INT012

INT113

T014

T115

P101

P112

P123

P134

P145

P156

P167

P178

P0039

P0138

P0237

P0336

P0435

P0534

P0633

P0732

P2021

P2122

P2223

P2324

P2425

P2526

P2627

P2728

PSEN29

ALE/P30

TXD11

RXD10

U1 AT89C51

I11

I22

I33

B44

B55

I66

I77

GN

D9

CO

M9

C810

O712

O613

O514

O415

O316

O217

O118

I88

U2ULN2803

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED1

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED2

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED3

Q18550

Q28550

Q38550R1 10K

R2 10K

R3 10K

12345678

161514131211109

PR1

100

GND

+5V

相对应的段码接在一起

依次驱动(扫描)公共极8路 OC 反相

器,驱动电流 >100mA( 267 页)

排电阻,作用限流

3/8 在内部是接在一起的,所以可任意接一个就可以了

动态显示电路 外接感性负载(电动机 /继电器)时 ,接负载电源

Page 9: 第 3 章  数码管显示

1 2 3 4

A

B

C

D

4321

D

C

B

A Title

Number RevisionSize

A4

Date: 26-Aug-2012 Sheet of File: D:\C51_JIA_MA\½ÌѧÓõç·ͼ.Ddb Drawn By:

EA/VP31

X119

X218

RESET9

RD17

WR16

INT012 INT113

T014 T115

P101

P112

P123

P134

P145

P156

P167

P178

P00 39

P0138

P0237

P03 36

P04 35

P05 34

P0633

P0732

P20 21

P21 22

P22 23

P2324

P24 25

P25 26

P26 27

P27 28

PSEN29ALE/P 30

TXD 11RXD 10

U1 AT89C51

I11

I22

I33

B44

B55

I66

I77

GN

D9

CO

M9

C8 10O7 12O6 13O5 14O415O3 16O2 17O1 18

I88

U2ULN2803

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED1

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED2

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED3

Q18550

Q28550

Q38550R1 10K

R2 10K

R3 10K

12345678

161514131211109

PR1

100

GND

+5V

00000001

00000001

00000001

00000001

0 1 0

11111110

101 P2 口送“ 8的

反相”的段码

反相器同时送“ 8”段码: 00000001 ,哪一个显示“ 8”呢?

P0口“位”

动态显示 为了正确显示段码与位码必须同步!

反相

Page 10: 第 3 章  数码管显示

1 2 3 4

A

B

C

D

4321

D

C

B

ATitle

Number RevisionSize

A4

Date: 11-Jul-2012 Sheet of File: D:\C51_JIA_MA\½ÌѧÓõç·ͼ.Ddb Drawn By:

EA/VP31

X119

X218

RESET9

RD17

WR16

INT012 INT113

T014T1

15

P101

P112

P123

P134

P145

P156

P167

P178

P00 39

P0138

P0237

P03 36

P0435

P0534

P0633

P0732

P2021

P2122

P22 23

P2324

P24 25

P2526

P2627

P27 28

PSEN29ALE/P30

TXD 11RXD

10

U1 AT89C51

I11

I22

I33

B44

B55

I66

I77

GN

D9

COM

9

C8 10O7

12O613

O5 14O4

15O3 16O2

17O118

I88

U2UNL2803

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED1

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED2

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED3

Q18550

Q28550

Q38550R1 10K

R2 10K

R3 10K

12345678

161514131211109

PR1

100

GND

+5V

00000001

00000001

00000001

00000001

101

0 1 00 0 0

11111110

101

111

消隐消隐信号

消隐信号

无论段码如何,因为所有阳极都是低电平,所以全灭

Page 11: 第 3 章  数码管显示

编写程序程

C 语言知识:宏( 47页) 宏定义的一般格式:#define 宏名 字符串或数字宏定义就是用宏名代替一个字符串,也就是简单的替换。 不是必须的,但更便于编写、修改、理解程序。

上述宏定义后

P_duan 和 P2 就是等效的,好处是:

读程序时, P_duan 的意义更清晰,表示段码驱动端口的意思。

如果想改为其他端口,只需修改宏定义即可,而不必“修改程序”。

Page 12: 第 3 章  数码管显示

C 语言知识:一维数组( 56页)为了便于访问将同一类型数据的有序集合——数组。数组的定义方式为:类型 数组名 [常数 ];

这两数组均为一组常数定义为 code, 存储在程序存储器 (ROM) 中,定义为 data ,存储在内存中,是不合理的!!

Page 13: 第 3 章  数码管显示

段码表的获取可通过“ LED 段码查询”实现。复

Page 14: 第 3 章  数码管显示

1 2 3 4

A

B

C

D

4321

D

C

B

ATitle

Number RevisionSize

A4

Date: 11-Jul-2012 Sheet of File: D:\C51_JIA_MA\½ÌѧÓõç·ͼ.Ddb Drawn By:

EA/VP31

X119

X218

RESET9

RD17

WR16

INT012 INT113

T014 T115

P101

P112

P123

P134

P145

P156

P167

P178

P00 39

P0138

P02 37

P03 36

P04 35

P0534

P0633

P07 32

P20 21

P2122

P22 23

P2324

P24 25

P25 26

P26 27

P27 28

PSEN 29ALE/P30TXD 11

RXD 10

U1 AT89C51

I11

I22

I33

B44

B55

I66

I77

GN

D9

CO

M9

C8 10O7 12O6 13O5 14O4

15O3 16O217O1 18

I88

U2UNL2803

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED1

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED2

e1

d2

com

3c

4

dp5

b6

a7

com

8

f9

g10

LED3

Q18550

Q28550

Q38550R1 10K

R2 10K

R3 10K

12345678

161514131211109

PR1

100

GND

+5V

Page 15: 第 3 章  数码管显示

动态显示 x的千 /百 /十 /个位

将 x的千 /百/十 /个位的段码存入 nx

[] 中

“取余”

Page 16: 第 3 章  数码管显示

将 x的千 /百/十 /个位的段码存入 nx

[] 中“取余”

填写“显示数组”程序

先整除 再“ %10” 赋值 位x/1000=1 1 nx[0]=1 千

x/100=12 2 nx[1]=2 百

x/10=123 3 nx[2]=3 十

x=1234 4 nx[3]=4 个

X=1234

Page 17: 第 3 章  数码管显示

利用循环语句填写“显示数组”程序及框图

i=0

取出 X的最低位

i<4

?是

X除以 10

i++

i x nx[3-i]=x%10

0 1234 nx[3]=4 个1 123 nx[2]=3 十2 12 nx[1]=2 百3 1 nx[0]=1 千

X=1234

显示数组 :nx[4]={千位 ,百位 ,十位 ,个位 }

否 ☞?

先处理最低位比较方便 ,特别是使用循环语句时,也节省内存 。处理完个位,就可以”舍掉”个位 (除以 10)……

Page 18: 第 3 章  数码管显示

☞ 程序框图

动态显示程序

Page 19: 第 3 章  数码管显示

执行必要的程序

i<4? 否是

先送 i位的段码

再送 i位的位码(扫描 i位)

显示 i位延时

消隐

i+1( 下一位 )

i=0(显示千位) i=0,1,2,3时 ,分别显

示千 /百 /十 /个位

Page 20: 第 3 章  数码管显示

执行必要的程序

i<4? 否是

先送 i位的段码

再送 i位的位码(扫描 i位)

显示 i位延时

消隐

i+1( 下一位 )

i=0(显示千位)

i=4 时,跳出 for循环

执行必要的程序,对于本例,没有任何其他程序,只有动态显示功能

再次进入 for循环——动态显示

Page 21: 第 3 章  数码管显示

执行必要的程序

i<4? 否是

先送 i位的段码

再送 i位的位码(扫描 i位)

显示 i位延时

消隐

i+1( 下一位 )

i=0(显示千位)

虽然送出第 i 位的段码但位码送出之前,仍处于消隐状态,第 i 位不亮。

处于消隐状态 ,所以位的 COM 无效

程序执行到这儿 ,才显示第 i 位的数字

☞ 交换一下会怎样?

动态显示 :必须反复执行

Page 22: 第 3 章  数码管显示

第 i 位的 COM 有效,点亮了第 i 位,而第 i 位的段码没有送出 ,这样就把第( i-1 )的数字瞬间显示在了第i 位上啦,起不到消隐的目的。

程序执行到这儿 ,才将第 i 位的数字显示第 i 位上 ▶视频

这两个“动作”能否交换次序?结论:不可以,这

就是“序”

执行必要的程序

i<4? 否是

再送 i位的段码

先送 i位的位码(扫描 i位)

显示 i位延时

消隐

i+1( 下一位 )

i=0(显示千位)