完整word版六位LED八段数码管显示doc.docx

上传人:b****5 文档编号:6900323 上传时间:2023-01-12 格式:DOCX 页数:25 大小:25.75KB
下载 相关 举报
完整word版六位LED八段数码管显示doc.docx_第1页
第1页 / 共25页
完整word版六位LED八段数码管显示doc.docx_第2页
第2页 / 共25页
完整word版六位LED八段数码管显示doc.docx_第3页
第3页 / 共25页
完整word版六位LED八段数码管显示doc.docx_第4页
第4页 / 共25页
完整word版六位LED八段数码管显示doc.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

完整word版六位LED八段数码管显示doc.docx

《完整word版六位LED八段数码管显示doc.docx》由会员分享,可在线阅读,更多相关《完整word版六位LED八段数码管显示doc.docx(25页珍藏版)》请在冰豆网上搜索。

完整word版六位LED八段数码管显示doc.docx

完整word版六位LED八段数码管显示doc

 

八段数码管显示

1.实验目的:

(1)了解数码管动态显示的原理。

(2)了解74LS164扩展端口的方法。

2.实验内容:

利用实验仪提供的显示电路,动态显示一行数据。

3.实验线路:

 

PB0数据输入

 

PB1时钟输入

说明:

这里只是显示草图,详细原理参见"8155接口实验"

4.实验器材:

(1)QTH2008下载式综合实验仪1台

(2)QTH2008仿真器1台

(3)计算机1台

5.实验说明:

(1)本实验仪提供了8段码LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。

显示共有6位,用动态方式显示。

8段码是由8155

的PB0、PB1经74LS164“串转并”后输出得到。

6位位码由8155(或8255)的PA0-5

口输出,经uA2003反向驱动后,选择相应显示位。

74LS164是串行输入并行输出转换电路,串行输入的数据位由8155

的PB0

控制,时钟位由8155

的PB1控制输出。

写程序时,只要向数据位地址输出数据,

然后向时钟位地址输出一高一低两个电平就可以将数据位置到

74LS164中,并且

实现移位。

向显示位选通地址输出高电平就可以点亮相应的显示位。

本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通输

出地址为0e101H。

本实验涉及到了8155I0/RAM

扩展芯片的工作原理以及

74LS164器件的工作原理。

(2)七段数码管的字型代码表如下表:

显示字

g

f

e

d

c

b

a

段码

0

0

1

1

1

1

1

1

3fh

1

0

0

0

0

1

1

0

06h

2

1

0

1

1

0

1

1

5bh

3

1

0

0

1

1

1

1

4fh

4

1

1

0

0

1

1

0

66h

5

1

1

0

1

1

0

1

6dh

6

1

1

1

1

1

0

1

7dh

 

7

0

0

0

0

1

1

1

07h

8

1

1

1

1

1

1

1

7fh

9

1

1

0

1

1

1

1

6fh

A

1

1

1

0

1

1

1

77h

b

1

1

1

1

1

0

0

7ch

C

0

1

1

1

0

0

1

39h

d

1

0

1

1

1

1

0

5eh

E

1

1

1

1

0

0

1

79h

F

1

1

1

0

0

0

1

71h

6.程序框图:

 

7.参考程序(SY10.ASM):

OUTBITequ0e101h;位控制口

CLK164equ0e102h;段控制口(接164时钟位)DAT164equ0e102h;段控制口(接164数据位)

INequ0e103h;键盘读入口

LEDBufequ60h;显示缓冲

Numequ70h;显示的数据

DelayTequ75h

org0000h

ljmpStart

LEDMAP:

;八段管显示码

db3fh,06h,5bh,4fh,66h,6dh,7dh,07h

db7fh,6fh,77h,7ch,39h,5eh,79h,71h

Delay:

;延时子程序

movr7,#0

DelayLoop:

djnzr7,DelayLoop

 

djnzr6,DelayLoop

ret

DisplayLED:

movr0,#LEDBuf

movr1,#6;共6

 

个八段管

movr2,#00100000b;从左边开始显示

Loop:

movdptr,#OUTBIT

mova,#00h

movx@dptr,a;关所有八段管

mova,@r0

movB,#8;送164

DLP:

rlca

movr3,a

movacc.0,c

ANLA,#0FDH

movdptr,#DAT164

movx@dptr,a

movdptr,#CLK164

orla,#02h

movx@dptr,a

anla,#0fDh

movx@dptr,a

mova,r3

djnzB,DLP

movdptr,#OUTBIT

mova,r2

movx@dptr,a;显示一位八段管

movr6,#1

callDelay

mova,r2;显示下一位

rra

movr2,a

incr0

djnzr1,Loop

movdptr,#OUTBIT

mova,#0

movx@dptr,a;关所有八段管

ret

Start:

movdptr,#0e100h

mova,#03h

movx@dptr,a

movsp,#40h

 

movNum,#0

MLoop:

incNum

mova,Num

movb,a

movr0,#LEDBuf

FillBuf:

mova,b

anla,#0fh

movdptr,#LEDMap

movca,@a+dptr;数字转换成显示码

mov@r0,a;显示在码填入显示缓冲

