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

📄 t1.asm

📁 风扇电机
💻 ASM
📖 第 1 页 / 共 3 页
字号:
     netp:jc ok
          ljmp stop ;i>ka0_i
      pan:jc ok ;i<ka0_i
          ljmp stop ;i>ka0_i
       ok:
          setb rs0
          mov r5,#00h
          clr rs0
          clr tf_250ms
          ljmp ek
     STOP:setb ka0       ;断KA0
          clr red_lam1   ;报警
;          clr gre_lam1   ;提示检测结束
;          setb red_lam2
;          setb red_lam3
;          setb red_lam4
;          setb red_lam5
          ljmp waitsign  ;等待复位信号
;*********************************************************
;**********第三工作段正常运转电流检测************************
;*********************************************************
;**************  part_1 *************************
 mission3:nop
          clr ka2
          lcall delay
          nop
          clr part_stad
          mov menu_ge,#02h        ;part3
          mov menu_shi,#00h
          mov par_qian,#00h
          mov par_bai,#00h
          mov par_shi,#00h
          mov par_ge,#00h
          lcall INI7219
          lcall DISP_part
          setb rs0
          mov r5,#00h
          mov r6,#0fh
          mov r7,#01h
          clr rs0
          clr times_up
   waitsi:jnb times_up,waitsi
          mov a,ka2_time
          anl a,#0fh
          mov 30h,a        ;个位
          mov a,ka2_time
          anl a,#0f0h
          swap a
          mov b,#10
          mul ab
          add a,30h         ;将时间转换为二进制数
          setb rs0
          mov r5,#00h
          mov r6,#00h
          mov r7,a
          clr rs0
          clr times_up    ;时间标志
          clr tf_250ms
          clr tf_test_sign
     ekp1:clr ka2
   realck:jb tf_250ms,ad_map1
          jnb times_up,chesignp1
          setb ka2      ;合格
          nop
          nop
          nop
          ljmp mission3_p2
chesignp1:jb low_batten,cdj2
          jb action_stad,cr1
          jb l_act,ssic1
          ljmp cancel
    ssic1:jnb r_act,ekp1
          ljmp cancel
      cr1:jb r_act,ssid1
          ljmp cancel
    ssid1:jnb l_act,ekp1
          ljmp cancel
     cdj2:lcall delay
          jnb low_batten,chesignp1
          ljmp low_test
;**************************************************
;********A/D转换并换算出相应电流值的BCD码R4/R5
;**************************************************
  ad_map1:mov ad_chanel,#chanel_0
          lcall adf                ;转换出电流值BCD码
;**********************************************************************
;***********************************************************************
;         比较电流是否超设定值
;***********************************************************************
          mov a,r4
          anl a,#0f0h
          swap a
          mov par_qian,a
          mov a,r4
          anl a,#0fh
          mov par_bai,a
          mov a,r5
          anl a,#0f0h
          swap a
          mov par_shi,a
          mov a,r5
          anl a,#0fh
          mov par_ge,a
          mov menu_ge,#02h        ;part3
          mov menu_shi,#00h
          lcall INI7219
          lcall DISP_part
          mov a,r4
          cjne a,ka2_imax_msb,panp1
          mov a,r5
          cjne a,ka2_imax_lsb,netpp1
          sjmp okp1   ;i=ka2_imax
     netpp1:jc okp1   ;i<ka2_imax
          ljmp stopp1 ;i>ka2_imax
      panp1:jc okp1   ;i<ka2_imax
          ljmp stopp1 ;i>ka2_imax
     okp1:mov a,r4
          cjne a,ka2_imin_msb,panp1c
          mov a,r5
          cjne a,ka2_imin_lsb,netpp1c
          sjmp okp1c    ;i=ka2_imin
     netpp1c:jnc okp1c  ;i>ka2_imin
          clr red_lam3
          setb part_stad
          ljmp okp1ca
;          ljmp stopp1   ;i<ka2_imin
      panp1c:jnc okp1c  ;i>ka2_imin
          clr red_lam3
          setb part_stad
          ljmp okp1ca
;          ljmp stopp1   ;i<ka2_imin
    okp1c:setb red_lam3
          setb rs0
          mov r5,#00h
          clr rs0
          clr tf_250ms
