|
#include "reg52.h" typedef unsigned
u16;
typedef unsigned char u8;
//--¶¨ÒåʹÓõÄIO¿Ú--//
sbit PWM=P2^1;
u16 DIR;//
sbit beep=P1^3;
u16 count,value,timer1;
void Timer1Init()
{
TMOD|=0X10;//
TH1 = 0xFF;
TL1 = 0xff; //1us
ET1=1;//´ò¿ª¶¨Ê±Æ÷1ÖжÏÔÊÐí
EA=1;//´ò¿ª×ÜÖжÏ
TR1=1;//´ò¿ª¶¨Ê±Æ÷
}
/*******************************************************************************
* º¯ Êý Ãû : main
* º¯Êý¹¦ÄÜ : Ö÷º¯Êý
* Êä Èë : ÎÞ
* Êä ³ö : ÎÞ
*******************************************************************************/
void main()
{
Timer1Init();
while(1)
{
if(count>100) //
{
count=0;//ÖØйéÁã
if(DIR==1)
{
value++;
}
if(DIR==0)
{
value--;
}
}
if(value==1000)
{
DIR=0;
}
if(value==0)
{
DIR=1;
}
if(timer1>1000) //
{
timer1=0;/
}
if(timer1 <value)
{
PWM=1;//
}
else
{
PWM=0;
}
}
}
/*******************************************************************************
* º¯ Êý Ãû : Time1
* º¯Êý¹¦ÄÜ : ¶¨Ê±Æ÷1µÄÖжϺ¯Êý
* Êä Èë : ÎÞ
* Êä ³ö : ÎÞ
*******************************************************************************/
void Time1(void) interrupt 3
{
TH1 = 0xFF;
TL1 = 0xff; //1us
timer1++;
count++;
} |
|