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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請大家看看我這個C程序有什么錯誤。是用來控制舵機的,但現在舵機不動。

[復制鏈接]
跳轉到指定樓層
樓主
ID:85201 發表于 2015-7-15 22:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
#define uint unsigned int
sbit pwm=P2^0;//定義P2.0口為PWM輸出口
uint num,end,jd;//定義高電平、總時間、角度標識
void main()//主程序
{
        TMOD=17;//設置定時器T0、T1工作在方式一
        TH0=(65535-92)/256;//T0定時為0.1MS
        TL0=(65535-92)%256;
        TH1=(65535-18349)/256;//T1定時為20MS
        TL1=(65535-18349)%256;
        EA=1;
        ET0=1;
        ET1=1;
        TR0=1;
        TR1=1;
        jd=10;
        num=0;
          if(end>3000)//如果T1定時器中斷次數達到3000次,也就是1分鐘,程序將停止運行
            {
                   EA=0;
                   while(1);
            }
}
void time1()interrupt 1
{
TH0=(65535-92)/256;
TL0=(65535-92)%256;
        num++;//T0每中斷一次,高電平標識加1,當大于角度標識時,PWM置于低電平,同時關掉T0中斷
          if(num>jd)
          {
                  pwm=0;
                  num=0;
                  TR0=0;
          }
}
void time3()interrupt 3
{
        TH1=(65535-18349)/256;
        TL1=(65535-18349)%256;
        jd++;
        end++;
        TR0=1;
        pwm=1;//T1每中斷一次,將PWM重新置為高電平
          if(jd>22)//當角度標識大于22時,也就是高電平時間大于2.2MS時,將角度標識重新置為10,也就是1MS
                {
                        jd=10;
                }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:77578 發表于 2015-7-16 00:35 來自手機 | 只看該作者
你的大循環呢?沒有大循環,這程序不是一直在初始化嘛?而且就是個舵機程序,怎么寫的那么復雜啊,我是沒看懂怎么個意思,

評分

參與人數 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:85201 發表于 2015-7-16 14:25 | 只看該作者
moyuqilin 發表于 2015-7-16 00:35
你的大循環呢?沒有大循環,這程序不是一直在初始化嘛?而且就是個舵機程序,怎么寫的那么復雜啊,我是沒看 ...

一語驚醒夢中人啊,的確是把大循環忘了。非常感謝。我回家改正一下試試。我這個程序是想實現舵機左右擺動,持續一分鐘后程序停止。

評分

參與人數 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:77578 發表于 2015-7-17 00:33 來自手機 | 只看該作者
slh0721 發表于 2015-7-16 14:25
一語驚醒夢中人啊,的確是把大循環忘了。非常感謝。我回家改正一下試試。我這個程序是想實現舵機左右擺動 ...

一個定時器不行嘛。用兩個有點浪費了吧

評分

參與人數 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

5#
ID:85201 發表于 2015-7-17 00:45 | 只看該作者
moyuqilin 發表于 2015-7-17 00:33
一個定時器不行嘛。用兩個有點浪費了吧

反正資源夠用,也是想用兩個試試。還有一個問題,我加了大循環后,還是不行,我真搞不懂是哪的問題了。給你再貼一下程序,麻煩幫忙看一下:
#include<reg52.h>
#define uint unsigned int
sbit pwm=P2^0;
uint num,end,jd;  //定義高電平時間標識、程序運行時間和角度標識
void main()  //主函數
{
        TMOD=17;  //定時器0和1工作在方式1
        TH0=(65535-459)/256;  //定時器1定時時間為0.5ms,11.0592晶振
        TL0=(65535-459)%256;
        TH1=(65535-18349)/256;  //定時器2定時時間為20ms,11.0592晶振
        TL1=(65535-18349)%256;
        EA=1;  //打開中斷總開關
        ET0=1;  //打開TO定時開關
        ET1=1;  //打開T1定時開關
        TR0=1;  //T0定時器開始
        TR1=1;  //T1定時器開始
        jd=1;  //為角度標識賦一個初值
        num=0;  //為高電平標識賦一個初值
        while(1)  //大循環等待
        {
          if(end==3000)  //如果時間到達一分鐘,則程序停止
            {
                   EA=0;
                   while(1);
            }
  }
}       
void time1()interrupt 1   //T0中斷程序
{
TH0=(65535-459)/256;  //重新賦值
TL0=(65535-459)%256;
        num++;  //每中斷一次,NUM加1,大于角度標識后將輸出設為低電平,NUM數值清零,同時關閉此中斷
          if(num>jd)
          {
                  pwm=0;
                  num=(num+1);
                  TR0=0;
          }
}
void time3()interrupt 3   //T1中斷程序
{
        TH1=(65535-18349)/256;  //重新賦值
        TL1=(65535-18349)%256;
        jd=(jd+1);
        end=(end+1);
        TR0=1;  //重新打開T0中斷
        pwm=1;  //每次T1中斷后,IO口電平重新設為高電平
          if(jd>4)  //每當角度標識大于4,也就是高電平時間大于2MS時,重新設置為0.5MS
                {
                        jd=1;
                }
}

評分

參與人數 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

6#
ID:85201 發表于 2015-7-17 00:47 | 只看該作者
moyuqilin 發表于 2015-7-17 00:33
一個定時器不行嘛。用兩個有點浪費了吧

原以為是T0定時太短,造成中斷沖突,所以把T0的中斷時間改長了,還是不行。
回復

使用道具 舉報

7#
ID:85201 發表于 2015-7-17 00:50 | 只看該作者
moyuqilin 發表于 2015-7-17 00:33
一個定時器不行嘛。用兩個有點浪費了吧

還有,舵機用的是銀燕的ES08A,難道這個舵機的周期不是20MS或者高電平周期不是0.5--2.5MS?真有點搞不懂了。
回復

使用道具 舉報

8#
ID:80992 發表于 2015-7-17 14:24 | 只看該作者
左右擺要不了這么復雜吧

評分

參與人數 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

9#
ID:85201 發表于 2015-7-17 15:55 | 只看該作者
xtitxjg 發表于 2015-7-17 14:24
左右擺要不了這么復雜吧

請問您有什么更簡單的辦法?還望賜教啊。
回復

使用道具 舉報

10#
ID:80992 發表于 2015-7-18 16:10 | 只看該作者
slh0721 發表于 2015-7-17 15:55
請問您有什么更簡單的辦法?還望賜教啊。

我想回服你的,但每次把思路方法打到一半,就會彈個筐筐出來,說“哈哈360瀏覽器崩潰了”,每次都這樣,字實在是太難打了,所以我只有回著些了

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

11#
ID:80992 發表于 2015-7-18 20:36 | 只看該作者
樓主要得可是這個效果

整個程序從頭文件到尾,加上大大小小的文件各種括號47行,左右擺18行,當然沒寫停擺,停擺加個變量加個IF

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

12#
ID:80992 發表于 2015-7-18 21:02 | 只看該作者
本帖最后由 xtitxjg 于 2015-7-18 21:04 編輯

哎呀,有崩潰了,回帖字一多就崩潰
等著我用記事本打,完了COPY過來,看它還崩潰不
回復

使用道具 舉報

13#
ID:85201 發表于 2015-7-18 21:42 | 只看該作者
xtitxjg 發表于 2015-7-18 20:36
樓主要得可是這個效果

整個程序從頭文件到尾,加上大大小小的文件各種括號47行,左右擺18行,當然沒寫停 ...

沒錯,就是要這種效果。
回復

使用道具 舉報

14#
ID:80992 發表于 2015-7-18 22:28 | 只看該作者
本帖最后由 xtitxjg 于 2015-7-18 23:07 編輯
slh0721 發表于 2015-7-18 21:42
沒錯,就是要這種效果。

程序就不給你了,給你點思路,也許這樣對你幫助更大,先看波形圖。
+90度波形圖
-90度波形圖
如圖所示,PWM的周期為20MS,要改變舵機角度,就要改變此PWM的占空比
有個方法,假如我們吧這個20MS分成200份,那1份的時間就是100US
我們可以用定時器定時100US中斷一次,中斷200次就是一個周期,分了段就簡單了,
我們知道普通模擬舵機的控制信號為50HZ,高電平寬度為500us對應-90度—2500us對應+90度
如果我們想讓舵機移到-90度,我們只需要對中斷計數。
在第1次進入中斷的時候,我們把XI/O口拉高,在第6次進中斷的時候拉低,我們就得到了500us的高電平
舵機移到-90度位置。
在下一個周期來的第一次中斷的時候,我們把XI/O口拉高,在第7次進中斷的時候拉低,這次我們就得到了600us的高電平
舵機移到-90度+100us/度的位置。
接下來就是700US.800us........以此類推,一直到2500us,
當到了2500us的時候,我們再來減
周期開始第一次拉高,25次的是時候拉低,舵機移到+90度-100/度,
在下一個周期來的第一次中斷的時候拉高,24次的是時候拉低,舵機移到+90度-100us/度-100us度,
以此類推,一直到500us,又開加,到2500有減,如次往復一個定時器搞定,是不是很簡單?
思路告述你了。
至于振膜計數和清零,舵機每次轉動多少度以及多少時間動作一次,這個就要你自己去悟想辦法寫了。
其實也并不復雜,就是兩三個變量,幾個IF和分辨率THX,TLX配置的問題,等你看明白了,寫出來了,普通51軟件模擬PWM
也就算學會了

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

15#
ID:85201 發表于 2015-7-19 01:21 | 只看該作者
xtitxjg 發表于 2015-7-18 22:28
程序就不給你了,給你點思路,也許這樣對你幫助更大,先看波形圖。
+90度波形圖
-90度波形圖

我現在剛看完中斷這段教程。后面的還沒有學到。你講的道理很明白,但現在我還不知道用什么方法能讓它順序加、順序減,等于是閉門造車啊。如果不是時間緊的話,我就按部就班的學了,但現在我需要盡快把小裝置做出來給別人,所以我想還是給我看看你的程序吧,我作為一個參考,也能更快的掌握這方面的知識。萬分感謝。
回復

使用道具 舉報

16#
ID:85201 發表于 2015-7-19 23:57 | 只看該作者
xtitxjg 發表于 2015-7-18 22:28
程序就不給你了,給你點思路,也許這樣對你幫助更大,先看波形圖。
+90度波形圖
-90度波形圖

我今天又抽空研究了一下,還是沒有頭緒,就期待您的程序發布出來了。不然我這個坎看來是短期內不好過去了。
回復

使用道具 舉報

17#
ID:80992 發表于 2015-7-20 00:50 | 只看該作者
本帖最后由 xtitxjg 于 2015-7-20 01:03 編輯
slh0721 發表于 2015-7-19 01:21
我現在剛看完中斷這段教程。后面的還沒有學到。你講的道理很明白,但現在我還不知道用什么方法能讓它順序 ...

加減循環

if(變量1)
{
if(變量2>5)
{
變量2--;
}
else
{
變量1=0;
}
}
else
{
if(變量2<26)
{
變量2++;
}
else
{
變量1=1;
}
}

/////////////////////////////////////////////////////////////


f(變量1)
{
變量2--;
if(變量2〈=5)
{
變量1=0;
}
}
else
{
變量2++;
if(變量2>=26)
{
變量1=1;
}
}




評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

18#
ID:86218 發表于 2015-7-20 09:52 | 只看該作者
沒有大循環

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

19#
ID:85201 發表于 2015-7-20 12:48 | 只看該作者

謝謝,這個我后面加上了。
回復

使用道具 舉報

20#
ID:85201 發表于 2015-7-20 23:33 | 只看該作者
xtitxjg 發表于 2015-7-20 00:50
加減循環

if(變量1)

沒太看明白,if后面括號里面不應該是表達式嗎?只寫變量1的話,不算是表達式吧。
回復

使用道具 舉報

21#
ID:80992 發表于 2015-7-21 08:27 | 只看該作者
本帖最后由 xtitxjg 于 2015-7-21 08:49 編輯
slh0721 發表于 2015-7-20 23:33
沒太看明白,if后面括號里面不應該是表達式嗎?只寫變量1的話,不算是表達式吧。

IF只判斷真假,與是否表達式無關
其實你那個程序不需要每次加減,直接給最大或最小

IF(變量>10000) ///////////////10000*100=1s
{                     
IF(變量==25)
{變量2=5;
變量=0;}
else
{
變量2=25;
變量=0;
}
}
變量++;


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

22#
ID:85201 發表于 2015-7-21 23:49 | 只看該作者
xtitxjg 發表于 2015-7-21 08:27
IF只判斷真假,與是否表達式無關
其實你那個程序不需要每次加減,直接給最大或最小

見笑,雖然我明白你講的邏輯,但我到現在還是寫不出正常的程序來。我可能還欠缺一些基本知識。您還是把您的程序給我看看吧,沒有成功的案例參考,要走不少彎路呢。還有,我也沒多少時間可用了,再做不出來,我就得失信于人了。拜托了。
回復

使用道具 舉報

23#
ID:80992 發表于 2015-7-23 14:38 | 只看該作者
slh0721 發表于 2015-7-21 23:49
見笑,雖然我明白你講的邏輯,但我到現在還是寫不出正常的程序來。我可能還欠缺一些基本知識。您還是把您 ...

給你吧,寫好了1秒一次,60次 qd.rar (340 Bytes, 下載次數: 51)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

24#
ID:85201 發表于 2015-7-23 14:49 | 只看該作者
xtitxjg 發表于 2015-7-23 14:38
給你吧,寫好了1秒一次,60次

不勝感激,真的是不勝感激。若不介意,能留個QQ嗎?我們也算是志趣相同,你在這方面也是高手了,所以我想今后有疑難的地方還要向你多請教。
回復

使用道具 舉報

25#
ID:80992 發表于 2015-7-23 15:00 | 只看該作者
slh0721 發表于 2015-7-23 14:49
不勝感激,真的是不勝感激。若不介意,能留個QQ嗎?我們也算是志趣相同,你在這方面也是高手了,所以我想 ...

我高手的很反正幼兒園一般的小盆友還是整不贏我滴QQ一般一上了,微信吧33136583
回復

使用道具 舉報

26#
ID:85201 發表于 2015-7-23 17:15 | 只看該作者
xtitxjg 發表于 2015-7-23 15:00
我高手的很反正幼兒園一般的小盆友還是整不贏我滴QQ一般一上了,微信吧33136583

謙虛了,我現在在單片機和C語言這塊,也就是幼兒園水平而已。
回復

使用道具 舉報

27#
ID:79544 發表于 2015-7-23 19:37 | 只看該作者
slh0721 發表于 2015-7-16 14:25
一語驚醒夢中人啊,的確是把大循環忘了。非常感謝。我回家改正一下試試。我這個程序是想實現舵機左右擺動 ...

給你個通過的舵機程序
  1. //正確的舵機控制左,右,歸中,程序
  2. //#include<12c5a.h>
  3. #include<reg52.h>
  4. //#define uchar unsigned char
  5. //#define uint unsigned int
  6. //#define moto_pwm  P1_4  //PWM輸出腳控制舵機

  7. sbit moto_pwm=P1^0;//PWM輸出腳控制舵機
  8. sbit moto_pwm1=P1^1;//PWM輸出腳控制舵機
  9. sbit moto_pwm2=P1^2;//PWM輸出腳控制舵機

  10. sbit xiaocheting=P1^3;
  11. sbit xiaochehouti=P1^4;
  12. sbit xiaocheqianjin=P1^5;

  13. uchar pwm_lefr=0;//定義 定時器自加1變量
  14. uchar pwm_lefr1=0;//定義 定時器自加1變量
  15. uchar pwm_lefr2=0;//定義 定時器自加1變量
  16. uchar duojiguizhong=12;//舵機歸中1.5ms
  17. uchar duojiguizhong1=12;//舵機歸中1.5ms
  18. uchar duojiguizhong2=12;//舵機歸中1.5ms


  19. void pwmmaic()//產生PWM
  20. {
  21.         if(pwm_lefr<=duojiguizhong)
  22.        
  23.                 moto_pwm=1;
  24.                 else
  25.                 moto_pwm=0;
  26.                 if(pwm_lefr>=200)
  27.                 pwm_lefr=0;       
  28. if(pwm_lefr1<=duojiguizhong1)
  29.        
  30.                 moto_pwm1=1;
  31.                 else
  32.                 moto_pwm1=0;
  33.                 if(pwm_lefr1>=200)
  34.                 pwm_lefr1=0;       
  35. if(pwm_lefr2<=duojiguizhong2)
  36.        
  37.                 moto_pwm2=1;
  38.                 else
  39.                 moto_pwm2=0;
  40.                 if(pwm_lefr2>=200)
  41.                 pwm_lefr2=0;       
  42. }
  43. void time1() interrupt 3
  44. {
  45. //        TH1=0XFf;//100us的賦值11.0592M
  46. //        TL1=0XAE;
  47.         TH1=(65536-60)/256;//100us的賦值
  48.         TL1=(65536-60)%256;
  49.         pwm_lefr++;
  50.         pwm_lefr1++;
  51.         pwm_lefr2++;
  52.         pwmmaic();
  53. }
  54. void inttime()
  55. {
  56. //        TMOD=0X10;
  57.         TMOD=0X11;
  58.         TH1=(65536-60)/256;//100us的賦值12M
  59.         TL1=(65536-60)%256;
  60. //        TH1=0XFf;//100us的賦值11.0592M
  61. //        TL1=0XAE;
  62.         ET1=1;
  63.         TR1=1;
  64.         EA=1;
  65. }
  66. void delay(uint z)
  67. {
  68.         uint x,y;
  69.         for(x=z;x>0;x--)
  70.         for(y=240;y>0;y--);
  71. }
  72. void main()
  73. {
  74.         duojiguizhong=12;
  75.         duojiguizhong1=12;
  76.         duojiguizhong2=12;
  77.         inttime();
  78.         while(1)
  79.         {
  80.                 if(xiaocheting==0)       
  81.                 {
  82.                         delay(10);
  83.                         if(xiaocheting==0)       
  84.                         {
  85.                                 duojiguizhong=4;
  86.                                 delay(2000);

  87.                                 duojiguizhong1=6;
  88.                                 delay(1000);

  89.                                 duojiguizhong=14;
  90.                                 delay(2000);

  91.                                 duojiguizhong1=14;
  92.                                 delay(2000);

  93.                                 while(xiaocheting==0);
  94.                         //        duojiguizhong=12;//歸中
  95.                         //        delay(2000);
  96.                          }
  97.                          
  98.                 }
  99.                 /*
  100.                 duojiguizhong=16;
  101.                 delay(1000);
  102.                 duojiguizhong=12;//歸中
  103.                 delay(1000);
  104.                 duojiguizhong=8;//右45度
  105.                 delay(1000);

  106.                 duojiguizhong1=6;
  107.                 delay(1000);
  108.                 duojiguizhong1=12;
  109.                 delay(1000);
  110.                 duojiguizhong1=16;
  111.         //        delay(1000);*/

  112.         }
  113. }
復制代碼

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

28#
ID:79544 發表于 2015-7-23 19:43 | 只看該作者
slh0721 發表于 2015-7-23 14:49
不勝感激,真的是不勝感激。若不介意,能留個QQ嗎?我們也算是志趣相同,你在這方面也是高手了,所以我想 ...

這個是我用的舵機程序 按鍵可以當傳感器用。
  1. #include<reg52.h>
  2. //#define uchar unsigned char
  3. //#define uint unsigned int
  4. //#define moto_pwm  P1_4  //PWM輸出腳控制舵機

  5. sbit moto_pwm=P1^0;//PWM輸出腳控制舵機
  6. sbit moto_pwm1=P1^1;//PWM輸出腳控制舵機
  7. sbit moto_pwm2=P1^2;//PWM輸出腳控制舵機

  8. sbit xiaocheting=P1^3;//按鍵控制
  9. sbit xiaochehouti=P1^4;
  10. sbit xiaocheqianjin=P1^5;

  11. uchar pwm_lefr=0;//定義 定時器自加1變量
  12. uchar pwm_lefr1=0;//定義 定時器自加1變量
  13. uchar pwm_lefr2=0;//定義 定時器自加1變量
  14. uchar duojiguizhong=12;//舵機歸中1.5ms
  15. uchar duojiguizhong1=12;//舵機歸中1.5ms
  16. uchar duojiguizhong2=12;//舵機歸中1.5ms


  17. void pwmmaic()//產生PWM
  18. {
  19.         if(pwm_lefr<=duojiguizhong)
  20.        
  21.                 moto_pwm=1;
  22.                 else
  23.                 moto_pwm=0;
  24.                 if(pwm_lefr>=200)
  25.                 pwm_lefr=0;       
  26. if(pwm_lefr1<=duojiguizhong1)
  27.        
  28.                 moto_pwm1=1;
  29.                 else
  30.                 moto_pwm1=0;
  31.                 if(pwm_lefr1>=200)
  32.                 pwm_lefr1=0;       
  33. if(pwm_lefr2<=duojiguizhong2)
  34.        
  35.                 moto_pwm2=1;
  36.                 else
  37.                 moto_pwm2=0;
  38.                 if(pwm_lefr2>=200)
  39.                 pwm_lefr2=0;       
  40. }
  41. void time1() interrupt 3
  42. {
  43. //        TH1=0XFf;//100us的賦值11.0592M
  44. //        TL1=0XAE;
  45.         TH1=(65536-60)/256;//100us的賦值
  46.         TL1=(65536-60)%256;
  47.         pwm_lefr++;
  48.         pwm_lefr1++;
  49.         pwm_lefr2++;
  50.         pwmmaic();
  51. }
  52. void inttime()
  53. {
  54. //        TMOD=0X10;
  55.         TMOD=0X11;
  56.         TH1=(65536-60)/256;//100us的賦值12M
  57.         TL1=(65536-60)%256;
  58. //        TH1=0XFf;//100us的賦值11.0592M
  59. //        TL1=0XAE;
  60.         ET1=1;
  61.         TR1=1;
  62.         EA=1;
  63. }
  64. void delay(uint z)
  65. {
  66.         uint x,y;
  67.         for(x=z;x>0;x--)
  68.         for(y=240;y>0;y--);
  69. }
  70. void main()
  71. {
  72.         duojiguizhong=12;
  73.         duojiguizhong1=12;
  74.         duojiguizhong2=12;
  75.         inttime();
  76.         while(1)
  77.         {
  78.                 if(xiaocheting==0)       
  79.                 {
  80.                         delay(10);
  81.                         if(xiaocheting==0)       
  82.                         {
  83.                                 duojiguizhong=4;
  84.                                 delay(2000);

  85.                                 duojiguizhong1=6;
  86.                                 delay(1000);

  87.                                 duojiguizhong=14;
  88.                                 delay(2000);

  89.                                 duojiguizhong1=14;
  90.                                 delay(2000);

  91.                                 while(xiaocheting==0);
  92.                                 duojiguizhong=12;//歸中
  93.                                 delay(2000);
  94.                          }
  95.                          
  96.                 }
  97.                 /*
  98.                 duojiguizhong=16;
  99.                 delay(1000);
  100.                 duojiguizhong=12;//歸中
  101.                 delay(1000);
  102.                 duojiguizhong=8;//右45度
  103.                 delay(1000);

  104.                 duojiguizhong1=6;
  105.                 delay(1000);
  106.                 duojiguizhong1=12;
  107.                 delay(1000);
  108.                 duojiguizhong1=16;
  109.         //        delay(1000);*/

  110.         }
  111. }
復制代碼

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

29#
ID:79544 發表于 2015-7-23 19:46 | 只看該作者
slh0721 發表于 2015-7-23 17:15
謙虛了,我現在在單片機和C語言這塊,也就是幼兒園水平而已。

用的時候要根據你的單片機型號和晶振適當調整占空比的數值
回復

使用道具 舉報

30#
ID:85201 發表于 2015-7-28 11:59 | 只看該作者
xtitxjg 發表于 2015-7-23 14:38
給你吧,寫好了1秒一次,60次

你最后給我的那個程序,我稍微改動了一下(因為我用的是89C52單片機,所以頭文件改成了reg52.h),下載到單片機后,還是沒有反映,我買了四個舵機,都逐一試過,單片機更換過兩個,也是不行。這是什么原因啊?
回復

使用道具 舉報

31#
ID:85201 發表于 2015-7-28 12:01 | 只看該作者
騰飛的龍 發表于 2015-7-23 19:43
這個是我用的舵機程序 按鍵可以當傳感器用。

謝謝援助,雖然我想要的是不用按鍵自己就動的,但你的程序對于我今后的學習會有幫助,所以再次感謝 。
回復

使用道具 舉報

32#
ID:80992 發表于 2015-8-1 11:24 | 只看該作者
slh0721 發表于 2015-7-28 11:59
你最后給我的那個程序,我稍微改動了一下(因為我用的是89C52單片機,所以頭文件改成了reg52.h),下載到 ...

亡了告訴你,我用的是24M時鐘,5152不是問題,如果你是其他時鐘自己改下定時器就行了
回復

使用道具 舉報

33#
ID:85201 發表于 2015-8-3 13:44 | 只看該作者
xtitxjg 發表于 2015-8-1 11:24
亡了告訴你,我用的是24M時鐘,5152不是問題,如果你是其他時鐘自己改下定時器就行了

明白了。我回去試試
回復

使用道具 舉報

34#
ID:94489 發表于 2016-7-21 20:35 | 只看該作者
定時一個就行了
回復

使用道具 舉報

35#
ID:84299 發表于 2016-7-21 21:36 | 只看該作者
程序死在while(1),while后的分號有問題,改成while(1){;}
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: av在线一区二区 | 国产一级在线 | 国产精品mv在线观看 | 亚洲永久 | 日韩三级精品 | 成人在线观看中文字幕 | 91超碰caoporn97人人| 久久久国产精品一区 | 日韩视频在线观看一区二区 | 久久久av中文字幕 | 人人看人人干 | 97色免费视频| 一级特黄色毛片 | 午夜在线视频一区二区三区 | 91国内外精品自在线播放 | 国产二区av | 成人黄色av网站 | 成人一区二区视频 | 久久久久国产精品午夜一区 | 91精品国产91 | 日韩成人av在线播放 | 97精品国产97久久久久久免费 | 狠狠操电影 | 欧美久久综合 | 亚洲男人网 | 亚洲精品一区中文字幕乱码 | 日本天堂视频 | 成年人国产在线观看 | 日韩午夜| 草草视频在线观看 | 久久国产精品偷 | 亚洲色图综合 | 久精品久久 | 精品国产一区二区国模嫣然 | 日韩中文字幕 | 久久精品毛片 | 久久久久久91 | 国产精品99久久久久久动医院 | 久久国产婷婷国产香蕉 | 色婷婷综合久久久中字幕精品久久 | 国产一区二区三区在线 |