晶振是12M,每个机器周期是1微秒.DJNZ指令占用2个机器周期,NOP占用一个,第四行和第五行之间循环40次,每次循环占3个机器周期,40*3=120微秒,R0=32,120*32=3840微秒,略微估计一下其它指令执行周期.执行到最后一行后把P1.0取反,所以,这是一段P1.0引脚输出一个脉宽为3900微秒的连续方波的程序.