《匠人手记》推荐网上购书渠道:
互动出版网(china-pub)购书入口   >>>
当当网(dangdang)购书入口   >>>
卓越亚马逊网 购书入口   >>>
淘宝网(taobao)购书入口   >>>
更多购书渠道……   >>> 

设为首页加入收藏联系匠人管理入口21IC首页21IC博客21IC社区侃单片机回复的贴参与的贴

天气预报
百宝日历
载入中...

百宝专栏

载入中...
最新货色

载入中...

粉丝评论

载入中...

载入中...



百宝信息

载入中...

百宝流量

(2006-07-01开始)


匠人手记

 匠人观点: 好记性不如烂笔头  
 黑色幽默:三鹿门——后世畅想

基于SN8P1706芯片的电磁炉(源程序)(sonix)
程序匠人 发表于 2006-7-23 11:26:00  阅读全文 | 回复(6) | 引用通告 | 编辑

 Title induction cooker controller
;OSC:16.000MHz
 chip SN8P1706
//{{SONIX_CODE_OPTION
 .Code_Option OSG  Enable
 .Code_Option High_Clk 12M_X'tal
 .Code_Option High_Clk/2 Disable
 .Code_Option Security Enable
 .Code_Option LVD  Enable
 .Code_Option Watch_Dog Enable
//}}SONIX_CODE_OPTION
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\
 InitPort macro 
 mov a,#01110000b  ;p4.7,p4.3 as A/D input
 b0mov P4M,a
 
 mov a,#00111111b
 b0mov P5M,a 
 
 mov a,#0xff
 b0mov P2M,a
 mov a,#11000000b
 b0mov P1M,a
 @set_pur 0x23
 clr P1 
 clr P2
 clr P4
 clr P5 
 mov a,#0x44
 b0mov TC1M,a
 mov a,#225  ;225
 b0mov TC1R,a
 b0bset FTC1OUT  ;buzzer on
 b0bset FTC1ENB
 
 mov a,#11110101b  ;1:16 16uS
 b0mov TC0M,a
 mov a,#0xff
 b0mov TC0R,a
 mov a,#11110000b  ;1:2 1uS
 b0mov T0M,a
 mov a,#00010000b
 b0mov INTEN,a
 clr INTRQ
 endm
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;*****************************
;clear ram (00h-->7fh)
;*****************************
 ClearRam macro
 clr Y
 b0mov Z,#0x7f
Clear_Ram01: 
 clr @YZ
 decms Z
 jmp Clear_Ram01
 endm
;\\\\\\\\\\\\\\\\\\\\\\
 BuzzerActive macro
 b0bts1 BuzzerEnable
 jmp BuzzerStop
        b0mov a,BuzNumber
        b0bts0 FZ 
        jmp BuzzerStop
        b0bts1 BuzzerShort
        jmp BuzNormal01
        mov a,#50
        jmp BuzNormal02
BuzNormal01:
 mov a,#100
BuzNormal02:         
        sub a,TimerBuz
        b0bts0 FC
        jmp BuzzerRet
            ;else   buzzer time over
BuzzerTimeOver:
        clr TimerBuz
        b0bts1 BuzzerIsOn
        jmp BuzzerTimeOver01
        b0bclr BuzzerIsOn  ;buzzer on
        b0bset BUZZER
        jmp BuzzerTimeOver02
BuzzerTimeOver01:
 b0bclr BUZZER   ;buzzer off
        b0bset BuzzerIsOn              
BuzzerTimeOver02:
 b0bts0 BuzzerIsOn
 jmp BuzzerRet
        decms  BuzNumber
 jmp BuzzerRet               
BuzzerStop:
 b0bclr BuzzerEnable
        b0bclr BuzzerIsOn
BuzzerRet:
 endm
;*****************************

 include define.asm
.CODE 
 org 0x00
 jmp Reset
 org 0x08
 jmp Interrupt

 org 0x10
