编程点亮一个发光二极管并使之闪烁

编程点亮一个发光二极管并使之闪烁,第1张

ORG 0000H程序开始

LJMP MAIN

ORG 030H

MAIN:MOV P0,#00H

MOV P1,#00H

MOV P2,#00H

MOV P3,#00H

lcall del

MOV P0,#0FFH

MOV P1,#0FFH

MOV P2,#0FFH

MOV P3,#0FFH

AJMP MAIN

DEL: MOV R7,#0FH延时子程序

DEL1:MOV R6,#0FFH

DJNZ R6,$

DJNZ R7,DEL1

RET

END

;这个是P0,口和P1口 ...P3口闪烁的,你稍微改动一下让其中一个口中的一个管脚变化电平就成。

程序:

ORG

0000H

LJMP

MAIN

ORG

4000H

MAIN:MOV

R5,#04H

LOOP:MOV

R1,#00H

MOV

A,#0FEH

L1:MOV

P1,A

LCALL

DELAY

RL

A

INC

R1

CJNE

R1,07H,L1

MOV

R2,#00H

MOV

A,#01H

L2:MOV

P1,A

LCALL

DELAY

RR

A

INC

R2

CJNE

R2,07H,L2

DJNE

R5,LOOP

DELAY:MOV

R6,#02H

D1:MOV

R7,#0FFH

D2:DJNZ

R7,D2

DJNE

R6,D1

RET

END

电路

连接灯的阴极至P1口上即可,复位和震荡电路不需要我说了吧

说明一下,延时时间不准确,不过基本接近1ms的

t=(256*2+1)*2+1+2=1028

如果想做到精确延时的话建议在DELAY中使用NOP指令调理,自己试一下吧

最好是用Keil仿真一下确定延时时间。

很久没有汇编了,仔细检查一下,估计有Bug也不一定。

如图,只要P1.1输出低电平,发光二极管就会导通发光。串联300欧姆电阻

完整程序:

#include<reg52.h>

sbit P11=P1^1

main()

{P11=0}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11113386.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存