Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 6565|回復: 8
打印 上一主題 下一主題

求助 無線模組 控制89S51

[複製鏈接]
跳轉到指定樓層
1#
發表於 2010-5-4 23:52:06 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
   

原程式 我引用版上某位大大的程式
#include "reg51.h"
void delay(unsigned int );
void delay2(unsigned int );
void m0(unsigned int );
void m1(unsigned int );
void m2(unsigned int );
void m3(unsigned int );
void m4(unsigned int );
void m5(unsigned int );
void m6(unsigned int );
void m7(unsigned int );
void mm(unsigned int q,w,e,r,t,y,u,i,l);
main()
{
    TMOD=0x11;
    P0=0x00;
    P2=0x00;
    //以下程式都不需變更  想編輯動作  只要改mm()括號中的內容及增加mm()來編輯更多動作
    //mm()裡的內容為 1.動作維持時間  
    //2.第一顆馬達角度資料 3.第二顆馬達角度資料 4.第三顆馬達角度資料 5.第四顆馬達角度資料  6.第五顆馬達角度資料
    //7.第六顆馬達角度資料 8.第七顆馬達角度資料 9.第八顆馬達角度資料 9.第九顆馬達角度資料 10.第十顆馬達角度資料
    //馬達角度資料為800-2200之間  分別為  左轉60度-右轉60度  共120度活動空間
    //本程式範例為 左轉60度-右轉60度 依序循環
    while(1)
    {
      
        //右轉 (我想要在這案 按鈕1 就右轉)
     mm(40,800,800,800,800,800,800,800,800);
        mm(40,900,900,900,900,900,900,900,900);
     mm(40,1000,1000,1000,1000,1000,1000,1000,1000);
  mm(40,1400,1400,1400,1400,1400,1400,1400,1400);
        //左轉 (在這案 按鈕2就左轉)
mm(40,1700,1700,1700,1700,1700,1700,1700,1700);
     mm(40,2000,2000,2000,2000,2000,2000,2000,2000);
  mm(40,2200,2200,2200,2200,2200,2200,2200,2200);
         
    }
}
//以下程式為副函式都不需變更
void delay(unsigned int dly)
{
    TL1=65536-dly;
    TH1=(65536-dly)>>8;
    TR1=1;
    while(TF1==0);
    TR1=0;
    TF1=0;
}
void delay2(unsigned int dy)
{
    TL0=65536-dy;
    TH0=(65536-dy)>>8;
    TR0=1;
    while(TF0==0);
    TR0=0;
    TF0=0;
}
void m0(unsigned int hi)
{
    P2=0x01;
    delay(hi);
    P2=0x00;
    delay2(2500-hi);
}
void m1(unsigned int hi)
{
    P2=0x02;
    delay(hi);
    P2=0x00;
    delay2(2500-hi);
}
void m2(unsigned int hi)
{
    P2=0x04;
    delay(hi);
    P2=0x00;
    delay2(2500-hi);
}
void m3(unsigned int hi)
{
    P2=0x08;
    delay(hi);
    P2=0x00;
    delay2(2500-hi);
}
void m4(unsigned int hi)
{
    P2=0x10;
    delay(hi);
    P2=0x00;
    delay2(2500-hi);
}
void m5(unsigned int hi)
{
    P2=0x20;
    delay(hi);
    P2=0x00;
    delay2(2500-hi);
}
void m6(unsigned int hi)
{
    P2=0x40;
    delay(hi);
    P2=0x00;
    delay2(2500-hi);
}
void m7(unsigned int hi)
{
    P2=0x80;
    delay(hi);
    P2=0x00;
    delay2(2500-hi);
}
void mm(unsigned int q,w,e,r,t,y,u,i,l)
{
    unsigned char o;
    for(o=q;o>0;o--)
    {
        m0(w);
        m1(e);
        m2(r);
        m3(t);
        m4(y);
        m5(u);
        m6(i);
        m7(l);
        
    }
}

我改怎改程式呢?? 拜託各位大大了^^
2#
發表於 2010-5-5 01:58:36 | 只看該作者
這個應用在市面上的書裡面有喔
好像是王允上老師寫的吧
還是誰寫的
也許你可以去參考看看
3#
 樓主| 發表於 2010-5-5 13:26:16 | 只看該作者
回復 2# mzw2008


    他書籍類別 是屬於 ??  
我找了很多書 幾乎都是 藍雅 跟ZIGBEE
4#
發表於 2010-5-5 14:16:31 | 只看該作者
機器人
電機電子相關類別吧
書很薄, 約是兩百頁左右
居然還賣三百多元
那我寫的不就可以賣一千了@@
5#
 樓主| 發表於 2010-5-5 15:03:29 | 只看該作者
王允上老師 我以前好像是他的學生 他是東勢高工的老師嗎
6#
發表於 2010-5-5 15:53:29 | 只看該作者
這就不曉得了, 書局翻一下吧
7#
發表於 2010-5-5 23:03:55 | 只看該作者
本帖最後由 miaoichi 於 2010-5-5 23:08 編輯

這個rf模組我有買過 316MHZ 也有4xxMHZ的,一組才幾百元,光華有賣
另外用ht-12加密,ht-12d解開 一組ic,我有玩過,不過距離不遠就是了
89s51的碼我也有寫出來。很簡單的

基本上這個電路圖少畫一條線ht-12D的晶片15腳要接到51的int 0 或 1,然後去中斷處理判斷收到是多少
然後執行相對應的動作
8#
 樓主| 發表於 2010-5-6 01:52:43 | 只看該作者
中斷處理判斷收到是多少
這邊的程式我該怎改 我就是這段不會 @@ 拜託你了^^
9#
發表於 2010-5-17 15:32:15 | 只看該作者
程式碼大概是當HT-12E收到完整碼後,vt會拉到high ,通過 反相器,產生中斷
void int0(void) interrupt 0
然後去讀51的14~17腳,再去處理相對該的動作即可


參考我這篇
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-12 07:45 , Processed in 0.236446 second(s), 9 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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