incr0

incb

cjner0,#LEDBuf+6,FillBuf

movDelayT,#30

DispAgain:

callDisplayLED;显示

djnzDelayT,DispAgain

ljmpMLoop

END

 

八位数码管显示:

8155控制

参考程序2:

对8155初始化,使I/O口控制LED的显示情况。

ORG

0000H

MOV

DPTR,#4400H

;指向

8155命令寄存器

MOV

A,#03H

MOVX

INC

@DPTR,ADPTR

;写入控制字。

A口、B口为输出,

;指向8155A口

C口为输入

MOV

A,#00H

MOVX

@DPTR,A

;向A口写入00H,

;输出选中所有8个

 

LED

INC

DPTR

;指向

8155B

MOV

A,#0FFH

MOVX

@DPTR,A

;向

B口写入某个字型

码,输出点亮

8

LED

SJMP$

 

8155控制8位数码管和键盘电路图

 

1

P1.0

P0.0

39

2

P1.1

P0.

38

3

1

37

4

P1.2

P0.2

36

P1.3

P0.3

5

P1.4

P0.4

35

6

P1.5

P0.5

34

7

P1.6

P0.6

33

8

32

13

P1.7

P0.7

21

INT1

P2.0

12

INT0

8031

P2.1

22

15

P2.2

23

T1

P2.3

24

14

25

T0

P2.4

P2.5

26

31

27

EA/VP

P2.6

28

19

X1

P2.7

18

X2

9

RESET

RXD

10

17

TXD

11

RD

30

16

ALE/P

29

WR

PSEN

WR

 

12

AD0

PA0

21

13

22

AD1

PA1

14

23

AD2

PA2

15

24

AD3

PA3

16

25

AD4

PA4

17

AD5

PA5

26

18

AD6

PA6

27

19

AD7

PA7

28

PB0

29

8

30

CE

PB1

9

8155

31

RD

PB2

10

WR

PB3

32

接8031P227

33

IO/M

PB4

11

34

ALE

PB5

接8031ALE

PB6

35

6

TMROUT

PB7

36

37

PC0

38

3

PC1

TMRIN

PC2

39

1

PC3

4

RESET

PC4

2

PC5

5

接8031RESET

 

3

D0

Q0

2

11

D0

A0

10

4

5

12

9

D1

Q1

D1

A1

7

D2

Q2

6

13

D2

A2

8

8

3

9

15

7

D3

Q3

D3

A3

13

D4

7

Q4

12

16

D4

A4

6

14

3

15

17

5

D5

S

Q5

D5

A5

17

L

16

18

4

D6

4

Q6

D6

A6

18

D7

7

Q7

19

19

D7

A7

3

1

A8

25

OE

A9

24

11

21

LE

P20

A10

23

P21

6264

A11

2

P22

A12

P23

OE

22

接8031RD

P24

WE

27

接8031WR

CS2

26

CS1

20

P251

A

Y0

15

VCC

P262

8

14

P273

B

Y1

13

C

3

Y2

12

1

Y3

S

11

4

L

Y4

4

Y5

10

5

E17

9

E2

Y6

6

E3

Y7

7

VCC

 

8

×

0

0

2

 

p

gf

edcba

d

 

0

1

2

3

4

5

6

7

PC0

0

1

2

3

5.1k×4

PC14

5

6

7

PC2

8

9

10

11

12

13

14

15

PC3

PA0~PA7

VCC

 

2)多位动态显示接口应用采用8051与8155接口,再采用8155的I/O口控制数码管的段码

和位码,同时,采用动态扫描方式依次循环点亮各位数码管,即可构成多位动态数码管显示

电路。

整体设计思路如下:

由8155的A口控制段码输出,C口控制位码输出。

采用定时器中断方式实现动态扫描,

每隔20ms扫描一次,每位数码管点亮的时间为1ms。

在单片机内部RAM设置待显示数据

缓冲区,由查表程序完成显示译码。

将缓冲区内待显示数据转换成相应的段码,再将段码通过8051的P0口送至8155的A

口;位码数据由累加器循环左移指令产生,再通过P0口送至8155的C口。

硬件电路设计如下:

上图为数码管动态显示电路。

其中,8路驱动采用74LS244总线驱动器,6路驱动采用

74LS07OC门驱动器。

74LS244输出经300上拉(或限流)电阻后接至电源,同时,接至

数码管的各段,控制数码管的显示字符。

74LS07输出经1k上拉电阻接至电源,同时接至各位数码管的公共端,控制每位数码管的显示时间,实现动态扫描。

模拟生产线计数的按键信号接至P3.3口。

六位实现6位显示的秒表:

从左到右每2位LED分别显示小时、分和秒,

并正常计数进位;上电后小时000000,当显示到235959后,6位显示清零,从头开始显

示。

 

300

×8

1

P1.0

P0.0

39

12

AD0

PA0

21

2

1A1

1Y1

18

2

38

13

22

4

16

P1.1

P0.1

AD1

PA1

1A2

1Y2

3

37

14

23

6

14

P1.2

P0.2

AD2

PA2

1A3

1Y3

4

36

15

24

8

