#include <reg51.h>
#include <intrins.h>
#define FOSC 18432000L
unsigned char a;
unsigned char b;
sfr CCON = 0xD8;
sbit CCF0 = CCON^0;
sbit CCF1 = CCON^1;
sbit CR = CCON^6;
sbit CF = CCON^7;
sfr CMOD = 0xD9;
sfr CL = 0xE9;
sfr CH = 0xF9;
sfr CCAPM0 = 0xDA;
sfr CCAP0L = 0xEA;
sfr CCAP0H = 0xFA;
sfr CCAPM1 = 0xDB;
sfr CCAP1L = 0xEB;
sfr CCAP1H = 0xFB;
sfr PCAPWM0 = 0xf2;
sfr PCAPWM1 = 0xf3;
sbit s1=P2^0;
sbit s2=P2^1;
sbit s3=P2^2;
sbit s4=P2^3;
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^5;
sbit P13=P1^3;
sbit P14=P1^4;
void delayms(unsigned char ms)
{
unsigned char i ;
while(ms--)
{
for(i = 0 ; i < 120 ; i++) ;
}
}
void PWM_init()
{
P13=1;P14=1;
K1=1;K2=1;K3=1;K4=1;
s1=0;s2=1; s3=0;s4=1;
CCON = 0;
CL = 0;
CH = 0;
CMOD = 0x02;
CCAP0H = CCAP0L = 0x80;
CCAPM0 = 0x42;
CCAP1H = CCAP1L = 0x9A;
CCAPM1 = 0x42;
CR = 1;
}
void PWM_set(unsigned char a,unsigned char b)
{
CCAP0L=a;
CCAP0H=a;
CCAP1L=b;
CCAP1H=b;
}
void main()
{
PWM_init();
while(1)
{
do{
if(a!=0xff)
{a++ ;delayms(10);}
}
while(K1==0);
do{
if(a!=0x00)
{a-- ;delayms(10);}
}
while(K2==0);
do{
if(b!=0xff)
{b++ ;delayms(10);}
}
while(K3==0);
do{
if(b!=0x00)
{b-- ;delayms(10);}
}
while(K4==0);
}
#include <intrins.h>
#define FOSC 18432000L
unsigned char a;
unsigned char b;
sfr CCON = 0xD8;
sbit CCF0 = CCON^0;
sbit CCF1 = CCON^1;
sbit CR = CCON^6;
sbit CF = CCON^7;
sfr CMOD = 0xD9;
sfr CL = 0xE9;
sfr CH = 0xF9;
sfr CCAPM0 = 0xDA;
sfr CCAP0L = 0xEA;
sfr CCAP0H = 0xFA;
sfr CCAPM1 = 0xDB;
sfr CCAP1L = 0xEB;
sfr CCAP1H = 0xFB;
sfr PCAPWM0 = 0xf2;
sfr PCAPWM1 = 0xf3;
sbit s1=P2^0;
sbit s2=P2^1;
sbit s3=P2^2;
sbit s4=P2^3;
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
sbit K4=P1^5;
sbit P13=P1^3;
sbit P14=P1^4;
void delayms(unsigned char ms)
{
unsigned char i ;
while(ms--)
{
for(i = 0 ; i < 120 ; i++) ;
}
}
void PWM_init()
{
P13=1;P14=1;
K1=1;K2=1;K3=1;K4=1;
s1=0;s2=1; s3=0;s4=1;
CCON = 0;
CL = 0;
CH = 0;
CMOD = 0x02;
CCAP0H = CCAP0L = 0x80;
CCAPM0 = 0x42;
CCAP1H = CCAP1L = 0x9A;
CCAPM1 = 0x42;
CR = 1;
}
void PWM_set(unsigned char a,unsigned char b)
{
CCAP0L=a;
CCAP0H=a;
CCAP1L=b;
CCAP1H=b;
}
void main()
{
PWM_init();
while(1)
{
do{
if(a!=0xff)
{a++ ;delayms(10);}
}
while(K1==0);
do{
if(a!=0x00)
{a-- ;delayms(10);}
}
while(K2==0);
do{
if(b!=0xff)
{b++ ;delayms(10);}
}
while(K3==0);
do{
if(b!=0x00)
{b-- ;delayms(10);}
}
while(K4==0);
}
}
我想用stc5a60s2芯片输出两个pwm波,波形是输出了,问题1:但是我想用按键控制加减就不行了,我不知道为什么;问题2:我想用输出的pwm控制电机的速度,但是控制不了,