簡單定時器及中斷的應用(9999倒計數)

2021-08-05 22:05:19 字數 814 閱讀 9681

初步了解到定時器,還有中斷,或者說他們是一體的,用自己的話來說,定時器就是中斷這個呆瓜的鬧鐘,一旦 有事情做程式就在自己弄,然後,設定好自己的鬧鐘(中斷),

然後呢在一開始或者,某個時間點將鬧鐘「按下」,於是能夠看得見的時間開始流失,流失到某個點的時候,「啦啦啦」鬧鐘響了,有時候他甚至還設很多鬧鐘,根據事情對自己的重要性。好了,鬧鐘響後,程式就跳到那個位置去執行相應的語句。這是簡單,初步的中斷。

#include

#include

#define uint unsigned int 

#define uchar unsigned char 

sbit dula=p2^6;

sbit wela=p2^7;

uchar temp,tt,t1;

uchar aa,bb,cc,bai,shi,ge,flag,flag1;

uint shu;//要記得uint的範圍可是比uchar大的,所以這裡到9999了必須用uint。

uchar code table=;

void display(uchar aa,uchar bb,uchar cc,

uchar bai);

void delay(uint z);

void init();

void main()

}void init ()

void timer0() interrupt 1

}void display(uchar aa,uchar bb,uchar cc,

uchar bai)

void delay(uint z)

定時器中斷

系統初始化的時候在預設的系統初始化函式 systeminit 函式裡面已經初始化 apb1 的時鐘為 2 分頻,所以 apb1 的時鐘為 36m。當 apb1 的時鐘分頻數為 1 的時候,tim2 7 的時鐘為 apb1 的時鐘,而如果 apb1 的時鐘分頻數不為 1,那麼 tim2 7 的時鐘頻率...

定時器中斷

tmod 0x01 th0 65536 50000 256 tl0 65536 50000 6 ea 1 et0 1 tr0 1 void timer0 interrupt 1 ea 1 開總中斷允許 et0 1 開定時器0允許 tmod 0x01 定時器選擇軟體啟動,工作方式為1 th0 6553...

定時器 中斷

1 實現電視劇集中的10s定時炸彈功能 炸彈炸了用蜂鳴器模擬 include unsigned char code smgduan 17 unsigned int ms,sec 10,s sbit p1 0 p1 0 void delay unsigned int n void isr timer0...