新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 试验7--------流水灯数字显示综合练习

试验7--------流水灯数字显示综合练习

作者:时间:2011-02-25来源:网络收藏
程序运行结果为个位数码管轮流现实012345678,然后十位数码管轮流现实012345678反复循环,P1.0,P1.1, P1.2,P1.3, P1.4,P1.5, P1.6,P1.7, 依次点亮然后轮流点亮,小喇叭不停发出滴答声:

数码管显示数字

注意0为点亮 1 为灭

显示数字

p0.7

p0.6

p0.5

p0.4

p0.3

p0.2

p0.1

p0.0

16进制代码

0

0

0

1

0

1

0

0

0

28H

1

0

1

1

1

1

1

1

0

7EH

2

1

0

1

0

0

0

1

0

A2H

3

0

1

1

0

0

0

1

0

62H

4

0

1

1

1

0

1

0

0

74H

5

0

1

1

0

0

0

0

1

61H

6

0

0

1

0

0

0

0

1

21H

7

0

1

1

1

1

0

1

0

7AH

8

0

0

1

0

0

0

0

0

20H

9

0

1

1

0

0

0

0

0

60H

代码表的意思和方法参照前面的教程;注意0为点亮 1 为灭然后我们可以把代码送到P0口,就可以是数码管显示需要的数字;当然,必须有位选,因为我们的实验板是动态扫描数码管,两个8的位选分别是P2.6 P2.7.

LOOP: 标号

CLR P2.6 ;选中p2.6 数码管左边的8字使能

SETB P2.7 p2.7不使能。右边的数码管消隐

MOV P0,#28H ;把28hp0口;数码管显示0

LCALL DELAY ;延时

MOV P0,#0FFH 0ffh p0口,数码管清除

CLR P1.0 ;点亮p1.0发光管

MOV P0,#7EH ;把7ehp0口;数码管显示1

LCALL DELAY

MOV P0,#0FFH

CLR P1.1 ;点亮p1.0发光管

CLR P1.0 ;点亮p1.0发光管

MOV P0,#0A2H ;数码管显示2

LCALL DELAY

MOV P0,#0FFH

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#62H ;数码管显示3

LCALL DELAY

MOV P0,#0FFH

CLR P1.3

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#74H ; ;数码管显示4

LCALL DELAY

MOV P0,#0FFH

CLR P1.4

CLR P1.3

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#61H ;数码管显示5;

LCALL DELAY

MOV P0,#0FFH

CLR P1.5

CLR P1.4

CLR P1.3

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#21H ; 数码管显示6

LCALL DELAY

MOV P0,#0FFH

CLR P1.6

CLR P1.5

CLR P1.4

CLR P1.3

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#7AH ; 数码管显示7

LCALL DELAY

MOV P0,#0FFH

CLR P1.7

CLR P1.6

CLR P1.5

CLR P1.4

CLR P1.3

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#20H ; 数码管显示8

LCALL DELAY

MOV P0,#0FFH

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

;程序到此结果为左边的数码管显示012345678p1.0------------p1.7指示灯依次点亮

SETB P2.6 左边的8消隐

CLR P2.7 ;选中p2.7 数码管右边的8字使能,;

MOV P0,#28H

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.0

MOV P0,#7EH

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.1

MOV P0,#0A2H

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.2

MOV P0,#62H

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.3

MOV P0,#74H

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.4

MOV P0,#61H

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.5

MOV P0,#21H

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.6

MOV P0,#7AH

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

CLR P1.7

MOV P0,#20H

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

MOV P0,#0FFH

MOV P1,#0FFH

;这一段和上一段基本相同,不同的是右边的数码管依次显示012345678,左边的不亮;;同时p1口的灯流动显示:

AJMP LOOP注意:程序运行到此跳转到开始标号,重复执行:

DELAY: ;延时子程序;参考前面的教程:

CLR P3.3 ;注意小喇叭在3.3口,这里可以使小喇叭发出嗒,嗒声

MOV R7,#255

NOP

NOP

D1:MOV R6,#255

setb p3.3

D2: DJNZ R6,D2

clr p3.3

DJNZ R7,D1

SETB P3.3

RET

END



评论


相关推荐

技术专区

关闭