首页> 单片机教学(产品配套实例试验)  

第7个综合试验:流水灯数字显示综合试验 

该程序运行结果为个位数码管轮流现实012345678

然后十位数码管轮流现实012345678反复循环

P1.0,P1.1, P1.2,P1.3, P1.4,P1.5, P1.6,P1.7, 依次点亮然后轮流点亮

小喇叭不停发出滴答声:

注意该程序配套为我站的51试验板相配套

这里有该程序运行时的视频录像,请点击这里观看录像

LOOP: ; 标号

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

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

SETB P2.2 ;选中p2.2 不使能。 右边的数码管消隐

SETB P2.3 ;选中p2.3 不使能。 右边的数码管消隐

 

MOV P0,#0c0h ;把0c0h送p0口;数码管显示 0

LCALL DELAY ;延时

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

 

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

MOV P0,#0f9h ;把0f9h送p0口;数码管显示 1

LCALL DELAY

MOV P0,#0FFH

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

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

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

LCALL DELAY

MOV P0,#0FFH

 

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#0b0h ;数码管显示 3

LCALL DELAY

MOV P0,#0FFH

 

CLR P1.3

CLR P1.2

CLR P1.1

CLR P1.0

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

LCALL DELAY

MOV P0,#0FFH

 

CLR P1.4

CLR P1.3

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#92H ;数码管显示 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,#82H ; 数码管显示 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,#0f8H ; 数码管显示 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,#80H ; 数码管显示 8

LCALL DELAY

MOV P0,#0FFH

LCALL DELAY

 

MOV P0,#0FFH

MOV P1,#0FFH

 

;程序到此结果为左边的数码管显示0,1,2,3,4,5,6,7,8

;p1.0------------p1.7指示灯依次点亮

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

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

SETB P2.0 ;选中p2.0 不使能。 右边的数码管消隐

SETB P2.1 ;选中p2.1 不使能。 右边的数码管消隐

MOV P0,#0c0h ;把0c0h送p0口;数码管显示 0

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.0

MOV P0,#0f9h ;把0f9h送p0口;数码管显示 1

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.1

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

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.2

 

MOV P0,#0b0h ;数码管显示 3

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.3

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

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.4

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

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.5

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

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.6

MOV P0,#0f8H ; 数码管显示 7

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.7

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

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

MOV P0,#0FFH

MOV P1,#0FFH

;这一段和上一段基本相同, 不同的是右边的数码管依次显示012345678,左边的不亮;

;同时p1口的灯流动显示,下面重新再来新的数字显示:

 

 

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

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

SETB P2.1 ;选中p2.1 不使能。 右边的数码管消隐

SETB P2.3 ;选中p2.3 不使能。 右边的数码管消隐

MOV P0,#0c0h ;把0c0h送p0口;数码管显示 0

LCALL DELAY ;延时

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

 

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

MOV P0,#0f9h ;把0f9h送p0口;数码管显示 1

LCALL DELAY

MOV P0,#0FFH

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

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

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

LCALL DELAY

MOV P0,#0FFH

 

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#0b0h ;数码管显示 3

LCALL DELAY

MOV P0,#0FFH

 

CLR P1.3

CLR P1.2

CLR P1.1

CLR P1.0

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

LCALL DELAY

MOV P0,#0FFH

 

CLR P1.4

CLR P1.3

CLR P1.2

CLR P1.1

CLR P1.0

MOV P0,#92H ;数码管显示 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,#82H ; 数码管显示 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,#0f8H ; 数码管显示 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,#80H ; 数码管显示 8

LCALL DELAY

MOV P0,#0FFH

LCALL DELAY

 

MOV P0,#0FFH

MOV P1,#0FFH

 

;程序到此结果为左边的数码管显示0,1,2,3,4,5,6,7,8

;p1.0------------p1.7指示灯依次点亮

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

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

SETB P2.0 ;选中p2.0 不使能。 右边的数码管消隐

SETB P2.2 ;选中p2.1 不使能。 右边的数码管消隐

MOV P0,#0c0h ;把0c0h送p0口;数码管显示 0

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.0

MOV P0,#0f9h ;把0f9h送p0口;数码管显示 1

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.1

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

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.2

 

