當前位置:編程學習大全網 - 編程語言 - 太陽位置編程

太陽位置編程

*關於頻率和占空比的確定,對於6M晶振,假設PWM輸出頻率為1 khz;這樣可以設置占空比可以從(1-100)%變化,即0.01 ms * 100 = 1 ms。該周期用T1計時,輸出高電平用T1計時。*

# include & ltREGX51。H & gt

#定義uchar無符號字符

#define V_TH1 0XFE

#定義V_TL1 0X0C

#定義V_TMOD 0X11

void init _ sys(void);/*系統初始化功能*/

未簽名char ZH ZL;

無效總管(無效)

{

init _ sys();

while(1)

{

無符號Int temp

int 16 zkb = 50;

臨時=2^16-5*zkb;

ZH = temp/256;

ZL = temp % 256;

k();

}

}

Void init_sys(void) /*系統初始化函數*/

{

TMOD = TMOD;/*定時器初始化*/

TH0 = ZH;

TL0 = ZL;

th 1 = V _ th 1;

TL 1 = V _ TL 1;

tr 1 = 1;

et 1 = 1;

ET0 = 1;/*允許T0中斷

EA = 1;/*CPU中斷

}

Void k(int16 vk,ik)

{ static int 16 prek;

pk = vk * ik

prek = 0;

vk = 0;

if(prvpk==pk)

{

返回;

}

其他

{

if(PK & gt;預備)

{ prek = pk

if(vk & gt;prevk)

{

ZK b++;

prevk = vk

prepk = pk

}

其他

{

ZK B-;

prevk = vk

prepk = pk

}

}

其他

{

if(vk & gt;prevk)

{

ZK b++;

prevk = vk

prepk = pk

}

其他

{

ZK B-;

prevk = vk

prepk = pk

}

}

}

/*中斷功能*/

無效定時器0(無效)中斷1

{

P2_2=!P2 _ 2;

TR0 = 0;

}

無效定時器1(無效)中斷2

{

th 1 = V _ th 1;/*恢復定時器T0的初始值*/

TL 1 = V _ TL 1;

P2_2=!P2 _ 2;

TH0 = ZH;/*恢復定時器T0的初始值*/

TL0 = ZL;

TR0 = 1;

}

  • 上一篇:我想求壹篇關於青年發展和和諧滁洲建設的文章!有類似的好的我也給分!
  • 下一篇:液態料飼餵系統在養豬生產中的應用
  • copyright 2024編程學習大全網