;*******************
Multiplication:
; b0mov a,CurrentL
 b0mov a,VoltageL
 mul a,VoltageL
 b0mov ELO,a
 b0mov a,R
 b0mov ALO,a
; b0mov a,CurrentH
 b0mov a,VoltageH
 mul a,VoltageL
 add a,ALO
 b0mov EHI,a
 b0mov a,R
 b0mov DLO,a
 b0bts0 FC
 incms DLO
 nop
 clr DHI

; b0mov a,CurrentL
 b0mov a,VoltageL
 mul a,VoltageH
 b0mov CLO,a
 b0mov a,R
 b0mov ALO,a
; b0mov a,CurrentH
 b0mov a,VoltageH
 mul a,VoltageH
 add a,ALO
 b0mov CHI,a
 b0mov a,R
 b0mov BLO,a
 b0bts0 FC
 incms BLO
 nop
 
 b0bclr FC
 b0mov a,CLO
 adc EHI,a
 b0mov a,CHI
 adc DLO,a
 b0mov a,BLO
 adc DHI,a 
 
 b0mov a,ELO
 mul a,CurrentH
 b0mov CLO,a
 b0mov a,R
 b0mov ALO,a
 b0mov a,EHI
 mul a,CurrentH
 add a,ALO
 b0mov CHI,a
 b0mov a,R
 b0mov ALO,a
 b0mov a,DLO
 mul a,CurrentH
 add a,ALO
 b0mov BLO,a
 b0mov a,R
 b0mov BHI,a

 b0mov a,ELO
 mul a,CurrentL
 b0mov ELO,a
 b0mov a,R
 b0mov ALO,a
 b0mov a,EHI
 mul a,CurrentL
 add a,ALO
 b0mov EHI,a
 b0mov a,R
 b0mov ALO,a
 b0mov a,DLO
 mul a,CurrentL
 add a,ALO
 b0mov DLO,a
 b0mov a,R
 b0mov DHI,a
 
 b0bclr FC
 b0mov a,CLO
 adc EHI,a
 b0mov a,CHI
 adc DLO,a
 b0mov a,BLO
 adc DHI,a
 b0bts0 FC
 incms BHI
 nop
 ret
 ;;;;;====================================
Mpy16: ;;;INPUT (BY MULTIPLIER)AHI,ALO;(MULTIPLIER)BHI,BLO
 ;;;OUT  DHI,DLO,EHI,ELO
 ;;;======================================
        mov a,#10h
        b0mov counter,a
        clr DHI
        clr DLO
        b0bclr FC
 ;;;;;
Mpyloop:
        rrcm     BHI
        rrcm     BLO
       b0bts1 FC
        jmp Notadd
 ;;;;
        mov a,ALO
        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
 b0mov 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
 b0mov a,CHI
 sub a,AHI
 b0bts1 FZ
 jmp Nochk
 b0mov a,CLO
 sub a,ALO
 b0bts1 FC
 jmp Nogo
 jmp Nochk01 
Nochk:
 b0bts1 FC
 jmp Nogo            
 b0mov a,CLO
 sub a,ALO
 b0bts1 FC
 decms CHI
 nop
Nochk01:      
 b0mov a,CLO
 sub a,ALO
 b0mov CLO,a
 b0mov a,CHI
 sub a,AHI
 b0mov CHI,a    
 b0bset FC
Nogo:
 rlcm BLO
 rlcm BHI
 decms counter
 jmp Divloop
 ret
;*********
;***************************
CalculatePower:
; CLR AHI
; mov a,#0xdc
; b0mov ALO,a  ;220V
; b0mov a,CurrentL
; b0mov BLO,a
; b0mov a,CurrentH
; b0mov BHI,a
; call Mpy16
 b0mov a,CurrentH
 sub a,#3
 b0bts1 FC
