本帖最后由 jrcsh 于 2015-3-5 12:11 编辑
写了个软 SPMW 产生程序.....
#include <reg51.h> //51芯片管脚定义头文件
#include <intrins.h> //内部包含延时函数 _nop_();
#define uchar unsigned char
#define uint unsigned int
sbit K1 = P3^5;
sbit K2 = P3^3;
uint aaa,bbb,ccc,ddd;
/********************************************************
*
* 主程序
*
*********************************************************/
main()
{
aaa=0;//计数标记
bbb=0;//玄波上下沿标记
ccc=100;//SPWM 频率
ddd=0;//占空比标记
while(1)
{
if(bbb==0)//上半玄
{
K2=1;
K1=1;
while(aaa<ddd)
{
aaa++;
//_nop_();
}
K2=0;
K1=0;
ddd++;
if(ddd>ccc)
{
bbb=1;
}
while(aaa<ccc)
{
aaa++;
//_nop_();
}
aaa=0;
}//if 8=0
else//下半玄
{
K2=1;
K1=1;
while(aaa<ddd)
{
aaa++;
//_nop_();
}
K2=0;
K1=0;
ddd--;
if(ddd<1)
{
bbb=0;
}
while(aaa<ccc)
{
aaa++;
//_nop_();
}
aaa=0;
}//if 8=0// else //b=1
}// w1
}//ma
/********************************************************/
|