微控制器 51微控制器時鐘 利用中斷

2021-07-16 07:23:45 字數 1731 閱讀 4792

#include #include "./delay/delay.h"

#define timeport p0

sbit bit_select = p2^0;

sbit seg_select = p2^1;

sbit key1 = p2^2;

sbit key2 = p2^3;

code unsigned char timedata[10] = ;

code unsigned char bitdata[8] = ;

unsigned disdata[8];

unsigned char ms = 0;

unsigned char sec = 0;

unsigned char min = 0;

void timer0_init();

void timer1_init();

void display();

void change_time();

void main()

} if(0 == key2) //key2按下 }

}}/*

***************====

功能:初始化中斷0

***************====

*/void timer0_init()

/****************====

功能:初始化中斷1

***************====

*/void timer1_init()

/**************************=

功能:中斷1服務函式,顯示

*************************=

*/void timer1_isr() interrupt 3

/**************************=

功能:中斷0服務函式,計數

*************************=

*/void timer0_isr() interrupt 1

}} }

change_time(); //修改顯示時間}/*

********************==

功能:修改時間顯示值

********************==

*/void change_time()

/**************************=

功能:動態掃瞄,顯示資料

*************************=

*/void display()

}

delay.c

void delay_us(unsigned char t)

void delay_ms(unsigned char t)

}void delay_s(unsigned char t)

}

delay.h

#ifndef _delay_h_

#define _delay_h_

extern void delay_us(unsigned char t);

extern void delay_ms(unsigned char t);

extern void delay_s(unsigned char t);

#endif

51微控制器 時鐘

1.時鐘週期是機器週期的12倍 機器週期是晶振頻率的倒數 2.51微控制器1個機器週期 12個時鐘週期,頻率為12mhz,則乙個機器週期為1us,具體到定時器程式就是,假如你想定1ms,那麼微控制器每次加乙個一,就要過1us,那麼1ms就要加1000次,所以用65535 1000 64535 再把6...

51微控制器 中斷

一 中斷的概念 cpu在處理某一事件a時,發生了另一事件b請求cpu迅速去處理 中斷發生 cpu暫時中斷當前的工作,轉去處理事件b 中斷響應和中斷服務 待cpu將事件b處理完畢後,再回到原來事件a被中斷的地方繼續處理事件a 中斷返回 這一過程稱為中斷 二 中斷源 在51微控制器中有5個中斷源 中斷號...

51微控制器 中斷

中斷,是微控制器的一種執行機制。標準的51微控制器有兩個控制中斷的暫存器。乙個是中斷使能暫存器,另乙個是中斷優先順序暫存器。ie 中斷使能暫存器的位分配 位址0xa8,可位定址 位7 6543 210符號 ea et2es et1ex1 et0ex0 復位值000 0000 0ie 中斷使能暫存器的...