找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4010|回复: 0
打印 上一主题 下一主题
收起左侧

PWM改变占空比求助,单片机STC12C5608AD。

[复制链接]
跳转到指定楼层
楼主
ID:63752 发表于 2014-9-12 14:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  按LEDUP键,占空比加大,按LEDDOWM,占空比减小,以下是我的程序,但是按键没反应,求帮助,谢谢~~
#include"reg51.h"
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
//sfr AUXR=0x8e;
//sfr P_SW1=0xA2;
sfr CCON=0xD8;
sbit CCF0=CCON^0;
sbit CCF1=CCON^1;
sbit CF=CCON^7;

sfr CMOD=0xD9;
sfr CL=0xE9;
sfr CH=0xF9;
sfr CCAPM0=0xDA;
sfr CCAP0L=0xEA;
sfr CCAP0H=0xFA;
sfr PCAPWM0=0xF2;
sbit CR=CCON^6;


sbit LEDDOWN=P2^7;
sbit LEDUP=P2^5;
sbit key=P2^6;

//unsigned int counter;
//unsigned char flag;
unsigned char PWMduty=0;
unsigned char PWMduty1=0;
unsigned char temp=25;
unsigned char code DutyDC[] = {
5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110,115,120,125,130,135,140,
145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255
};

void Delay(uint x)
{
    uint a,b;
    for(a=x;a>0;a--)
       for(b=110;b>0;b--);
}   
void main()
{   
   key=1;
   CCON=0;
   CL=0;
   CH=0;
   CMOD=0x00;//系统时钟,SYS/12,禁止中断//
   PCAPWM0=0x00;
   CCAP0H=CCAP0L=DutyDC[25];//50%占空比0X80//
   CCAPM0=0x42;
   CR=0;
        while(1)
        {
          if(key==0)
             {
                  CR=1;
                    if(LEDDOWN==0)
                          {
                                  PWMduty++;
                               
                                  if(PWMduty==500)
                                     {
                                           PWMduty=0;
                                           temp++;
                                          CCAP0H=CCAP0L=DutyDC[temp++];
                                         }
                          }
                          else if(LEDUP==0)
                           {
                                   PWMduty1++;
                               
                                 if(PWMduty1==500)
                                   {
                                    PWMduty1=0;
                                        temp--;
                                           CCAP0H=CCAP0L=DutyDC[temp--];
                                   }
                           }
                 }
       
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表