
0
SJMP
STAR
;程序启动跳转到主程序入口
ORG
3
LJMP
INT0S
跳转到外部中断0入口
ORG
0030H
STAR:MOV
IE,#81H
开启外部中断0和闷肆总中断
MOV
TCON,#1
外部中断0沿触发
MOV
A,#0FEH
累加器复制为FEH
MOV
P3,#0FEH
P3口初始值为FEH
ST1:MOV
P2,A
累加器送P2
ACALL
DELAY
延时
RL
A
累加器循环左移
SJMP
ST1
转移到ST1
INT0S:PUSH
ACC
累加器入栈
MOV
R2,#8
R2赋值为8
LOOP:CLR
A
A清零
MOV
P2,A
A送P2
ACALL
DELAY
延时
MOV
A,#0FFH
A赋值FFH
MOV
P2,A
A送P2
ACALL
DELAY
延时
DJNZ
R2,LOOP
R2减1不为0转LOOP
POP
ACC
Ad出
RETI
这个中断完成P2口8次00和FF数中厅据变换,应该是LED灯闪烁8次。
DELAY:MOV
R7,#250
R7送250
D1:MOV
R6,#250
R6送250
D2:DJNZ
R6,D2
R6减1不为0循环
DJNZ
R7,D1
R7减1不为0循环
RET
大概延时125毫卖罩隐秒。
END
ORG OOH //程序开始START:JB P3.0,LIG //如果P3.0等轿州槐于0,跳转到LIG
CLR P1.0 //赋值迹乎,P1.0=0
SJMP START //跳转到START
LIG: SETB P1.0 //置一,P1.0=1
SJMP START //跳转到START
END //闭友结束
整个程序的作用就是:判断P3.0的状态。如果P3.0=1,则P1.0=1如果P3.0=0,则P1=0。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)