Robofun 機器人論壇

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

關於控制問題??

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-6-21 01:16:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
ayu大大~~妳好!!小弟前些天有去看過您的發表文章ssc(8通道pwm產生器950613)
請問如果加上串列阜控制(用pc端控制伺服機)該如何修改程式呢??
因為我之前有寫一個vb控制端想控制sever controller!!小弟是用8052與pc端控制ㄉ
程式跟89s51是用的語言一樣(組合語言)!
2#
發表於 2007-6-21 20:27:19 | 只看該作者
ffffff2641大大您好喔,

http://www.seattlerobotics.org/encoder/200106/16csscnt.htm  

這是uucww版主大大發現的程式,我是向版主大大這裏學習到的,還有marbol老師,他叫我不要稱呼他老師,還是叫他大大好了,




不曉得您是否要用這個GUI,我只會用這個控制程式,marbol大大也很厲害的,不曉得他潛水潛到那裏去了??


http://www.seattlerobotics.org/encoder/200106/16csscnt.zip

解壓縮後,PC_SRC 資料夾中,就有這個vb的程式了喔。請參考看看,到時有問題,大家再研究看看。
3#
 樓主| 發表於 2007-6-22 00:59:15 | 只看該作者
請教ayu大大!!我是用89c52控制的~~
那個網頁上程式應該沒辦法用在89c52吧!!?
4#
發表於 2007-6-22 08:48:14 | 只看該作者
原帖由 ffffff2641 於 2007-6-22 00:59 發表
請教ayu大大!!我是用89c52控制的~~
那個網頁上程式應該沒辦法用在89c52吧!!?


ffffff2641 大大您好喔,看了您的程式


If buf = "2" Then
   單手舉起.FillColor = pwm(150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, 150)
   

If buf = "1" Then

小弟想,您是用ASCII碼來傳送資料,然後用51來作判斷的吧??
那個程式是用16進制的資料傳送,不管什麼晶片,51我也試過,可以達到要求,pic應該也可以,只是125以後,資料就miss了。

之前設計程式也是利用類似您的方式,可是看到別人的這些程式,用的是另一種傳輸方式,也就是16進制的資料傳送。
小弟猜想,您的書看了也很多,可是國內的書只講到用ASCII碼來傳送資料,這種16進制的資料傳送就沒提到了,

marbol大大應該也是利用這種傳輸方式來作的吧??

51的程式需要修正,不然無法達到要求喔。

您的程式只能一個ASCII碼,指定一個動作,16個伺服機就要16個動作,255個解析度,16x255個動作,ASCII碼就達不到要求了。
5#
發表於 2007-6-22 19:40:42 | 只看該作者

回復 #4 ayu 的帖子

ayu大大~~~~~您也走到這一步囉!!!
VB用ASCII來傳送128~255的數值也是可行的,當初也困擾很久,
不過給試出來了,
只要用矩陣存值間接賦與

Dim buf1 As Integer
Dim num(5) As Byte

buf1=128~255
num(0)=buf1
Mscomm1.Output=num
這樣就可以把128到255的ASCII值硬是給傳出去!!

[ 本帖最後由 marbol 於 2007-6-22 19:43 編輯 ]
6#
發表於 2007-6-22 21:30:03 | 只看該作者
原帖由 marbol 於 2007-6-22 19:40 發表
ayu大大~~~~~您也走到這一步囉!!!
VB用ASCII來傳送128~255的數值也是可行的,當初也困擾很久,
不過給試出來了,
只要用矩陣存值間接賦與

Dim buf1 As Integer
Dim num(5) As Byte

師父出手,果然不同,弟子拜上囉。

樓主大大,正是這個徵節所在,要請您把重點記下了喔,marbol(師父)大大是這方面的先行者,小弟是從外國友人
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=44467&highlight=
那裏取經得來的(英文很爛,請不要笑破肚皮 ),

還是marbol(師父)大大厲害,自己發明解決這個控制器喔。

