第七个试验:流水灯数字显示综合练习----51单片机汇编语言试验教程
2006-11-27 17:01
399 查看
[align=left]该程序运行结果为个位数码管轮流现实0,1,2,3,4,5,6,7,8[/align]
[align=left]然后十位数码管轮流现实0,1,2,3,4,5,6,7,8反复循环[/align]
[align=left]P1.0,P1.1, P1.2,P1.3, P1.4,P1.5, P1.6,P1.7, 依次点亮然后轮流点亮[/align]
[align=left]小喇叭不停发出滴答声:[/align]
[align=left]注意该程序配套为我站的倚天版开发套件:如果是标准版:因他的数码管接法不同。 显示的数字不对。[/align]
[align=left]该程序在本站XP开发套件上调试通过,以下是程序运行在XP版时的照片.(sorry, 照片很模糊)[/align]
![](http://blog.csdn.net/lijuwen/article/details/file:/E:/装机备份/Desktop/单片机教程汇编指令/试验7%20----------流水灯数字显示综合练习_files/IMAGE0064.JPG.jpg)
[align=left]数码管显示数字[/align]
[align=left]注意0为点亮 1 为灭 [/align]
[align=left]代码表的意思和方法参照前面的教程; 注意0为点亮 1 为灭然后我们可以把代码送到P0口,就可以是数码管显示需要的数字; 当然, 必须有位选,因为我们的实验板是动态扫描数码管, 两个8的位选分别是P2.6 P2.7.[/align]
LOOP: ; 标号
CLR P2.6 ;选中p2.6 数码管左边的8字使能
SETB P2.7 ;p2.7不使能。 右边的数码管消隐
MOV P0,#28H ;把28h送p0口;数码管显示 0
LCALL DELAY ;延时
MOV P0,#0FFH ;0ffh 送p0口,数码管清除
CLR P1.0 ;点亮p1.0发光管
MOV P0,#7EH ;把7eh送p0口;数码管显示 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
;程序到此结果为左边的数码管显示0,1,2,3,4,5,6,7,8
;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
[align=left]然后十位数码管轮流现实0,1,2,3,4,5,6,7,8反复循环[/align]
[align=left]P1.0,P1.1, P1.2,P1.3, P1.4,P1.5, P1.6,P1.7, 依次点亮然后轮流点亮[/align]
[align=left]小喇叭不停发出滴答声:[/align]
[align=left]注意该程序配套为我站的倚天版开发套件:如果是标准版:因他的数码管接法不同。 显示的数字不对。[/align]
[align=left]该程序在本站XP开发套件上调试通过,以下是程序运行在XP版时的照片.(sorry, 照片很模糊)[/align]
![](http://blog.csdn.net/lijuwen/article/details/file:/E:/装机备份/Desktop/单片机教程汇编指令/试验7%20----------流水灯数字显示综合练习_files/IMAGE0064.JPG.jpg)
[align=left]数码管显示数字[/align]
[align=left]注意0为点亮 1 为灭 [/align]
显示数字 | 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 |
LOOP: ; 标号
CLR P2.6 ;选中p2.6 数码管左边的8字使能
SETB P2.7 ;p2.7不使能。 右边的数码管消隐
MOV P0,#28H ;把28h送p0口;数码管显示 0
LCALL DELAY ;延时
MOV P0,#0FFH ;0ffh 送p0口,数码管清除
CLR P1.0 ;点亮p1.0发光管
MOV P0,#7EH ;把7eh送p0口;数码管显示 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
;程序到此结果为左边的数码管显示0,1,2,3,4,5,6,7,8
;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
相关文章推荐
- 第八个试验:小键盘控制的数字显示----51单片机汇编语言试验教程
- 第四个试验:小喇叭发出救护车的声音----51单片机汇编语言试验教程
- 第一个试验:点亮一个发光管-----51单片机汇编语言试验教程
- 第二个试验:用单片机点亮一个闪烁的发光管-----51单片机汇编语言试验教程
- 第三个试验:认识单片机发音程序-----51单片机汇编语言试验教程
- 第六个试验:认识数码管扫描程序----51单片机汇编语言试验教程
- 第五个试验:跟我学作单片机运算加减乘除法----51单片机汇编语言试验教程
- 综合练习之--2、MainActivity | Fragment 显示XLV 和 侧滑 vp效果的代码
- 综合练习之--1、复用布局页面显示XLV 和 侧滑 vp效果
- php基础教程之综合练习
- 【原创】DE2 实验练习解答—lab 2:数字和显示(digital Logic)(DE2)
- c# 程序设计及应用教程上机A.2.1————密码输入和显示练习
- C#练习——统计整型数组中不重复数字的个数、将普通日期格式转换成汉字日期格式、在控制台录入每个学生的姓名,当用户输入quit(不区分大小写)时,程序停止接受用户的输入,并且显示出用户输入的学生的个数
- 综合练习之--2、MainActivity | Fragment 显示XLV 和 侧滑 vp效果的代码
- UFT入门教程(4)—综合练习一
- 30章C51学习教程介绍-----51单片机C语言试验教程
- php基础教程之综合练习2
- C51的一些常用资料-----51单片机C语言试验教程
- 脚本练习_当用户输入值为数字时显示 非数字时不显示 输入 end 时退出
- 练习:输入5个数字,取最后一个数字加上中间第二到四个数字,最后加上第一个数字,然后用alert显示出来