|
#include <reg52.h>
//--定義使用的IO口--//
sbit PWM=P1^0;
//--定義一個(gè)全局變量--//
unsigned char timer1;
void Time1Config();
/*******************************************************************************
* 函 數(shù) 名 : main
* 函數(shù)功能 : 主函數(shù)
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void main(void)
{
Time1Config();
while(1)
{
if(timer1>100) //PWM周期為100*0.5ms
{
timer1=0;
}
if(timer1 < 30) //改變30這個(gè)值可以改變直流電機(jī)的速度
{
PWM=1;
}
else
{
PWM=0;
}
}
}
/*******************************************************************************
* 函 數(shù) 名 : Time1Config
* 函數(shù)功能 : 設(shè)置定時(shí)器
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void Time1Config()
{
TMOD|= 0x10; //設(shè)置定時(shí)計(jì)數(shù)器工作方式1為定時(shí)器
//--定時(shí)器賦初始值,12MHZ下定時(shí)0.5ms--//
TH1 = 0xFE;
TL1 = 0x0C;
ET1 = 1; //開啟定時(shí)器1中斷
EA = 1;
TR1 = 1; //開啟定時(shí)器
}
/*******************************************************************************
* 函 數(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 = 0xFE; //重新賦初值
TL1 = 0x0C;
timer1++;
}
|
|