欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

急求幫助 占空比可調pwm波數兩位碼管顯示占空比

查看數: 6084 | 評論數: 16 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2018-12-25 17:45

正文摘要:

#include<reg51.h> #define uint unsigned int #define uchar unsigned char                                  &nb ...

回復

ID:465221 發表于 2019-1-9 16:49
請問這個有pcb圖嗎
ID:393736 發表于 2018-12-30 22:25
大懶貓的可樂 發表于 2018-12-30 19:37
第一:檢查一下數碼管是共陰還是共陽,代碼里面是共陽

是共陽
ID:438568 發表于 2018-12-30 19:37
第一:檢查一下數碼管是共陰還是共陽,代碼里面是共陽
ID:393736 發表于 2018-12-29 21:11
wulin 發表于 2018-12-29 15:58
占空比1~99可調,

謝謝你占空比程序  現在有另外的問題就是  輸出電壓和占空比不線性  
ID:393736 發表于 2018-12-29 10:44
周超然 發表于 2018-12-28 10:24
先各個部分確認,你的顯示有沒有問題?數字都正常顯示么?
還有就是pwm用個定時器控制頻率,01多少控制占 ...

pwm周期20ms pwm端波形沒有問題 按鍵也能控制占空比增減
ID:393736 發表于 2018-12-28 23:00
huiyu 發表于 2018-12-28 15:12
嗯 按鍵防抖的確沒有考慮到 還請這位朋友點撥一下。還有就是現在波形輸出無誤且可調了。但是數碼管不能正常 ...

數碼管顯示問題需要改中斷時間和數碼管延時時間  我的分別是 20ms 和 2ms   
按鍵消抖目前沒整明白
ID:456666 發表于 2018-12-28 15:12
嗯 按鍵防抖的確沒有考慮到 還請這位朋友點撥一下。還有就是現在波形輸出無誤且可調了。但是數碼管不能正常顯示 只能亮88 00
ID:449525 發表于 2018-12-28 10:24
先各個部分確認,你的顯示有沒有問題?數字都正常顯示么?
還有就是pwm用個定時器控制頻率,01多少控制占空比,自己去研究下,不難
ID:453955 發表于 2018-12-27 18:47
還有,朋友你的占空比上下限的設定真的弄反了哈哈哈
ID:453955 發表于 2018-12-27 18:39
void Motor_speed_high(void)
{
        if(Key1==0)
        {
                  Delay(10);
                  if(Key1==0)
                  {
                    count0 += 25;
  
                    if(count0 >= 100)
                    {
                            count0 = 100;
                    }
                  }
                  while(!Key1);
        }
}

這是我用PWM調電機轉速時的程序,就比你多了延時防抖
ID:393736 發表于 2018-12-26 14:23
我要上哈工大 發表于 2018-12-26 11:23
你占空比上下限那里有點問題吧。。上下限反了,超過上限應該就是100,不應該是0.。我覺得;還要就是按鍵防 ...

嗯 按鍵防抖的確沒有考慮到 還請這位朋友點撥一下。還有就是現在波形輸出無誤且可調了。但是數碼管不能正常顯示 只能亮88 00,不知道怎么回事
ID:393736 發表于 2018-12-26 14:20
MR_CHEN12 發表于 2018-12-26 12:26
我有PWM輸出占空比可調周期可調的程序,通過按鍵調解,并在1602顯示當前PWM的信息,需要嗎

首先感謝這位朋友的回答 。占空比可調的程序我已經有了。現在的問題就是兩位共陽極數碼管顯示的問題。不知道這位朋友能不能幫我看一下程序哪里出問題了 或者電路圖。謝謝
ID:455286 發表于 2018-12-26 12:26
我有PWM輸出占空比可調周期可調的程序,通過按鍵調解,并在1602顯示當前PWM的信息,需要嗎
ID:453955 發表于 2018-12-26 11:23
你占空比上下限那里有點問題吧。。上下限反了,超過上限應該就是100,不應該是0.。我覺得;還要就是按鍵防抖延時我好像沒看到。?
ID:453955 發表于 2018-12-25 19:33
啊。我也是初學者。剛剛看了下,我對PWM目前還不是很了解;等我過兩天學習了再和你交流~
ID:213173 發表于 2018-12-25 17:45
本帖最后由 wulin 于 2018-12-29 16:41 編輯

占空比1~99可調,



#include<reg52.h>
typedef unsigned char uchar;
typedef unsigned int uint;

sbit Key1=P3^0;
sbit Key2=P3^1;
sbit PWM=P1^0;
uchar  code table[]={
        0x3f,0x06,0x5b,0x4f,
        0x66,0x6d,0x7d,0x07,
        0x7f,0x6f,0x77,0x7c,
        0x39,0x5e,0x79,0x71};
uchar count,time,i;

void delayms(uint k)
{
        uint i,j;
        for(i=k;i>0;i--)
                for(j=110;j>0;j--);
}
void Timer0Init()                //100微秒@12.000MHz
{
        TMOD |= 0x02;                //設置定時器模式
        TL0 = 0x9C;                //設置定時初值
        TH0 = 0x9C;                //設置定時重載值
        TF0 = 0;                //清除TF0標志
        TR0 = 1;                //定時器0開始計時
        EA=1;
        ET0=1;
}
void display()
{
        static bit num=0;
        P0=0x00;
        if(num)
        {
                P2=~0xfe;
                P0=table[i/10];
                num=~num;
        }
        else
        {
                P2=~0xfd;
                P0=table[i%10];
                num=~num;
        }
}

void main( )
{
        Timer0Init();       
        count=99;
        i=100-count;
        while(1)
        {
                if(!Key1)//
                {
                        delayms(10);
                        if(!Key1)
                        {
                                if(count>1)
                                        count--;               
                                while(!Key1);
                                i=100-count;
                        }
                }
                if(!Key2)
                {
                        delayms(10);
                        if(!Key2)
                        {
                                if(count<99)
                                        count++;               
                                while(!Key2);
                                i=100-count;
                        }
                }
        }
}
void timer0() interrupt        1  
{
        time++;
        if(count>=time)
                PWM=1;
        else   PWM=0;
        if(time>99)
                time=0;
        if(time%10==0)
                display();
}

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表