; jmp $+5
; b0mov a,CurrentL
; sub a,#0xf0
; b0bts1 FC
 jmp CalculatePowerError
 clr errorcounter1
 b0bclr CurrentError
 call Multiplication

 b0mov a,BHI
 b0bts1 FZ
 jmp DecTime
 
 b0mov a,DHI
 sub a,PowerBufferHH
 b0bts1 FZ
 jmp NotAdj


 b0mov a,DLO
 sub a,PowerBufferH
 b0bts1 FZ
 jmp NotAdj
AdjMiddle:
 b0mov a,EHI
 sub a,PowerBufferM
 b0bts1 FZ
 jmp NotAdj
AdjLow:
 b0mov a,ELO
 sub a,PowerBufferL
NotAdj: 
 b0bts1 FC
 jmp IncTime
DecTime:
 b0mov a,TimerDrvH
 sub a,#0x30
 b0bts1 FC
 ret
 decms TimerDrvH
 nop
 ret
IncTime:
 b0mov a,TimerDrvH
 sub a,#0xf0
 b0bts0 FC
 ret
 incms TimerDrvH
 nop
 ret
CalculatePowerError:
 b0mov 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:
 b0mov BuzNumber,a
        b0bset BuzzerIsOn
        clr TimerBuz
        b0bclr BUZZER
        b0bset BuzzerEnable
        ret

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

 clr errorcounter
 b0bclr TempError
 ret
TestTemperature01:
 b0mov a,errorcounter
 sub a,#5
 b0bts0 FC 
 jmp $+3
 incms errorcounter
 ret
 b0bset TempError
 ret
;****************************
;Test  current subroutine
;****************************
TestCurrent:
 b0bclr FADLEN
 mov a,#0x97
 b0mov ADM,a
 mov a,#0x20
 b0mov ADR,a
 b0bset FADS
 b0bts1 FEOC
 jmp $-1  
 b0mov a,ADB
 b0mov CurrentH,a
 b0mov a,ADR
 and a,#00001111b
 b0mov 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
 b0mov ADM,a
 mov a,#0x20
 b0mov ADR,a
 b0bset FADS
 b0bts1 FEOC
 jmp $-1  
 b0mov a,ADB
 b0mov VoltageH,a
 b0mov a,ADR
 and a,#00001111b
 b0mov VoltageL,a
 swap VoltageH 
 and a,#11110000b
 or VoltageL,a
 swapm VoltageH
 mov a,#00001111b
 and VoltageH,a
 ret  
;*********************
SystemTimerEnd:
 b0bclr F4mS
 incms TimerBuz
 nop
 incms Timer
 nop
 b0bclr Flash
 b0mov a,Timer
 sub a,#125
 b0bts1 FC
 jmp SystemTimerEnd01
 b0bset Flash
 b0mov a,Timer
 sub a,#250
 b0bts1 FC
 jmp SystemTimerEnd01
 clr Timer
 b0bts1 FanActive
 jmp $+5
 decms FanTime
 jmp $+3
 b0bclr FanActive
 b0bclr Fan
 
 b0bts1 Timering
 jmp SystemTimerEnd01
 incms Second
 nop
 b0mov a,Second
 sub a,#60
 b0bts1 FC
 jmp SystemTimerEnd01
 clr Second
 decms Minute
 nop
SystemTimerEnd01: 
 incms TestTemperatureTime
 nop
 b0mov a,TestTemperatureTime
 sub a,#125
 b0bts1 FC
 jmp $+3
 clr TestTemperatureTime
 b0bset TestTemperatureEnable 
 
 incms TestCurrentTime
 nop
 mov a,TestCurrentTime
 sub a,#10
 b0bts1 FC
 jmp $+3
 clr TestCurrentTime
 b0bset TestCurrentEnable

 incms KeyScanTime
 nop
 mov a,KeyScanTime
 sub a,#10
 b0bts1 FC
 jmp $+3
 clr KeyScanTime
 b0bset KeyScanEnable
