欢迎来到51单片机学习网www.51c51.com  专业致力于8051单片机编程技术推广,(深圳学林电子有限公司)累计5年点击超过500万! 彩色包装效果图 网友来信照登

返回主页xl1000实验仪51论坛单片机教学本站例程 技术资料 软件下载 产品介绍学液晶显示如何购买  

  步进电机xl600实验仪 红外线遥控 c语言集锦自制编程器音响技术品质技术音响网址  更新中..51论坛

 

系列试验之

手把手单片机入门教程

51单片机学习网版权所有

未经同意不得转载

第一个试验:点亮一个发光管第七个试验:流水灯数字显示综合练习
第二个试验:闪烁的发光管第八个试验:小键盘控制的数字显示
第三个试验:认识声音第九个试验:小键盘控制的花样彩灯
第四个试验:小喇叭发出救护车的声音第十个试验:100位计数器
第五个试验:跟我学作加减乘除法第十一个试验:试验14-通信
第六个试验:认识数码管第十二个试验:单片机唱歌---“祝你平安”
部分章节摘自平凡教程)广大用户如有更多编写好的应用源程序欢迎投稿!
 

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

该程序运行结果为个位数码管轮流现实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

 

;程序到此结果为左边的数码管显示012345678

p1.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