电磁炉程序(SN8P1706芯片的)(sonix)
电磁炉程序(SN8P1706芯片的)(sonix)
点击数:7807 次 录入时间:03-04 11:49:30 整理:http://www.55dianzi.com 松翰单片机
b0 MOV a,ADB
b0 MOV VoltageH,a
b0 MOV a,ADR
and a,#00001111b
b0 MOV 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
b0 MOV a,Timer
sub a,#125
b0bts1 FC
jmp SystemTimerEnd01
b0bset Flash
b0 MOV 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
b0 MOV a,Second
sub a,#60
b0bts1 FC
jmp SystemTimerEnd01
clr Second
decms Minute
nop
SystemTimerEnd01:
incms TestTemperatureTime
nop
b0 MOV 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
b0 MOV a,commbuffer
sub a,#0x05
b0bts1 FC
jmp DisplayScan01
clr commbuffer
; clr keyactivebuffer
DisplayScan01:
b0 MOV 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
b0 MOV a,data0
jmp DisplayScanEnd
DisplayScan03:
b0bset COM1
b0 MOV a,data1
jmp DisplayScanEnd
DisplayScan04:
b0bset COM2
b0 MOV a,data2
jmp DisplayScanEnd
DisplayScan05:
b0bset COM3
b0 MOV a,data3
jmp DisplayScanEnd
DisplayScan06:
b0bset COM4
b0bts0 On
jmp DisplayScan07
b0bclr DisplayOnOff
b0bts0 Flash
b0bset DisplayOnOff
DisplayScan07:
b0 MOV a,data4
DisplayScanEnd:
xor a,#0xff
b0 MOV 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
b0 MOV 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
b0 MOV T0C,a
incms Timer200uS
nop
b0 MOV a,Timer200uS
sub a,#125 ;64
b0bts1 FC
jmp SystemTimer01
clr Timer200uS
b0bset F4mS
SystemTimer01:
b0 MOV a,TimerDrv
b0bts0 FZ
jmp SystemTimer02
decms TimerDrv
nop
jmp InterruptEnd
SystemTimer02:
b0bts1 Fdrv
jmp SystemTimer03
b0bclr Fdrv
b0 MOV a,TimerDrvH
b0 MOV TimerDrv,a
b0bset DRV
jmp InterruptEnd
SystemTimer03:
b0bclr DRV
InterruptEnd:
b0 MOV a,accbuf
pop
reti
;**********************************
IntTest:
b0bclr FP01IRQ
clr TestTime
jmp InterruptEnd
;**********************************
IntZero:
b0bclr FP02IRQ
b0bclr DRV
b0bset Fdrv
MOV a,#0xff
sub a,TimerDrvH
b0 MOV TimerDrv,a
jmp InterruptEnd
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;***************
KeyScan:
b0 MOV a,P1
xor a,#0xff
b0 MOV buffer,a
rrcm buffer
rrcm buffer
b0 MOV a,buffer
and a,#00001111b
b0 MOV keybuffer,a
b0 MOV buffer,a
clr keycounter2
MOV a,#4
b0 MOV 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
b0 MOV a,keybuffer
cmprs a,keyactivebuffer
jmp $+2
ret
b0bset KeyActive
b0 MOV a,keybuffer
b0 MOV keyactivebuffer,a
ret
KeyScan02:
clr keyactivebuffer
clr keybuffer
ret
;*****************
DataVerify:
clr Y
b0 MOV Z,#0x0e
MOV a,#0x00
DataVerify01:
add a,@YZ
上一页 [1] [2] [3] [4] [5] 下一页
本文关键字:程序 电磁炉 松翰单片机,单片机-工控设备 - 松翰单片机