;          clr line_stad
          ljmp ekp1
   okp1ca:setb rs0
          mov r5,#00h
          clr rs0
          clr tf_250ms
;          setb line_stad
          ljmp ekp1
     stopp1:setb ka2       ;断KA2
          clr red_lam3   ;报警
          setb part_stad
          nop
          nop
;**************** part_2 *****************
;*****************************************
  mission3_p2:clr ka3
          NOP
          NOP
          NOP
          mov menu_ge,#03h        ;part4
          mov menu_shi,#00h
          mov par_qian,#00h
          mov par_bai,#00h
          mov par_shi,#00h
          mov par_ge,#00h
          lcall INI7219
          lcall DISP_part
          setb rs0
          mov r5,#00h
          mov r6,#0fh
          mov r7,#01h
          clr rs0
          clr times_up
  waitsi1:jnb times_up,waitsi1
          mov a,ka3_time
          anl a,#0fh
          mov 30h,a        ;个位
          mov a,ka3_time
          anl a,#0f0h
          swap a
          mov b,#10
          mul ab
          add a,30h         ;将时间转换为二进制数
          setb rs0
          mov r5,#00h
          mov r6,#00h
          mov r7,a
          clr rs0
          clr times_up    ;时间标志
          clr tf_250ms
     ekp2:clr ka3
;          jb arlarm,csan1
;          clr gre_lam1        ;电容两端没有电压检测完成
;          setb ka3
;          ljmp waitsign
;    csan1:
          jb tf_250ms,ad_map2
          jnb times_up,chesignp2
          setb ka3      ;合格
          ljmp mission3_p3
chesignp2:jb low_batten,cdj3
          jb action_stad,cr2
          jb l_act,ssic2
          ljmp cancel
    ssic2:jnb r_act,ekp2
          ljmp cancel
      cr2:jb r_act,ssid2
          ljmp cancel
    ssid2:jnb l_act,ekp2
          ljmp cancel
     cdj3:lcall delay
          jnb low_batten,chesignp2
          ljmp low_test
;**************************************************
;********A/D转换并换算出相应电流值的BCD码R4/R5
;**************************************************
  ad_map2:mov ad_chanel,#chanel_0
          lcall adf                ;转换出电流值BCD码
;**********************************************************************
;***********************************************************************
;         比较电流是否超设定值
;***********************************************************************
          mov a,r4
          anl a,#0f0h
          swap a
          mov par_qian,a
          mov a,r4
          anl a,#0fh
          mov par_bai,a
          mov a,r5
          anl a,#0f0h
          swap a
          mov par_shi,a
          mov a,r5
          anl a,#0fh
          mov par_ge,a
          mov menu_ge,#03h        ;part4
          mov menu_shi,#00h
          lcall INI7219
          lcall DISP_part
          mov a,r4
          cjne a,ka3_imax_msb,panp2
          mov a,r5
          cjne a,ka3_imax_lsb,netpp2
          sjmp okp2   ;i=ka2_imax
     netpp2:jc okp2   ;i<ka2_imax
          ljmp stopp2 ;i>ka2_imax
      panp2:jc okp2   ;i<ka2_imax
          ljmp stopp2 ;i>ka2_imax
     okp2:mov a,r4
          cjne a,ka3_imin_msb,panp2c
          mov a,r5
          cjne a,ka3_imin_lsb,netpp2c
          sjmp okp2c    ;i=ka2_imin
     netpp2c:jnc okp2c  ;i>ka2_imin
          clr red_lam4
          setb part_stad
          ljmp okp2c
;          ljmp stopp2   ;i<ka2_imin
      panp2c:jnc okp2c  ;i>ka2_imin
          clr red_lam4
          setb part_stad
          ljmp okp2c
;          ljmp stopp2   ;i<ka2_imin
    okp2c:setb rs0
          mov r5,#00h
          clr rs0
          clr tf_250ms
          ljmp ekp2
     stopp2:setb ka3       ;断KA0
          clr red_lam4   ;报警
          setb part_stad
