?? pwm.c
字號:
/*
名詞解釋:1、PWM(Pulse Width Modulation,脈寬調(diào)制)
2、占空比(Duty Cycle)
即: 在一串理想的脈沖序列中(如方波),
正脈沖的持續(xù)時間與脈沖總周期的比值。
例如:脈沖寬度為1s,信號周期為4s的脈沖序
列的占空比為0.25。
程序說明:通過調(diào)整單位時間內(nèi)I/O口輸出高電平持續(xù)的時間,
即可達(dá)到對占空比的調(diào)節(jié),也即PWM,本程序即是
PWM的一個應(yīng)用。
應(yīng)用說明:圖示僅畫標(biāo)出了占空比的幾個特殊值可以適當(dāng)調(diào)
整各個變量的初值,從而控制LED對應(yīng)輸出幾個不
同的亮度級別。通過把周期設(shè)置的更小--頻率
提高就可以達(dá)到0%--100%之間任意的亮度級別。
并且由于人眼的視覺暫留,看到的不是亮、滅的
跳變,而是明暗的均勻過渡。
(C)西安電子科技大學(xué) 測控技術(shù)與儀器 編寫:郭世忠 日期:2008-04-04
*/
///////////////////////////////////////////////////////////////////////////
// 脈沖寬度 //
// | | //
// 0% 25% 50% |75% | 100% --->占空比 //
// __ ____ _____ ________ ___1 (高電平) //
// | | | | | | | | | //
// |________| |_______| |___| |__| | ___0 (低電平) //
// //
// | 500 | 500 | 500 | 500 | 500 | //
/* 500是一次高低電平變化的周期,可根據(jù)需要自定 */ //
// //
// 注意: 我們的學(xué)習(xí)板中,P1口的LED是低電平有效。因此, //
// 占空比為0%時最亮,占空比為100%時熄滅,注意區(qū)別。 //
///////////////////////////////////////////////////////////////////////////
/**************************************************************************
功能:使P1口的八個LED發(fā)的光由 亮到暗 均勻過渡
說明:程序只會執(zhí)行一個變化過程,要重復(fù)觀察效果
可按 RST 鍵復(fù)位單片機,即可從頭執(zhí)行程序
/**************************************************************************/
#include<reg52.h> /*51寄存器頭文件*/
void main(void) /*主程序*/
{
unsigned int i,t; /*變量定義*/
while(1) /*主循環(huán)(死循環(huán)),單片機必須是死循環(huán)*/
{
//---------------------------------------------------------------------------
P1=0xff; //P1口輸出高電平 即P1.7-----P1.0依次對應(yīng) 1111 1111
for(i=0;i<t;i++); //延時,保持高電平,LED為熄滅狀態(tài)
P1=0x00; //P1口輸出低電平 即P1.7-----P1.0依次對應(yīng) 0000 0000
for(i=0;i<500-t;i++); //延時,保持低電平,LED為發(fā)光狀態(tài)
//----------------------------------------------------------------------------
t++; //累加,脈寬步進(jìn),可適當(dāng)調(diào)整,以改變明暗變化速度。
//----------------------------------------------------------------------------
if(t>500) //域值判斷,如果為真,則表明一次完整的變化過程結(jié)束。
{
P1=0xff; //強制將P1口置高,如果沒有這句,LED會出現(xiàn)亮暗跳變(試驗并思考原因)
while(1); //進(jìn)入死循環(huán),程序掛起,使程序執(zhí)行到這就停止,方便看效果
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -