<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 按鍵實(shí)現加減運算及連續按鍵檢測

按鍵實(shí)現加減運算及連續按鍵檢測

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

*
注意:如果無(wú)法在keil里編譯,請刪除每一行的所有前導空白
程序效果:若0(即7EH)按下,則加1;若1(即7DH)按下,
則減1;若2(即7BH)按下,則快加,若按鍵3(77H)按下,則快減。
*/
ORG 0000H
LJMP START
ORG 0030H
START: MOV 30H,#00 //賦初值
MOV 31H,#00
MOV 32H,#01

LOOP1: MOV R2,#04 //循環(huán)四次
MOV R1,#0FEH //分別為:0FEH ?FDH ?FBH ?F7H

LOOP: MOV A,R1 //賦值,用于暫存A的值
MOV P0,A //賦初值
RL A //循環(huán)左移
XCH A,R1 //暫存A的值
MOV A,P0 //讀?P0口的值
LCALL DELAY1 //延時(shí)

CJNE A,#7EH,LOP1 //判斷是否有按鍵按下
LCALL ADD1 //有,則加1
LOP12: MOV A,P0 //以下語(yǔ)句是用于判斷按鍵是否松開(kāi)
LCALL DELAY1
CJNE A,#7EH,LOP1
LCALL DISPLAY
SJMP LOP12

LOP1: CJNE A,#7DH,LOP2
LCALL SUB1
LOP22: MOV A,P0
LCALL DELAY1
CJNE A,#7DH,LOP2
LCALL DISPLAY
SJMP LOP22

LOP2: CJNE A,#7BH,LOP3 //判斷快加的按鍵按下
MOV R3,#10 //按下了,下面的語(yǔ)句用于減慢數值變化速度
LOP32: LCALL DISPLAY
LCALL DELAY
DJNZ R3,LOP32
LCALL ADD1

LOP3: CJNE A,#77H,LOP4
MOV R4,#10
LOP42: LCALL DISPLAY
LCALL DELAY
DJNZ R4,LOP42
LCALL SUB1

LOP4: DJNZ R2,LOOP
LCALL DISPLAY
LJMP LOOP1
//顯示子程序
DISPLAY: MOV DPTR,#TAB //賦表首地址
MOV A,#0FFH
MOV P1,A //點(diǎn)亮最右邊的數碼管
XCH A,R0 //暫存A的值
MOV A,30H //顯示個(gè)位數
MOVC A,@A+DPTR
MOV P2,A
LCALL DELAY1 //延時(shí)
DEC R0 //減1,用于點(diǎn)亮下一個(gè)數碼管,準備下次顯示
XCH A,R0

MOV P1,A
XCH A,R0
MOV A,31H
MOVC A,@A+DPTR
MOV P2,A
LCALL DELAY1
DEC R0
XCH A,R0

MOV P1,A
XCH A,R0
MOV A,32H
MOVC A,@A+DPTR
MOV P2,A
LCALL DELAY1
RET
//加子程序
ADD1: INC 30H //個(gè)位加1
MOV A,30H //把30H的值賦給A
CJNE A,#0AH,LAP //判斷個(gè)位是否加為10
MOV 30H,#00 //是,則清零

INC 31H
MOV A,31H
CJNE A,#0AH,LAP
MOV 31H,#00

INC 32H
MOV A,32H
CJNE A,#0AH,LAP
MOV 32H,#00
LAP: NOP //空指令
RET //返回
//減子程序
SUB1: DEC 30H //個(gè)位減1
MOV A,30H //把30H的值賦給A
CJNE A,#0FFH,LSP //判斷30H的值為0后是否在減1
MOV 30H,#09 //是,則給30H賦9

DEC 31H
MOV A,31H
CJNE A,#0FFH,LSP
MOV 31H,#09

DEC 32H
MOV A,32H
CJNE A,#0FFH,LSP
MOV 32H,#09

LSP: NOP
RET
//延時(shí)子程序,時(shí)間大約為2us*20*200=8ms
DELAY: MOV R6,#20
DEL2: MOV R5,#200
DEL3: DJNZ R5,DEL3
DJNZ R6,DEL2
RET
//延時(shí)子程序,時(shí)間約為:2us*5*250=2.5ms
DELAY1: MOV R6,#5
DEL4: MOV R5,#250
DEL5: DJNZ R5,DEL5
DJNZ R6,DEL4
RET
TAB: DB 3FH,06H,5BH,4FH,66H ;數碼管顯示的數值
DB 6DH,7DH,07H,7FH,6FH
END
注意:如果無(wú)法在keil里編譯,請刪除每一行的所有前導空白,



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>