5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
查看: 2625|回复: 19
打印 上一主题 下一主题

DIY MIXer

[复制链接]
跳转到指定楼层
楼主
发表于 2004-5-30 05:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
http://www.geocities.com/ilufa/index.htm

欢迎继续阅读楼主其他信息

主题

  • 没有相关信息
  • 没有相关信息
  • 没有相关信息
沙发
 楼主| 发表于 2004-5-30 05:47 | 只看该作者

DIY MIXer





3
发表于 2004-5-30 22:58 | 只看该作者

DIY MIXer

[这个贴子最后由cliffman在 2004/05/30 02:00pm 编辑]

单片机代码呢?没有吗?你给的网址国内好像是封锁了吧,打不开的。贴上网页来看看吧。
4
 楼主| 发表于 2004-5-31 20:06 | 只看该作者

DIY MIXer

        LIST P=12C508A,R=HEX
;
;       MIXER FOR DLETA WIND & V-TAIL
;       SUN, PU-NENG
;      
;
;
;  
;       VERSION 1.0     (MAY/09/2004) 12C508A
;
;       Mixing Y with X, a proportion of ChY is bi-directionally mixed with ChX
;d ChA = (Q(d ChX) + R(d ChY))
;d ChB = (Q(d ChX) - R(d ChY))
;
;where Q, R are the mixing ratio, 1 OR 0.5
;
;            JUMP1   JUMP2    Q   Rr
;            Off     Off      1    1     (DEFAULT)
;            Off     On       1    0.5
;            On      Off      0.5  1
;            On      On       0.5  0.5   
;
;ChA    GPIO4  ,OUTPUT
;ChB    GPIO5  ,OUTPUT
;ChX    GPIO2  ,INPUT
;ChY    GPIO3  ,INPUT
; JUMP1  GPIO0--GND, ON=GND  
;  JUMP2  GPIO1--GND, ON=GND
;
;
; PROGRAMMER SETUP AS: OSC= IntRC, WDT= SET, CP= BLANK, MCLR= BLANK
;
;      
;       DEFINE RAM
;-----  SYSTEM  ---------
TMR0EQU 1;TIMER 0
PCL     EQU 2           ;PROGRAM COUNTER
STATUS  EQU 3
FSR     EQU 4           ;BUFFER OF INDIRECT ADDR
OSCCAL  EQU 5
GPIOEQU 6
;
RP0EQU 5
;---------------------------
;
;----  USER registers DEFINE  ------
;
TMR1    EQU H'11'       ;
TMR2    EQU H'12'       ;
ChXEQU H'13'       ;
ChYEQU H'14'
ChAEQU H'15'
ChBEQU H'16'
FLAGR   EQU H'17'       ;FLAG REGISTER   
X1EQU H'1A'       ;
Y1EQU H'1B'
XEQU H'1C'       ;
YEQU H'1D'
;
;
;----  VARIABLES DEFINE ----
;
W       EQU 0           ;d VALUE FOR INCF......
F       EQU 1           ;d VALUE
NOISE   EQU H'50'       ;PULSE LESS THEN THIS DEFINE AS NOISE
T1EQU H'3C';60 * 100uS LOOP
;-------FLAG
QQ      EQU 0           ;
RR      EQU 1
FIREQU 2
;
;----  HARDWARE PINS DEFINE ----
;
ChA1EQU 4      
ChB1EQU 5
ChXIEQU 2
ChYIEQU 3
SW1EQU 0
SW2EQU 1
;
;==========   MAIN PROGRAM   =========
;
        ORG     0
MOVWF OSCCAL
;
;-------SETUP (LL2=1,POINT=150)
START   MOVLW B'00001111'   ;PA<5:2>=INPUT, OTHERS =OUTPUT
TRIS GPIO
MOVLW H'80';T0CS=0,ENABLE GP2, ENABLE GPPU0,1,3
OPTION ;
CLRF GPIO;SET ALL OUTPUT LOW
;---------------------------------
CLRFGPIO
CLRF FLAGR
BTFSS GPIO,SW1;SW OPEN=HIGH,QQ=0
BSF FLAGR,QQ
BTFSS GPIO,SW2
BSF FLAGR,RR
;---------------------------------------------
;-----------Who first
;-------WHEN VALID PULSE GO THROUGH, IS THERE > 6 mS BETWEEN?
;-------IF NOT, EXCHANGE THE SEQUENCE
;
W1CLRWDT
BTFSS GPIO,2
        GOTO W1
