📄 1.sdi
字号:
,,, ORG 0000H
0000,02 00 30,, JMP BEGIN
,,, ORG 0030H
0030,53 89 F0,BEGIN,BEGIN: ANL TMOD, #0F0H
0033,43 89 00,, ORL TMOD, #00H ;由软件控制的MODE0模式下的定时器0
0036,C3,, CLR C ;C=0
0037,75 30 08,, MOV 30H, #8 ;设置右移次数
003A,74 FF,, MOV A, #0FFH ;A=FFH,设定A中的初始值
003C,13,NEXT1,NEXT1: RRC A ;循环右移一位
003D,F5 90,, MOV P1, A ;输出至P1
003F,75 20 FA,, MOV 20H, #250 ;延时程序执行250次
0042,12 00 59,, CALL DELAY ;调用延时程序
0045,D5 30 F4,, DJNZ 30H, NEXT1
0048,75 31 07,, MOV 31H, #7 ;设置右移次数
004B,F5 90,NEXT2,NEXT2: MOV P1, A ;输出至P1
004D,33,, RLC A ;循环左移一位
004E,75 20 FA,, MOV 20H, #250 ;延时程序执行250次
0051,12 00 59,, CALL DELAY ;调用延时程序
0054,D5 31 F4,, DJNZ 31H, NEXT2 ;左移7次
0057,80 D7,, JMP BEGIN
0059,D2 8C,DELAY,DELAY: SETB TR0 ;启动计时器0,开始计时
005B,75 8C A0,MORE,MORE: MOV TH0 , #0A0H ; 初始计时值高8位设定
005E,75 8A 00,, MOV TL0 , #00 ;初始计时值低5位设定
0061,10 8D 02,NEXT3,NEXT3: JBC TF0 , NEXT4 ;TF0是否为1,是则跳转到NEXT3,并将TF0清0;否则执行下一条指令
0064,80 FB,, JMP NEXT3 ;等待即使时间结束
0066,D5 20 F2,NEXT4,NEXT4: DJNZ 20H , MORE ;延时时间是否结束,
0069,C2 8C,, CLR TR0 ;停止计时器0计时
006B,22,, RET
000E,,, END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -