⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dzjs01.asm

📁 mcs-51 单片机led灯的控制。适合初学者了解单片机的功能。就这些了
💻 ASM
📖 第 1 页 / 共 3 页
字号:
            add   iasum;
            sacl  iasum;
ia1:
            lacc  iasum;
            sub   timer2;进入中断次数
            bcnd  ib1,LT;
            sacl  iasum;
            lacc  iatimer;
            add   #1;
            sacl  iatimer;
            b     ia1;
ib1:
            lacc  ib;
            abs;
            add   ibsum;
            sacl  ibsum;
ib2:
            lacc  ibsum;
            sub   timer2;进入中断次数
            bcnd  ic1,LT;
            sacl  ibsum;
            lacc  ibtimer;
            add   #1;
            sacl  ibtimer;
            b     ib2;
ic1:
            lacc  ic;
            abs;
            add   icsum;
            sacl  icsum;
ic2:
            lacc  icsum;
            sub   timer2;进入中断次数
            bcnd  uab1,LT;
            sacl  icsum;
            lacc  ictimer;
            add   #1;
            sacl  ictimer;
            b     ic2;
uab1: 
            lacc  uab;
            abs;
            add   uabsum;
            sacl  uabsum;
uab2:
            lacc  uabsum;
            sub   timer2;进入中断次数
            bcnd  CURRENT1,LT;
            sacl  uabsum;
            lacc  uabtimer;
            add   #1;
            sacl  uabtimer;
            b     uab2;           
CURRENT1:            
            lacc  sign;
            bcnd  CURRENT2,NEQ;
            splk  #18198,temp2;
            lt    iatimer;
            mpy   temp2;
            pac;
            sach  ima,2;
            lt    ibtimer;
            mpy   temp2;
            pac;
            sach  imb,2;
            lt    ictimer;
            mpy   temp2;
            pac;
            sach  imc,2;
            lt    uabtimer;
            mpy   temp2;
            pac;
            sach  uabm,2;
            splk  #12500,temp1;
            lacc  temp1;
            rpt   #15;
            subc  timer1;
            sacl  fshow;
            
            lacc  timer1;
            sacl  timer2;
            
            lacc  #0;
            ;sacl  iasum;
            ;sacl  ibsum;
            ;sacl  icsum;
            sacl  iatimer;
            sacl  ibtimer;
            sacl  ictimer;
            sacl  uabtimer; 
            sacl  timer1;
CURRENT2:
            
;phase current feedback normalization:

            lacc  kp;
            sacl  temp;
            lt    sina;
            mpy   temp;
            pac;
            sach  iaref,1;
            lt    sinb;
            mpy   temp;
            pac;
            sach  ibref,1;
            lt    sinc;
            mpy   temp;
            pac;
            sach  icref,1;

            lacc  iaref;
            sub   ia;
            sacl  temp1;
            lt    temp1
            mpy   kpdq;
            pac;
            rpt   #5
            sfr;
            sacl  iadiff;
            bcnd  da1,GT;
            abs;
            sub   PWMPR;
            bcnd  da2,LEQ;
            splk  #-800,iadiff;
            b     da2;
da1:        sub   PWMPR;
            bcnd  da2,LEQ;
            splk  #800,iadiff;
da2:        lacc  iadiff;
            sfr;
            add   pwmpr2;
            sacl  uaref;

            lacc  ibref;
            sub   ib;
            sacl  temp1;
            lt    temp1;
            mpy   kpdq;
            pac;
            rpt   #5;
            sfr;
            sacl  ibdiff;
            bcnd  db1,GT;
            abs;
            sub   PWMPR;
            bcnd  db2,LEQ;
            splk  #-800,ibdiff;
            b     db2;
db1:        sub   PWMPR
            bcnd  db2,LEQ;
            splk  #800,ibdiff;