DisplayScan:
 clr P2
 call TimeDisplay  
 incms commbuffer
 nop
 b0mov a,commbuffer
 sub a,#0x05
 b0bts1 FC
 jmp DisplayScan01
 clr commbuffer
; clr keyactivebuffer
DisplayScan01:
 b0mov a,commbuffer
 cmprs a,#1
 jmp $+2
 jmp DisplayScan03
 cmprs a,#2
 jmp $+2
 jmp DisplayScan04
 cmprs a,#3
 jmp $+2
 jmp DisplayScan05
 cmprs a,#4
 jmp $+2
 jmp DisplayScan06
DisplayScan02: 
 b0bset COM0
 b0mov a,data0
 jmp DisplayScanEnd
DisplayScan03:
 b0bset COM1
 b0mov a,data1
 jmp DisplayScanEnd
DisplayScan04:
 b0bset COM2
 b0mov a,data2
 jmp DisplayScanEnd
DisplayScan05:  
 b0bset COM3
 b0mov a,data3
 jmp DisplayScanEnd 
DisplayScan06:  
 b0bset COM4
 b0bts0 On
 jmp DisplayScan07
 b0bclr DisplayOnOff
 b0bts0 Flash
 b0bset DisplayOnOff
DisplayScan07: 
 b0mov a,data4
DisplayScanEnd:
 xor a,#0xff
 b0mov displaybuffer,a
 mov a,#10001111b
 and P4,a
 mov a,displaybuffer
 and a,#01110000b
 or P4,a
 b0bclr P5.0
 b0bts0 displaybuffer.0
 b0bset P5.0
 ret
;***************************
;interrput subroutine
;*********************
Interrupt:
 b0bset FWDRST
 push
 b0mov   accbuf,a
        b0bclr FGIE
              
        b0bts0 FT0IRQ
        jmp SystemTimer
        b0bts0 FP02IRQ
        jmp IntZero       
        b0bts0 FP01IRQ
        jmp IntTest       
        clr INTRQ
        jmp InterruptEnd
;*********************       
SystemTimer:    
 b0bclr FT0IRQ            
 mov a,#192  ;156 ;50uS
 b0mov T0C,a
 incms Timer200uS
 nop
 b0mov a,Timer200uS
 sub a,#125  ;64
 b0bts1 FC
 jmp SystemTimer01
 clr Timer200uS
 b0bset F4mS
SystemTimer01:
 b0mov a,TimerDrv
 b0bts0 FZ
 jmp SystemTimer02
 decms TimerDrv
 nop
 jmp InterruptEnd
SystemTimer02: 
 b0bts1 Fdrv
 jmp SystemTimer03
 b0bclr Fdrv
 b0mov a,TimerDrvH
 b0mov TimerDrv,a
 b0bset DRV
 jmp InterruptEnd
SystemTimer03:
 b0bclr DRV
InterruptEnd:       
        b0mov   a,accbuf
        pop
 reti
;**********************************
IntTest:
 b0bclr FP01IRQ
 clr TestTime
 jmp InterruptEnd
;**********************************
IntZero:
 b0bclr FP02IRQ
 b0bclr DRV
 b0bset Fdrv
 mov a,#0xff
 sub a,TimerDrvH
 b0mov TimerDrv,a
 jmp InterruptEnd
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;***************
KeyScan:
 b0mov a,P1
 xor a,#0xff
 b0mov buffer,a
 rrcm buffer
 rrcm buffer
 b0mov a,buffer
 and a,#00001111b
 b0mov keybuffer,a
 b0mov buffer,a
 clr keycounter2
 mov a,#4
 b0mov keycounter1,a
