34af9uc的个人空间 https://bbs.21ic.com/?818997 [收藏] [复制] [RSS]

日志

3u4

已有 168 次阅读2016-7-4 18:13 |系统分类:兴趣爱好

/****************su***************/
/*************20160702************/
/**********STCIAP15W4K58S4********/
/***************3PWM**************/
/***********QQ774145445***********/
#include        <stc15.h>
#define                IO0                        0x01
#define                IO1                        0X02
#define                IO2                        0x04
#define                IO3                        0x08
#define                IO4                        0x10
#define                IO5                        0x20
#define                IO6                        0x40
#define                IO7                        0x80
#define                kuozhan1        P_SW2        |=IO7        //打开扩展sfr访问
#define                kuozhan0        P_SW2        &=~IO7        //关闭扩展sfr访问
unsigned int xa,xb,xc;
bit a,b,c;
void                main()
{
xa=1;
xb=xa+60;
xc=xb+60;
a=0;
b=0;
c=0;
P0M0                &=~(IO6|IO7);
P0M1                &=~(IO6|IO7);
P2M0                &=~(IO7|IO2|IO3);                //IO配置
P2M1                &=~(IO7|IO2|IO3);                //IO配置
P4M0                &=~IO5;
P4M1                &=~IO5;
/*******************************************************/
PWMCFG                &=~IO0;                                //PWM2初始低电平
PWMCFG                |=IO1;                                //PWM3初始高电平
PWMCFG                &=~IO2;                                //PWM4初始低电平
PWMCFG                |=IO3;                                //PWM5初始高电平
PWMCFG                &=~IO4;                                //PWM6初始低电平
PWMCFG                |=IO5;                                //PWM7初始高电平
/*******************************************************/
PWMCR                |=(IO0|IO1|IO2|IO3|IO4|IO5);//PWM2PWM3PWM4PWM5PWM6PWM7使能
/*******************************************************/
kuozhan1;
PWMCH                =2400/256;                        //PWM周期
PWMCL                =2400%256;                        //PWM周期
/*******************************************************/
PWM2T1H                =(200+24)/256;                //第一次翻转
PWM2T1L                =(200+24)%256;                //第一次翻转
PWM2T2H                =(xa+224)/256;                //第二次翻转
PWM2T2L                =(xa+224)%256;                //第二次翻转
PWM3T1H                =200/256;
PWM3T1L                =200%256;
PWM3T2H                =(xa+248)/256;
PWM3T2L                =(xa+248)%256;
/*******************************************************/
PWM4T1H                =(200+24)/256;                //第一次翻转
PWM4T1L                =(200+24)%256;                //第一次翻转
PWM4T2H                =(xb+224)/256;                //第二次翻转
PWM4T2L                =(xb+224)%256;                //第二次翻转
PWM5T1H                =200/256;
PWM5T1L                =200%256;
PWM5T2H                =(xb+248)/256;
PWM5T2L                =(xb+248)%256;
/*******************************************************/
PWM6T1H                =(200+24)/256;                //第一次翻转
PWM6T1L                =(200+24)%256;                //第一次翻转
PWM6T2H                =(xc+224)/256;                //第二次翻转
PWM6T2L                =(xc+224)%256;                //第二次翻转
PWM7T1H                =200/256;
PWM7T1L                =200%256;
PWM7T2H                =(xc+248)/256;
PWM7T2L                =(xc+248)%256;
/*******************************************************/
PWM2CR                |=IO3;                                //选择PWM2_2
PWM3CR                |=IO3;                                //选择PWM3_2
PWM6CR                |=IO3;                                //选择PWM6_2
PWM7CR                |=IO3;                                //选择PWM7_2
kuozhan0;
/*******************************************************/
PWMCR                |=IO6;                                //计数器归零中断
PWMCR                |=IO7;                                //启动PWM
/*******************************************************/
EA=1;
for(;;);
}
void ppp()interrupt 22
{
PWMIF        &=~IO6;

if(a==0)
        {
        xa+=5;
        if(xa>2000)
                {
                a=1;
                }
        kuozhan1;
        PWM2T1H                =(200+24)/256;                //第一次翻转
        PWM2T1L                =(200+24)%256;                //第一次翻转
        PWM2T2H                =(xa+224)/256;                //第二次翻转
        PWM2T2L                =(xa+224)%256;                //第二次翻转
        PWM3T1H                =200/256;
        PWM3T1L                =200%256;
        PWM3T2H                =(xa+248)/256;
        PWM3T2L                =(xa+248)%256;
        kuozhan0;
        }
if(a==1)
        {
        xa-=5;
        if(xa<20)
                {
                a=0;
                }
        kuozhan1;
        PWM2T1H                =(200+24)/256;                //第一次翻转
        PWM2T1L                =(200+24)%256;                //第一次翻转
        PWM2T2H                =(xa+224)/256;                //第二次翻转
        PWM2T2L                =(xa+224)%256;                //第二次翻转
        PWM3T1H                =200/256;
        PWM3T1L                =200%256;
        PWM3T2H                =(xa+248)/256;
        PWM3T2L                =(xa+248)%256;
        kuozhan0;
        }
/*******************************************************/

if(b==0)
        {
        xb+=5;
        if(xb>2000)
                {
                b=1;
                }
        kuozhan1;
        PWM4T1H                =(200+24)/256;                //第一次翻转
        PWM4T1L                =(200+24)%256;                //第一次翻转
        PWM4T2H                =(xb+224)/256;                //第二次翻转
        PWM4T2L                =(xb+224)%256;                //第二次翻转
        PWM5T1H                =200/256;
        PWM5T1L                =200%256;
        PWM5T2H                =(xb+248)/256;
        PWM5T2L                =(xb+248)%256;
        kuozhan0;
        }
if(b==1)
        {
        xb-=5;
        if(xb<20)
                {
                b=0;
                }
        kuozhan1;
        PWM4T1H                =(200+24)/256;                //第一次翻转
        PWM4T1L                =(200+24)%256;                //第一次翻转
        PWM4T2H                =(xb+224)/256;                //第二次翻转
        PWM4T2L                =(xb+224)%256;                //第二次翻转
        PWM5T1H                =200/256;
        PWM5T1L                =200%256;
        PWM5T2H                =(xb+248)/256;
        PWM5T2L                =(xb+248)%256;
        kuozhan0;
        }
/*******************************************************/

if(c==0)
        {
        xc+=5;
        if(xc>2000)
                {
                c=1;
                }
        kuozhan1;
        PWM6T1H                =(200+24)/256;                //第一次翻转
        PWM6T1L                =(200+24)%256;                //第一次翻转
        PWM6T2H                =(xc+224)/256;                //第二次翻转
        PWM6T2L                =(xc+224)%256;                //第二次翻转
        PWM7T1H                =200/256;
        PWM7T1L                =200%256;
        PWM7T2H                =(xc+248)/256;
        PWM7T2L                =(xc+248)%256;
        kuozhan0;
        }
if(c==1)
        {
        xc-=5;
        if(xc<20)
                {
                c=0;
                }
        kuozhan1;
        PWM6T1H                =(200+24)/256;                //第一次翻转
        PWM6T1L                =(200+24)%256;                //第一次翻转
        PWM6T2H                =(xc+224)/256;                //第二次翻转
        PWM6T2L                =(xc+224)%256;                //第二次翻转
        PWM7T1H                =200/256;
        PWM7T1L                =200%256;
        PWM7T2H                =(xc+248)/256;
        PWM7T2L                =(xc+248)%256;
        kuozhan0;
        }
/*******************************************************/       
}



路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)