CLRF TMR1;READ INPIN PULSE WEITH
W2      INCF TMR1,F     ;START LOOP
        CLRWDT
        NOP             ;10 uS LOOP
        NOP
        NOP
        NOP
        NOP
BTFSC GPIO,2 ;UNTIL INPIN GO LOW
        GOTO W2          ;END LOOP
W3      MOVLW NOISE
        SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1,SKIP
        GOTO W1         ;ELSE IT'S NOISE,
        CLRF TMR2;READ INPIN PULSE WEITH
W4      INCF TMR2,F     ;START LOOP
        CLRWDT
        MOVLW 0x21
        MOVWF TMR1
W5      DECFSZ TMR1,F    ;(3uS * 33)+7=106 uS LOOP
        GOTO W5
BTFSS GPIO,3;UNTIL INPIN GO HIGH
        GOTO W4         ;
W6   CLRF TMR1;READ INPIN PULSE WEITH
W7      INCF TMR1,F     ;START LOOP
        CLRWDT
        NOP             ;10 uS LOOP
        NOP
        NOP
        NOP
        NOP
BTFSC GPIO,3;UNTIL INPIN GO LOW
        GOTO W7          ;END LOOP
W8      MOVLW NOISE
        SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1,SKIP
        GOTO W1         ;ELSE IT'S NOISE, back to w1
W9MOVLW T1
        SUBWF TMR2,W
        SKPC            ;IF f > w, C= 1,JUMP
        GOTO W101         ;
BCF FLAGR,FIR; PIN3 GO FIRST
GOTO R101
;--------------------------------
W101CLRWDT
BTFSS GPIO,3
        GOTO W101
CLRF TMR1;READ INPIN PULSE WEITH
W102    INCF TMR1,F     ;START LOOP
        CLRWDT
        NOP             ;10 uS LOOP
        NOP
        NOP
        NOP
        NOP
BTFSC GPIO,3 ;UNTIL INPIN GO LOW
        GOTO W102          ;END LOOP
W103    MOVLW NOISE
        SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1,SKIP
        GOTO W101         ;ELSE IT'S NOISE,
        CLRF TMR2;READ INPIN PULSE WEITH
W104    INCF TMR2,F     ;START LOOP
        CLRWDT
        MOVLW 0x21
        MOVWF TMR1
W105    DECFSZ TMR1,F    ;(3uS * 33)+7=106 uS LOOP
        GOTO W105
BTFSS GPIO,2;UNTIL INPIN GO HIGH
        GOTO W104         ;
W106CLRF TMR1;READ INPIN PULSE WEITH
W107    INCF TMR1,F     ;START LOOP
        CLRWDT
        NOP             ;10 uS LOOP
        NOP
        NOP
        NOP
        NOP
BTFSC GPIO,2;UNTIL INPIN GO LOW
        GOTO W107          ;END LOOP
W108    MOVLW NOISE
        SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1,SKIP
        GOTO W101         ;ELSE IT'S NOISE, back to w1
W109MOVLW T1
        SUBWF TMR2,W
        SKPC            ;IF f > w, C= 1,JUMP
        GOTO W1        ;
BSF FLAGR,FIR; PIN2 GO FIRST
GOTO R1
;---------------------------------------------------
;-------READ VALID PULSES, LIMIT THE NUMBER 100<200
;-------PUT NUMBERS IN X, Y REGISTERS
R1CLRWDT
BTFSS GPIO,2
        GOTO R1
CLRF TMR1;READ INPIN PULSE WEITH
R2      INCF TMR1,F     ;START LOOP
        CLRWDT
        NOP             ;10 uS LOOP
        NOP
        NOP
        NOP
        NOP
BTFSC GPIO,2 ;UNTIL INPIN GO LOW
        GOTO R2          ;END LOOP
R3MOVLW NOISE
SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1,SKIP
        GOTO R1         ;ELSE IT'S NOISE,
MOVLW .99
        SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1, SKIP
        GOTO R31         ;ELSE TMR1 < 100,
MOVLW .200
        SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1, SKIP
        GOTO R4         ;ELSE TMR1 >200,
MOVLW .200
        MOVWF TMR1
GOTO R4
R31MOVLW .100
        MOVWF TMR1
R4      MOVF TMR1,W       ;ChXI IS FIRST
        MOVWF X
R5CLRWDT
BTFSS GPIO,3
        GOTO R5
CLRF TMR1;READ INPIN PULSE WEITH
R6      INCF TMR1,F     ;START LOOP
        CLRWDT
        NOP             ;10 uS LOOP
        NOP
        NOP
        NOP
        NOP
