您当前的位置:五五电子网电子知识单片机-工控设备松翰单片机电磁炉程序(SN8P1706芯片的)(sonix) 正文
电磁炉程序(SN8P1706芯片的)(sonix)

电磁炉程序(SN8P1706芯片的)(sonix)

点击数:7807 次   录入时间:03-04 11:49:30   整理:http://www.55dianzi.com   松翰单片机
        add DLO,a
        b0bts0 FC
        incms DHI
        nop
         MOV  a,AHI
        add DHI,a
 ;;;;
Notadd:
 rrcm     DHI
 rrcm     DLO
 rrcm     EHI                            
 rrcm     ELO                            
 decms counter
 jmp Mpyloop
 
 ret
 ;;==========================================
Div32: ;;;INPUT    :(DIVID)AHI,ALO;(BY DIVID)DHI,DLO,EHI,ELO
 ;;;OUTPUT   :(RESULT)BHI,BLO;(REST)CHI,CLO
 ;;==========================================
  MOV  a,#20h
 b0 MOV  counter,a
 clr BHI
 clr BLO
 clr CHI
 clr CLO
 ;;;;;;;;;;;
Divloop:
 b0bclr FC
 rlcm ELO
 rlcm EHI
 rlcm DLO
 rlcm DHI
 rlcm CLO
 rlcm CHI
 b0 MOV  a,CHI
 sub a,AHI
 b0bts1 FZ
 jmp Nochk
 b0 MOV  a,CLO
 sub a,ALO
 b0bts1 FC
 jmp Nogo
 jmp Nochk01 
Nochk:
 b0bts1 FC
 jmp Nogo             
 b0 MOV  a,CLO
 sub a,ALO
 b0bts1 FC
 decms CHI
 nop
Nochk01:       
 b0 MOV  a,CLO
 sub a,ALO
 b0 MOV  CLO,a
 b0 MOV  a,CHI
 sub a,AHI
 b0 MOV  CHI,a     
 b0bset FC
Nogo:
 rlcm BLO
 rlcm BHI
 decms counter
 jmp Divloop
 ret
;*********
;***************************
CalculatePower:
; CLR AHI
;  MOV  a,#0xdc
; b0 MOV  ALO,a  ;220V
; b0 MOV  a,CurrentL
; b0 MOV  BLO,a
; b0 MOV  a,CurrentH
; b0 MOV  BHI,a
; call Mpy16
 b0 MOV  a,CurrentH
 sub a,#3
 b0bts1 FC
; jmp $+5
; b0 MOV  a,CurrentL
; sub a,#0xf0
; b0bts1 FC
 jmp CalculatePowerError
 clr errorcounter1
 b0bclr CurrentError
 call Multiplication

 b0 MOV  a,BHI
 b0bts1 FZ
 jmp DecTime
 
 b0 MOV  a,DHI
 sub a,PowerBufferHH
 b0bts1 FZ
 jmp NotAdj


 b0 MOV  a,DLO
 sub a,PowerBufferH
 b0bts1 FZ
 jmp NotAdj
AdjMiddle:
 b0 MOV  a,EHI
 sub a,PowerBufferM
 b0bts1 FZ
 jmp NotAdj
AdjLow:
 b0 MOV  a,ELO
 sub a,PowerBufferL
NotAdj: 
 b0bts1 FC
 jmp IncTime
DecTime:
 b0 MOV  a,TimerDrvH
 sub a,#0x30
 b0bts1 FC
 ret
 decms TimerDrvH
 nop
 ret
IncTime:
 b0 MOV  a,TimerDrvH
 sub a,#0xf0
 b0bts0 FC
 ret
 incms TimerDrvH
 nop
 ret
CalculatePowerError:
 b0 MOV  a,errorcounter1
 sub a,#250
 b0bts0 FC 
 jmp $+3
 incms errorcounter1
 ret
 b0bset CurrentError
 ret  
;****************************
BuzShort_10:
 b0bset BuzzerShort
  MOV  a,#10
 jmp BuzActive
BuzLong_5:
 b0bclr BuzzerShort
  MOV  a,#5
        jmp BuzActive
BuzShort_3:        
  MOV  a,#3
 jmp $+2
BuzShort_1:
  MOV  a,#1
 b0bset BuzzerShort 
BuzActive:
 b0 MOV  BuzNumber,a
        b0bset BuzzerIsOn
        clr TimerBuz
        b0bclr BUZZER
        b0bset BuzzerEnable
        ret

;****************************
;Test temperature subroutine
;****************************
TestTemperature:
; b0bclr TestTemperatureEnable
 b0bclr FADLEN
  MOV  a,#0x93
 b0 MOV  ADM,a
  MOV  a,#0x20
 b0 MOV  ADR,a
 b0bset FADS
 b0bts1 FEOC
 jmp $-1  
 b0 MOV  a,ADB
 b0 MOV  resultH,a
 b0 MOV  a,ADR
 and a,#00001111b
 b0 MOV  resultL,a
 swap resultH 
 and a,#11110000b
 or resultL,a
 swapm resultH
  MOV  a,#00001111b
 and resultH,a
 
 b0 MOV  a,resultH
 b0bts1 FZ
 jmp $+5
 b0 MOV  a,resultL
 sub a,#0x10
 b0bts1 FC
 jmp TestTemperature01 
 
 b0 MOV  a,resultH
 sub a,#0x0f
 b0bts0 FC
 jmp TestTemperature01

 clr errorcounter
 b0bclr TempError
 ret
TestTemperature01:
 b0 MOV  a,errorcounter
 sub a,#5
 b0bts0 FC 
 jmp $+3
 incms errorcounter
 ret
 b0bset TempError
 ret
;****************************
;Test  current subroutine
;****************************
TestCurrent:
 b0bclr FADLEN
  MOV  a,#0x97
 b0 MOV  ADM,a
  MOV  a,#0x20
 b0 MOV  ADR,a
 b0bset FADS
 b0bts1 FEOC
 jmp $-1  
 b0 MOV  a,ADB
 b0 MOV  CurrentH,a
 b0 MOV  a,ADR
 and a,#00001111b
 b0 MOV  CurrentL,a
 swap CurrentH 
 and a,#11110000b
 or CurrentL,a
 swapm CurrentH
  MOV  a,#00001111b
 and CurrentH,a
 ret 
;****************************
;Test  voltage subroutine
;****************************
TestVoltage:
 b0bclr FADLEN
  MOV  a,#0x91
 b0 MOV  ADM,a
  MOV  a,#0x20
 b0 MOV  ADR,a
 b0bset FADS
 b0bts1 FEOC
 jmp $-1  

上一页  [1] [2] [3] [4] [5]  下一页


本文关键字:程序  电磁炉  松翰单片机单片机-工控设备 - 松翰单片机

《电磁炉程序(SN8P1706芯片的)(sonix)》相关文章>>>