小弟說明一下解決問題的過程好了,當初看到marbol大大說要用avr來作這個SSC程式,
所以找了全華 05451007 「嵌入式AVR程式設計」郁文工作室 和 台科大「AVR單晶片微處理器」 這兩本書來作為參考書,

然後uucww版主大大找到上面那個範例,於是就用台科大「AVR單晶片微處理器」這本書把程式試出來(基本的燒錄和硬體架構),只是VB程式不完全。

後求助於 AVR Freaks Forum 這個論壇,還好外國友人幫忙,幫小弟把VB程式修正完成,這時才知這個 AVR 16SSC 可用,於是乎再參考「嵌入式AVR程式設計」書後的 附B-5 至 附B-22 頁,才把整個AVR程式搞懂,更把它擴充到24 SSC,而且應用在51晶片上,也是可行的。(這本書的avr studio是舊版的,跟新版有一些不同,不過大同小異。)

在這裏可能給您一些建議,

第一,可請問marbol(師父)大大,他可比小弟高明多了喔。

第二,假如允許的話,可能請您把avr這個程式弄懂了,到時51絕對設計得出來喔。
畢竟avr不論在速度和擴充性能上都比51好太多了。這是Atmel公司相同的產品,程式的寫法是相同的,只是指令有一點不同。

到時如還有問題的話,大家再討論了喔。
7#
 樓主| 發表於 2007-6-24 22:04:46 | 只看該作者
這是我集合各位大大,與我專研後寫的程式,不知還有哪邊需要修改的地方
請各位大大指教了!!
#ps:<這是與PC端連接控制SEVER MOTOR的程式>
PWM0            EQU    40H                  
PWM1            EQU    41H                  
PWM2            EQU    42H                  
PWM3            EQU    43H                  
PWM4            EQU    44H                 
PWM5            EQU    45H                  
PWM6            EQU    46H                  
PWM7            EQU    47H                  
COUNT          EQU    37H
CUT            EQU    39H
PIN            EQU    51H
PWM            EQU    52H
PIN1           EQU    53H
                       ORG         00H
        JMP     START
                  ORG   23H
        JMP     INTERR
                  ORG         0BH
        JMP    T0_INT                          
                  ORG         30H
START:
        MOV     SP,#70H
        MOV     R1,#20H
        MOV     21H,#00H
        MOV     IE,#10010000B
        MOV     SCON,#01110000B
        MOV     TMOD,#00100000B
        MOV     TH1,#0f3H
        SETB          TR1
        SETB    EA
        SETB    ET0            
        SETB    ET1                           
        MOV     CUT,#0         
        MOV     COUNT,#0                     
        MOV     PWM0,#12     
        MOV     PWM1,#12
        MOV     PWM2,#12
        MOV     PWM3,#12
        MOV     PWM4,#12
        MOV     PWM5,#12
        MOV     PWM6,#12
        MOV     PWM7,#12
INTERR:
        PUSH    A
        JBC     T0,T0_INT
        JNB     RI,$
        CLR     RI
        MOV     A,SBUF
        MOV     21H,A
        XRL     A,#40H
        JZ      C0
        MOV     A,21H
        XRL     A,#41H
        JZ      C1
        MOV     A,21H
        XRL     A,#42H
        JZ      C2
        MOV     A,21H
        XRL     A,#43H
        JZ      C3
        MOV     A,21H
        XRL     A,#44H
        JZ      C4
        MOV     A,21H
        XRL     A,#45H
        JZ      C5
        MOV     A,21H
        XRL     A,#46H
        JZ      C6
        MOV     A,21H
        XRL     A,#47H
        JZ      C7
        MOV     A,21H
        JZ      STOP
        RETI   
MAIN:
     
              LCALL  OUT           
              LJMP MAIN

DEL_H:                                    

        MOV R7,#1  
L7:
        MOV R6,#2  
L6:
        MOV R5,#17        
        DJNZ R5,$  
        DJNZ R6,L6
        DJNZ R7,L7  
        RET

PWM_WIDTH:
                  MOV  COUNT,@R0
