• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > sonix單片機做的消毒柜

    sonix單片機做的消毒柜

    作者: 時間:2013-05-11 來源:網絡 收藏

    一、總體說明:

    有紫外線和臭氧消毒,烘干廚具的功能。當正在消毒時,打開門即刻切斷紫外線和臭氧發生器。當箱體內溫度高于70℃時自動切斷紫外線和臭氧發生器。

    當烘干時間大于30分鐘時烘20分鐘后自動啟動風機;當烘干時間小于30分鐘時自動啟動風機。

    二、按鍵功能說明:

    待機狀態顯示時鐘,消毒時到計時顯示定時消毒時間,烘干時到計時顯示定時烘干時間。

    開機默認狀態:90分鐘消毒+60分鐘烘干。

    1、 /關鍵:在待機條件下按此鍵消毒柜進入工作狀態(默認90分鐘消毒)。在工作狀態下按按此鍵消毒柜進入待機。待機時,消毒90分鐘鍵、消毒45分鐘鍵,烘干60分鐘鍵、烘干30分鐘鍵無效。

    2、 照明鍵:按次鍵開或關消毒柜箱體照明燈。

    3、 小時鍵:在待機條件下按此鍵可調整時鐘的“時”;在工作狀態下按按此鍵,將顯示工作時間切換為顯示時鐘,延時4秒后,回到顯示工作時間。

    4、 分鐘鍵:在待機條件下按此鍵可調整時鐘的“分”;在工作狀態下按按此鍵工作時間(以分鐘為單位)。

    5、 消毒90分鐘鍵:在工作狀態下按按此鍵,消毒柜工作與90分鐘定時消毒,相應的LED指示燈亮,顯示工作時間到計時。此時按分鐘鍵可以調節定時消毒時間(從90分鐘到240分鐘迴圈調節)。

    6、 消毒45分鐘鍵:在工作狀態下按按此鍵,消毒柜工作與45分鐘定時消毒,相應的LED指示燈亮,顯示工作時間到計時。此時按分鐘鍵可以調節定時消毒時間(從45分鐘到89分鐘迴圈調節)。

    7、 烘干60分鐘鍵:在消毒工作狀態下按按此鍵一次,顯示時間切換為閃爍顯示60分鐘(此為默認60分鐘烘干時間),若此時再按下此鍵,消毒柜進入烘干工作狀態;若此時按下分鐘鍵,可以調節烘干時間(從60分鐘到120分鐘迴圈調節),此時再按下烘干60分鐘鍵(或15秒內無按鍵操作)確認閃爍時間為烘干時間并且回到消毒柜工作狀態。

    8、 烘干30分鐘鍵:在消毒工作狀態下按按此鍵一次,顯示時間切換為閃爍顯示30分鐘(此為默認30分鐘烘干時間),若此時再按下此鍵,消毒柜進入烘干工作狀態;若此時按下分鐘鍵,可以調節烘干時間(從30分鐘到59分鐘迴圈調節),此時再按下烘干30分鐘鍵(或15秒內無按鍵操作)確認閃爍時間為烘干時間并且回到消毒柜工作狀態。

    ;************************************
    ;sterprogram
    ;Crystal:3.58MHz
    Chip sn8p1604a
    //{{SONIX_CODE_OPTION
    .Code_Option High_Clk 4M_X’tal
    .Code_Option High_Clk/2 DISAble
    .Code_Option Security Enable
    .Code_Option Int_16K_RC Always_ON
    .Code_Option Rst_P0.3 Reset
    .Code_Option Watch_Dog Enable
    //}}SONIX_CODE_OPTION




    flag1 equ 00h
    flag2 equ 01h
    flag3 equ 02h
    second equ 03h
    hour equ 04h
    minute equ 05h
    Dminute equ 06h
    Dsecond equ 07h
    sumbuffer equ 08h
    sterbuffer equ 09h
    fantime equ 0ah
    fanbuffer equ 0bh
    databuffer equ 0ch
    bufferHH equ 0dh
    keybuffer equ 0eh
    counter equ 0fh

    sterbuffer1 equ 10h
    keybuffercopy equ 11h
    tonetime equ 12h
    bufferH equ 13h
    bufferL equ 14h
    address equ 15h
    delaybuffer equ 16h
    timer equ 17h
    counter1 equ 18h
    P2copy equ 19h
    P1copy equ 1ah
    keycounter equ 1bh
    combuffer equ 1ch
    aCCbuffer equ 1dh
    pflagbuffer equ 1eh
    Dminute_Dry equ 1fh

    displaybuffer0 equ 20h
    displaybuffer1 equ 21h
    displaybuffer2 equ 22h
    displaybuffer3 equ 23h
    displaybuffer4 equ 24h
    displaybuffer5 equ 25h
    displaybuffer6 equ 26h
    displaybuffer7 equ 27h
    displaybuffer8 equ 28h
    displaybuffer9 equ 29h
    ybuffer equ 2ah
    zbuffer equ 2bh
    rbuffer equ 2ch
    timer2 equ 2dh

    P5copy equ 30h
    flag4 equ 31h
    flashtime equ 32h
    keytime equ 33h
    ;***********
    ;BITDEFINITION
    ;*****************

    ;************
    DOOR EQU P0.0

    DATA8 EQU P1.0
    BUZZER EQU P1.1
    KEY1 EQU P1.2
    KEY2 EQU P1.3
    COM0 EQU P1.4
    COM1 EQU P1.5
    COM2 EQU P1.6
    COM3 EQU P1.7

    DOT equ P2.2

    LIGHT EQU P5.0 ;OUTPUT
    STER EQU P5.1 ;OUTPUT
    DRY EQU P5.2 ;OUTPUT
    FAN EQU P5.3 ;OUTPUT
    ;**********
    F_FAN EQU flag1.0
    F_STER EQU flag1.1
    F_DRY EQU flag1.2
    F_FLASH1 equ flag1.3
    TONE_ENABLE EQU flag1.4
    F_NO_DOOR EQU flag1.5
    F_NO_TONE equ flag1.6


    F_STER90 EQU flag2.2
    F_STER45 EQU flag2.3
    F_DRY60 EQU flag2.1
    F_DRY30 EQU flag2.0

    F_ON_OFF EQU flag3.0
    F_FLASH EQU flag3.1
    F_LIGHT EQU flag3.2
    F_KEY EQU flag3.3
    F_FINISH EQU flag3.4
    F_DISPLAY EQU flag3.5
    F_DISPLAY1 EQU flag3.6
    F_MINUTE EQU flag3.7
    F_DISPLAY_FLASH equ flag4.0
    F_DISPLAY_FLASH60 EQU flag4.6
    F_DISPLAY_FLASH30 EQU flag4.7
    F_DELAY EQU flag4.3
    ;*****************************************
    KPOWER EQU keybuffer.6
    KMINUTE EQU keybuffer.0
    KLIGHT EQU keybuffer.7
    KHOUR EQU keybuffer.1
    KDRY60 EQU keybuffer.2
    KSTER90 EQU keybuffer.4
    KDRY30 EQU keybuffer.3
    KSTER45 EQU keybuffer.5

    ;\\\\\\\\\\\\\\\\\\\
    org 0x00
    jmp Start
    org 0x08
    jmp Interrupt

    org 0x10
    Interrupt:
    b0bset FWDRST
    b0 MOV accbuffer,a
    b0 MOV a,PFLAG
    b0 MOV pflagbuffer,a
    b0bts1 FTC1IRQ
    jmp Interruptend01
    MOV a,#131
    MOV TC1C,a

    b0bts1 DOOR
    jmp Testdoor01
    Testdoor:
    b0bset F_NO_DOOR
    b0bclr STER
    jmp Testdoor02
    Testdoor01:
    b0bclr F_NO_DOOR
    b0bts0 F_STER
    b0bset STER
    Testdoor02:
    b0 MOV a,keytime
    cmprs a,#0
    decms keytime
    nop
    Tone:
    b0bts0 TONE_ENABLE
    b0bset BUZZER
    incms tonetime
    nop
    b0 MOV a,tonetime
    sub a,#30 ;250ms
    b0bts1 FC
    jmp Notone
    clr tonetime
    b0bclr BUZZER
    b0bclr TONE_ENABLE
    Notone:
    incms flashtime
    nop
    b0 MOV a,flashtime
    sub a,#125 ;500ms
    b0bts1 FC
    jmp Timer00
    clr flashtime
    b0bts0 F_FLASH1
    jmp Flashtime01
    b0bset F_FLASH1
    jmp Timer00
    Flashtime01:
    b0bclr F_FLASH1

    Timer00:
    incms timer
    nop
    b0 MOV a,timer
    sub a,#125 ;500ms
    b0bts1 FC
    jmp KeysCAN
    clr timer
    b0bts0 F_FLASH
    jmp Timer0ok_1
    b0bset F_FLASH
    jmp Keyscan
    Timer0ok_1:
    b0bclr F_FLASH
    b0bts1 F_DELAY
    jmp Timer0ok_1x
    decms delaybuffer
    jmp Timer0ok_1x
    clr flag4
    b0bclr F_MINUTE
    Timer0ok_1x:
    incms second
    nop
    b0 MOV a,second
    sub a,#60
    b0bts1 FC
    jmp Timer0ok_2
    clr second
    incms minute
    nop
    b0 MOV a,minute
    sub a,#60
    b0bts1 FC
    jmp Timer0ok_2
    clr minute
    incms hour
    nop
    b0 MOV a,hour
    sub a,#12
    b0bts1 FC
    jmp Timer0ok_2
    clr hour
    Timer0ok_2:
    b0bts1 F_ON_OFF
    jmp Keyscan
    b0bts1 F_NO_DOOR
    jmp Timer0ok_2a
    b0bts0 F_STER
    jmp Keyscan
    Timer0ok_2a:
    b0 MOV a,Dsecond
    cmprs a,#0x00
    jmp Timer0ok_2x
    jmp Timer0ok_4
    Timer0ok_2x:
    decms Dsecond
    nop
    jmp Keyscan
    Timer0ok_4:
    b0 MOV a,fantime
    cmprs a,#0xff
    incms fantime
    nop
    MOV a,#59
    b0 MOV Dsecond,a
    decms Dminute
    nop
    call AdjDisplay
    b0 MOV a,Dminute
    cmprs a,#0xff
    jmp Timer0ok_7
    Timer0ok_5:
    b0bts1 F_STER
    jmp Timer0ok_6
    b0 MOV a,Dminute_Dry
    b0 MOV Dminute,a
    clr Dsecond
    clr flag2
    clr fantime
    b0bset F_DRY60
    call Clrstatus01
    b0bset F_DRY
    b0bset DRY
    jmp Keyscan
    Timer0ok_6:
    b0bset F_FINISH
    jmp Interruptend
    Timer0ok_7:
    b0bts0 F_STER
    jmp Keyscan

    b0 MOV a,fantime
    sub a,#20
    b0bts1 FC
    jmp Timer0ok_8
    b0bset FAN
    b0bset F_FAN
    Timer0ok_8:
    b0 MOV a,Dminute
    sub a,#30
    b0bts0 FC
    jmp Keyscan
    clr flag2
    b0bset F_DRY30
    b0bset FAN
    b0bset F_FAN
    ;\\\\\\
    Keyscan:
    b0bclr COM0
    b0bclr COM1
    b0bclr COM2
    b0bclr COM3
    b0bclr DATA8
    incms combuffer
    nop
    b0 MOV a,combuffer
    cmprs a,#0x01
    jmp $+2
    jmp C2
    cmprs a,#0x02
    jmp $+2
    jmp C3
    cmprs a,#0x03
    jmp $+2
    jmp C4


    上一頁 1 2 3 下一頁

    評論


    技術專區

    關閉
    主站蜘蛛池模板: 西吉县| 屏南县| 林周县| 灵宝市| 保德县| 远安县| 吴忠市| 新余市| 托克逊县| 开封县| 青海省| 灵山县| 湘潭市| 东光县| 江达县| 宝山区| 连江县| 甘德县| 辽阳县| 长顺县| 改则县| 商丘市| 宣恩县| 漠河县| 铁岭县| 田林县| 延庆县| 额济纳旗| 静宁县| 莒南县| 宁德市| 玛纳斯县| 大姚县| 富裕县| 广饶县| 乃东县| 大姚县| 桐梓县| 加查县| 南江县| 长白|