當前位置:編程學習大全網 - 編程語言 - c如何編程語音編程的占空比?

c如何編程語音編程的占空比?

我有壹個可以借鑒:

/*******************************************************************/

//通過定時器控制產生占空比可變的PWM波。

//按下K5,PWM值增大,占空比減小,LED燈逐漸變暗。

//按K6,PWM值減小,占空比增大,LED燈逐漸點亮。

//當PWM值增大到最大值或減小到最小值時,蜂鳴器會報警。

/*********************************************************/

# include & ltreg 51 . h & gt;

# include & ltintrins.h & gt

sbit K5 =p3^2;//添加密鑰

sbit K6 =p3^3;//減少鍵

sbit嗶嗶=p3^7;//蜂鳴器

無符號字符PWM = 0x7f//分配初始值

void Beep();

void delayms(無符號字符ms);

/*********************************************************/

void main()

{

P2 = 0x ff;

TMOD = 0x 21;

TH0 = 0xfc//1ms延遲常數12M

TL0 = 0x 18;//頻率調整

//th 1 = PWM;//脈沖寬度調整

//TL 1 = 0;

EA = 1;

ET0 = 1;

et 1 = 1;

TR0 = 1;

while(1)

{

做{

if(PWM!=0xff)

{ pwm++;delay ms(10);}

else Beep();

}

while(K5 = = 0);

做{

if(PWM!=0x00)

{ PWM-;delay ms(10);}

else Beep();

}

while(K6 = = 0);

}

}

/*********************************************************/

//定時器0中斷服務程序。

/*********************************************************/

無效定時器0()中斷1

{

//tr 1 = 0;

TH0 = 0xfc

TL0 = 0x66

tr 1 = 1;

P2 = 0x 00;//開始輸出

}

/*********************************************************/

//Timer1中斷服務程序

/*********************************************************/

無效定時器1()中斷3

{

th 1 = PWM;//以timer 2的方式,在數據重載TH-TL中改變PWM的值,即變量timer的初始值。

tr 1 = 0;

P2 = 0x ff;//結束輸出

}

/*********************************************************/

//蜂鳴器子程序

/*********************************************************/

無效嗶嗶聲()

{

無符號字符I;

for(I = 0;我& lt100 ;i++)

{

戴萊姆斯(2);

嗶=!嗶;//嗶聲反轉

}

嗶聲= 1;//關閉蜂鳴器

delayms(100);

}

/*********************************************************/

//延遲子程序

/*********************************************************/

void延遲符號(無符號字符毫秒)

{

無符號字符I;

當(毫秒)

{

for(I = 0;我& lt120 ;i++);

}

}

/*********************************************************/

您希望輸出端口是P1^7.我使用P2作為這裏的輸出端口。就改吧,希望對妳有用!!!!!!!

  • 上一篇:sw如何設計三維機械圖?SolIDWorks2019三維機械設計制圖!
  • 下一篇:鐘祥蘭臺中學表白墻
  • copyright 2024編程學習大全網