12

P1.3

P0.3

AD3

PA3

1A4

1Y4

5

35

16

25

P1.4

P0.4

AD4

PA4

9

6

34

17

26

11

P1.5

P0.5

AD5

PA5

2A1

2Y1

7

33

18

27

13

7

P1.6

P0.6

AD6

PA6

2A2

2Y2

8

32

19

28

15

5

P1.7

P0.7

AD7

PA7

2A3

2Y3

+5V

1k

PB

17

2A4

2Y4

3

13

INT1

P2.0

21

29

PB

12

INT0

P2.1

22

8

CE

0

30

1

1G

74LS244

PB

T

8031

P2.2

23

9

RD

8155

1

31

19

2G

W

PB

15

T

P2.3

24

10

2

32

R

PB

14

1

P2.4

25

7

3

33

0

IO/M

PB

P2.5

26

11

ALE

4

34

31

PB

1k

×6

EA/VP

P2.6

27

5

35

PB

P2.7

28

TMROU

6

36

1

1A

1Y

2

19

X1

6

7

3

4

2A

2Y

18

X2

T

PC

37

5

6

PC

3A

3Y

RESE

TMRI

0

38

9

4A

4Y

8

9

PC

RXD

10

3

1

39

11

5A

5Y

10

T

N

PC

TXD

11

2

1

13

6A

6Y

12

17

RD

ALE/P

30

PC

2

RESE

3

74LS07

16

W

PSEN

29

4

PC

5

R

T

4

5

 

+5V

 

1

a

DPY

1

a

DPY

1

a

DPY

1

a

DPY

1

a

DPY

1

a

DPY

2

b

a

2

b

a

2

b

a

2

b

a

2

b

a

2

b

a

3

cf

g

b

3

cf

g

b

3

cf

g

b

3

cf

g

b

3

cf

g

b

3

cf

g

b

4

d

4

d

4

d

4

d

4

d

4

d

5

ee

d

c

5

ee

d

c

5

ee

d

c

5

ee

d

c

5

ee

d

c

5

ee

d

c

6

f

6

f

6

f

6

f

6

f

6

f

7

g

dp

7

g

dp

7

g

dp

7

g

dp

7

g

dp

7

g

dp

8

dp

8

dp

8

dp

8

dp

8

dp

8

dp

 

软件设计如下:

以单片机内部RAM的30H~35H单元作为显示数据缓冲区,六位数码管段码的获

取及每位数码管的显示时间均由显示子程序完成。

采用定时器中断方式实现动态扫描,每隔

50ms扫描一次,每位数码管点亮的时间为1ms。

单片机每接收一次按键信号(即模拟交通灯改变计数信号),显示缓冲区的待显示数据被刷新一次,数码管相应的显示数值也就随之发生变化。

如连续按键进行测试,即可产生计数数据从左至右循环移动的效果。

根据图中

IO/、与单片机的连接可知,可以确定命令/状态字A口、B口、C口、计数值低8位寄存器及高6位和方式寄存器地址分别为:

0100H、0101H、0102H、0103H、0104H、0105H。

片内资源分配如下表:

名称

地址分配

用途

初始化值

MSEC

20H

定时器50MS计数单元

14H

SECOND

21H

秒计数单元

00H

MIN

22H

分计数单元

00H

HOUR

23H

小时计数单元

00H

显示缓冲区

30H:

秒的个位

31H:

秒的十位

30H—35H

32H:

分的个位

00H

33H:

分的十位

34H:

小时的个位

35H:

小时的十位

40H以上

堆栈区

软件流程图如下页图所示:

 

主程序:

MSEC

EQU

20H

;50MS计数单元

SECONDEQU

21H

;秒单元

MIN

EQU

22H

;分单元

HOUR

EQU

23H

;小时单元

ORG

0000H

LJMP

MAIN

ORG

000BH

LJMP

CONT

MAIN:

MOV

SP,#3FH

MOV

TMOD

#01H

MOV

TH0,#3CH

MOV

TL0,#0B0H

MOV

IE,#82H

MOV

SECOND,

#00H

MOV

MIN,

#00H

MOV

HOUR,

#00H

MOV

MSEC,

#14H

MOV

35H,

#00H

MOV

34H,

#00H

MOV

33H,

#00H

MOV

32H,

#00H

MOV

31H,

#00H

MOV

30H,

#00H

SETB

TR0

START:

LCALL

DISP

SJMP

START

;LED动态显示子程序

;功能:

动态显示六个数码管

;入口:

显示缓冲区30H—35H中待显示的6个数据

DISP:

MOV

R0,#30H

;显示缓冲区首址

MOV

R7,#00H

;设定每位显示延时时间

MOV

R2,#06H

;显示位数

MOV

R3,#20H

;共阳管位码初始值,从右端先亮

MOV

A,@R0

;取显示缓冲区的一个数据

DISP1:

MOV

DPTR,#TAB

;查表首址给

DPTR

MOVC

A,@A+DPTR

;查表得到显示字符的字型码

MOV

P0,A

;将字型码送

P0口

MOV

DPTR,

#0101H

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

当前位置:首页 > 人文社科

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

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