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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3509|回復: 4
收起左側

求助!想請教大家單片機外部中斷怎么控制定時器?

[復制鏈接]
ID:630579 發表于 2019-12-14 19:17 | 顯示全部樓層 |閱讀模式
300黑幣
大家好,需要在舵機角度旋轉代碼里加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,只需要加幾句話就好了。

回復

使用道具 舉報

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

評分

參與人數 2黑幣 +30 收起 理由
鄭漢松 + 10 贊一個!
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:627214 發表于 2019-12-16 11:44 | 顯示全部樓層
51單片機按鍵控制舵機旋轉 - OverWatcher的博客 https://blog.csdn.net/OverWatcher/article/details/80215520
這是一位前輩寫的,希望對你 有用!
回復

使用道具 舉報

ID:584814 發表于 2019-12-16 12:41 | 顯示全部樓層
又見高分的神答
1、舵機啟動和停止,與舵機的原理相悖 ?那么舵機的原理又是什么、怎么相悖呢 ?
2、“因為舵機內有齒輪變速,當它停在某一位置時,外力要反向改變角度,是需要一定力的,所以關閉舵機是有意義的。”有什么意義能明說么 ?
3、實操中只用一個IO口控制舵機,并不需要什么外控MOS管,更不說指定N型的MOS管了;
4、“當有角度變化需要時,先產生脈沖,再給舵機供電,幾mS舵機到位后,停止NMOS,不再給舵機供電。這是自動化的操作。”這兩段更是如周星星臺詞。
5、舵機內有相關電路(多數用集成電路),那些需要實現的功能在設計時都考慮全了,外部只需接3根錢,除需接電源2根外只接1個控制線。
6、外部中斷的寫法看器件手冊的程例就好,這東東設計時就沒打算需要安啟停開關,不是這個設計有多復雜或高大上亦或提高故障率好多賣而是根本沒必要。
7、總開關控制總電源,舵機控制線控制舵機就好。
回復

使用道具 舉報

ID:630579 發表于 2019-12-17 10:25 | 顯示全部樓層
無敵小杰杰 發表于 2019-12-16 11:44
51單片機按鍵控制舵機旋轉 - OverWatcher的博客 https://blog.csdn.net/OverWatcher/article/details/80215 ...

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美三级视频在线观看 | 欧美性猛片aaaaaaa做受 | 精品粉嫩aⅴ一区二区三区四区 | 亚洲精品久久久久久一区二区 | 91久久 | 日本激情一区二区 | 欧美日韩一区二区三区四区五区 | 黄色毛片一级 | 亚洲福利网 | 久久久久久91 | 亚洲午夜av久久乱码 | 亚洲一区二区免费 | 成人午夜av | 精品久久久久久久 | 欧美视频精品 | 中文字幕 在线观看 | 亚洲精品一二区 | 蜜桃一区 | 色在线视频网站 | 国产一区二区三区高清 | 国产精品国产三级国产aⅴ中文 | a级大片免费观看 | 中文字幕一区二区三区四区五区 | 精品久久久久久久人人人人传媒 | 亚洲综合色网站 | 国产精品久久久久久52avav | 国产精彩视频 | 亚洲一区二区视频 | 国产99久久精品 | 久久国产欧美日韩精品 | 国产精品无 | 成人精品久久 | 91久久国产综合久久 | 亚洲成人av一区二区 | 午夜精品在线 | 一区二区三区精品在线 | 久久亚洲一区 | 91原创视频在线观看 | 国产精品夜夜春夜夜爽久久电影 | 自拍偷拍第一页 | 91视频网址 |