初学单片机该怎么去理解那些程序?

如题所述

先理解各个子程序实验的目的,再慢慢了解每条指令在程序中起到的作用!
如:下面是一个延时子程序,
(汇编)
DELAY:MOV
R0,#20;
LOOP:
MOV
R1,#250;
LOOP1:DJNZ
R1,LOOP1;
DJNZ
R0,LOOP;
RET
先要知道这段程序的作用!延时?是怎么实验延时的.
然后分析:
DELAY:MOV
R0,#20;给R0送20次;
LOOP:
MOV
R1,#250;给R1送250次;
LOOP1:DJNZ
R1,LOOP1;将R1的内容减一不等于零就条转到LOOP1等于零就执行下一条指令
           (意思是说要执行这条指令250次)
DJNZ
R0,LOOP;将R0的内容减一不等于零就条转到LOOP等于零就执行下一条指令
           (把LOOP:
MOV
R1,#250;LOOP1:DJNZ
R1,LOOP1;这两条指令执行20次)
RET
 ;循环结束返回
你认真算一下这段程序一共执行的多少条指令;一共是5000+2条指令;由于执行"DJNZ
"这条指令要两个机械周期!假如晶振为12M那么执行一条需要2us;
这段程序的作用是延时2us*(5000+2)既10MS;
理解程序最好由大到小;
祝你早日成功!
温馨提示:答案为网友推荐,仅供参考
相似回答