|
- /*-----------------------------------------------
- 名稱:定時(shí)器0
- 內(nèi)容:通過定時(shí)讓LED燈閃爍
- 設(shè)時(shí)鐘頻率為6MHz,試編寫利用T0產(chǎn)生的1秒定時(shí)程序
- ------------------------------------------------*/
- #include<reg52.h> //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義
- sbit LED=P1^2; //定義LED端口
- /*------------------------------------------------
- 定時(shí)器初始化子程序
- ------------------------------------------------*/
- void Init_Timer0(void) //50毫秒@6.000MHz
- {
- TMOD &= 0xF0; //設(shè)置定時(shí)器模式
- TMOD |= 0x01; //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響
- TL0 = 0x58; //設(shè)置定時(shí)初值 50毫秒@6.000MHz
- TH0 = 0x9E; //設(shè)置定時(shí)初值
- TF0 = 0; //清除TF0標(biāo)志
- EA=1; //總中斷打開
- ET0=1; //定時(shí)器中斷打開
- TR0=1; //定時(shí)器開關(guān)打開
- }
- /*------------------------------------------------
- 主程序
- ------------------------------------------------*/
- main()
- {
- Init_Timer0();
- while(1);
- }
- /*------------------------------------------------
- 定時(shí)器中斷子程序
- ------------------------------------------------*/
- void Timer0_isr(void) interrupt 1 using 1
- {
- unsigned char Count=0;
- TH0=0x58; //重新賦值 50毫秒@6.000MHz
- TL0=0x9E;
- Count++;
- if(Count>20) //1秒定時(shí)
- {
- LED=~LED; //指示燈反相,可以看到閃爍 1秒
- Count=0;
- }
- }
復(fù)制代碼 |
|