新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 讀入獨立鍵,并點亮相應的LED燈

        讀入獨立鍵,并點亮相應的LED燈

        作者: 時間:2012-09-05 來源:網絡 收藏

        ***************************************************************************
        006.asm
        讀入鍵盤上的按鍵,并把,若一段時間無按鍵,剛循環
        接線:P0口接八位
        P2口接八位按鍵
        定時器T0計時,中斷方式
        ***************************************************************************/
        ORG 0000H
        LJMP MAIN
        ORG 000BH
        LJMP INT_T0
        ORG 0100H
        MAIN: ;主程序入口
        MOV SP,#50H ;設置堆棧
        MOV TMOD,#01H ;設置定時模式
        MOV TH0,#15H ;賦定時初值
        MOV TL0,#9FH
        CLR 20H.0 ;初始化按鍵標志
        MOV R2,#0FFH ;初始化鍵值
        MOV R3,#01H ;初始化循環閃鑠初值
        MOV R4,#00H ;初始化定時初值
        SETB TR0 ;啟動定時器
        MOV IE,#82H ;開中斷
        LOOP:
        LCALL KEY_READ ;掃描鍵盤
        L1: JB 20H.0,LIGH ;有鍵輸入,則去LED
        JBC 20H.0,LOOP
        MOV A,R4
        CJNE A,#0C8H,LOOP ;否則去判斷定時是否到,定時到,循環點亮八位LED
        LCALL LEED
        LJMP L1

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

        /*點亮LED*/
        LIGH:
        MOV A,R2 ;取鍵值
        MOV P0,A ;輸出
        RET

        /*循環點亮LED*/
        LEED:
        MOV A,R3
        LOOP1:
        CPL A
        MOV P0,A
        LCALL KEY_READ
        JB 20H.0,RETUN0
        MOV R0,#0FFH
        LCALL DELAY
        MOV A,R3
        RL A
        MOV R3,A
        CJNE A,#80H,LOOP1
        LOOP2:
        CPL A
        MOV P0,A
        LCALL KEY_READ
        JB 20H.0,RETUN0
        MOV R0,#0FFH
        LCALL DELAY
        MOV A,R3
        RR A
        MOV R3,A
        CJNE A,#01H,LOOP2
        SJMP LOOP1
        RETUN0:
        RET

        /*鍵盤掃描程序*/

        KEY_READ:
        CLR EA ;掃描鍵盤時關定時中斷
        MOV A,P2
        CJNE A,#0FFH,DE
        LJMP RETUN
        DE: MOV R0,#8AH
        LCALL DELAY
        MOV A,P2
        CJNE A,#0FFH,DE0
        LJMP RETUN
        DE0:MOV R2,A
        SETB 20H.0
        MOV R4,#00H
        DE1:MOV A,P2
        CJNE A,#0FFH,DE1
        RETUN:
        SETB EA
        RET

        /*中斷子程序*/

        INT_T0:
        CLR EA
        PUSH ACC
        MOV TH0,#15H ;重賦定時初值
        MOV TL0,#9FH
        INC R4
        POP ACC
        SETB EA
        RETI

        /*延時子程序 */

        DELAY:
        D1: MOV R1,#0FFH
        D0: DJNZ R1,D0
        DJNZ R0,D1
        RET


        END

        led燈相關文章:led燈原理




        關鍵詞: LED 相應 點亮 獨立

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 应用必备| 葵青区| 文安县| 沂南县| 正阳县| 故城县| 涞源县| 南投县| 红安县| 永昌县| 抚顺市| 河池市| 洛扎县| 星座| 乐平市| 从化市| 修文县| 平果县| 隆昌县| 那坡县| 阳西县| 溧水县| 鲜城| 改则县| 偃师市| 枞阳县| 深水埗区| 凤翔县| 荆门市| 江华| 凌云县| 赤城县| 博白县| 固原市| 星子县| 林芝县| 道真| 交口县| 明光市| 都江堰市| 都安|