51微控制器的pwm調速頻率主要透過一個定時器和一個IO口來實現PWM的輸出。在一個週期裡面,首先讓IO口輸出高電平,並定時一定的時間然後再將IO口輸出低電平,定時一定的時間。然後在while裡面迴圈輸出即可。需要改變佔空比的話就改變高電平的時間與低電平的時間比。我們來看看51微控制器的PWM調速程式。
51微控制器PWM調速程式
/*******************************************************************/ /* 程式名:PWM直流電機調速 */
/* 晶振:11.00592 MHz CPU型號:AT89C51 */
/* 直流電機的PWM波控制,可以直接的調速從0到20級的調速 */
/*****************************************************************/ #include《reg51.h》
#define TH0_TL0 (65536-1000)//設定中斷的間隔時長
unsigned char count0 = 50;//低電平的佔空比 unsigned char count1 = 0;//高電平的佔空比
bit Flag = 1;//電機正反轉標誌位,1正轉,0反轉
sbit Key_add=P2 ^ 0; //電機減速 sbit Key_dec=P2 ^ 1; //電機加速 sbit Key_turn=P2 ^ 2; //電機換向
sbit PWM1=P2^6;//PWM 通道 1,反轉脈衝 sbit PWM2=P2^7;//PWM 通道 2,正轉脈衝
unsigned char Time_delay;
/************函式宣告**************/ void Delay(unsigned char x); void Motor_speed_high(void); void Motor_speed_low(void); void Motor_turn(void); void Timer0_init(void);
/****************延時處理**********************/ void Delay(unsigned char x)
{
Time_delay = x;
while(Time_delay != 0);//等待中斷,可減少PWM輸出時間間隔
}
/*******按鍵處理加pwm佔空比,電機加速**********/ void Motor_speed_high(void)//
{
if(Key_add==0)
{
Delay(10); if(Key_add==0)
{
count0 += 5;
if(count0 》= 100)
{
count0 = 100;
}
}
while(!Key_add);//等待鍵鬆開
}
}
/******按鍵處理減pwm佔空比,電機減速*****/ void Motor_speed_low(void)
{
}
}
/************電機正反向控制**************/ void Motor_turn(void)
{
if(Key_turn == 0)
{
Delay(10); if(Key_turn == 0)
{
Flag = ~Flag;
if(Key_dec==0)
{
Delay(10); if(Key_dec==0)
{
count0 -= 5;
if(count0 《= 0)
{
count0 = 0;
}
}
while(!Key_dec );
}
while(!Key_turn);
}
}
/***********定時器0初始化***********/ void Timer0_init(void)
{
TMOD=0x01; //定時器0工作於方式1 TH0=TH0_TL0/256; TL0=TH0_TL0%256; TR0=1; ET0=1; EA=1; }
/*********主函式********************/ void main(void)
{
Timer0_init(); while(1)
{
Motor_turn(); Motor_speed_high(); Motor_speed_low();
}
}
/**************定時0中斷處理******************/ void Timer0_int(void) interrupt 1 using 1
{
TR0 = 0;//設定定時器初值期間,關閉定時器 TL0 = TH0_TL0 % 256;
TH0 = TH0_TL0 / 256 //定時器裝初值 TR0 = 1;
if(Time_delay != 0)//延時函式用
{
Time_delay--;
}
if(Flag == 1)//電機正轉
{
PWM1 = 0;
if(++count1 《 count0)
{
PWM2 = 1; } else PWM2 = 0;
if(count1 》= 100) { count1=0; } }
else //電機反轉
{
PWM2 = 0;
if(++count1 《 count0) { PWM1 = 1; } else PWM1 = 0;
if(count1 》= 100)
{
count1=0;
}
}
}
您好,51微控制器PWM程式是一種透過控制微控制器輸出的脈衝寬度來實現模擬訊號輸出的技術。下面是一個PWM程式的詳細解釋:
1. 定義相關的暫存器變數:首先需要定義相關的暫存器變數,包括控制脈衝寬度的暫存器(如TCON、TH、TL等),以及控制輸出埠的暫存器(如P0、P1等)。
2. 初始化PWM引數:將相關的暫存器變數初始化,包括設定計數器的初值和過載值,設定輸出埠的初始狀態等。
3. 編寫PWM輸出函式:根據需要,編寫PWM輸出函式,實現根據輸入引數控制脈衝寬度和頻率的功能。
4. 呼叫PWM輸出函式:在主程式中呼叫PWM輸出函式,根據需要控制PWM輸出的脈衝寬度和頻率。
5. 迴圈執行:程式會一直迴圈執行,直到程式結束或者出現異常情況。
需要注意的是,不同的微控制器型號和廠商可能會有些許差異,具體的PWM程式實現可能會有所不同。因此,在編寫PWM程式時,需要根據具體的微控制器型號和廠商的文件進行參考。
51微控制器PWM程式是利用定時器和計數器產生週期性的脈衝來控制電機、LED等器件的電流大小的程式。透過調節PWM的佔空比,可以改變輸出電壓或電流的大小,從而實現對器件的控制。
具體實現方法是利用51微控制器的定時器產生一個固定頻率的時鐘訊號,透過修改計數器的值來控制佔空比,進而控制輸出電壓或電流大小。
為了提高PWM控制的穩定性和精度,通常需要進行相關的計算和校準,比如計算計數器初值、調整時鐘頻率等。
在日常生活中,很多人一定會聽說過鮑魚這種動物,那麼鮑魚是一種生長於海洋之中的動物,但是鮑魚雖然被稱之為魚類,卻是屬於貝類的動物,我們知道鮑魚的外面有一層比較堅硬的殼,而且裡面是肉質部分,那麼鮑魚的幾頭是怎麼算的呢?1.首先我們來了解一下鮑魚...
要檢視vivo充電頭的輸出功率,可以檢視充電頭上的標籤或使用專業的測試工具進行測試。具體而言,你可以在充電頭上查詢輸入和輸出電壓、電流等引數,從而計算其輸出功率。一般情況下,vivo充電頭的輸出功率會在標籤上標明,例如20W、22.5W等。...
內六角螺絲的頭部規格一般採用六角形,頭部的尺寸大小主要由螺絲的標稱直徑、螺距和六角頭的規格來決定。對於M30內六角螺絲,一般採用M22的內六角規格。一般來講,內六角螺絲頭部的尺寸是標稱直徑的1.5倍。以M30螺絲為例,它的標稱直徑是30毫米...
趕緊申請重發驗證碼。不過要看洩露的驗證碼的性質是什麼,有更改登入密碼的驗證碼,更改支付密碼的驗證碼,有支付的驗證碼,繫結銀行卡的驗證碼,繫結或更換手機的驗證碼,如果是重要的驗證碼,那最好是賬號密碼等等資訊都改下。如果是不重要的驗證碼,那就在...
10克,兩到三次。一般情況下,紅茶,綠茶我們都按茶水比1:50左右來沖泡。即1克茶葉用50ml水。500ml的杯子,基本少要8-10克茶葉了。如果要泡烏龍茶,那茶水比通常在1:25左右。指功夫泡法。如果按紅綠茶方法喝,放的量也差不多。具體就...
01首先第一步我們要開啟手機,在手機應用軟體下載wpsoffice軟體,下載好之後開啟wps,然後我們找到建立word文件之後,建立新的word文件。02我們在wps的介面找到+的符號,一般在頁面右下角,點選進入之後,點選新建文件,然後在新...
熱水器功率大小需要根據家庭用水需求來選擇,一般來說,以下幾點需要考慮:1.家庭成員數量:一家三口的家庭一般選擇功率在3千瓦左右的熱水器即可,如太陽能熱水器就是該功率。如果家庭人口較多,則需要選擇更高功率的產品。2.用水量:一個家庭的用水量與...
電熱水器的功率大小主要根據容量和加熱速度來確定,一般來說,小容量的電熱水器功率在1500瓦左右,大容量的則可達到3000瓦甚至更高。因此,電熱水器的瓦數並不是絕對安全的標準,而是需要根據家庭用水量、用水熱度以及用水時間來選擇合適的功率。一般...
關於這個問題,外地號碼的話費查詢方法因運營商不同而有所差異,一般可以透過以下幾種途徑查詢:1.撥打運營商客服熱線,如中國移動客服熱線10086、中國聯通客服熱線10010、中國電信客服熱線10000,按照提示語音查詢話費餘額。2.登入運營商...
聯通查話費有以下5種方式:1/5電話方式大家可以透過撥打10010,選擇人工臺,對方會幫助你查話費。聯通自動臺的電話是10011.2/5登入官網大家如果方便上網的話,可以直接登入聯通的官網。需要使用者名稱和密碼。大家可以新註冊一個名,然後在...