BTFSC GPIO,3 ;UNTIL INPIN GO LOW
        GOTO R6          ;END LOOP
R7      MOVLW NOISE
        SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1,SKIP
        GOTO R5         ;ELSE IT'S NOISE, READ FIRST AGAIN
MOVLW .99
        SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1, SKIP
        GOTO R71         ;ELSE TMR1 < 100,
MOVLW .200
        SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1, SKIP
        GOTO R8         ;ELSE TMR1 >200,
MOVLW .200
        MOVWF TMR1
GOTO R8
R71MOVLW .100
        MOVWF TMR1
R8      MOVF TMR1,W       ;ChXI NOT FIRST
        MOVWF Y
GOTO C10
;------------------
R101CLRWDT
BTFSS GPIO,3
        GOTO R101
CLRF TMR1;READ INPIN PULSE WIDTH
R102    INCF TMR1,F     ;START LOOP
        CLRWDT
        NOP             ;10 uS LOOP
        NOP
        NOP
        NOP
        NOP
BTFSC GPIO,3 ;UNTIL INPIN GO LOW
        GOTO R102          ;END LOOP
R103MOVLW NOISE
SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1,SKIP
        GOTO R101         ;ELSE IT'S NOISE,
MOVLW .99
        SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1, SKIP
        GOTO R131         ;ELSE TMR1 < 100,
MOVLW .200
        SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1, SKIP
        GOTO R104         ;ELSE TMR1 >200,
MOVLW .200
        MOVWF TMR1
GOTO R104
R131MOVLW .100
        MOVWF TMR1
R104    MOVF TMR1,W       ;ChXI IS FIRST
        MOVWF Y
R105CLRWDT
BTFSS GPIO,2
        GOTO R105
CLRF TMR1;READ INPIN PULSE WIDTH
R106    INCF TMR1,F     ;START LOOP
        CLRWDT
        NOP             ;10 uS LOOP
        NOP
        NOP
        NOP
        NOP
BTFSC GPIO,2 ;UNTIL INPIN GO LOW
        GOTO R106          ;END LOOP
R107    MOVLW NOISE
        SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1,SKIP
        GOTO R105         ;ELSE IT'S NOISE, READ FIRST AGAIN
MOVLW .99
        SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1, SKIP
        GOTO R171         ;ELSE TMR1 < 100,
MOVLW .200
        SUBWF TMR1,W
        SKPC            ;IF f > w, C= 1, SKIP
        GOTO R108         ;ELSE TMR1 >200,
MOVLW .200
        MOVWF TMR1
GOTO R108
R171MOVLW .100
        MOVWF TMR1
R108    MOVF TMR1,W       ;ChXI NOT FIRST
        MOVWF X
GOTO C10
;------------------
;---------------------------------------------------
;-------GET ChA, ChB FROM X,Y,q,r
C10CLRWDT
BTFSC FLAGR,QQ;q=0, NORAL
GOTO C30
BTFSC FLAGR,RR
GOTO C20
;--------------------------
MOVLW .50;QQ=0, RR=0
SUBWF X,W
    MOVWF X1; XX=X-50
MOVLW .100
SUBWF Y,W
    MOVWF Y1; YY=Y-100
ADDWF X1,W;
MOVWF ChA; A=(X-50)+(Y-100)
MOVLW .50;
ADDWF X,W
    MOVWF X1; XX=X+50
MOVF Y1,W
SUBWF X1,W
MOVWF ChB; B=(X+50)-(Y-100)
    GOTO P1
;-----------------------------
C20MOVLW .25;QQ=0, RR=1
SUBWF X,W
    MOVWF X1; XX=X-25
MOVLW .100
SUBWF Y,W
    MOVWF Y1; YY=Y-100
    BCF STATUS,0
    RRF Y1,F          ;YY=(Y-100)/2
MOVF Y1,W
ADDWF X1,W;
MOVWF ChA; A=(X-25)+((Y-100)/2)
MOVLW .25;
ADDWF X,W
    MOVWF X1; XX=X+25
    MOVF Y1,W
SUBWF X1,W
MOVWF ChB; B=(X+25)-((Y-100)/2)
GOTO P1
;---------------------------------
C30BTFSC FLAGR,RR;
GOTO C40
;--------------------------
MOVLW .100;QQ=1,RR=0
SUBWF X,W
    MOVWF X1
    BCF STATUS,0
    RRF X1,F        ; XX=(X-100)/2
MOVLW .100
SUBWF Y,W
    MOVWF Y1; YY=Y-100
