找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5378|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)的帆板控制系統(tǒng)仿真及源碼與實(shí)物制作

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
最近由于要參加電子設(shè)計(jì)大賽,想拿點(diǎn)東西練練手,隨便玩玩,花了一天時(shí)間做個(gè)帆板控制系統(tǒng),雖然做的一般,但也是個(gè)經(jīng)驗(yàn),有興趣的可以看看,有程序,仿真,實(shí)物圖都在此,全套資料可下載參考:

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載):


下面是一個(gè)帆板的參考論文:


單片機(jī)源程序如下:
  1. #include"main.h"
  2. uint V_0832 =0,key_value;
  3. uint i=0,angle_test=48,angle=48;
  4. uint tab[4]={0};          //定義數(shù)組,以保存設(shè)置角度值
  5. /***************電機(jī)相關(guān)定義**********************/
  6. sbit en1=P3^7; /* L298的Input 1 */
  7. sbit s1=P3^5; /* L298的Input 1 */
  8. sbit s2=P3^6; /* L298的Input 2 */
  9. uchar t=0; /* 中斷計(jì)數(shù)器 */
  10. uchar m1=90; /* 電機(jī)1速度值 */
  11. uchar tmp1; /* 電機(jī)當(dāng)前速度值 */
  12. /***************電機(jī)結(jié)束*********************/
  13. void Init_interrupt()
  14. {
  15.         TMOD=0x12; /* 設(shè)定T0的工作模式為2 */
  16.         TH0=0x9B; /* 裝入定時(shí)器的初值155 0.1ms*/
  17.         TL0=0x9B;
  18.         TH1=(65536-155)/256;
  19.         TL1=(65536-155)%256;
  20.         EA=1; /* 開(kāi)中斷 */
  21.         ET1=1;
  22.         ET0=1; /* 定時(shí)器0允許中斷 */
  23.         TR0=1; /* 啟動(dòng)定時(shí)器0 */
  24.         TR1=1;
  25. }
  26. void main()
  27. {        
  28.         Init_interrupt();
  29.         init_1602();
  30.         s1=1;                //電機(jī)設(shè)置
  31.           s2=0;
  32.         while(1)
  33.         {        
  34. //                V_0832 = (uint)(ad0832read(1,0)*1.3);
  35.                 V_0832 = (uint)(Get_AD_Result()*1.41);        
  36.                 write_sfm3(1,10,V_0832);
  37.                 key_value=key16();
  38.                 if(key_value < 10)                                                                                        //如果輸入的鍵值是數(shù)字鍵
  39.                 {
  40.                         tab[i]=key_value;
  41.                         angle_test=angle_test*10+tab[i];
  42.                         i++;                                                                                //每輸入一位密碼,位數(shù)自增1.
  43.                         if(i == 4)                                                                //密碼輸入位數(shù)控制在6位
  44.                         {
  45.                                 i = 0;
  46.                                 angle_test=0;
  47.                         }                                                                                
  48.                 }
  49.                 angle=angle_test;
  50.                 write_sfm3(2,10,angle);
  51.                
  52.         }
  53. }
  54. void timer0() interrupt 1 /* T0中斷服務(wù)程序 0.1ms一次中斷*/
  55. {
  56.         if(t==0) /* 1個(gè)PWM周期完成后才會(huì)接受新數(shù)值 */
  57.                 {
  58.                 tmp1=m1;
  59.                 }
  60.         if(t<tmp1) en1=1; else en1=0; /* 產(chǎn)生電機(jī)1的PWM信號(hào) */
  61.         t++;
  62.         if(t>=100) t=0; /* 1個(gè)PWM信號(hào)由100次中斷產(chǎn)生   100HZ */
  63. }
  64. void timer1() interrupt 3 /* T0中斷服務(wù)程序 0.1ms一次中斷*/
  65. {
  66.         TH1=(65536-155)/256;
  67.         TL1=(65536-155)%256;
  68.         if(V_0832<angle-2)
  69.                 {
  70. ……………………

  71. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
電賽測(cè)試.zip (1.56 MB, 下載次數(shù): 112)


評(píng)分

參與人數(shù) 2黑幣 +103 收起 理由
zhangli019 + 3 贊一個(gè)!
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:550094 發(fā)表于 2019-5-29 14:26 | 只看該作者
我想問(wèn)adxl345可以用那個(gè)替換
回復(fù)

使用道具 舉報(bào)

板凳
ID:564840 發(fā)表于 2019-6-17 17:56 | 只看該作者
你好。關(guān)于帆板控制系統(tǒng)的資料我下載不了,你能不能分享給我一下。十分感謝
回復(fù)

使用道具 舉報(bào)

地板
ID:921538 發(fā)表于 2021-5-15 08:16 | 只看該作者
大贊,I LIKE
回復(fù)

使用道具 舉報(bào)

5#
ID:922269 發(fā)表于 2021-5-16 17:52 | 只看該作者
角度傳感器用的是mpu6050吧
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表