#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 中斷使能暫存器的...