MOVLW .75
ADDWF X1,W
    ADDWF Y1,W
MOVWF ChA; A=75+((X-100)/2)+(Y-100)
MOVLW .175;
ADDWF X1,F
    MOVF Y1,W
SUBWF X1,W
MOVWF ChB; B=175+((X-100)/2)-(Y-100)
GOTO P1
;---------------------------------
C40     MOVF X,W        ;QQ=1, RR=1
        MOVWF X1
        BCF STATUS,0
        RRF X1,F          ; XX=X/2
        MOVF Y,W   
        MOVWF Y1
        BCF STATUS,0
RRF Y1,F;YY=Y/2
MOVF Y1,W;RRF DO NOT INVOLVE W
ADDWF X1,W;
MOVWF ChA; A=(X/2)+(Y/2)
MOVLW .150;
ADDWF X1,F
MOVF Y1,W
        SUBWF X1,W
MOVWF ChB; B=(150+(X/2))-(Y/2)
GOTO P1
;
;-------------------------------
;-------RESTRICT ChA, ChB BETWEEN 100~200
;-------AND OUTPUT ChA, ChB (*10uS) TO PIN 0,1
P1CLRWDT
MOVLW .99
        SUBWF ChA,W
        SKPC            ;IF f > w, C= 1, SKIP
        GOTO P11         ;ELSE TMR1 < 100,
MOVLW .200
        SUBWF ChA,W
        SKPC            ;IF f > w, C= 1, SKIP
        GOTO P12        ;ELSE TMR1 >200,
MOVLW .200
        MOVWF ChA
GOTO P12
P11MOVLW .100
        MOVWF ChA
;------------------
P12MOVLW .99
        SUBWF ChB,W
        SKPC            ;IF f > w, C= 1, SKIP
        GOTO P13         ;ELSE TMR1 < 100,
MOVLW .200
        SUBWF ChB,W
        SKPC            ;IF f > w, C= 1, SKIP
        GOTO P15        ;ELSE TMR1 >200,
MOVLW .200
        MOVWF ChB
GOTO P15
P13MOVLW .100
        MOVWF ChB
;--------------------
P15BSF GPIO,ChA1
P2 CLRWDT;10uS LOOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ ChA,F
GOTO P2; END OF LOOP
BCF GPIO,ChA1
BSF GPIO,ChB1
P3 CLRWDT; 10uS LOOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ ChB,F
GOTO P3; END OF LOOP
BCF GPIO,ChB1
BTFSC FLAGR,FIR
GOTO R1;MAIN PROGRAM LOOP
GOTO R101
;==========================================================
END
5
 楼主| 发表于 2004-5-31 20:08 | 只看该作者

DIY MIXer

         R/C MIXer  FOR DLETA WIND & V-TAIL
混控板  V1.0
PIC12C508A  /509A  /16F84A
        
本裝置適用於一般沒有混控的發射機,用來飛三角翼飛機、無尾翼飛機及V型尾翼飛機,如ZAGI、幻象2000等副翼與升降舵連動混合控制的機子。解析度101步階(steps),框數 (frame) 與發射機相同,混控動作順暢。
混控器上的ChX 及ChY輸入插頭,插入接收機上的升降舵及副翼輸出插座,再將兩個伺服機各別插入混控器上的ChA 及 ChB 輸出端即可。
兩個跳線插座用來調整混控比率,不裝也沒關係。若兩個跳線插座都接上(ON),則混控比率為 0.5 / 0.5,變成了 "大小動" 的功能,適合新手或太靈敏的飛機。重設跳線插座前記得先關電源。
508版只有兩個零件,以小塊萬用板焊接,外包熱縮管或膠帶。到接收機的連線使用報廢伺服機的插頭連線,輸出端使用一般插針,最為方便。
PIC 燒錄的設定為
16F84A :   OSC= XT,     WDT= ENABLE,    PWRT= ENABLE ,   CP= BLANK(DISABLE)
12C508A /509A :  OSC= IntRC,   WDT= SET,   MCLR= BLANK,     CP= BLANK,

廣營有類似產品 ,但混控比率不可調整,長得很漂亮。
程式說明請看英文版 How it work ,或ASM檔的註解。
Step by Step  自己燒錄PIC16F84A
 
 

PIC12C508A/509A.ASM                    PIC12C508A/509A.HEX
PIC16f84A.ASM                                  PIC16F84A.HEX
 
