中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 鍵盤接口程序設(shè)計(jì)之加減運(yùn)算

        鍵盤接口程序設(shè)計(jì)之加減運(yùn)算

        作者: 時間:2012-11-10 來源:網(wǎng)絡(luò) 收藏

        /*
        程序效果:1、開機(jī)時顯示899
        2、按鍵key0一次數(shù)字加1,按鍵key1一次數(shù)字減1。
        加到999時再加1歸零,減到000時再減1得999。
        3、按住鍵key2不放實(shí)現(xiàn)連加功能,前3s每0.2s加1,以后每0.1s加1.
        4、按住鍵key3不放實(shí)現(xiàn)連減功能,前3s每0.2s減1,以后每0.1s減1.
        5、版權(quán)所有:http://www.51hei.com/ 轉(zhuǎn)帖須保留
        */
        ORG 0000H
        LJMP START
        ORG 0013H //1
        LJMP IN1
        ORG 0030H
        START:SETB IT1 //設(shè)置為下降沿觸發(fā)
        SETB EX1 //打開1
        SETB EA //開總中斷
        MOV 30H,#09 //賦初值
        MOV 31H,#09
        MOV 32H,#08
        LOOP: LCALL DISPLAY //調(diào)用顯示子程序
        SJMP LOOP

        IN1: LCALL DISPLAY
        LCALL DISPLAY
        LCALL DELAY1
        JB P3.3,LA0P //其實(shí)這三條語句就是
        LJMP LA0P1 //JB P3.3 LOOP1
        LA0P: LJMP LOOP1 //只是跳轉(zhuǎn)距離沒有那么大
        LA0P1: JNB P3.4 ,KEY0 //KEY0按下,轉(zhuǎn)key0,

        //沒有則,執(zhí)行下面的語句
        JNB P3.5,KEY1
        JNB P3.6,KEY2
        JNB P3.7,KEY3
        LOOP3: JNB P3.3,LOOP2 //等待P3.3為高
        LCALL DISPLAY //為高,調(diào)用現(xiàn)實(shí)子程序
        LCALL DISPLAY
        LCALL DELAY1 //延時12ms
        JNB P3.3,LOOP3 //P3.3為低,繼續(xù)等待
        LJMP LOOP1 //P3.3為高,結(jié)束
        LOOP2: LCALL DISPLAY
        LJMP LOOP3

        KEY0: LCALL ADD1 //KEY0按下,加1
        LJMP LOOP3
        KEY1: LCALL SUB1 //KEY1按下,加1
        LJMP LOOP3

        KEY2: MOV R2,#15
        LAP2: MOV R1,#33

        LCALL ADD1
        LAP1: LCALL DISPLAY // 循環(huán)完33次約為0.2s
        JB P3.3,LAP4 // 33*6ms
        DJNZ R1,LAP1 //
        DJNZ R2,LAP2 //外循環(huán)結(jié)束,需3s
        //
        LAP5: MOV R1,#16
        LCALL ADD1
        LAP6: LCALL DISPLAY // 循環(huán)完16次,需0.1s
        JB P3.3,LAP7 // 16*6ms
        DJNZ R1, LAP6 //
        LJMP LAP5 //快速加1

        LAP7: LCALL DISPLAY //P3.3為高,調(diào)用顯示子程序
        LCALL DELAY1
        JNB P3.3,LAP6 //P3.3為低,繼續(xù)快速加1
        LJMP LOOP1 //為高,結(jié)束

        LAP4: LCALL DISPLAY
        LCALL DISPLAY
        LCALL DELAY1
        JNB P3.3,LAP1 //為低,重新循環(huán)
        LJMP LOOP1 //為高,結(jié)束

        KEY3: MOV R2,#15 //以下功能同KEY2
        LSP2: MOV R1,#33

        LCALL SUB1
        LSP1: LCALL DISPLAY
        JB P3.3,LSP4
        DJNZ R1,LSP1
        DJNZ R2,LSP2

        MOV R1,#16
        LCALL SUB1
        LSP5: LCALL DISPLAY
        JB P3.3,LSP6
        DJNZ R1, LSP5
        LJMP key3

        LSP6: LCALL DISPLAY
        LCALL DELAY1
        JNB P3.3,LSP5
        LJMP LOOP1


        LSP4: LCALL DISPLAY
        LCALL DISPLAY
        LCALL DELAY1
        JNB P3.3,LSP1

        LOOP1: NOP //空指令
        RETI //返回


        DISPLAY:MOV DPTR,#TAB //顯示沒有問題了
        MOV A,#0FBH //賦初值
        MOV P2,A //點(diǎn)亮第四個數(shù)碼管
        XCH A,R0 //暫存A的值
        MOV A,32H
        MOVC A,@A+DPTR
        MOV P0,A //顯示個位數(shù)
        LCALL DELAY //延時
        XCH A,R0
        RL A //循環(huán)右移,為下次做準(zhǔn)備

        MOV P2,A
        XCH A,R0
        MOV A,31H
        MOVC A,@A+DPTR
        MOV P0,A
        LCALL DELAY
        XCH A,R0
        RL A

        MOV P2,A
        MOV A,30H
        MOVC A,@A+DPTR
        MOV P0,A
        LCALL DELAY
        RET

        ADD1: INC 30H //加1子程序
        MOV A,30H
        CJNE A,#10,LOP1 //判斷個位是否滿10
        MOV 30H,#00 //是,則清零
        INC 31H //同時十位加1
        MOV A,31H
        CJNE A,#10,LOP1 //判斷十位是否滿10
        MOV 31H,#00 //是,則清零
        INC 32H //同時百位加1
        MOV A,32H
        CJNE A,#10,LOP1 //判斷百位是否滿10
        MOV 32H,#00 //是,則清零
        LOP1: NOP //空指令
        RET //返回

        SUB1: DEC 30H //減1子程序
        MOV A,30H
        CJNE A,#0FFH,LOP2 //判斷是否減過0
        MOV 30H,#09 //是,則賦9
        DEC 31H
        MOV A,31H
        CJNE A,#0FFH,LOP2
        MOV 31H,#09
        DEC 32H
        MOV A,32H
        CJNE A,#0FFH,LOP2
        MOV 32H,#09
        LOP2: NOP
        RET

        TAB: DB 3FH,06H,5BH,4FH,66H ;數(shù)碼管顯示的數(shù)值
        DB 6DH,7DH,07H,7FH,6FH
        DELAY: MOV R7,#4 //延時時間約為:2MS
        DEL2: MOV R6,#250
        DEL1: DJNZ R6,DEL1
        DJNZ R7,DEL2
        RET
        DELAY1: MOV R7,#24 //延時時間約為:12MS
        DEL3: MOV R6,#250
        DEL4: DJNZ R6,DEL4
        DJNZ R7,DEL3
        RET
        END



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