美文网首页单片机
DJNZ 指令练习

DJNZ 指令练习

作者: 南央子 | 来源:发表于2020-04-23 15:35 被阅读0次

    DJNZ 指令练习

    1、假设fosc=12MHz,则一个机器周期为1us,若要求达到10ms延时,

    则: MOV R6,#20 ; 1个机器周期                D2: MOV R7,#249; 1个机器周期                  DJNZ R7,$ ;    2个机器周期                        DJNZ R6,D2;  2个机器周期  t=1+20×(1+249×2+2)=10021μs≈10ms

    2、闪烁灯                                                        在P1.0端口上接一个发光二极管L1,使L1不停一亮一灭,亮0.2S,灭0.2S。(声波发生器——形成频率可调的方波)              ORG1000H                                              START: SETB P1.0                                  LCALL DELAY                                                CLR P1.0                                                  LCALL DELAY                                          SJMP START                                          DELAY: MOV R5,#20                                    D1: MOV R6,#20                                          D2: MOV R7,#249                                   DJNZ R7,$                                                DJNZ R6,D2                                              DJNZ R5,D1                                                RET                                                              END                                                        t=20×[1+(1+249×2+2)×20+2]  =200460μs≈0.2s 

                                 

    3、流水灯                                                        用P1口通过一定时间的延时轮流产生低电平输出 ,以达到发光二极管轮流点亮的效    ORG 0030H                                                MAIN: MOV A,#0FFH                                MOV P1,A  //灭掉所有的灯      MOVA,#0FEH                                        MAIN1: MOV P1,A //开P1.0口的灯      ACALL DELAY                                                RL A        //依次开灯                              SJMP MAIN //循环                              DELAY: MOV 30H,#0FFH                            D1: MOV 31H,#0FFH                              DJNZ 31H,$                                              DJNZ 30H,D1                                              RET                                                                END

    延时t=255(1+255×2+2)=130815μs=0.13s

    相关文章

      网友评论

        本文标题:DJNZ 指令练习

        本文链接:https://www.haomeiwen.com/subject/dhsaihtx.html