|
雖然沒(méi)有看到你的程序,不過(guò)我用一個(gè)同樣功能的程序,我加上了說(shuō)明。
/*******************************************************************************
* 實(shí)驗(yàn)名 : 定時(shí)器實(shí)驗(yàn)
* 使用的IO :
* 實(shí)驗(yàn)效果 :LED每隔500ms左移一次
* 注意 :
*******************************************************************************/
#include<reg51.h>
#include<intrins.h>
#define GPIO_LED P2
void TimerConfiguration();
unsigned char Time;
/*******************************************************************************
* 函數(shù)名 : main
* 函數(shù)功能 : 主函數(shù)
* 輸入 : 無(wú)
* 輸出 : 無(wú)
*******************************************************************************/
void main(void)
{
Time=0;
GPIO_LED=0XFE;
TimerConfiguration();
while(1)
{
if(Time==10)//定時(shí)器每次定時(shí)50ms,10次,就是0.5s
{
GPIO_LED=_crol_(GPIO_LED,1);
Time=0;
}
}
}
/*******************************************************************************
* 函數(shù)名 : TimerConfiguration()
* 函數(shù)功能 : 配置定時(shí)器值
* 輸入 : 無(wú)
* 輸出 : 無(wú)
*******************************************************************************/
void TimerConfiguration()
{
TMOD = 0x01; //選擇工作方式1
TH0 = 0x3C; //設(shè)置初始值,定時(shí)50MS
TL0 = 0xB0;
EA = 1; //打開(kāi)總中斷
ET0 = 1; //打開(kāi)定時(shí)器0中斷
TR0 = 1; //啟動(dòng)定時(shí)器0
}
/*******************************************************************************
* 函數(shù)名 : Timer0()
* 函數(shù)功能 : 定時(shí)器0中斷函數(shù)
* 輸入 : 無(wú)
* 輸出 : 無(wú)
*******************************************************************************/
void Timer0() interrupt 1
{
TH0 = 0x3C; //設(shè)置初始值
TL0 = 0xB0;
Time++;
}
如還有不清楚的,再交流。 |
|