db2:        lacc  ibdiff;
            sfr;
            add   pwmpr2;
            sacl  ubref;

            lacc  icref;
            sub   ic;
            sacl  temp1;
            lt    temp1;
            mpy   kpdq;
            pac;
            rpt   #5;
            sfr;
            sacl  icdiff;
            bcnd  dc1,GT;
            abs;
            sub   PWMPR;
            bcnd  dc2,LEQ;
            splk  #-800,icdiff; 
            b     dc2;
dc1:        sub   PWMPR;
            bcnd  dc2,LEQ;
            splk  #800,icdiff;
dc2:        lacc  icdiff;
            sfr;
            add   pwmpr2;
            sacl  ucref;

            bldd  uaref,#CMPR1;
            bldd  ubref,#CMPR2;
            bldd  ucref,#CMPR3;
          ldp   #4;
          lacc  sign;
          bcnd  ra2,NEQ;
          splk  #0,t2count;
          splk  #1,sign;
ra2:
         ldp   #4;
         lacc  error;
         bcnd  ra3,EQ;
         splk  #0,enable;
         nop;
         ldp   #225;
         lacc  PADATDIR;
         and   #0f03h;
         sacl  PADATDIR;
ra3:
          ldp   #232;
          lacc  EVIFRA;
          sacl  EVIFRA;
          mar   *,ar7;
          mar   *+;
          lacc  *+;
          lst   #0,*+;
          lst   #1,*;
          clrc  INTM;
          ret;

PDPINT_ISR:
          ldp   #225;
          splk  #0ff00h,PADATDIR;
          ldp   #4;
          splk  #1,error;
          rpt   #50;
          nop;
          in    temp1,UVWERR;
          lacc  temp1;
          and   #0fh;
          sub   #0fh;
          bcnd  PDP1,EQ;
          splk  #1,error;
          b     PDPINTEND;
PDP1:
          lacc  temp1;
          and   #20h;
          sub   #20h;
          bcnd  PDPINTEND,EQ;
          splk  #2,error;
          b     PDPINTEND;
          splk  #3,error;
        ; clrc  INTM;
PDPINTEND:
          nop;
          ret;

DISPLAY:
C0:
        ldp   #4;
        lacc  key;
        add   #1;
        sacl  key;
        sub   #4000;
        bcnd  SHOW,NEQ;
        lacc  error;
        bcnd  CHANGE2,EQ;
        splk  #08h,led00;
        splk  #08h,led01;
        splk  #08h,led02;
        splk  #08h,led03;
        splk  #08h,led04;
        splk  #08h,led05;
        b     CHANGE2;
CHANGE2:
        nop;
        in    temp1,CNCIN1;
        lacc  temp1;
        and   #0f0h;
        sacl  temp1;
        lacc  temp1;
        sub   #0f0h;
        bcnd  C1,NEQ;
        splk  #3000,key;
        b     SHOW;
C1:
        splk  #0,key;
        lacc  temp1;
        and   #010h;
        bcnd  C2,EQ;
        lacc  temp1;
        and   #020h;
        bcnd  C3,EQ;
        lacc  temp1;
        and   #040h;
        bcnd  C4,EQ;
        lacc  temp1;
        and   #080h;
        bcnd  C5,EQ;
        b     SHOW;
C2:
***********press Mode************
        lacc  led20;
        add   #10h;
        sacl  led20;
        sub   #40h;
        bcnd  K10,NEQ;
        splk  #0,led20;
K10:
        lacc  led20;
        bcnd  K11,EQ;
        sub   #10h;
        bcnd  K12,EQ;
        sub   #10h;
        bcnd  K13,EQ;
        sub   #10h;
        bcnd  K14,EQ;
K11:
        splk  #0ah,led00;
        splk  #0ch,led01;
        splk  #05h,led02;
        splk  #08h,led03;
        splk  #00h,led04;
        splk  #00h,led05;
        splk  #06h,led10;
        splk  #00h,led20;
        b     SHOW;
K12:
        splk  #05h,led00;      s
        splk  #10h,led01;      h
        splk  #0fh,led02;
        splk  #0fh,led03;
        splk  #00h,led04;
        splk  #00h,led05;
        splk  #05h,led10;
        b     SHOW;
