|
- #include <reg52.h>
- //--定義使用的IO口--//
- sbit PWM=P1^0;
- //--定義一個全局變量--//
- 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這個值可以改變直流電機的速度
- {
- PWM=1;
- }
- else
- {
- PWM=0;
- }
- }
-
- }
- /*******************************************************************************
- * 函 數(shù) 名 : Time1Config
- * 函數(shù)功能 : 設(shè)置定時器
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- void Time1Config()
- {
- TMOD|= 0x10; //設(shè)置定時計數(shù)器工作方式1為定時器
- //--定時器賦初始值,12MHZ下定時0.5ms--//
- TH1 = 0xFE;
- TL1 = 0x0C;
-
- ET1 = 1; //開啟定時器1中斷
- EA = 1;
- TR1 = 1; //開啟定時器
- }
- /*******************************************************************************
- * 函 數(shù) 名 : Time1
- * 函數(shù)功能 : 定時器1的中斷函數(shù)
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- void Time1(void) interrupt 3 //3 為定時器1的中斷號 1 定時器0的中斷號 0 外部中斷1 2 外部中斷2 4 串口中斷
- {
- TH1 = 0xFE; //重新賦初值
- TL1 = 0x0C;
- timer1++;
- }
復(fù)制代碼
|
|