<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ò ) 收藏

1.設計目的:

(1)利用單片機中斷和計數方式實(shí)現秒、分定時(shí)。

(2)通過(guò)LED顯示程序的調整,熟悉8155與8051,8155與LED的接口技術(shù),熟悉LED動(dòng)態(tài)顯示的控制過(guò)程。

(3)通過(guò)鍵盤(pán)程序的調整,熟悉8155與矩陣式鍵盤(pán)的接口技術(shù),熟悉鍵盤(pán)掃描原理。

(4)通過(guò)閱讀和調試簡(jiǎn)易整體程序,學(xué)會(huì )如何編制含LED動(dòng)態(tài)顯示、鍵盤(pán)掃描和中斷等多種功能的綜合程序,初步體會(huì )大型程序的編制和調試技巧。

2. 設計步驟與要求

(1)要求:以8位LED右邊2位顯示秒,左邊6位顯示0,實(shí)現計時(shí)顯示。以4×4矩陣鍵盤(pán)的KE0、KE1、KE2等3鍵分別實(shí)現啟動(dòng)、停止、清零等功能。

(2)方法:用單片機定時(shí)器T0中斷方式,實(shí)現1秒定時(shí);利用單片機定時(shí)器1方式3計數,實(shí)現60秒計數。用動(dòng)態(tài)顯示方式實(shí)現計時(shí)顯示,用鍵盤(pán)掃描方式取得KE0、KE1、KE2的鍵值,用鍵盤(pán)處理程序實(shí)現秒表的啟動(dòng)、停止、清零等功能。

(3)軟件設計:軟件整體設計思路是以鍵盤(pán)掃描和鍵盤(pán)處理作為主程序,LED動(dòng)態(tài)顯示作為子程序。二者間的聯(lián)系是:主程序查詢(xún)有無(wú)按鍵,無(wú)按鍵時(shí),調用二次LED動(dòng)態(tài)顯示子程序(約延時(shí)8ms)后再回到按鍵查詢(xún)狀態(tài),不斷循環(huán);有按鍵時(shí),LED動(dòng)態(tài)顯示子程序作為按鍵防抖延時(shí)被連續調用二次(約延時(shí)16ms),待按鍵處理程序執行完后,再回到按鍵查詢(xún)狀態(tài),同時(shí)兼顧了按鍵掃描取值的準確性和LED動(dòng)態(tài)顯示的穩定性。秒定時(shí)采用定時(shí)器T0中斷方式進(jìn)行,60秒計數由定時(shí)器1采用方式3完成,中斷及計數的開(kāi)啟與關(guān)閉受控于按鍵處理程序。由上述設計思路可設計出軟件流程圖如圖1.1所示。

(5)程序編制:編程時(shí)置KE0鍵為“啟動(dòng)”,置KE1鍵為“停止”,置KE2鍵為“清零”,因按鍵較少,在處理按鍵值時(shí)未采用散轉指令“JMP”,而是采用條件轉移指令“CJNE”,每條指令后緊跟著(zhù)一條無(wú)條件跳轉指令“AJMP”,轉至相應的按鍵處理程序,如不是上述3個(gè)按鍵值則跳回按鍵查詢(xún)狀態(tài)。8位LED顯示的數據由顯示緩沖區30H~37H單元中的數據決定,順序是從左至右,動(dòng)態(tài)顯示時(shí),每位顯示持續時(shí)間為1ms,1ms延時(shí)由軟件實(shí)現,8位顯示約耗時(shí)8ms。主程序、按鍵查詢(xún)子程序采用第0組工作寄存器,顯示子程序采用第1組工作寄存器。1秒定時(shí)采用定時(shí)器T0方式1中斷,每50ms中斷一次,用21H做50 ms計數單元,每20次為一個(gè)循環(huán),計滿(mǎn)20次,60秒計數單元(20H)計數1次。60秒計數采用定時(shí)器T1方式2計數,計數脈沖采用軟件置位、復位P3.5口的方法實(shí)現,用20H單元做60秒計數單元,如定時(shí)器T1溢出,則20H單元被清零,20H單元的數據采用十進(jìn)制計數,該數據被拆成個(gè)位和十位兩個(gè)數據后分別送至顯示緩沖區的30H、31H單元。

按照上述思路可編制源程序如下:

ORG 0000H

AJMP MAIN

ORG 000BH

AJMP CONT

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

上一頁(yè) 1 2 3 下一頁(yè)

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