MOV P0,#0b0h ;数码管显示 3

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.3

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

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.4

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

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.5

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

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.6

MOV P0,#0f8H ; 数码管显示 7

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

 

CLR P1.7

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

LCALL DELAY

MOV P0,#0FFH

MOV P1,#0FFH

MOV P0,#0FFH

MOV P1,#0FFH

;这一段和上一段基本相同, 不同的是右边的数码管依次显示012345678,左边的不亮;

;同时p1口的灯流动显示:

CLR P1.0

CLR P1.1

CLR P1.2

CLR P1.3

CLR P1.4

CLR P1.5

CLR P1.6

CLR P1.7

LCALL DELAY ;延时

SETB P1.0

SETB P1.1

SETB P1.2

SETB P1.3

SETB P1.4

SETB P1.5

SETB P1.6

SETB P1.7

LCALL DELAY ;延时

CLR P1.0

CLR P1.1

CLR P1.2

CLR P1.3

CLR P1.4

CLR P1.5

CLR P1.6

CLR P1.7

LCALL DELAY ;延时

SETB P1.0

SETB P1.1

SETB P1.2

SETB P1.3

SETB P1.4

SETB P1.5

SETB P1.6

SETB P1.7

LCALL DELAY ;延时

CLR P1.0

CLR P1.1

CLR P1.2

CLR P1.3

CLR P1.4

CLR P1.5

CLR P1.6

CLR P1.7

LCALL DELAY ;延时

SETB P1.0

SETB P1.1

SETB P1.2

SETB P1.3

SETB P1.4

SETB P1.5

SETB P1.6

SETB P1.7

LCALL DELAY ;延时

CLR P1.0

CLR P1.1

CLR P1.2

CLR P1.3

CLR P1.4

CLR P1.5

CLR P1.6

CLR P1.7

LCALL DELAY ;延时

SETB P1.0

SETB P1.1

SETB P1.2

SETB P1.3

SETB P1.4

SETB P1.5

SETB P1.6

SETB P1.7

LCALL DELAY ;延时

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

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

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

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

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

LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时

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

 


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

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

MOV P0,#0f8H ; 数码管显示 7

LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY

MOV P0,#0FFH

 

CLR P1.7

CLR P1.6

CLR P1.5

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

LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY

MOV P0,#0FFH

 

CLR P1.7

CLR P1.6

CLR P1.5

CLR P1.4

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

LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY

MOV P0,#0FFH

 

CLR P1.7

CLR P1.6

CLR P1.5

CLR P1.4

CLR P1.3

MOV P0,#99H ;数码管显示 4
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时

LCALL DELAY

MOV P0,#0FFH

 

CLR P1.7

CLR P1.6

CLR P1.5

CLR P1.4

CLR P1.3

CLR P1.2

MOV P0,#0b0h ;数码管显示 3

LCALL DELAY
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
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

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

LCALL DELAY
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时

MOV P0,#0FFH

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

MOV P0,#0f9h ;把0f9h送p0口;数码管显示 1

CLR P2.6
LCALL DELAY
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
SETB P2.6

MOV P0,#0FFH

 

CLR P1.0

CLR P1.1

CLR P1.2

CLR P1.3

CLR P1.4

CLR P1.5

CLR P1.6

CLR P1.7

CLR P2.6

MOV P0,#0c0h ;把0c0h送p0口;数码管显示 0

LCALL DELAY
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时
LCALL DELAY ;延时

SETB P2.6

MOV P0,#0FFH

LCALL DELAY

 

MOV P0,#0FFH

MOV P1,#0FFH

 

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

 

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

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

MOV R7,#255

NOP

NOP

 

D1:MOV R6,#255

setb p2.4

D2: DJNZ R6,D2

clr p2.4

DJNZ R7,D1

SETB P2.4

RET

END

联系地址:浙江省杭州市拱墅区普金家园11-3-702 徐玮 邮政编码:310015 Email:hificat@163.com xu169@sina.com
电话:0571-85956028 传真:0571-88230070 手机:13185018567 QQ:420951892 MSN:hificat@hotmail.com
杭州电子&计算机工作室 版权所有 COPYRIGHT2003——2007 HangZhou Electron&Computer Studio. All rights reserved