單片機定時器中斷實現長時間定時程序

2021-02-23 暢學電子

單片機定時器中斷實現長時間定時程序

#include<reg51.h> // 包含51單片機寄存器定義的頭文件

sbit D1=P2^0; //將D1位定義為P2.0引腳

unsigned char Countor; //設置全局變量,儲存定時器T0中斷次數

/**************************************************************

函數功能:主函數

**************************************************************/

void main(void)

{

EA=1; //開總中斷

ET0=1; //定時器T0中斷允許

TMOD=0x01; //使用定時器T0的模式2

TH0=(65536-46083)/256; //定時器T0的高8位賦初值

TL0=(65536-46083)%256; //定時器T0的高8位賦初值

TR0=1; //啟動定時器T0

Countor=0; //從0開始累計中斷次數

while(1) //無限循環等待中斷

;

}

/**************************************************************

函數功能:定時器T0的中斷服務程序

**************************************************************/

void Time0(void) interrupt 1 using 0 //「interrupt」聲明函數為中斷服務函數,其後的1為定時器T0的中斷編號;0表示使用第0組工作寄存器

{

Countor++; //中斷次數自加1

if(Countor==20) //若累計滿20次,即計時滿1s

{

D1=~D1; //按位取反操作,將P2.0引腳輸出電平取反

Countor=0; //將Countor清0,重新從0開始計數

}

TH0=(65536-46083)/256; //定時器T0的高8位重新賦初值

TL0=(65536-46083)%256; //定時器T0的高8位重新賦初值

}

為了方便大家更好的學習,暢學電子網特別增加了針對單片機和EDA的公眾號,每天推送相關知識,希望能對你的學習有所幫助!