;**************** part_3 *****************
mission3_p3:clr ka4
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          mov menu_ge,#04h        ;part5
          mov menu_shi,#00h
          mov par_qian,#00h
          mov par_bai,#00h
          mov par_shi,#00h
          mov par_ge,#00h
          lcall INI7219
          lcall DISP_part
          setb rs0
          mov r5,#00h
          mov r6,#0fh
          mov r7,#01h
          clr rs0
          clr times_up
  waitsi2:jnb times_up,waitsi2
          mov a,ka4_time
          anl a,#0fh
          mov 30h,a        ;个位
          mov a,ka4_time
          anl a,#0f0h
          swap a
          mov b,#10
          mul ab
          add a,30h         ;将时间转换为二进制数
          setb rs0
          mov r5,#00h
          mov r6,#00h
          mov r7,a
          clr rs0
          clr times_up    ;时间标志
          clr tf_250ms
     ekp3:clr ka4
;          jb arlarm,csan
;          clr gre_lam1        ;电容两端没有电压检测完成
;          setb ka4
;          ljmp waitsign
;     csan:
          lcall INI7219
          lcall DISP_part
          jb tf_250ms,ad_map3
          jnb times_up,chesignp3
          jb arlarm,csanz
          clr gre_lam1        ;电容两端没有电压检测完成
          setb ka4
          ljmp waitsign
    csanz:
          setb ka4      ;合格
          nop
          lcall INI7219
          lcall DISP_part
          ljmp mission2
chesignp3:jb low_batten,cdj4
          jb action_stad,cr3
          jb l_act,ssic3
          ljmp cancel
    ssic3:jnb r_act,ekp3
          ljmp cancel
      cr3:jb r_act,ssid3
          ljmp cancel
    ssid3:jnb l_act,ekp3
          ljmp cancel
     cdj4:lcall delay
          jnb low_batten,chesignp3
          ljmp low_test
;**************************************************
;********A/D转换并换算出相应电流值的BCD码R4/R5
;**************************************************
  ad_map3:mov ad_chanel,#chanel_0
          lcall adf                ;转换出电流值BCD码
;**********************************************************************
;***********************************************************************
;         比较电流是否超设定值
;***********************************************************************
          mov a,r4
          anl a,#0f0h
          swap a
          mov par_qian,a
          mov a,r4
          anl a,#0fh
          mov par_bai,a
          mov a,r5
          anl a,#0f0h
          swap a
          mov par_shi,a
          mov a,r5
          anl a,#0fh
          mov par_ge,a
          mov menu_ge,#04h        ;part5
          mov menu_shi,#00h
          lcall INI7219
          lcall DISP_part
          mov a,r4
          cjne a,ka4_imax_msb,panp3
          mov a,r5
          cjne a,ka4_imax_lsb,netpp3
          sjmp okp3   ;i=ka2_imax
     netpp3:jc okp3   ;i<ka2_imax
          ljmp stopp3 ;i>ka2_imax
      panp3:jc okp3   ;i<ka2_imax
          ljmp stopp3 ;i>ka2_imax
     okp3:mov a,r4
          cjne a,ka4_imin_msb,panp3c
          mov a,r5
          cjne a,ka4_imin_lsb,netpp3c
          sjmp okp3c    ;i=ka2_imin
     netpp3c:jnc okp3c  ;i>ka2_imin
           clr red_lam5
           setb part_stad
           ljmp okp3c
;          ljmp stopp3   ;i<ka2_imin
      panp3c:jnc okp3c  ;i>ka2_imin
           clr red_lam5
           setb part_stad
           ljmp okp3c
;          ljmp stopp3   ;i<ka2_imin
    okp3c:setb rs0
          mov r5,#00h
          clr rs0
          clr tf_250ms
          ljmp ekp3
     stopp3:
          clr red_lam5   ;报警
          jb arlarm,csan
          clr gre_lam1        ;电容两端没有电压检测完成
     csan:
           setb ka4       ;断KA0
           setb part_stad
;          clr gre_lam1   ;检测完成
          ljmp waitsign
;**********************************************
;*****第二工作段低压启动检测
;**********************************************
 mission2:
          nop
          mov a,ka1_count

⌨️ 快捷键说明

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