BACK
====================================================================================== 
歡迎拷貝、轉載、引用、修改或出售本網站資訊,請註明出處。
注意 : 因使用本網站所導致的任何傷害或損失,本人概不負責。
Philip Sun / TAIWAN
ilufa@yahoo.com
copy right 2004
 
 
6
 楼主| 发表于 2004-5-31 20:16 | 只看该作者

DIY MIXer

因为无法上传完整网页
只先贴 MIXER
另有 转速表  空拍控制器(含寻机)  起落架控制器(含灯光)
要的人可email 给你
有人愿帮我做镜像吗?
7
发表于 2004-7-28 07:29 | 只看该作者

DIY MIXer

我要,
spdff@163.com
8
发表于 2004-7-28 21:17 | 只看该作者

DIY MIXer

好东西,顶.大哥继续啊,,,
9
发表于 2004-7-29 07:38 | 只看该作者

DIY MIXer

造福模友,善莫大焉!
10
发表于 2004-9-13 19:14 | 只看该作者

DIY MIXer

还要其他的资料,楼主多发点啊,
11
发表于 2004-9-13 20:54 | 只看该作者

DIY MIXer

是呀,好东西大家都需要.
12
发表于 2004-10-19 15:57 | 只看该作者
搂主真是辛苦了,可我不会搞!
还是直接开发出产品来吧!
13
发表于 2004-10-21 13:49 | 只看该作者


朋友做的啦有要的去上面的网站找他啦
14
发表于 2004-10-21 13:50 | 只看该作者
网址是WWW.PRCDIY.COM
许先生
15
发表于 2004-10-23 03:54 | 只看该作者
我顶!!
能发一份给我吗?
非常感谢!!
huangqi_wz@sina.com
16
 楼主| 发表于 2004-10-23 17:47 | 只看该作者
huangqi  在 2004-10-23 03:54 AM 发表:

我顶!!
能发一份给我吗?
非常感谢!!
huangqi_wz@sina.com


Mixer.zip 发一份
非常感谢!!
17
发表于 2004-10-23 18:43 | 只看该作者
我顶
18
 楼主| 发表于 2004-10-23 23:22 | 只看该作者
因部份网友接不上我的网页,需要下列资料者请留email address,我会将打包的资料寄给你,2004年11月10日前有效,逾期不迴。

请注明第几项及其英文名称,如 2.Tacho & 6.Mixer

欢迎镜像我的网页。


----------------------------------------
1. Drop 具有学习能力的点滴监视器,对住院的病人或其家属,点滴输送液是否正常或快用完了,特别是在夜间,常常是让他们睡不安心的另一方面原因。PIC16C54

2. Tacho 这个转速计,可测范围为 100 RPM to 99,900 RPM,PIC16F84A & 3个7节LED

3. Discharger 每月将我的飞机电池放电一次,希望它们长命一点 . MAX933一内建 1.182V +- 2% 的参考电压,使设计变得非常简单。

4. RCC 我的原始构想是用12C508A,Shoot 控制数位相机、Light控制翼灯、Flash控制着陆灯、Buzzer控制内藏驱动电路的压电式电子蜂鸣器 ,或以Freq警报声输出经电晶体及升压线圈推动压电体,可产生类似救护车的警笛声。

5. LG 你的模型飞机的起落架,会不会动作太快,而缺少一点真实感 ??如果只要一颗零件加一个电容就可以让它以更优雅的速度收放,你要不要 ?? 12C508A

6. Mixer 使用PIC12C508A/509A/16F84A本装置适用于一般没有混控的发射机,用来飞三角翼飞机、无尾翼飞机及V型尾翼飞机

7. DSCC 使用PIC12C508A又是个简单电路,有了这个东东就可专心飞飞机,只要(第五动)开关一开,相机就自动连拍,控制方便

8. DST 数位式伺服机测试含转速计 16F84A, 8*2 LCD 可测伺服机、电变、接收机。

9. Burn84 如何自己烧录PIC16F84A ,JDM / P16Pro Programmer 说明

10. Timer 常为了把浴室的湿气抽乾,得让灯开着好几小时,很浪费电,又不方便再拉电线开关,因此做这个定时器,并加一个小电风扇,加速空气流动。16F84A

-----------------------------------------------
19
 楼主| 发表于 2004-10-27 21:19 | 只看该作者
我的模型电子DIY网站,国内镜像在

http://www.carolbox.cn/ilufa/index.htm

欢迎参观

http://www.carolbox.cn/
20
发表于 2004-10-28 12:07 | 只看该作者
好东西
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /1 下一条

快速回复 返回顶部 返回列表