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

標題: 求助!想請教大家單片機外部中斷怎么控制定時器? [打印本頁]

作者: 一個杰    時間: 2019-12-14 19:17
標題: 求助!想請教大家單片機外部中斷怎么控制定時器?
大家好,需要在舵機角度旋轉代碼里加key0,key1控制啟動和停止,不知道有什么簡便的方法。
#include<reg52.h>
#include"lcd.h"

sbit pwm=P0^0;//輸出PWM信號
unsigned int pwm_value=1500;//初值為1.5ms
unsigned int ms[]={00,90,00,45,00,45,00,90,00};
unsigned int value[]={1500,500,1500,1000,1500,2000,1500,2300,1500};//

void InitTimer(void)
{
        TMOD=0x11;//開定時器0,1
        TH0=-20000/256;//定時20MS,20MS為一個周期
        TL0=-20000%256;
        TH1=-1500/256;//定時1.5MS,這時舵機處于0度
        TL1=-1500%256;
        EA=1;//開總斷
        TR0=1;//開定時器0
        ET0=1;
        TR1=1;//開定時器1
        ET1=1;
}
void timer0(void) interrupt 1//定時器0中斷函數
{
        pwm=1;
        TH0=-20000/256;
        TL0=-20000%256;
        TR1=1;
}

void timer1(void) interrupt 3//定時器1中斷函數
{
        pwm=0;
        TH1=-pwm_value/256;
        TL1=-pwm_value%256;
        TR1=0;
}
void main(void)//主函數
{
        unsigned char i;        
               
                LcdInit();
        InitTimer();
        pwm_value=1500;
        while(1)
        {
                for(i=0;i<9;i++)
                {
                        pwm_value=value;//通過數組就可以改變舵機的轉角度
                        Delayms(1000);
                                                LcdWriteCom(0xc0);
                                                LcdWriteData(ms/10+'0');
                                LcdWriteData(ms%10+'0');
                }
        }
}

這個是main.c,只需要加幾句話就好了。


作者: f556    時間: 2019-12-14 22:57
舵機啟動和停止,與舵機的原理相悖。但你的問題并不錯誤,是個好題。
舵機也叫伺服機,也叫servo。你送給它的脈沖寬度就是要讓它處于需要的角度。
但是因為舵機的功耗是非常高,近400mA,里面有一定扭力的電機、電阻啊。所以停止舵機還是有必要的,我就這樣做了。因為舵機內有齒輪變速,當它停在某一位置時,外力要反向改變角度,是需要一定力的,所以關閉舵機是有意義的。
你的程序我并不想看,我的做法:
1、加一個NMOS管,供舵機電源,一個IO口控制NMOS是否給舵機供電;
2、當有角度變化需要時,先產生脈沖,再給舵機供電,幾mS舵機到位后,停止NMOS,不再給舵機供電。
這是自動化的操作。

作者: 無敵小杰杰    時間: 2019-12-16 11:44
51單片機按鍵控制舵機旋轉 - OverWatcher的博客 https://blog.csdn.net/OverWatcher/article/details/80215520
這是一位前輩寫的,希望對你 有用!
作者: man1234567    時間: 2019-12-16 12:41
又見高分的神答
1、舵機啟動和停止,與舵機的原理相悖 ?那么舵機的原理又是什么、怎么相悖呢 ?
2、“因為舵機內有齒輪變速,當它停在某一位置時,外力要反向改變角度,是需要一定力的,所以關閉舵機是有意義的。”有什么意義能明說么 ?
3、實操中只用一個IO口控制舵機,并不需要什么外控MOS管,更不說指定N型的MOS管了;
4、“當有角度變化需要時,先產生脈沖,再給舵機供電,幾mS舵機到位后,停止NMOS,不再給舵機供電。這是自動化的操作。”這兩段更是如周星星臺詞。
5、舵機內有相關電路(多數用集成電路),那些需要實現的功能在設計時都考慮全了,外部只需接3根錢,除需接電源2根外只接1個控制線。
6、外部中斷的寫法看器件手冊的程例就好,這東東設計時就沒打算需要安啟停開關,不是這個設計有多復雜或高大上亦或提高故障率好多賣而是根本沒必要。
7、總開關控制總電源,舵機控制線控制舵機就好。

作者: 一個杰    時間: 2019-12-17 10:25
無敵小杰杰 發表于 2019-12-16 11:44
51單片機按鍵控制舵機旋轉 - OverWatcher的博客 https://blog.csdn.net/OverWatcher/article/details/80215 ...

已經做好了,謝謝你,做的方法和他講的差不多,沒有用到外部中斷,只是按鍵設置




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1