功能強大的時鐘中斷
在單片機程序設計中,設置一個好的時鐘中斷,將能使一個CPU發揮兩個CPU的功效,大大方便和簡化程序的編制,提高系統的效率與可操作性。我們可以把一些例行的及需要定時執行的程序放在時鐘中斷中,還可以利用時鐘中斷協助主程序完成定時、延時等操作。
下面以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及PSW的值壓入堆棧,然后即把0D8F7h裝入T0。
設置一個單元,每次中斷加1 我們可以取內部RAM中一個單元,取名為INCPI(Increase Per Interrupt),在中斷中,裝完T0初值后,用INC INCPI指令將其加一。從這個單元中,無論中斷程序還是主程序,都可以從中獲得20mS的1~256之間任意整數倍的信號。例如:有一段向數碼管送顯的程序,需要每0.5秒執行一次以便刷新顯示器,便可以設一單元(稱為等待單元)W_DISP,用/MOV A,INCPI/ADD A,#25/MOV W_DISP,A/語句讓其比當前的INCPI值大25,然后在每次中斷中檢查是否于INCPI值相等。若相等,說明已過了25個中斷周期,便執行送顯程序,并且讓W_DISP再加上25,等待下個0.5秒。我們可以設置多個等待單元,以便取出多個不同的時基信號。讓中斷程序在每次中斷時依次查詢各個等待單元是否與INCPI相等,若相等,則執行相應的處理,并重新設置該等待單元的值,否則跳過。例如:用0.5秒信號刷新或閃爍顯示器,用1秒信號產生實時時鐘,或輸出一定頻率的方波,以一定間隔查詢輸入設備等。
在中斷中讀鍵 通常,我們在主程序中讀鍵盤,步驟為:掃描鍵盤,若有鍵按下,則延時幾十毫秒去抖動,再次確認此鍵確實按下,然后處理該鍵對應的工作,完成后再次重上述步驟。但這有兩點不足:1.處理相應工作時無法鎖存按鍵的輸入,即可能漏鍵。2.延時去抖時CPU無法做其它事情,效率不高。如果把讀鍵放入時鐘中斷中,則可避免上述不足。方法為:如果兩次相鄰的中斷中都讀到同一個鍵按下,則這個鍵是有效的(達到了去抖目的),并將其鎖存到先入先出(隊列)的鍵盤緩沖區,等主程序來處理。這樣,主程序處理按鍵的同時,仍可響應鍵盤的輸入。緩沖區深度通??稍O為8級,若鎖存的鍵數多于8個,則忽略新的按鍵,并報警提示用戶新的按鍵將無效。若鍵盤緩沖隊列停滯的時間大大長于主程序處理按鍵所需要的最大時間,說明主程序已出錯或跑飛,可以在中斷用指令將系統復位,起到了看門狗的目的。
主程序中的延時 由于有常開的時鐘中斷,所以當主程序中有需要時間較短、精度較高的延時時,應暫時把時鐘中斷關閉。而程序中需要時間較長、精度不高的延時時,便可仿照下需的寫法,避免多層嵌套的循環延時。
例:在P1.1輸出1秒的高電平脈沖
MOV A,INCPI
INC A
CJNE A,INCPI$ ;等待一次中斷處理完成
SETB P1.1 ;設P1.1為H,脈沖開始
ADD A,#50 ;50個20mS為1秒
CJNE A,INCPI,$ ;等中斷將INCPI加一50次
CLR P1.1 ;設P1.1為L,脈沖結束
結束語:從上看出,要靈活地應用時鐘中斷,將任務合理分配給中斷和主程序,并且二者要分工明確,接口簡單。這其中的技巧還需要大家在實踐中多多摸索與體會。另外要注意:應盡量縮短中斷處理程序的執行時間,更不要長于20mS。
單片機編程技巧-時鐘中斷
- 中斷(40985)
相關推薦
MCS-51單片機終端及外中斷軟件編程
MCS-51單片機有多個中斷源,以8051為例,有5個中斷源,兩個外中斷、兩個定時中斷和一個串行中斷,這一節我們討論外中斷軟件編程。
2011-12-12 10:28:131927
單片機外部中斷的好處
外部中斷是單片機實時地處理外部事件的一種內部機制。當外部事件發生時,單片機的中斷系統將迫使CPU暫停正在執行的程序,轉而去進行中斷事件的處理,中斷完畢后返回被中斷的程序處,繼續執行下去。
2023-10-31 15:58:58810
430單片機與時鐘芯片共用晶振問題
``我設計一塊電路,用到430單片機和一個實時時鐘芯片,兩個都要用到32768Hz晶振。我想能不能讓它們共用同一個晶振?有類似的電路,這張圖是51單片機編程器的電路圖,上面就是兩個51單片機公用一個
2014-04-10 10:54:40
51單片機中斷
小弟這幾天在為單片機編程,想問問各位大俠,單片機中斷是怎么回事?要不要在主程序中設置標志(就像調用函數那樣)?怎樣設置10毫秒的中斷?萬分感謝各位大俠
2013-05-21 23:35:04
51單片機中斷詳解
單片機_中斷理解51單片機中斷詳解(上)51單片機中斷詳解(中)51單片機中斷詳解(下)單片機 串口編程之串口通信仿真實驗單片機學習(三)定時器篇
2021-11-22 06:08:14
單片機中斷的作用
文章目錄為了女王,咳咳,為了知識敢說中斷不會嗎?單片機的中斷系統1.什么是中斷2.中斷的執行過程3.單片機中斷的作用4.中斷嵌套為了女王,咳咳,為了知識敢說中斷不會嗎?單片機的中斷系統1.什么是中斷
2022-02-28 07:45:49
單片機編程實驗板設計
圖28.1 單片機編程實驗板單片機是一門實踐性非常強的學科,復雜的中斷系統和寄存器往往讓初學者覺得晦澀難懂。如果僅僅是理論學習和紙上談兵而不經過任何實踐,套用平凡老師以前的一句話——“我勸您還是趁早
2021-12-13 08:05:35
單片機入門 (5) 中斷
單片機編程過程中一定會遇到的、也是單片機控制中不可缺少的一種處理方式---“中斷”?!?b class="flag-6" style="color: red">中斷”處理并非單片機控制系統所特有的現象,在我們的日常生活中“中斷”的例子也隨處可見。讓我們來看看身邊的例子吧
2018-04-03 17:28:44
單片機外部中斷的基本使用方法
外部中斷一、實驗目的二、實驗內容三、實驗步驟四、C代碼如下五、實驗結果六、實驗體會一、實驗目的掌握單片機外部中斷的基本使用方法了解單片機外部中斷脈沖觸發和電平觸發的不同應用掌握外部中斷處理程序的編程
2021-12-03 07:42:41
單片機必備技能——中斷
單片機CPU在處理某一事件A時,發生了另一事件B請求CPU迅速去處理(中斷發生);CPU暫時中斷當前的工作,轉去處理事件B(中斷響應和中斷服務);待CPU將事件B處理完畢后,再回到原來事件A被中斷
2019-10-18 08:00:00
單片機的中斷介紹
目錄一、中斷的介紹1.1 單片機的中斷1.2 STM32的中斷1.2.1 中斷地址1.2.2 中斷優先級1.2.3 中斷使能1.3 中斷的過程二、利用STM32CubeMX生成HAL庫代碼,并實現
2022-01-14 08:19:06
單片機的時鐘頻率是怎么來的
F4系列延時:系統滴答定時器SysTick_Config(168000);延時1ms,就是進入void SysTick_Handler(void)中斷的時間是1ms168MHZ是怎么來的??單片機
2021-12-06 07:20:35
單片機管理多個外部中斷的方法
在proteus中繪制單片機和可編程中斷控制器8259實現通過4個按鍵觸發中斷作為8259的中斷源輸入,來控制單片機P3.3~P3.5的狀態反轉,數碼管計數器的值加1,直到顯示數字9,重新回0計數。
2021-12-01 07:44:46
C語言—單片機編程使用的高級語言
今天主要分享單片機編程使用的高級語言C語言,單片機編程中使用C語言的優勢是什么。單片機應用系統由硬件和軟件組成。軟件是系統監控程序的總稱,也就是各種指令依某種規律組合而形成的程序,單片機應用系統
2018-10-20 16:38:57
STM32單片機外部中斷配置講解
單片機在配置外部中斷時可以按照以下步驟來操作:1.初始化GPIO為輸入;2.開啟復用時鐘,設置映射關系;3.設置觸發條件;4.分配中斷向量控制器,并使能;5.編寫中斷服務函數;05STM32外部中斷相關
2017-10-12 09:20:50
STM32單片機外部中斷配置講解
單片機在配置外部中斷時可以按照以下步驟來操作:1.初始化GPIO為輸入;2.開啟復用時鐘,設置映射關系;3.設置觸發條件;4.分配中斷向量控制器,并使能;5.編寫中斷服務函數;05STM32外部中斷相關
2017-10-17 09:56:29
STM32單片機外部中斷配置講解
單片機在配置外部中斷時可以按照以下步驟來操作:1.初始化GPIO為輸入;2.開啟復用時鐘,設置映射關系;3.設置觸發條件;4.分配中斷向量控制器,并使能;5.編寫中斷服務函數;05STM32外部中斷相關
2018-10-25 16:40:46
關于單片機C語言編程中,中斷函數對主程序的影響
具體問題的描述:倘若我使用ADC0809作為模數轉換的芯片,我們知道這種AD芯片是要提供時鐘信號的,倘若我通過單片機計時中斷的方式提供時鐘,那么在主程序執行的時候或者AD芯片轉換的時候,這個提供時鐘信號的中斷對正在運行的程序會有什么影響?(中斷程序是指 interrupt..using..)
2014-10-13 09:28:59
關于單片機C語言編程中,中斷函數對主程序的影響(重新發)
具體問題的描述:倘若我使用ADC0809作為模數轉換的芯片,我們知道這種AD芯片是要提供時鐘信號的,倘若我通過單片機計時中斷的方式提供時鐘,那么在主程序執行的時候或者AD芯片轉換的時候,這個提供時鐘
2014-10-13 09:33:15
利用單片機中I/O與中斷系統
回顧之前編程教程,第1篇是I/O篇,I/O主要說明I/O的引腳特性以及如何通過C51控制I/O的電平輸入輸出;第2篇是中斷篇,中斷篇中介紹了中斷系統必要性以及如何使用單片機中的中斷系統(外部中斷0
2022-01-27 07:26:05
實時時鐘電路MC146818A與單片機的接口及編程
實時時鐘電路MC146818A與單片機的接口及編程摘要:本文在分析了實時時鐘電路MC146818A的結構與性能的基礎上,詳細討論了它與89C51單片機的接口,并對軟件編程進行了描述。
2009-10-10 15:07:27
用單片機實現電子時鐘設計方案
和外圍電路組成,晶振頻率的大小決定了單片機系統工作的快慢;二是指系統的標準定時時鐘,即定時時間,它通常有兩種實現方法:一是用軟件實現,即用單片機內部的可編程定時/ 計數器來實現;二是用專門的時鐘芯片實現,本文主要介紹用單片機內部的定時/ 計數器來實現電子時鐘的方法。[hide][/hide]
2009-12-17 11:20:48
【PADAUK】 應廣PGS152單片機EEPROM芯片
第一節:PADAUK PGS152單片機EEPROM芯片概述PADAUK PGS152單片機是一款功能強大的16位單片機,具有高度的可編程性和靈活性。其中,EEPROM芯片是該
2023-11-23 21:16:37
NY8A050D單片機,AD單片機,九齊代理
?這篇文章將介紹臺灣九齊單片機NY8A050D 6 I/O 8-bit EPROM-Based MCU,包括其特點、應用領域、與其他單片機的比較等內容。一、九齊單片機NY8A050D 6 I/O
2023-11-27 21:54:52
單片機教程十七:單片機的中斷系統
單片機教程十七:單片機的中斷系統
單片機中斷系統的概念:什么是中斷,我們從一個生活中的例程引入。你正在家中看書,突然電話鈴響了,你放
2009-05-15 23:11:394922
MCS-51單片機外中斷軟件編程
MCS-51單片機外中斷軟件編程
MCS-51單片機有多個中斷源,以8051為例,有5個中斷源,兩個外中斷、兩個定時中斷和一個串行中斷,這一節我們討論外中
2010-03-06 10:08:021236
單片機編程中的時鐘中斷
在單片機程序設計中,設置一個好的時鐘中斷,將能使一個CPU發揮兩個CPU的功效,大大方便和簡化程序的編制,提高系統的效率與可操作性。我們可以把一些例行的及需要定時執行的程
2011-06-23 11:42:241902
MSP430單片機中斷系統
中斷是MSP430單片機的一大特點,有效地利用中斷可以簡化程序并提高執行效率。在MSP430單片機中,幾乎每個片上外設都能夠產生中斷,為MSP430單片機針對中斷事件進行編程打下基礎。MSP430
2016-07-15 15:27:000
51單片機定時器中斷_51單片機中斷系統_51單片機擴展中斷的四種方法
中斷是為使單片機具有對外部或內部隨機發生的事件進行處理而設置的。51單片機有5種中斷源,即有5種對應的情況發生時會使單片機去處理中斷程序(中斷函數)。
2017-12-08 10:15:2610742
單片機的中斷系統的概念控制系統和處理過程及編程及應用資料概述
本文檔的主要內容詳細介紹的是單片機的原理與應用單片機的中斷系統詳細資料介紹內容包括了:1 中斷的概念2 中斷控制系統3 中斷處理過程4 中斷的編程及應用舉例
2018-10-24 11:43:436
如何使用單片機進行電子時鐘的設計
系統采用AT89C51單片機,以匯編語言為基礎,目的是設計一個可以用四位的數碼顯示管能夠顯示時、分的電子時鐘,電子時鐘是基于單片機的一種計時工具,單片機通過延時中斷產生一定的時間中斷,用秒的定義,通過計數滿60秒進一,滿60分進一,滿24小時清零。從而達到計時的目的,是人們生活的必要工具。
2019-01-17 08:00:0016
單片機教程之并行接口P0到P3和單片機的中斷系統資料概述
本文檔的詳細介紹的是單片機教程之并行接口P0到P3和單片機的中斷系統資料概述主要內容包括了:
1.單片機的并行接口P0~P3
PO~P3端口的功能和內部結構
PO~P3端口的編程
用并行口
2019-02-15 15:59:175
單片機的中斷源有哪些及單片機中斷的資料和程序說明
中斷是為使單片機具有對外或內部隨機發生的事件實時處理的能力而設置的,中斷功能的存在,很大程度上提高了單片機處理外部或者內部事件的能力。
2019-09-25 17:17:001
51單片機有幾個中斷?單片機的中斷號對應的中斷類型說明
51單片機通常有5個中斷,當中斷發生時,程序會跳到相應的中斷服務程序去執行。為了區別不同的中斷,引入了中斷號,單片機的中斷號對應的中斷類型如下:
2019-08-06 17:34:005
單片機中斷與CPU的輪詢有什么區別
在單片機編程過程中,經常會使用到中斷。那么,什么是單片機中斷,它與CPU的輪詢有什么區別?在本文中,單片機開發工程師將對單片機中斷和CPU輪詢做個簡單的介紹。
2020-06-29 11:30:343285
自學單片機編程之中斷與時鐘程序
對于單片機來說,中斷是指CPU在處理某一事件A,發生了另一事件B,請求CPU迅速去處理(中斷發生);CPU暫時停止當前的工作(中斷響應),轉去處理事件B(中斷服務);待CPU將事件B處理完畢后
2020-09-18 16:17:052955
單片機的中斷系統學習課件免費下載
本文檔的主要內容詳細介紹的是單片機的中斷系統包括了:1 中斷的概念,2 中斷控制系統,3 中斷處理過程,4 中斷的編程及應用舉例
2020-11-16 08:00:002
單片機:按鍵調節時鐘
。二、主要儀器設備及耗材:(一)電腦一臺;(二)單片機開發板一套。三、實驗原理參照實驗二數碼管的電路原理圖,利用數碼管的顯示原理以及定時器的工作原理,結合按鍵的應用,編程實現數碼管顯示時鐘,并具有時鐘調節功能。四、實驗內容及步驟(一)實驗內容利用所學的單片機定時器中斷知識及電路知識,通過單片機
2021-11-11 11:06:0676
51單片機外部中斷0實例詳解
今天就以51單片機的外部中斷0為例,來簡單講解一下單片機中斷的用法。1 51單片機的中斷源51單片機共有5個中斷源,分別為:外部中斷0定時器0中斷外部中斷1定時器1中斷串口中斷每一個中斷都對應一個中斷
2021-11-11 12:51:0219
C51單片機學習筆記(四)——單片機的中斷系統及應用
C51單片機學習筆記(四)——單片機的中斷系統及應用文章目錄C51單片機學習筆記(四)——單片機的中斷系統及應用1.單片機的中斷系統2.中斷需要設置的4個寄存器1.單片機的中斷系統中斷的概念:CPU
2021-11-14 10:21:0017
51單片機—中斷
中斷中斷時為使單片機具有對外部或內部隨機發生的事件實時處理而設置的,51單片機內部一共有5個中斷源。引起CPU中斷的根源,稱為 中斷源,中斷源向CPU提出中斷請求,CPU暫時中斷原來的事務A,轉去
2021-11-19 09:06:0318
51單片機(十四)—— 中斷功能介紹
中斷是單片機的一個重要功能,本文我們就對51單片機的中斷進行介紹。 所謂“中斷”,通俗一點講,就是單片機停止正在執行的任務,轉去執行其它的急需解決的任務,當這個任務完成之后,在回到原來的任務繼續
2021-11-22 12:36:068
#51單片機#中斷
中斷中斷,是單片機的一種運行機制。標準的51單片機有兩個控制中斷的寄存器。一個是中斷使能寄存器,另一個是中斷優先級寄存器。IE——中斷使能寄存器的位分配(地址0XA8,可位尋址 )位76543210
2021-11-22 13:06:0313
單片機:簡單中斷LED的設計
摘要:單片機即是單片微型計算機。要想學好單片機,就必須學習單片機的中斷系統。中斷是單片機的靈魂所在。中斷系統雖然是硬件系統,但是它卻需要相應軟件的配合才能正確使用。具體到外部中斷,既有硬件方面的控制,也有軟件方面的編程,二者缺一不可。
2021-11-23 17:51:3526
單片機系統設計技術——外部中斷
外部中斷一、實驗目的二、實驗內容三、實驗步驟四、C代碼如下五、實驗結果六、實驗體會一、實驗目的掌握單片機外部中斷的基本使用方法 了解單片機外部中斷脈沖觸發和電平觸發的不同應用 掌握外部中斷處理程序
2021-11-23 17:51:3615
單片機之魂——定時器、中斷
文章目錄一、中斷是什么(1)中斷(2)中斷優先級二、中斷的使用1.外部中斷2.讀入數據總結一、中斷是什么中斷的控制是我們學習單片機所必須掌握的,可以說“如果中斷都不會,那根本談不上掌握了單片機
2021-11-24 16:21:061
合泰單片機時基中斷和計時器中斷
這里寫自定義目錄標題合泰單片機時基中斷和計時器中斷時基中斷初始化寫時基中斷函數到這里不算完,因為合泰單片機自動初始化了看門狗,一定要注意看門狗的喂狗時間,會不會影響到time_base中斷。計時器
2021-11-24 16:21:077
單片機用按鈕中斷函數
的功能,如播放音樂、啟動燈光等等。本文將對單片機使用按鈕中斷函數做詳細的闡述,包括實現過程、原理以及相關的編程技巧,以期幫助讀者深入了解單片機的中斷機制。 1.中斷概述 中斷是單片機基本的功能之一,也是實現單片機
2023-09-01 10:17:29871
評論
查看更多