LOOP1:     
           SETB TR0
           JNB  TF0,$
           CLR  TR0
           DJNZ COUNT,LOOP1         
           CLR  TR0
           MOV  CUT,#0        
           INC  R0
           RET
OUT:
           MOV    R0,#40H        
C0:        
           SETB   P1.0
           MOV    R7,#10        
           LCALL  DEL_H
           LCALL  PWM_WIDTH
           CLR    P1.0
C1:     
           SETB   P1.1
           MOV    R7,#10         
           LCALL  DEL_H
           LCALL  PWM_WIDTH
           CLR    P1.1
C2:      
           SETB   P1.2
           MOV    R7,#10         
           LCALL  DEL_H
           LCALL  PWM_WIDTH
           CLR    P1.2
C3:        
           SETB   P1.3
           MOV    R7,#10         
           LCALL  DEL_H
           LCALL  PWM_WIDTH
           CLR    P1.3
C4:        
           SETB   P1.4
           MOV    R7,#10         
           LCALL  DEL_H
           LCALL  PWM_WIDTH
           CLR    P1.4
C5:      
           SETB   P1.5
           MOV    R7,#10         
           LCALL  DEL_H
           LCALL  PWM_WIDTH
           CLR    P1.5
C6:        
           SETB   P1.6
           MOV    R7,#10         
           LCALL  DEL_H
           LCALL  PWM_WIDTH
           CLR    P1.6
C7:        
           SETB   P1.7
           MOV    R7,#10         
           LCALL  DEL_H
           LCALL  PWM_WIDTH
           CLR    P1.7
           SETB   TR1
           RET
STOP:
           MOV    P1,#FFH
           MOV    20H,#5AH
           AJMP   T0_INT
T0_INT:
           PUSH  A
           PUSH  PSW
           CLR   TR0
           MOV   TH0,#>(25536-40)
           MOV   TL0,#<(25536-40)
           INC   CUT
           SETB  TR0
           POP   PSW
           POP   A
           RETI
           END
8#
發表於 2007-6-25 00:43:42 | 只看該作者
很多地方看起來怪怪的,
不知道這樣講是不是有點不客氣,
不過,光把程式 po 出來,沒有功能說明跟流程圖,
實在很難讓然願意細心去看!

但無論如何,
感謝您的分享!

[ 本帖最後由 imas 於 2007-6-25 02:27 編輯 ]
9#
發表於 2007-6-25 14:40:42 | 只看該作者
樓主大大,
      我想大家在學組合語言的時候,是否都沒用IDE工具呢??

不然的話,應該很容易把這些程式弄懂的吧。

請嘗試一下IDE工具吧,國內的書藉這方面介紹的很少,以至於學習組合語言變成那麼難,其實如用一下IDE工具的話,應該一下子就可看出程式的架構和功能的 請參考看看吧。
其實ayu和marbol大大已經把整個程式都講解完了,不曉得大家看了出來沒??
10#
發表於 2007-7-1 20:58:40 | 只看該作者
不知道yyy大大所謂的IDE工具是所謂的?
不過就我的認知您是否是指圖形式處理器設定介面(VISUAL INITIALIZER INTERFACE) ?
還是您要介紹幾種好用的TOOLS給大家使用?
基本上我也不會組合語言
不過我很配服會寫組合語言的人
11#
發表於 2007-7-30 22:40:58 | 只看該作者
原帖由 doubletime 於 2007-7-1 20:58 發表
不知道yyy大大所謂的IDE工具是所謂的?
不過就我的認知您是否是指圖形式處理器設定介面(VISUAL INITIALIZER INTERFACE) ?
還是您要介紹幾種好用的TOOLS給大家使用?

doubletime大大您好喔,
       這種工具應該是學組合語言和c語言都會用到的工具,像Keil uVision2也可使用,只要把程式編譯好之後,模擬時就可看到程式的狀況,連流程圖都不用,就可知道程式在做什麼了喔,也就是說只要有程式,模擬一下,也就就破解了。
12#
發表於 2007-7-31 11:44:12 | 只看該作者

回復 #11 yyy 的帖子

yyy大大您好喔,我有Keil uVision2這個軟體,那我要模擬的話要怎麼用呢?