KeyScan01: 
 rrcm buffer
 b0bts0 FC
 incms keycounter2
 decms keycounter1
 jmp KeyScan01
 
 b0bclr KeyActive
 mov a,keycounter2
 b0bts0 FZ
 jmp KeyScan02
 cmprs a,#1
 ret
 b0mov a,keybuffer
 cmprs a,keyactivebuffer
 jmp $+2
 ret
 b0bset KeyActive
 b0mov a,keybuffer
 b0mov keyactivebuffer,a
 ret
KeyScan02:
 clr keyactivebuffer
 clr keybuffer
 ret 
;*****************
DataVerify:
 clr Y
 b0mov Z,#0x0e
 mov a,#0x00
DataVerify01: 
 add a,@YZ
 decms Z
 jmp DataVerify01
 add a,@YZ 
 ret
;******************
TimeDisplay: 
 clr data0
 clr data1
 b0mov a,Minute
 b0bts0 FZ
 ret
 sub a,#11
 b0bts1 FC
 jmp D10
 b0mov a,Minute
 sub a,#21
 b0bts1 FC
 jmp D20
 b0mov a,Minute
 sub a,#31
 b0bts1 FC
 jmp D30
 b0mov a,Minute
 sub a,#41
 b0bts1 FC
 jmp D40
 b0mov a,Minute
 sub a,#51
 b0bts1 FC
 jmp D50
D60:
 b0bset DisplayTime60
 ret
D50:
 b0bset DisplayTime50
 ret
D40:
 b0bset DisplayTime40
 ret
D30:
 b0bset DisplayTime30
 ret
D20:
 b0bset DisplayTime20
 ret    
D10:
 b0bset DisplayTime10
 ret 
;***************
;Main program
;****************

Reset:
 b0bclr FGIE
 InitPort 
 call DataVerify
 cmprs a,sumbuffer
 jmp Init02
 b0mov Z,#0eh
Init01: 
 b0mov a,@YZ
 b0bts1 FZ
 jmp Init06 
 decms Z
 jmp Init01
Init02: 
 ClearRam
 clr flag0
 b0bset BUZZER
 b0bclr DRV
 call BuzShort_3
;******
;****** 
Init06:
 b0mov a,port1copy
 b0mov P1,a
 b0mov a,port2copy
 b0mov P2,a
 b0mov a,port4copy
 b0mov P4,a 
 b0mov a,port5copy
 b0mov P5,a
 b0bset FGIE
 clr INTRQ
Main:
 b0bset FWDRST
 call DataVerify
 b0mov sumbuffer,a
 b0mov a,P1
 b0mov port1copy,a
 b0mov a,P2
 b0mov port2copy,a
 b0mov a,P4
 b0mov port4copy,a
 b0mov a,P5
 b0mov port5copy,a

 BuzzerActive

 b0bts0 F4mS
 call SystemTimerEnd

 
 b0bts0 CurrentError
 jmp $+10
 b0bts0 TempError
 jmp $+8
 b0bts1 Timering
 jmp $+8
 b0mov a,Minute
 b0bts1 FZ
 jmp $+5
 call BuzLong_5
 jmp $+2
 call BuzShort_10
 jmp OnOff01
 
 b0bts1 KeyScanEnable
 jmp NotKeyScan
 b0bclr KeyScanEnable 
 call KeyScan
NotKeyScan: 
 b0bts0 KeyActive
 jmp ReadKey 
 b0bts1 On
 jmp Main
 b0bts1 TestTemperatureEnable
 jmp NotTestTemperature
 call TestTemperature  
 b0bclr TestTemperatureEnable 
 
 b0mov a,resultH
 sub a,TemperatureH
 b0bts1 FZ
 jmp $+3
 b0mov a,resultL
 sub a,TemperatureL
 b0bts1 FC
 jmp $+6
 b0bclr DRV
 b0bset Off
 b0bclr FP02IEN
 b0bclr FP02IRQ
 jmp Main
 
 b0bts1 Off
 jmp NotTestTemperature
 b0bclr Off
 b0bset FP02IEN
 mov a,#0x40
 b0mov TimerDrvH,a
 jmp Main
