打印

51单片机系列之一:闪烁灯

[复制链接]
1720|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
十年砍柴|  楼主 | 2010-8-20 19:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
51单片机系列之一:闪烁灯
一、设计任务
1、如图1,做单个灯的闪烁,在P1.0端口接一个发光二极管的D1,使D1不停地一亮和一灭,时间间隔大约为0.125秒。
2、如图2,做一个流水灯的设计,在P0.0端口分别对应接上8LED灯(在此,每个端口接上了3个灯),使这8个灯循环亮灭:P0.0P0.1P0.2—……—P0.7
3做完上面两个了,现在来设计任意灯的点亮。如图所示。
二、电路原理图

          1:单个发光二极管不停的闪烁

          2:
8
个流水灯循环点亮


         3——136灯亮

         3——2: 56灯亮
三、设计程序
//单片机89C51p1.0口接一个闪光的二极管(设计1

org 0h


ljmp main


org 30h

main: clr
p1.0


acall delay


setb p1.0


acall delay


sjmp main

delay:mov R7,#250

d1 :mov R6,#250



djnz R6,$


djnz R7,d1


ret


end


//单片机89C51P0口接上8个灯,使这8个灯循环点亮(设计2
START: MOV ACC,#0FEH

MOV
P0,ACC


MOV
R0,7

LOOP1: RL A

MOV P0,ACC


ACALL DELAY


DJNZ R0,LOOP1


AJMP START

DELAY: MOV R0,255

L1:
MOV R1,255


DJNZ R1,$


DJNZ R1,$


DJNZ R0,L1



RET

END

//任意灯的点亮(设计3
START: MOV ACC,#7EH
;1
8灯亮


MOV P0,ACC


ACALL DELAY




MOV ACC,#0BDH
;2
7灯亮


MOV P0,ACC


ACALL DELAY




MOV ACC,#0DBH
;3
6灯亮


MOV P0,ACC


ACALL DELAY




MOV ACC,#0E7H
;4
5灯亮


MOV P0,ACC


ACALL DELAY



MOV ACC,#0FCH
;1
2灯亮


MOV P0,ACC


ACALL DELAY



MOV ACC,#0F3H
;3
4灯亮


MOV P0,ACC


ACALL DELAY





MOV ACC,#0CFH
;5
6灯亮


MOV P0,ACC


ACALL DELAY



MOV ACC,#3FH
;7
8灯亮


MOV P0,ACC


ACALL DELAY




AJMP START


DELAY: MOV R0,255

L1:
MOV R1,255


DJNZ R1,$


DJNZ R1,$


DJNZ R1,$



DJNZ R0,L1



RET

END

相关帖子

沙发
autopccopy| | 2010-8-20 21:15 | 只看该作者
我是爱好者,觉得汇编太难理解和维护了,觉得了解就行,用C会轻松得多! :)

使用特权

评论回复
板凳
hotpower| | 2010-8-20 22:50 | 只看该作者
SP都不设置???估计要误导一些菜鸟

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:岂能尽如人意,但求无愧于心!

0

主题

11

帖子

1

粉丝