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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

按鍵控制舵機的單片機源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:252498 發表于 2017-12-20 01:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
代碼在壓縮文件
仿真只需按照代碼中的接口連接舵機

單片機源程序如下:
  1.             
  2. #include <reg52.h>             //頭文件
  3. #define uchar unsigned char           //宏定義無符號字符型
  4. #define uint  unsigned  int           //宏定義無符號整型

  5. uint b;                //中斷值
  6. uint N=0;                //占空比計數值
  7. uint X=8;                //初始角度值  (取值范2~15)


  8. uchar key_up;
  9. uchar key_down;
  10. /*************************************************************************/
  11. sbit P2_2=P2^2;//角度加
  12. sbit P2_3=P2^3;//角度減
  13. sbit PWM=P1^0;//PWM輸出          (舵機控制端)
  14. /*************************************************************************/
  15. void get_key(void)//按/韜?

  16. {
  17. while(P2_2==0)//按鍵加計數標志
  18. {key_up=1;
  19. }
  20. while(P2_3==0)//按鍵減計數標志
  21. {key_down=1;
  22. }
  23. }
  24. /*************************************************************************/
  25. void timer0( ) interrupt 1 //定時器0工作方式1
  26. {
  27. TH0=0xff;          //重裝計數初值
  28. TL0=0x38;          //重裝計數初值
  29. b++;
  30. get_key();
  31. if (key_up==1)
  32.        {
  33.            if(X!=15)//判斷是否計數到9999
  34.               {
  35.                X=X+1;//加一
  36.                key_up=0;
  37.                            }
  38.         }
  39. if (key_down==1)
  40.        {
  41.             if(X!=2)//判斷是否計數到0
  42.               {
  43.                    X=X-1;//減一
  44.                key_down=0;
  45.                }
  46.         }
  47. }
  48. /*************************************************************************/
  49. void main()
  50. {
  51. TMOD=0X01;          //定時器中斷0
  52. TH0=0xff;          //重裝計數初值
  53. TL0=0x38;          //重裝計數初值
  54. EA=1;                                  //開CPU中斷
  55. ET0=1;                                  //開T/C0中斷
  56. TR0=1;
  57. while(1)                           //無限循環
  58.         {
  59. PWM=1;                   //輸出PWM正
  60. while(1)
  61. {
  62. b=0;
  63. ……………………

  64. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
keil.rar (24.38 KB, 下載次數: 35)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:247545 發表于 2017-12-20 03:40 來自觸屏版 | 只看該作者
只有上下舵,計數方式,難道芯片是51,不是52嗎?可你的初始啟動用的52芯片應該是帶了計時器的,用計數方式并無法使其自動化。還有電路圖啦!大哥,你只給個運行腳本,并無法反映出來什么啊!起碼拍一張哪怕是萬能電路板做的控制器照片啊!鬼曉得引腳的排序方式。
回復

使用道具 舉報

板凳
ID:247545 發表于 2017-12-20 03:49 來自觸屏版 | 只看該作者
位引腳p2-2==p2.2你怎么運行這樣的位p2^2==t1,不好嗎?表達式t1==0,難道就不能計數?還要添
回復

使用道具 舉報

地板
ID:247545 發表于 2017-12-20 04:26 來自觸屏版 | 只看該作者
還有我記得中段信號位于p3.3~p3.4引腳吧?而ea的定義沒有描述指向該引腳方向啊!還有,全手動,計數按鍵,當上鍵處于高頻狀態時,x+1上鍵則為低頻,為什么不直接引用以計時方式來代替舵方向啦?這樣不就不用按鍵了嗎?還有舵偏移角度的量是多少,在這上面并沒有一個最大值的說明啊?難道可以360度旋轉的舵。還有15*16+15為16進制運算最后轉進制之后,算倒序,得出來的到底是多少引腳的零和游戲啦!類型uint為8難道上鍵為8度,次數啦,非x==15,只能按15次,也就是說15*8為120度的120度,240度。你能給看下實體模型不!將近一個圓周長的3分之2,這樣角度的舵你準備裝哪里,裝船上嗎?那么大角度的舵船早就翻了。你能給看下實體運行的演示視頻嗎?還有電路圖,以及實體模型運行演示。這里面還少了一大堆感應元器件,比如舵的水平運動感應水的溫度,深度,以及活水
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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