单片机语言求解释,每一行是什么意思,谢谢啊,感激不尽org 0000h sjmp start org 0030hstart: mov a,#0ffh mov p1,a mov a,#0fehloop1: mov p1,a lcall delay rl a cjne a,#07fh,loop1loop2: mov p1,a lcall delay

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 22:05:44
单片机语言求解释,每一行是什么意思,谢谢啊,感激不尽org 0000h    sjmp start    org 0030hstart:  mov a,#0ffh    mov p1,a    mov a,#0fehloop1:  mov p1,a    lcall delay    rl a    cjne a,#07fh,loop1loop2:  mov p1,a    lcall delay

单片机语言求解释,每一行是什么意思,谢谢啊,感激不尽org 0000h sjmp start org 0030hstart: mov a,#0ffh mov p1,a mov a,#0fehloop1: mov p1,a lcall delay rl a cjne a,#07fh,loop1loop2: mov p1,a lcall delay
单片机语言求解释,每一行是什么意思,谢谢啊,感激不尽
org 0000h
sjmp start
org 0030h
start: mov a,#0ffh
mov p1,a
mov a,#0feh
loop1: mov p1,a
lcall delay
rl a
cjne a,#07fh,loop1
loop2: mov p1,a
lcall delay
rr a
cjne a,#0feh,loop2
ljmp start
delay: mov r7,#0ffh
loop: mov r6,#0ffh
djnz r6,$
djnz r7,loop
ret
end

单片机语言求解释,每一行是什么意思,谢谢啊,感激不尽org 0000h sjmp start org 0030hstart: mov a,#0ffh mov p1,a mov a,#0fehloop1: mov p1,a lcall delay rl a cjne a,#07fh,loop1loop2: mov p1,a lcall delay
org 0000h;单片机复位后从这个地址开始执行指令
sjmp start;跳转到标号为start处继续执行
org 0030h;表示标号start的地址
start:mov a,#0ffh;将0ffh这个立即数送累加器A
mov p1,a;将累加器A的数据输出到P0口
mov a,#0feh;将0feh这个立即数送累加器A
loop1:mov p1,a;将累加器A的数据输出到P1口
lcall delay;调用延时子程序
rl a;累加器A的内容左环移1位
cjne a,#07fh,loop1;累加器A的数据与立即数07fh比较,不相等则跳转到标号loop1
;否则继续
loop2:mov p1,a;将累加器A的数据输出到P1口
lcall delay;调用延时子程序
rr a;累加器A的内容右环移1位
cjne a,#0feh,loop2;累加器A的数据与立即数07eh比较,不相等则跳转到标号loop2
;否则继续
ljmp start;跳转到标号start处继续循环运行程序
;延时子程序模块
delay:mov r7,#0ffh;立即数送寄存器r7
loop:mov r6,#0ffh;立即数送寄存器r6
djnz r6,$;r6减1不为0在此行自循环递减,直到r6为0继续
djnz r7,loop;r7减1不为0在跳转到标号loop处循环递减,直到r7为0继续
ret;子程序返回
end;伪指令,编写的程序在这里结束