當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]本文以6MHz時鐘的單片機AT89C51系統(tǒng)為例,說明時鐘中斷的應(yīng)用:  定時器初值與中斷周期 時鐘中斷無需過于頻繁,一般取20mS(50Hz)即可。如需要百分之一秒的時基信號,可取10mS(100Hz)。這里取20mS,用定時器T0工作

本文以6MHz時鐘的單片機AT89C51系統(tǒng)為例,說明時鐘中斷的應(yīng)用:

  定時器初值與中斷周期 時鐘中斷無需過于頻繁,一般取20mS(50Hz)即可。如需要百分之一秒的時基信號,可取10mS(100Hz)。這里取20mS,用定時器T0工作于16位定時器方式(方式1)。T0的工作方式為:每過一個機器周期自動加1,當(dāng)計滿0FFFFh,要溢出時,便會產(chǎn)生中斷,并由硬件設(shè)置相應(yīng)的標志位供軟件查詢。即中斷時比啟動時經(jīng)過了N+1個機器周期。所以,我們只要在T0中預(yù)先存入一個比滿值0FFFFh小N的數(shù),然后啟動定時器,便會在N個機器周期后產(chǎn)生中斷。這個值便是所謂的“初值”。下面計算我們需要的初值:時鐘為6MHz,12個時鐘周期為一個機器周期,20mS中有10000個機器周期。(10000)10=(2710)16,則0FFFFh-2710h+1=0D8F0h。由于響應(yīng)中斷、保護現(xiàn)場及重裝初值還需要7~8個機器周期,把這個值再加上7,即T0應(yīng)裝入的初值是0D8F7h。每次中斷進入后,先把A及 W的值壓入堆棧,然后即把0D8F7h裝入T0。

  設(shè)置一個單元,每次中斷加1 我們可以取內(nèi)部RAM中一個單元,取名為INCPI(Increase Per Interrupt),在中斷中,裝完T0初值后,用INC INCPI指令將其加一。從這個單元中,無論中斷程序還是主程序,都可以從中獲得20mS的1~256之間任意整數(shù)倍的信號。例如:有一段向數(shù)碼管送顯的程序,需要每0.5秒執(zhí)行一次以便刷新顯示器,便可以設(shè)一單元(稱為等待單元)W_DI ,用/MOV A,INCPI/ADD A,#25/MOV W_DI ,A/語句讓其比當(dāng)前的INCPI值大25,然后在每次中斷中檢查是否于INCPI值相等。若相等,說明已過了25個中斷周期,便執(zhí)行送顯程序,并且讓W(xué)_DI 再加上25,等待下個0.5秒。我們可以設(shè)置多個等待單元,以便取出多個不同的時基信號。讓中斷程序在每次中斷時依次查詢各個等待單元是否與INCPI相等,若相等,則執(zhí)行相應(yīng)的處理,并重新設(shè)置該等待單元的值,否則跳過。例如:用0.5秒信號刷新或閃爍顯示器,用1秒信號產(chǎn)生實時時鐘,或輸出一定頻率的方波,以一定間隔查詢輸入設(shè)備等。

  在中斷中讀鍵 通常,我們在主程序中讀鍵盤,步驟為:掃描鍵盤,若有鍵按下,則延時幾十毫秒去抖動,再次確認此鍵確實按下,然后處理該鍵對應(yīng)的工作,完成后再次重上述步驟。但這有兩點不足:1.處理相應(yīng)工作時無法鎖存按鍵的輸入,即可能漏鍵。2.延時去抖時CPU無法做其它事情,效率不高。如果把讀鍵放入時鐘中斷中,則可避免上述不足。方法為:如果兩次相鄰的中斷中都讀到同一個鍵按下,則這個鍵是有效的(達到了去抖目的),并將其鎖存到先入先出(隊列)的鍵盤緩沖區(qū),等主程序來處理。這樣,主程序處理按鍵的同時,仍可響應(yīng)鍵盤的輸入。緩沖區(qū)深度通??稍O(shè)為8級,若鎖存的鍵數(shù)多于8個,則忽略新的按鍵,并報警提示用戶新的按鍵將無效。若鍵盤緩沖隊列停滯的時間大大長于主程序處理按鍵所需要的最大時間,說明主程序已出錯或跑飛,可以在中斷用指令將系統(tǒng)復(fù)位,起到了看門狗的目的。

  主程序中的延時 由于有常開的時鐘中斷,所以當(dāng)主程序中有需要時間較短、精度較高的延時時,應(yīng)暫時把時鐘中斷關(guān)閉。而程序中需要時間較長、精度不高的延時時,便可仿照下需的寫法,避免多層嵌套的循環(huán)延時。

  例:在P1.1輸出1秒的高電平脈沖

  MOV  A,INCPI

  INC  A

  CJNE  A,INCPI$  ;等待一次中斷處理完成

  SET  P1.1  ;設(shè)P1.1為H,脈沖開始

  ADD  A,#50  ;50個20mS為1秒

  CJNE  A,INCPI,$  ;等中斷將INCPI加一50次

  CLR  P1.1  ;設(shè)P1.1為L,脈沖結(jié)束

  結(jié)束語:從上看出,要靈活地應(yīng)用時鐘中斷,將任務(wù)合理分配給中斷和主程序,并且二者要分工明確,接口簡單。

        注意:應(yīng)盡量縮短中斷處理程序的執(zhí)行時間,更不要長于20mS。
 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