?? file4.c
字號:
//內部定時器實驗
//現象 P1.0 一秒鐘一次的閃爍
#include <8051.h>
#define OSCILLATOR 12000000 // 定義晶振頻率
#define TIMER0_RELOAD_VALUE -(OSCILLATOR/12/1000) // 定時器 1ms 定時 的初值
static long data milliSeconds; // 毫秒數
void ClockIrqHandler (void) interrupt 1 using 3; // 定義定時器T0中斷服務程序
// 下面是定時器T0的中斷服務程序
void ClockIrqHandler (void) interrupt 1 using 3 {
TL0 = TIMER0_RELOAD_VALUE%256;
TH0 = TIMER0_RELOAD_VALUE/256;
milliSeconds++;
}
void main()
{
P1 = 255; //關閉LED顯示
P0 = 0; //關閉數碼顯示
P2 = 255; //
P3_7 = 0; //關閉蜂鳴器
milliSeconds = 0;
TR0=1; // 停止定時器T0的運行
TL0 = TIMER0_RELOAD_VALUE&0xff; //初值
TH0 = TIMER0_RELOAD_VALUE>>8; //初值
TMOD = 0; // 定時器工作在方式0
ET0=1; // 允許定時器T0中斷
EA =1; // 中斷總允許
TR0=1; // 開始定時器T0
while(1) // 設置一個無限制循環
{
if(milliSeconds ==1000)
{
P1_0 =~P1_0; // 翻轉 P1.0 顯示每秒
milliSeconds = 0; // 到了一秒鐘以后,需要把這里清空,重新計數
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -