新闻| 论坛| 博客| 在线研讨会
51单片机系列之一:闪烁灯
十年砍柴| 2010-07-04 16:05:09 阅读:992 发布文章

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 ;18灯亮

MOV P0,ACC

ACALL DELAY

MOV ACC,#0BDH ;27灯亮

MOV P0,ACC

ACALL DELAY

MOV ACC,#0DBH ;36灯亮

MOV P0,ACC

ACALL DELAY

MOV ACC,#0E7H ;45灯亮

MOV P0,ACC

ACALL DELAY

MOV ACC,#0FCH ;12灯亮

MOV P0,ACC

ACALL DELAY

MOV ACC,#0F3H ;34灯亮

MOV P0,ACC

ACALL DELAY

MOV ACC,#0CFH ;56灯亮

MOV P0,ACC

ACALL DELAY

MOV ACC,#3FH ;78灯亮

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

注意:由于Proteus 图纸不能正常显示,如有需要,联系QQ:646038584

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客