K13:
        splk  #05h,led00;     s
        splk  #0eh,led01;     e
        splk  #0bh,led02;     t
        splk  #0fh,led03;
        splk  #00h,led04;
        splk  #00h,led05;
        splk  #05h,led10;
        b     SHOW;
K14:
        lacc  error;
        bcnd  SHOW,EQ;
        splk  #08h,led00;
        splk  #08h,led01;
        splk  #08h,led02;
        splk  #08h,led03;
        splk  #08h,led04;
        splk  #08h,led05;
        b     SHOW;
************led flash left 1************
C3:
        lacc  runmode;
        sub   #518;
        bcnd  C32,NEQ;
        lacc  fgive;
        sub   #1;
        sacl  temp;
        lacc  temp;
        sub   #2000;
        bcnd  C31,GEQ;
        splk  #2000,fgive;
        b     C32;
C31:
        lacc  temp;
        sacl  fgive;
C32:
        lacc  led20;
        bcnd  SHOW,EQ;
        sub   #11h;
        bcnd  SHOW,EQ;
        lacc  led20;
        sub   #21h;
        bcnd  K36,EQ;
        lacc  led10;
        sub   #1;
        sacl  led10;
        sub   #3;
        bcnd  K35,LEQ;
        b     SHOW;
K35:
        splk  #05h,led10;
        b     SHOW;
K36:
        lacc  led10;
        sub   #1;
        sacl  led10;
        bcnd  K37,LT;
        b     SHOW;
K37:
        splk  #05h,led10;
        b     SHOW;
*****led value=led value +1****
C4:
        lacc  runmode;
        sub   #518;
        bcnd  C42,NEQ;
        lacc  fgive;
        add   #1;
        sacl  temp;
        lacc  temp;
        sub   #10000;
        bcnd  C41,LT;
        splk  #10000,fgive;
        b     C42;
C41:
        lacc  temp;
        sacl  fgive;
C42:
        lacc  led20;
        bcnd  SHOW,EQ;
        lacc  led10;
        bcnd  K20,EQ;
        sub   #1;
        bcnd  K21,EQ;
        sub   #1;
        bcnd  K22,EQ;
        sub   #1;
        bcnd  K23,EQ;
        sub   #1;
        bcnd  K24,EQ;
        sub   #1;
        bcnd  K25,EQ;
        splk  #5,led10;
        b     SHOW;
K20:
        lacc  led00;
        sub   #0dh;
        bcnd  K20_1,EQ;
        splk  #0dh,led00;
        b     SHOW;
K20_1:
        splk  #0fh,led00;
        b     SHOW;
K21:
        lacc  led01;
        add   #1;
        sacl  led01;
        sub   #10;
        bcnd  K21_1,GEQ;
        b     SHOW;;
K21_1:
        splk  #0,led01;
        b     SHOW;        
K22:  
        lacc  led02;
        add   #1;
        sacl  led02;
        sub   #10;
        bcnd  K22_1,GEQ;
        b     SHOW;
K22_1:
        splk  #0,led02;
        b     SHOW;
K23:    
        lacc  led03;
        add   #1;
        sacl  led03;
        sub   #10;
        bcnd  K23_1,GEQ;
        b     SHOW;
K23_1:
        splk  #0,led03;
        b     SHOW;
K24:
        lacc  led04;
        add   #1;
        sacl  led04;
        sub   #10;
        bcnd  K24_1,GEQ;
        b     SHOW;
K24_1:
        splk  #0,led04;
        b     SHOW;
K25:
        lacc  led05;
        add   #1;
        sacl  led05;
        sub   #10;
        bcnd  K25_1,GEQ;
        b     SHOW;
K25_1:
        splk  #0,led05;
        b     SHOW;
***************press set*************
C5:
        lacc  led20;
        bcnd  SHOW,EQ;
        sub   #10h;
        bcnd  K40,EQ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -