|
#include "reg52.h" //此文件中定義了單片機(jī)的一些特殊功能寄存器
typedef unsigned int u16; //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;
//--定義使用的IO口--//
sbit PWM=P2^1; //脈沖調(diào)整輸出端口
bit DIR; // 位定義,一位0 1
//--定義一個(gè)全局變量--//
u16 count,value,timer1;
/*******************************************************************************
* 函 數(shù) 名 : Timer1Init
* 函數(shù)功能 : 定時(shí)器1初始化
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void Timer1Init()
{
TMOD|=0X10;//選擇為定時(shí)器1模式,工作方式1,僅用TR1打開啟動(dòng)。
TH1 = 0xFF;
TL1 = 0xff; //1us
ET1=1;//打開定時(shí)器1中斷允許
EA=1;//打開總中斷
TR1=1;//打開定時(shí)器
}
/*******************************************************************************
* 函 數(shù) 名 : main
* 函數(shù)功能 : 主函數(shù)
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void main()
{
Timer1Init(); //定時(shí)器1初始化
while(1)
{
// if(count>200) //count從暗到亮的時(shí)間
// {
// count=0;
// if(DIR==0) //DIR控制增加或減小
// {
// value++;
// }
//// if(DIR==0)
//// {
//// value--;
//// }
//
// }
value=320;
// if(value==800) // value占空比,調(diào)節(jié)亮度 70-1000
// {
// DIR=0;
// value=780;
// }
// if(value==0) // 占空比達(dá)到最小時(shí),改變方向
// {
// DIR=1;
// }
if(timer1>1000) //PWM周期為1000*1us
{
timer1=0;
}
if(timer1 <value)
{
PWM=1;
}
else
{
PWM=0;
}
}
}
/*******************************************************************************
* 函 數(shù) 名 : Time1
* 函數(shù)功能 : 定時(shí)器1的中斷函數(shù)
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void Time1(void) interrupt 3 //3 為定時(shí)器1的中斷號(hào) 1 定時(shí)器0的中斷號(hào) 0 外部中斷1 2 外部中斷2 4 串口中斷
{
TH1 = 0xFF;
TL1 = 0xff; //1us
timer1++;
count++;
}
|
|