我的軟體的介面是英文...,看不懂@q@  感謝大大喔...話說這裡人變多了

我的檔案.asm 不能用uv3.UV2組譯,一堆這個錯誤訊息=>synatx error  

最後一行是這個=>expression type does not match intstruction

是要更改副檔名才能組譯嗎? 我的檔案用其他組譯器可以用如:ajon331s

誰能幫幫我~

[ 本帖最後由 zirok 於 2007-7-31 19:59 編輯 ]
13#
發表於 2007-7-31 11:44:37 | 只看該作者
...網路太慢以致於留了兩篇一樣的=.= 能不能自刪阿@q@

[ 本帖最後由 zirok 於 2007-7-31 11:45 編輯 ]
14#
發表於 2007-7-31 23:49:32 | 只看該作者
因為我用的是MPLAB,Microchip,人家的tools就寫得很完善
小弟我覺得寫得很不錯
15#
發表於 2007-8-1 00:58:07 | 只看該作者
原帖由 zirok 於 2007-7-31 11:44 發表
yyy大大您好喔,我有Keil uVision2這個軟體,那我要模擬的話要怎麼用呢?

我的軟體的介面是英文...,看不懂@q@  感謝大大喔...話說這裡人變多了

我的檔案.asm 不能用uv3.UV2組譯,一堆這個錯誤訊息=>s ...


zirok大大您好程式的編譯如下圖,



對不起,可能要請您到書局找一本全華出版51的書,書名忘記了(c語言的書也可以,只要更換一些操作),很抱歉。它內容有說明這個Keil uVision2編譯器如何做模擬的詳細解說,或者網站上看有沒有教學的解說嘍???至於程式需做一些修改,

在         >(65536-40)設定TIMER0在每40us中斷一次  這個部分需修改才可編譯成功,不過前提是需把這個Keil uVision2軟體的界面搞清楚,建議您一定找書或其它方式來用這個Keil uVision2軟體。祝您成功哦。
16#
發表於 2007-8-1 01:07:49 | 只看該作者
原帖由 doubletime 於 2007-7-31 23:49 發表
因為我用的是MPLAB,Microchip,人家的tools就寫得很完善
小弟我覺得寫得很不錯
doubletime大大您好哦,可否秀一下呢??謝嘍。
17#
發表於 2007-8-1 09:31:07 | 只看該作者
原帖由 yyy 於 2007-8-1 00:58 發表


zirok大大您好,程式的編譯如下圖,

http://i210.photobucket.com/albums/bb120/yrobot/8SSC.jpg

對不起,可能要請您到書局找一本全華出版51的書,書名忘記了(c語言的書也可以,只要更換一些操作),很 ...



您好,我有書拉...,可是不是全華的,教的也是別套軟體(很少人在用的軟體=.=) ,

教學我找到的影音檔沒有教人怎麼改檔案=.=...,我在網路上看到很多中文化用戶說明檔(類似拉,忘記名子),

那裡面會有詳細的解說嗎?? 可不可以告訴我大概要搜尋啥才能找到教學??  感謝大大
18#
發表於 2007-8-1 21:37:17 | 只看該作者

其實我覺得沒有所謂好與不好
用得習慣,功能多就是不錯的IDE了
19#
發表於 2007-8-2 22:20:13 | 只看該作者
再次請教YYY大大,我已經借到書了,程式也可以組譯了,
現在我想要藉由這個軟體模擬出波形,不知道可不可行齁@Q@

他裡面有一個 logic analyzer ,應該可以模擬類似示波器的功能?(我猜啦)
不過我不知道這個要怎麼用...能否請大大提示我一下呢? 感謝
20#
發表於 2007-8-4 19:13:49 | 只看該作者
還是有其他軟體能夠模擬示波器的功能呢?...
就是程式丟進去可以看出輸出的high.low訊號

可是我找半天找沒有@Q@,好像只有硬體=>電腦上的軟體 這類的...請各位大大幫幫忙
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-11-23 22:43 , Processed in 0.164333 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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