0000H
LJMP
MAIN
转主程序
ORG
001BH
LJMP
IT0P
转T1中断服务程序
ORG
1000H
主程序入口
MAIN:
LTB2:
MOV
DPTR,#TAB2
把数据指岩让针移到TAB2位址
CLR
P1.3
猜测是led总开关
MOV
R1,#00H
清空R1
MOV
A,#00H
清空A
DEL1:
MOV
SP,#60H
;设置堆栈指耐茄针
MOV
B,#0AH
;设置中断执行次数
MOV
TMOD,#10H
;选择T1,定时模式,工作方式1
MOV
TL1,#0B0H
;设置低字节计数初值
MOV
TH1,#3CH
;设置高字节计数初值
SETB
TR1
;启动T1开始计时
SETB
ET1
;T1中断允许
SETB
EA
;开全局中断
HERE1:
SJMP
HERE1
;等待
IT0P:
MOV
TL0,#0B0H
MOV
TH0,#3CH
DJNZ
B,LOOP
;非零跳转,在本程序中就是结束
MOV
B,#0AH
;上一句等于零,执行这一句,设置执行次数
MOVC
A,@A+DPTR
;取出偏移后的数据到寄存器A中
MOV
P0,A
;输出
INC
R1
;偏移量自加1
CJNE
R1,#10H,LOOP2
;判断是否全部取出,不相等跳转
MOV
R1,#00H
;上一句相等就清空R1
LOOP2:
MOV
A,R1
;把偏移量赋昌枣察值给A
LOOP:
RETI
;中断结束,返回
TAB2:
DB
7FH,3FH,1FH,0FH,07H,03H,01H,00H
DB
80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH
END
;谢谢观赏
12MHz晶振
定时器50ms一次中断
led500ms亮或灭1个
多看书,多看数据手册对你有好处!
ORG0000H
SJMP
START
ORG
0030H
START:
MOV
A,
#0FEH
先让第一个发光二极管点亮
LOOP:
MOV
P1,
A
从P1口输出到发册凳光二极管
MOV
R1,
#100
延时0.5秒
DEL1:
MOV
R2,
#200
DEL2:
MOV
R3,
#7
DEL3:
DJNZ
R3,
DEL3
DJNZ
R2,
DEL2
DJNZ
R1,
DEL1
RL
A
左移一位,点亮下州橡旅一个发光二极管
LJMP
LOOP
END
这个是我写的跑马灯程序,没如返有左右振荡,自己参考参考加上去吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)