<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è) > 嵌入式系統 > 設計應用 > 基于51單片機秒表的程序設計

基于51單片機秒表的程序設計

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

;主程序

;――――――――――初始化程序―――――――――――

MAIN: MOV TMOD,#61H ;置T0方式1定時(shí),T1方式2計數

MOV TH0,#3CH ;T0置初值

MOV TL0,#0B0H

MOV TH1,#0C4H ;T1置初值

MOV TL1,#0C4H

MOV DPTR,#4400H ;8155控制口地址送DPTR

MOV A,#43H ;設置8155工作方式字

MOVX @DPTR,A ;設置PA、PB口輸出,PC口輸入

MOV 20H,#00H ;60秒計數單元置初值

MOV 21H,#14H ;50ms計數單元置初值

MOV SP,#3FH ;堆棧指針置初值

MOV R2,#08H n, bsp; ;LED待顯示位數送R2

MOV R0,#30H ;顯示緩沖區首址送R0

STAR: MOV @R0,#00H ;顯示緩沖區清零

INC R0

DJNZ R2,STAR

CLR A ;累加器清零

;―――――――――――鍵盤(pán)查詢(xún)程序――――――――――

KEY: ACALL KS ;調按鍵查詢(xún)子程序判是否有鍵按下

JNZ K1 ;有鍵按下轉移

ACALL DISP ;無(wú)鍵按下,調顯示子程序延時(shí)

AJMP KEY ;繼續查詢(xún)按鍵

;―――――――――――鍵盤(pán)掃描程序――――――――――

K1: ACALL DISP ;鍵盤(pán)去抖延時(shí)

ACALL DISP

ACALL KS ;再次判別是否有鍵按下

JNZ K2 ;有鍵按下轉移

AJMP KEY ;無(wú)按鍵,誤讀,繼續查詢(xún)按鍵

K2: MOV R3,#0FEH ;首列掃描字送R3

MOV R4,#00H ;首列號送R4

K3: MOV DPTR,#4401H ;PA口地址送DPTR,開(kāi)始列掃描

MOV A,R3

MOVX @DPTR,A ;列掃描字送PA口

INC DPTR ;指向PC口

INC DPTR

MOVX A,@DPTR ;讀取行掃描值

JB ACC.0,L1 ;第0行無(wú)鍵按下,轉查第1行

MOV A,#00H ;第0行有鍵按下,行首鍵號送A

AJMP LK ;轉求鍵號

L1: JB ACC.1,L2 ;第1行無(wú)鍵按下,轉查第2行

MOV A,#08H ;第1行有鍵按下,行首鍵號送A

AJMP LK ;轉求鍵號

L2: JB ACC.2,L3 ;第2行無(wú)鍵按下,轉查第3行

MOV A,#10H ;第2行有鍵按下,行首鍵號送A

AJMP LK ;轉求鍵號

L3: JB ACC.3,NEXT ;第3行無(wú)鍵按下,轉查下一列

MOV A,#18H ;第3行有鍵按下,行首鍵號送A

AJMP LK

LK: ADD A,R4 ;形成鍵碼送A

PUSH ACC ;鍵碼入棧保護

K4: ACALL DISP

ACALL KS ;等待鍵釋放

JNZ K4 ;未釋放,等待

POP ACC ;鍵釋放,彈棧送A

AJMP PR ;轉鍵盤(pán)處理程序

NEXT: INC R4 ;修改列號

MOV A,R3

JNB ACC.3,KEY ;4列掃描完返回按鍵查詢(xún)狀態(tài)

RL A ;未掃描完,改為下列掃描字

MOV R3,A , nbsp; ;掃描字暫存R3

AJMP K3 ;轉列掃描程序

;―――――――――――鍵盤(pán)處理程序―――――――――――――――

PR: CJNE A,#00H,PR01 ;不是KE0鍵碼,轉KE1鍵

AJMP KE0 ;轉KE0鍵處理程序

PR01: CJNE A,#01H,PR02 ;不是KE1鍵碼,轉KE2鍵

AJMP KE1 ;轉KE1鍵處理程序

PR02: CJNE A,#02H,PR03 ;不是KE2鍵碼,返回按鍵查詢(xún)

AJMP KE2 ;轉KE2鍵處理程序

PR03: AJMP KEY

KE0: SETB TR0 ;啟動(dòng)T0

SETB TR1 ;啟動(dòng)T1

SETB ET0 ;允許T0中斷

SETB EA ;開(kāi)中斷

AJMP KEY ;返回鍵盤(pán)查詢(xún)狀態(tài)

燃氣報警器相關(guān)文章:燃氣報警器原理


關(guān)鍵詞: 51單片機 秒表 定時(shí)器

評論


相關(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>