51单片机的一个简单程序

51单片机的一个简单程序,第1张

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:

MOV A,P0

ANL A,#1EH

CJNE A,#02H,MAIN1

SETB P1.1

CLR P1.2

CLR P1.8

SJMP MAIN

MAIN1:

CJNE A,#04H,MAIN2

CLR P1.1

SETB P1.2

CLR P1.8

SJMP MAIN

MAIN2:

CJNE A,#1EH,MAIN3

CLR P1.1

CLR P1.2

SETB P1.8

SJMP MAIN

MAIN3:

CLR P1.1

CLR P1.2

CLR P1.8

LJMP MAIN

END

可以修改为以下状态

ORG 0000H

LJMP MAIN

ORG 0030H

MAIN:

MOV P2,#0

LOOP:

MOV R2,#6

MOV A,#01H

LOOP1:

MOV P2,A

LCALL DELAY

DJNZ R2,LOOP1

SJMP LOOP

DELAY:

MOV R7,#0

DLY:

MOV R6,#0

DJNZ R6,$

DJNZ R7,DLY

RET

END(1)修改的程序就只用了P2口,其余未处理,原程序用其余口,应该有其他条件

(2)一次置0就可以了,从程序看是高有效。

(3)main中的lcall delay只是延时约130毫秒左右

(4)如果要控制灯清运亮的间隔,一是改变lcall delay指令的数目 二是改变delay 中的r7或R6的值

(5)改变间隔时间最好的方法是加传递参数,延时程序稍加修改就可以让慧。

(6)tt这只是一个标号,含与延时函数中

(7)delay延迟的时间的计算按指令执行坦正答周期和循环次数就可以计算了

(8)p2口有8个引脚,而实验单片机电路板只有6个灯,所以上面程序稍稍做了修改。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存