NotTestTemperature:
; b0bts1 On
; jmp Main
 b0bts1 TestCurrentEnable
 jmp Main
 call TestCurrent  
 b0bclr TestCurrentEnable
 call TestVoltage
 call CalculatePower
 
NotTestCurrent: 
 jmp Main
;************
ReadKey:
 b0bclr KeyActive
 b0bts0 Konoff
 jmp OnOff
 b0bts1 On
 jmp Main
 call BuzShort_1 
 b0bts0 Kmode
 jmp Mode
 b0bts0 Kpower
 jmp Power
;*******************
Time:
 incms TimeBuffer
 nop
 b0mov a,TimeBuffer
 sub a,#7
 b0bts1 FC
 jmp Time01
 clr TimeBuffer
Time01: 
 mov a,TimeBuffer
 b0mov Y,#TimeTable$m
 b0mov Z,#TimeTable$l
 add Z,a
 movc
 b0mov Minute,a
 clr Second
 b0bset Timering
 b0mov a,TimeBuffer
 b0bts0 FZ
 b0bclr Timering
 jmp Main
;****************************
OnOff:
 call BuzShort_1
 b0bts1 On
 jmp OnOff02
OnOff01: 
 b0bclr On
 b0bclr Timering
 call Close
 clr data0
 clr data1
 clr data2
 clr data3
 clr data4
 clr ModeBuffer
 clr PowerBuffer
 clr TimeBuffer
 clr Minute
 clr errorcounter
 b0bclr TempError
 b0bclr CurrentError
 clr errorcounter1
 b0bclr FP02IEN
 b0bclr FP01IEN
 jmp Main
OnOff02:
 b0bset On 
 call Open
 b0bset DisplayOnOff
 b0bset DisplayMode1
 b0bset DisplayPower3
 mov a,#3
 b0mov ModeBuffer,a
 b0mov PowerBuffer,a
 clr TimeBuffer
 
 b0bset FP02IEN
 b0bset FP01IEN
 mov a,#0x80
 b0mov TimerDrvH,a 
; mov a,#100
; b0mov TimerDrv,a
 jmp Mode01
;****************************
Mode:
 incms ModeBuffer
 nop
 b0mov a,ModeBuffer
 sub a,#6
 b0bts1 FC
 jmp Mode01
 mov a,#1
 b0mov ModeBuffer,a
Mode01: 
 b0bclr DisplayMode1
 b0bclr DisplayMode2
 b0bclr DisplayMode3
 b0bclr DisplayMode4
 b0bclr DisplayMode5
 mov a,ModeBuffer
 cmprs a,#1
 jmp $+2
 jmp Mode1
 cmprs a,#2
 jmp $+2
 jmp Mode2 
 cmprs a,#3
 jmp $+2
 jmp Mode3
 cmprs a,#4
 jmp $+2
 jmp Mode4
Mode5:
 b0bset DisplayMode5
 mov a,#5
 jmp ModeEnd
Mode1:
 b0bset DisplayMode1
 mov a,#3
 jmp ModeEnd
Mode2:
 b0bset DisplayMode2
 mov a,#3
 jmp ModeEnd
Mode3:
 b0bset DisplayMode3
 mov a,#3
 jmp ModeEnd
Mode4:
 b0bset DisplayMode4
 mov a,#4
ModeEnd: 
 b0mov PowerBuffer,a
 jmp Power01
;****************************
Power:
 incms PowerBuffer
 nop
 b0mov a,PowerBuffer
 sub a,#7
 b0bts1 FC
 jmp Power01
 mov a,#1
 b0mov PowerBuffer,a
Power01: 
 clr data2
 b0bclr DisplayPower6
 b0bclr DisplayPower5
 mov a,PowerBuffer
 cmprs a,#1
 jmp $+2
 jmp Power1
 cmprs a,#2
 jmp $+2
 jmp Power2
 cmprs a,#3
 jmp $+2
 jmp Power3
 cmprs a,#4
 jmp $+2
 jmp Power4
 cmprs a,#5
 jmp $+2
 jmp Power5
