久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2178|回復: 0
收起左側

單片機時鐘中斷的應用

[復制鏈接]
ID:107593 發表于 2016-3-10 18:18 | 顯示全部樓層 |閱讀模式
本文以6MHz時鐘的單片機AT89C51系統為例,說明時鐘中斷的應用:

定時器初值與中斷周期 時鐘中斷無需過于頻繁,一般取20mS(50Hz)即可。如需要百分之一秒的時基信號,可取10mS(100Hz)。這里取20mS,用定時器T0工作于16位定時器方式(方式1)。T0的工作方式為:每過一個機器周期自動加1,當計滿0FFFFh,要溢出時,便會產生中斷,并由硬件設置相應的標志位供軟件查詢。即中斷時比啟動時經過了N+1個機器周期。所以,我們只要在T0中預先存入一個比滿值0FFFFh小N的數,然后啟動定時器,便會在N個機器周期后產生中斷。這個值便是所謂的“初值”。下面計算我們需要的初值:時鐘為6MHz,12個時鐘周期為一個機器周期,20mS中有10000個機器周期。(10000)10=(2710)16,則0FFFFh-2710h+1=0D8F0h。由于響應中斷、保護現場及重裝初值還需要7~8個機器周期,把這個值再加上7,即T0應裝入的初值是0D8F7h。每次中斷進入后,先把A及 W的值壓入堆棧,然后即把0D8F7h裝入T0。
設置一個單元,每次中斷加1 我們可以取內部RAM中一個單元,取名為INCPI(Increase Per Interrupt),在中斷中,裝完T0初值后,用INC INCPI指令將其加一。從這個單元中,無論中斷程序還是主程序,都可以從中獲得20mS的1~256之間任意整數倍的信號。例如:有一段向數碼管送顯的程序,需要每0.5秒執行一次以便刷新顯示器,便可以設一單元(稱為等待單元)W_DI ,用/MOV A,INCPI/ADD A,#25/MOV W_DI ,A/語句讓其比當前的INCPI值大25,然后在每次中斷中檢查是否于INCPI值相等。若相等,說明已過了25個中斷周期,便執行送顯程序,并且讓W_DI 再加上25,等待下個0.5秒。我們可以設置多個等待單元,以便取出多個不同的時基信號。讓中斷程序在每次中斷時依次查詢各個等待單元是否與INCPI相等,若相等,則執行相應的處理,并重新設置該等待單元的值,否則跳過。例如:用0.5秒信號刷新或閃爍顯示器,用1秒信號產生實時時鐘,或輸出一定頻率的方波,以一定間隔查詢輸入設備等。
在中斷中讀鍵 通常,我們在主程序中讀鍵盤,步驟為:掃描鍵盤,若有鍵按下,則延時幾十毫秒去抖動,再次確認此鍵確實按下,然后處理該鍵對應的工作,完成后再次重上述步驟。但這有兩點不足:1.處理相應工作時無法鎖存按鍵的輸入,即可能漏鍵。2.延時去抖時CPU無法做其它事情,效率不高。如果把讀鍵放入時鐘中斷中,則可避免上述不足。方法為:如果兩次相鄰的中斷中都讀到同一個鍵按下,則這個鍵是有效的(達到了去抖目的),并將其鎖存到先入先出(隊列)的鍵盤緩沖區,等主程序來處理。這樣,主程序處理按鍵的同時,仍可響應鍵盤的輸入。緩沖區深度通常可設為8級,若鎖存的鍵數多于8個,則忽略新的按鍵,并報警提示用戶新的按鍵將無效。若鍵盤緩沖隊列停滯的時間大大長于主程序處理按鍵所需要的最大時間,說明主程序已出錯或跑飛,可以在中斷用指令將系統復位,起到了看門狗的目的。

主程序中的延時 由于有常開的時鐘中斷,所以當主程序中有需要時間較短、精度較高的延時時,應暫時把時鐘中斷關閉。而程序中需要時間較長、精度不高的延時時,便可仿照下需的寫法,避免多層嵌套的循環延時。
例:在P1.1輸出1秒的高電平脈沖

MOV A,INCPI


INC A

CJNE A,INCPI$ ;等待一次中斷處理完成
SET P1.1 ;設P1.1為H,脈沖開始
ADD A,#50 ;50個20mS為1秒
CJNE A,INCPI,$ ;等中斷將INCPI加一50次

CLR P1.1 ;設P1.1為L,脈沖結束
結束語:從上看出,要靈活地應用時鐘中斷,將任務合理分配給中斷和主程序,并且二者要分工明確,接口簡單。
注意:應盡量縮短中斷處理程序的執行時間,更不要長于20mS。



回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费激情网站 | 欧美久久久久久久久 | 少妇一级淫片免费放播放 | 伊人久久大香线 | 亚洲欧美在线视频 | 色婷婷一区二区三区四区 | 一区二区视频 | 国产一区二区三区日韩 | 一区二区三区四区在线播放 | 国产h视频 | 免费在线观看成人 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | a级免费观看视频 | 69亚洲精品| 免费观看的黄色网址 | 毛片网站免费观看 | 亚洲在线一区二区 | 日韩一区二区三区视频在线播放 | 国产在线不卡 | 97热在线| 久久精品国产免费高清 | 麻豆精品一区二区三区在线观看 | 欧美日韩专区 | www.888www看片 | 91精品国产高清一区二区三区 | 中文在线一区二区 | 成人一级毛片 | 91性高湖久久久久久久久_久久99 | 精品二| 成人免费网站 | 成人久久18免费 | 91视频导航 | 97av视频在线| 中文字幕一区二区三区乱码图片 | 精产国产伦理一二三区 | 国产一区视频在线 | 国产精品美女在线观看 | 中文字幕在线观看 | 99精品福利视频 | 国产不卡在线观看 | 国产精品毛片一区二区三区 |