89C52 PWM輸出程式

2021-04-14 21:42:14 字數 1042 閱讀 1017

2007-12-25 12:35:27

#include >reg52.h< //keil header file name

#include "use.h"

#include "ver.h"

//extern void ledout(unsigned char *pled);

#define pmax 55000 //55000 //42666(18.4320)

#define ki 2.2 //i=2

//----------------------------

sbit pwinpin=p3^5;

//----------------------------

typedef union

pwm;

//----------------------------

pwm pwmdata;

unsigned int pwmbak;

//----------------------------

unsigned char pwmf=0; //輸出的1,0的標誌

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

pwm計算,輸出

t0=t50ms(b0/[fs-fo]+sgn(u)*20%+a1

;t50ms=pwm50+ah

;b0>fo=<0v;must bo in(fo-fs)

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

void pwmout(void)

else pwm=pwm+i;

tr0=0;

pwmbak=(unsigned int)pwm; //更新資料

tr0=1;

}//-------------------------------

void init_pwm(void)

//定時器0 中斷處理 pwmout()

void t0_do(void) interrupt 1else

tr0=1;}

利用AT89C52定時器輸出可調PWM

知識儲備 pwm即是脈寬衝寬度調製,也稱脈寬調變,其意義就是通過微處理器的數字輸出來對模擬電路進行調製的一種有效技術。由於微控制器只能輸出高電平 1 或者低電平 0 因此對於類似正弦曲波等無法直接輸出。因此需要通過控制高低電平的有效時間,用等效面積的方式輸出曲波。pwm 1.定時器 51微控制器中內...

STC89C52開發學習(三)

不多bb,先上 讓大家看看 include reg52.h include intrins.h typedef unsigned int u16 typedef unsigned char u8 define led p2 void delay u16 i void main for i 0 i 7...

STC89C52的結構體

c51程式設計有時需要將一批基本型別的資料放在一起使用,從而引入了所謂構造型別資料,前面學習的資料就是一種構造型別的資料,乙個陣列實際上是一批順序存放的相同型別資料。結構體也是一種結構型別資料。結構體它是將若干個不同型別的資料變數有序地組合在一起而形成的一種資料集合體。一般來說,結構體中各個變數之間...