相關焦點

  • 單片機難於理解的-定時器中斷
    今天講一下單片機-定時器中斷,這個是難點中的難點,小編第一次放棄自學單片機就是中斷,第二次就是定時器中斷[泣不成聲]知道中斷後,我們看一下,這個特殊的中斷-定時器中斷。它特殊在哪呢?.h這兩個庫基本一樣,我們可以淪為一類,void set(unsigned long ms, void (*f)()) --這個函數設置定時中斷的時間間隔和調用的中斷服務程序。
  • 單片機必須了解的外設功能――定時器/中斷功能
    在單片機中,不僅頻繁地使用「○月○日○點○分」這種時刻顯示,顯示過去的時間和一定的周期這種形式也被頻繁地使用。例如,「該程序從運行開始過去了多少時間?」、「每秒輸送128次信號」等等。另外,還經常被用於「等待指定的時間」、「經過指定的時間後將轉移到下一個處理」這樣的情況。對這些與時間和時刻有關進行處理的外設功能就是定時器(圖1)。
  • 單片機定時器工作原理_單片機定時器工作方式_單片機定時器作用
    定時器是一種用於控制時間的儀表,隨著科技發展,人們對定時器進行改進,達到準確控制時間的目的。定時器使相當多需要人控制時間的工作變得簡單了許多。人們甚至將定時器用在了軍事方面,製成了定時炸彈,定時雷管。現在的不少家用電器都安裝了定時器來控制開關或工作時間。
  • 定時器中斷—頻率計程序
    /*註:定時器中斷的例子,簡單的頻率計,初學者留意各引腳電壓極性和電壓值,不可超出5V,我們只是做學習實驗,不要超出51hei單片機學習板的承受範圍,否則要求對電子非常熟悉,不然會燒壞晶片,版權:www.51hei.com,注意:P1.3與P1.7要相連接如果是測量外部頻率要共地.
  • 單片機原理|定時器/計數器的工作原理及應用作業
    A、IO口的擴展B、定時器中斷源的擴展C、串口中斷源的擴展D、外部中斷源的擴展我的答案:D 得分: 2.3分 9如果採用定時器T0實現定時1s,採用較合理的方案是
  • 基於51單片機定時器的電子時鐘設計方案
    單片機定時器在目前的產品研發和設計過程中,其主要作用是進行精準的時間定值,因此在對時間控制要求較高的數控領域中,單片機定時器的身影隨處可見。
  • 單片機兩級中斷嵌套的示例C程序
    單片機兩級中斷嵌套的示例C程序本文引用地址:http://www.eepw.com.cn/article/201611/320293.htm
  • 單片機初學者輕鬆入門之(十一):定時器製作流水燈
    實現定時功能,比較方便的辦法是利用單片機內部的定時/計數器。也可以採用下面三種方法:1、軟體定時:軟體定時不佔用硬體資源,但佔用了CPU時間,降低了CPU的利用率。2、採用時基電路定時:例如採用555電路,外接必要的元器件(電阻和電容),即可構成硬體定時電路。但在硬體連接好以後,定時值與定時範圍不能由軟體進行控制和修改,即不可編程。
  • 單片機中各種周期的關係與定時器原理
    在標準的51單片機中,一般情況下,一個機器周期等於12個時鐘周期,也就是機器周期=12*時鐘周期,(上面講到的原因)如果是12MHZ,那麼機器周期=1微秒。單片機工作時,是一條一條地從RoM中取指令,然後一步一步地執行。單片機訪問一次存儲器的時間,稱之為一個機器周期,這是一個時間基準。
  • 單片機MSP430入門-理論⑤--定時器模塊-WDT看門狗
    A,定時器B,1.2 基本定時器功能:基本定時,支持軟體和各種外圍模塊工作在低頻率,低功耗條件下1.3 定時器A功能:基本定時,支持同時進行的多種時序控制,多個捕獲,比較功能和多種輸出波形(PWM),可以以硬體方式支持串行通信1.4 定時器B功能:基本定時,功能基本跟定時器A差不多,但比較定時器A更靈活,功能更強大
  • 自學單片機第五十三篇:設置定時器時間
    於是單片機就以這個頻率來確定自己的運行時間,常規的單片機的機器周期是晶振頻率的1/12,就是說,運行一次最簡單的代碼,需要震動12次,那麼一秒鐘可以完成的機器周期數是11059200/12=921600次這是頻率,通過頻率可以計算出一次的時間是T=1/f=1/921600=1.08507^-6秒,換算成微秒就是1.08507微秒,也就是程序完成一次運算的最短時間是1.08507微秒。
  • 單片機與程序設計(上)
    在單片機中,不僅頻繁地使用「○月○日○點○分」這種時刻顯示,顯示過去的時間和一定的周期這種形式也被頻繁地使用。例如,「該程序從運行開始過去了多少時間?」、「每秒輸送128次信號」等等。另外,還經常被用於「等待指定的時間」、「經過指定的時間後將轉移到下一個處理」這樣的情況。對這些與時間和時刻有關進行處理的外設功能就是定時器(圖1)。
  • 自學單片機第五十五篇:定時器定時1秒程序
    7,工作模式是定時器,工作方式是16位定時。TMOD=0x01。8,打開T0定時器開關,ET0=1;TR0=1;9,打開中斷總開關,EA=1;10,設置中斷響應函數。void T0_Routine() interrupt 1{}打開軟體,開始寫程序。(經過一段時間,程序寫完了)首先是定義一個用於顯示中斷的LED燈,通過控制閃爍來讓我們看到定時器的工作。
  • 單片機定時器/計數器結構和工作原理是什麼
    計數的脈衝如果來源於單片機內部的晶振,由於其周期極為準確,這時稱為定時器。計數的脈衝如果來源於單片機外部的引腳,由於其周期一般不準確,這時稱為計數器。定時/計數器方式寄存器TMOD(1)  M1和M0:方式選擇位。(2) c/T :功能選擇位。時,設置為定時器工作方式;時,設置為計數器工作方式。
  • 如何用單個定時器統一地實現多種定時應用?
    為了各個定時應用的起點相同、步調一致,同時為了編程的統一,最好的方式便是在單個硬體定時器的基礎上模擬實現多個軟體定時器,以前臺硬體定時器中斷服務程序和後臺軟體定時器管理程序相結合,實現單次定時、多次定時和循環定時應用。三不才不屑藏私,下面就把具體的方案設計給各位看官們分享出來。
  • 採用AVR單片機ATMEGA8實現通用外置功率調控裝置的應用設計
    本系統採用AVR單片機ATMEGA8,其內部帶有多通道的10位ADC和低溫漂的內部能隙基準,可以滿足高精度的設計要求;兩個8位、一個16位的定時器,除了可以進行普通的定時、計數外,還具有比較匹配、捕捉、RTC等功能,高精度可校準的片內RC振蕩時鐘在減低成本的同時,滿足了時鐘精度要求,實現精確定時開關。
  • 51 單片機UART 串口通信 方式1 實現
    允許使用中斷( ES ),開啟UART中斷( EA )可以這些寄存器的配置含義可以查看相應的知識點:中斷配置IE寄存器、定時/計數方式配置寄存器TMOD、定時/計數控制寄存器及通信寄存器SCON寄存器筆記。
  • 單片機中提高作業效率的「中斷功能」解讀
    本期我們介紹更有效地應用單片機而必須的外設功能——「中斷功能」。 提高作業效率的「中斷功能」指的是什麼? 我們回顧一下本系列第二期的「定時器」篇中簡單介紹過的「中斷功能」概念。任何人都有過這樣的經驗,就是「將雞蛋放進沸騰的熱水中,直到雞蛋煮熟的10分鐘內要確認好幾次時鐘」的經歷。
  • 單片機MSP430入門理論⑨--定時器模塊-定時器A④
    單片機MSP430入門理論⑨--定時器模塊-定時器A④上期大概給大家匯總介紹了,定時器模塊中定時器A的CCTLx捕獲/比較控制寄存器,CCTLx是用來設置捕獲模式,捕獲的輸入端,捕獲模式,OUT輸出,捕獲標誌等
  • 基於Proteus單片機的音樂演奏實現系統
    當前的很多用單片機實現音樂演奏的系統都是利用開發板結合仿真器實現的,這種方法不是很複雜,實現也較方便,但是調試不是很方便,且成本也較高。 本文提出的一種基於Proteus的單片機演奏音樂的方法,非常簡單實用,且該方法基於軟體來實現的,所以成本非常低,調試方便,效果也很不錯,適合於愛好音樂的單片機學習者。