久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2940|回復: 3
打印 上一主題 下一主題
收起左側

求程序,根據輸入的方波,來輸出pwm,來控制電機轉速,89c51應該是stc12c5芯片

[復制鏈接]
跳轉到指定樓層
樓主
30黑幣

3(`VUU)7AY)8CHI7PNSRBS0.png (71.73 KB, 下載次數: 128)

3(`VUU)7AY)8CHI7PNSRBS0.png

O(LS_LS8AH5%HOS}GZTWAO3.png (81.89 KB, 下載次數: 59)

O(LS_LS8AH5%HOS}GZTWAO3.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:636039 發表于 2019-11-14 20:44 | 只看該作者
我這個程序能實現這個功能嗎???
#include "define.h"
#include "delay.h"
#include "play.h"
#include "motor.h"
#include "mic.h"


/********請先在define.h中調整晶振頻率與周期配置**************/


u8 mode = 0; //速度級別
void change_mode()
{
        static u8 i=0,j=0;     //計時變量約為8ms
         if(mic_flag==2)
                {
                         i++;
                        if(i>10&&mic_flag==2)
                        {
        //開機確認
                                if(mode==0)
                                {
                                        Play_music(PCM8sfkj,sizeof(PCM8sfkj));
                                        j=50;
                                        mic_flag=0;
                                        while(j--)
                                        {
                                                delay_ms(100);
                                                if(mic_flag==2)
                                                {
                                                        Play_music(PCM8zstz,sizeof(PCM8zstz));
                                                        mode=1;
                                                        mic_flag=0;
                                                        break;
                                                }               
                                        }
                                }
                                else if(mode==1)       
                                {       
                                        mode=2;
                                }
                                else if(mode==2)       
                                {
                                        Play_music(PCM8zstz,sizeof(PCM8zstz));                                        
                                        mode=1;
                                }       
                                mic_flag=0;
                                i=0;
                        }
                }
                else if(mic_flag==3)
                {
                         i++;
                        if(i>15&&mic_flag==3)
                        {
                          mode=0;
                                mic_flag=0;
                                i=0;
                        }
                }
}
void change_PWM()
{
                if(mode==0)
                {
                        PCA_PWM0 = 0x03;
                        CCAP0H = CCAP0L = 0xff;
                }
                else if(mode==1)
                {
                        PCA_PWM0 = 0x00;
                        CCAP0H = CCAP0L = CCAP0L-1;
                }
                else if(mode==2)
                {
                        PCA_PWM0 = 0x00;
                        CCAP0H = CCAP0L = CCAP0L;
                }

}
void main()
{

  Timer1Init();
        IT0Init();
        PWMInit();
        Play_init();
        delay_ms(1000);
        while(1)
        {
                change_mode();
    change_PWM();
                Digital_Display_One(CCAP0L/16);
                delay_ms(50);
        }
  
}



void delay_ms(uint ms)  
{      
         unsigned char i, j;
        do
        {                    
                i = TIME_I;
                j = TIME_J;
                do
                {
                        while (--j);
                } while (--i);      
        }while(--ms);
}
#if Machine_Cycle==12UL
void delay5us()                //@12.000MHz
{
        _nop_();
}
#elif Machine_Cycle==2UL
void delay5us()                //@12.000MHz
{
        unsigned char i;
        i = 12;
        while (--i);
}

void IT0Init(void)                //100微秒@11.0592MHz
{
        IT0=1;
        EX0=1;
        EA=1;
}
void Timer1Init(void)                //50毫秒@11.0592MHz
{
        AUXR &= 0xBF;                //定時器時鐘12T模式
        TMOD &= 0x0F;                //設置定時器模式
        TMOD |= 0x10;                //設置定時器模式
        TL1 = 0x66;                //設置定時初值
        TH1 = 0xFC;                //設置定時初值
        TF1 = 0;                //清除TF1標志
        TR1 = 1;                //定時器1開始計時
        EA = 1;
        ET1 = 1;
}     
u32 times=0;
void T1INT() interrupt 3
{
        TL1 = 0x66;                //設置定時初值
        TH1 = 0xFC;                //設置定時初值
        times++;
}
u8 mic_flag=0;
void EX0INT(void)  interrupt 0
{  
        static u32 last_time=0;
        u32 differ;
        differ=times-last_time;
        last_time=times;
        if(differ>1000)
        {
                mic_flag=1;
        }
        else if(mic_flag>0&&differ>100&&differ<500)
        {
                 mic_flag++;
        }
}

void PWMInit()
{      
        CCON = 0;                       //清除PCA控制寄存器
                                 
        CL = 0;                         //復位PCA定時器計數值
        CH = 0;
        CMOD=0x0a;                                                                                        //工作模式:頻率=Sysclk/4/256=10800Hz 無中斷
       
        CCAP0H = CCAP0L = 0xff;         //PWM0設置占空比50%
        PCA_PWM0 = 0x03;
        CCAPM0 = 0x42;                  //PCA模塊0 工作在8比特方式 無中斷
        CR = 1;                         //PCA定時器運行
}
回復

使用道具 舉報

板凳
ID:617449 發表于 2019-11-15 10:31 | 只看該作者
你是想根據方波的什么特征開控制PWM?
回復

使用道具 舉報

地板
ID:636039 發表于 2019-11-23 12:21 | 只看該作者
來51學習1 發表于 2019-11-15 10:31
你是想根據方波的什么特征開控制PWM?

方波的脈寬啊
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品青青大伊人av | 成人亚洲精品久久久久软件 | 久久精品久久久 | 久久精品视频在线观看 | 日韩在线电影 | 成人在线视频免费播放 | 欧美国产视频 | 天天干天天想 | www国产成人免费观看视频 | 波多野结衣一区二区 | 中文字幕日韩欧美一区二区三区 | 午夜小电影 | 午夜视频一区二区 | 91大神xh98xh系列全部 | 亚洲天堂一区二区 | 黄色一级特级片 | 日韩午夜网站 | 中文字幕一区二区三区四区五区 | 久久久久久国产精品免费免费狐狸 | 日本精品在线播放 | 国产视频福利在线观看 | 亚洲444eee在线观看 | 欧美极品在线播放 | 91在线成人 | 欧美成人专区 | 中文字幕一区二区三区乱码在线 | 精品国产91亚洲一区二区三区www | 国产美女一区二区 | 日韩电影中文字幕 | 日韩毛片免费看 | 亚洲国产精品久久 | 日韩在线电影 | 成人午夜 | 性高朝久久久久久久3小时 av一区二区三区四区 | 四虎影院免费在线播放 | 国产韩国精品一区二区三区 | 91成人在线 | 极品粉嫩国产48尤物在线播放 | 亚洲国产精品自拍 | 成人黄在线观看 | 亚洲一区欧美 |