Power6:
 b0bset DisplayPower6
Power5:
 b0bset DisplayPower5 
Power4:
 b0bset DisplayPower4
Power3:
 b0bset DisplayPower3  
Power2:
 b0bset DisplayPower2
Power1:
 b0bset DisplayPower1
 
 b0mov a,PowerBuffer
 b0mov Y,#PowerTable$m
 b0mov Z,#PowerTable$l
 add Z,a
 movc
 b0mov PowerBufferL,a
 b0mov a,R 
 b0mov PowerBufferM,a
 b0mov a,PowerBuffer
 b0mov Y,#PowerTableH$m
 b0mov Z,#PowerTableH$l
 add Z,a
 movc
 b0mov PowerBufferH,a
 b0mov a,R 
 b0mov PowerBufferHH,a
 
 b0mov a,PowerBuffer
 b0mov Y,#TemperatureTable$m
 b0mov Z,#TemperatureTable$l
 add Z,a
 movc
 b0mov TemperatureL,a
 b0mov a,R 
 b0mov TemperatureH,a
 jmp Main 
;**************
Close:
 b0bset FanActive
 mov a,#120
 b0mov FanTime,a
 ret
;************** 
Open: b0bset FAN
 b0bclr FanActive
 ret  
 
PowerTable:
; dw 0x0000,0x45d1,0x8342,0xc0b2,0xfe23,0x3b94,0x7904
 dw 0x0000,0x0ed6,0x8601,0xfd2c,0x7457,0xeb85,0x62ad
PowerTableH:
; dw 0x00,0x17,0x21,0x2b,0x35,0x40,0x4a
 dw 0x0000,0x4a6b,0x6b29,0x8be7,0xaca6,0xcd64,0xee23
TimeTable:
 dw 0x00,10,20,30,40,50,60
TemperatureTable:
; dw 0x0000,0x013e,0x03a2,0x0674,0x0940,0x0b5c,0x0c4b
 dw 0x0000,0x00e7,0x02e3,0x0578,0x085c,0x0ad0,0x0bdb

看《匠人手记》,与匠人同行!北航出版,正在热卖!

Re:基于SN8P1706芯片的电磁炉(源程序)(sonix)
石头(游客)发表评论于2008-11-14 13:57:00  个人主页 | 引用 | 返回 | 删除 | 回复

石头(游客)只能算是垃圾程序了,没有图,没有注解,给谁看?!
高手是不屑一顾的,可以自己开发.
低手又看不懂!
要么就不要放到网上,要么就放全了.

看《匠人手记》,与匠人同行!北航出版,正在热卖!

Re:基于SN8P1706芯片的电磁炉(源程序)(sonix)
石头(游客)发表评论于2008-11-14 13:54:00  个人主页 | 引用 | 返回 | 删除 | 回复

石头(游客)只能算垃圾程序了,没有图[u][/u][u][/u]

看《匠人手记》,与匠人同行!北航出版,正在热卖!

Re:基于SN8P1706芯片的电磁炉(源程序)(sonix)
ANDY(游客)发表评论于2007-3-16 23:08:00  个人主页 | 引用 | 返回 | 删除 | 回复

ANDY(游客)LZ也能给份电路图给我吗?
先谢谢了!
WYJOZL@163.COM

看《匠人手记》,与匠人同行!北航出版,正在热卖!

Re:基于SN8P1706芯片的电磁炉(源程序)(sonix)
ever(游客)发表评论于2007-3-11 10:37:00  个人主页 | 引用 | 返回 | 删除 | 回复

ever(游客)能否提供电路?
ever820120@126.com
谢谢!

看《匠人手记》,与匠人同行!北航出版,正在热卖!

