有没有会把下面代码解释并用C51写的大佬,我新手求参考答案
ORG 0000HLJMP MAIN
ORG 0050H
MAIN: MOV P2,#00H
LCALL DELAY
MOV A,#0FEH
LOOP: MOV P2,A
LCALL DELAY
RL A
AJMP LOOP
DELAY: MOV R5,#20
D1: MOV R6,#20
D2: MOV R7,#250
HERE: DJNZ R7,HERE
DJNZ R6,D2
DJNZ R5,D1
RET
END
这是个从左往右的流水灯,根据延迟时间(晶振12),8盏灯依次从左到右亮,重复这个过程 没有测试环境,没办法调试,不知道对不对
#include <stdint.h>
static uint8_t rol(uint8_t data) {
return (data << 1) | (data & 0x80 ? 1 : 0);
}
static void delay(void) {
for(uint8_t i = 0; i < 20; ++i)
for(uint8_t j = 0; j < 20; ++j)
for(uint8_t k = 0; k < 250; ++k)
;
}
int main(void) {
P2 = 0x00;
delay();
for(uint8_t i = 0xfe; ; i = rol(i)) {
P2 = i; delay();
}
return 0;
}
人造人 发表于 2021-5-10 20:29
没有测试环境,没办法调试,不知道对不对
谢谢
页:
[1]