新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機的防盜門控制程序

        單片機的防盜門控制程序

        作者: 時間:2012-08-24 來源:網絡 收藏

        一個,采用無線遙控方式開門,步進馬達執行動作。
        ;2009.11.22修正,采用AT89C2051,liweiqiang
        ;P3.3接峰鳴器
        ;P3.5接門狀態開關信號輸入,低電位表示門已關上,高電位表示門已打開
        ;P3.7搖控開門信號輸入,低電位表示有開門信號。
        org 0000h
        ljmp start
        org 000bh
        ljmp int_0

        本文引用地址:http://www.104case.com/article/170986.htm

        start:
        mov sp,#60h
        mov tmod,#01h
        mov th0,#0b0h
        mov tl0,#0b8h
        mov r1,#00h
        mov r0,#00h
        setb ea
        setb et0
        setb tr0
        ;============================================
        main:;主循環開始
        jb p3.5,kss;P35=0,表示門已關門.向下執行
        jnb 20H.0,kss;20H.0=0表示已鎖門.轉手工開鎖信號檢測處
        lcall gs;關鎖
        clr 20H.0;置20H.0=0,表示已鎖一次門.
        kss:;;手工開鎖信號檢測
        jnb p3.5,kst;如果門被手動從里面打開過就向下執行清鎖門標志位。
        ajmp ddjm
        kst:;搖控開鎖信號檢測
        jb p3.7,kmjs;有低電平開鎖信號?是向下執行
        lcall delay;延時消抖動
        jnb p3.7,kmjs;確認開鎖按鍵是否已放開。是向下執行
        lcall ks;開鎖
        setb tr0;_i後r
        kmjs:;_Tr
        cjne r0,#30,main;_Tr15秒後zyT的B
        mov r0,#00h
        clr tr0

        ddjm:
        jb p3.5,$;等待門被關上
        setb 20h.0;門關上后清已鎖門標志位,
        clr tr0; 停止
        jmp main;反回主程式
        ;===========================================

        int_0:
        push psw
        push acc
        inc r1
        cjne r1,#14,ext
        inc r0
        mov r1,#00h
        ext:
        mov th0,#0b0h
        mov tl0,#0b8h
        pop acc
        pop psw
        reti


        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;開鎖子

        ks:
        mov r0,#3
        loop1:
        mov p1,#10101111b
        acall delay
        mov p1,#11001111b
        acall delay
        mov p1,#11010111b
        acall delay
        mov p1,#10110111b
        acall delay
        djnz r0,loop1
        mov p1,#0ffh
        lcall delay1
        lcall bz
        mov r1,#00h
        setb tr0
        ret
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;關鎖子
        gs:
        lcall delay1
        lcall delay1
        lcall delay1
        lcall delay1
        mov r0,#3
        loop2:
        mov p1,#10110111b
        acall delay
        mov p1,#11010111b
        acall delay
        mov p1,#11001111b
        acall delay
        mov p1,#10101111b
        acall delay
        djnz r0,loop2
        mov p1,#0ffh
        lcall delay1
        lcall bz
        lcall delay
        lcall bz

        ret
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        bz:
        clr p3.3
        lcall delay1
        setb p3.3
        ret
        delay:
        mov r6,#30
        d1:mov r7,#0
        d2:djnz r7,d2
        djnz r6,d1
        ret


        delay1:
        mov r5,#200
        dd1: mov r4,#100
        dd2: mov r3,#10
        dd3: djnz r3,dd3
        djnz r4,dd2
        djnz r5,dd1
        ret
        end



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南丰县| 大新县| 尼勒克县| 南靖县| 五河县| 三都| 卫辉市| 峨眉山市| 密山市| 大悟县| 桐梓县| 昌江| 疏附县| 阿图什市| 禄丰县| 桃园市| 曲松县| 泾源县| 丹寨县| 秭归县| 开化县| 收藏| 奉节县| 普宁市| 安福县| 微博| 桑植县| 多伦县| 广汉市| 交口县| 新河县| 尼木县| 新巴尔虎左旗| 固安县| 大悟县| 弥勒县| 三都| 张北县| 平陆县| 杭锦旗| 乐亭县|