回复:基于SN8P1706芯片的电磁炉(源程序)(sonix)
PANDA(游客)发表评论于2006-8-6 14:32:00  个人主页 | 引用 | 返回 | 删除 | 回复

PANDA(游客)

你应该把配合使用的电路给显示出来,否则又怎么知道好不好呢?

                                             

 

看《匠人手记》,与匠人同行!北航出版,正在热卖!

回复:基于SN8P1706芯片的电磁炉(源程序)(sonix)
OPTK(游客)发表评论于2006-8-3 19:16:00  个人主页 | 引用 | 返回 | 删除 | 回复

OPTK(游客)

你真伟大!! 我很想学程序设计,但是无从下手.能交个朋友吗?

oppertunitys@163.com

看《匠人手记》,与匠人同行!北航出版,正在热卖!

发表评论:
载入中...

芯片专题

器件专题

软件专题

硬件专题

综合专题

项目专题

原创专题

器件检测
LCD LED
按键 触摸键
E2PROM
电池 电机
电阻 电容 电感

指令系统
软件算法
编程规范
滤波算法
串行通讯

PCB设计
I2C PWM
红外遥控
充电技术
中断 ADC 

匠人手记
匠人夜话
网络心路
一周热点串烧
从零开始玩PIC
DIY旋转时钟

广告5号位 [投放]


学习板、开发板、编程器、下载器、仿真器(查看详情……)

广告3号位 [投放]

站内搜索


站外搜索


百度  google
mp3  歌词 
图片  FLASH 
知道  文档
新闻  词典 
地图  mp3 
软件  天网 
雅虎  爱问 
搜狗  讯雷 
网讯  华军 
天空 

21IC器件搜索
百宝箱分站
  • 《匠人的百宝箱》21IC站
  • 《匠人的百宝箱》21IC笔记团队
  • 《匠人手记》21IC书友会
  • 《匠人的百宝箱》MCUBLOG站
  • 《匠人的百宝箱》MCUBLOG笔记团队
  • 《匠人的百宝箱》EDN站
  • 《匠人手记》EDN书友会
  • 《匠人的百宝箱》与非网站
  • 《匠人的百宝箱》新浪站
  • 《匠人的百宝箱》百度站
  • 《匠人的百宝箱》网易126站
  • 《匠人的百宝箱》网易163站
  • 《匠人的百宝箱》互动出版网站
  • 广告4号位 [投放]

     
     

    匠人原创

    往日酷贴

     
     
     

    大千八卦

    友情连接

    新浪新闻:
    新浪财经:
    AK58新闻:
    新浪股票:
    新浪股票:
    证券之星:

     [更多酷站连接]

     

     

    [欢迎交换连接]

    [百宝箱之与非门分舵]

    [电脑圈圈的家当]

    [IC921的博客]

    [柔月阁]

    [八楼的呼吸]

    [hotpower 的水潭]

    [xwj的文君阁]

    [所长的BLOG]

    [阿摆手记]

    [电子伙伴]

    [unaided的笔记]

    [小飞的笔记]

    [单片机开发联盟]

    [网址之家]

    [好东西网址大全]

    [美萍中文精选]

    [数字电视之家]

    [SMARTCODE电子书斋]

    [软件开发之窗]

    [Armoric]

    [我爱研发网]

    [infernal的笔记]

    [雄鹰的空中加油站]

    [SunK]

    [逍遥电子]

    [ningpanda的博客]

    [C-Design]

    [一网见天下]

    [海边淘沙]

    [嵌入式365]

    [水牛的仓库]

    [股剩是怎样炼成的]

    [PIC论坛]

    [ICC AVR开发网]

    [中国高校自动化网]

    [AVR猎手的地盘]

     

     

    MCU博客-中国电子工程师博客网 

    大学生电子网 

     

     

     

     

     

    !!! 《匠人的百宝箱》 !!!