久久久国产一区二区_国产精品av电影_日韩精品中文字幕一区二区三区_精品一区二区三区免费毛片爱

 找回密碼
 注冊會員

QQ登錄

只需一步,快速開始

搜索
查看: 2272|回復: 1

通用伺服電機的工作原理

[復制鏈接]
1#
發表于 2010-8-6 09:47:47 | 只看該作者 |只看大圖 |倒序瀏覽 |閱讀模式

.include "8515def.inc"                ; 器件配制文件, 本實驗使用AT90S8515
.def dt = r22                                ; 定義dt等于r22
.org        $000                                ; 程序首地址
        rjmp        reset4                        ; 跳過中斷區
        
.org        $010                                ; 主程序首地址,注意,不同器件的中斷地址范圍是不同的!
reset4:
        ldi r17,$02                ;置堆棧指針,AT90S8515的RAM最大地址為$025F, 設堆棧底為$025F
        ldi r16,$5f
        out sph,r17                ; 高位堆棧sph=$02
        out spl,r16                ; 低位堆棧spl=$5f

shiyan4:
        ldi r17,$ff
        out ddrb,r17        ; pb口方向寄存器設置為輸出,1為輸出
        out portb,r17        ; 設pb口內部上拉
        out ddrd,r17        ; pd口方向寄存器設置為輸出,1為輸出
        out portd,r17   ; 設pd口內部上拉
        
start3:                                ; 設置舵機擺動周期常數, 即調節節拍常數
        LDI R23,$11        
        LDI R25,$11
                    ;R23=R25=$50擺動周期1S; 如=$30擺動周期0.5S
; 如=20-10擺動周期, 也可理解為調節拍范圍
                    ;$8強勁舞曲          ; $18   男兒當自強       ;$11 少年夢
                                ; 可作自唱自演跳舞機器人設計用。
start6:                                ; 舵機向-60度方向移動
        sbi        $18,0                ; 置pb.0為1
        rcall        de10        ;1ms,-60度
        cbi        $18,0                ; 清pb.0為0
        rcall        de10        ;1ms,-60度
        rcall        de185        ;19ms

        DEC        R23                        ;R23-1
        CPI         R23,$01        ;R23 與立即數$01比較
        BRSH        start6        ;大于等于則轉移到, 小于順序執行
        rcall        de200        ; 調用2ms延時程序
        
start60:                        ; 舵機向+60度方向移動
        sbi        $18,0                ; 置pb.0為1
        rcall        de20        ;2ms,+60度
        cbi        $18,0                ; 清pb.0為0
        rcall        de20        ; 調用2ms,+60度
        rcall        de18        ; 調用18ms
        
        DEC        R25                        ;R25-1
        CPI         R25,$01        ; ;R25 與立即數$01比較
        BRSH        start60        ;大于等于則轉移到, 小于順序執行
        rcall        de200   ; 調用20ms
        rjmp        start3        ;循環檢測

de10:                                ; 1ms延時子程序
        ldi        dt,21                ;1ms
        rcall        delay        ; 調用通用延時子程序
        ret                                ; 子程序返回
de15:                                ; 1.5ms延時子程序
        ldi        dt,26                ;1.5ms
        rcall        delay        ; 調用通用延時子程序
    ret                                ; 子程序返回
de20:                                ; 2ms延時子程序
        ldi        dt,28                ;2ms
        rcall        delay        ; 調用通用延時子程序
        ret                                ; 子程序返回
de18:                                ; 18ms延時子程序
        ldi        dt,63            ;18ms
        rcall        delay        ; 調用通用延時子程序
        ret                                ; 子程序返回
de185:                                 ; 19ms延時子程序
        ldi        dt,64                ;18.8ms
        rcall        delay        ; 調用通用延時子程序
        ret                                ; 子程序返回
de19:                                ; 20ms延時子程序
        ldi        dt,65                ;19.6ms
        rcall        delay        ; 調用通用延時子程序
        ret                                ; 子程序返回

de200:                        ;20ms延時子程序
        ldi        dt,50           ;2ms,DT=100-10無多大變化
        rcall        delay        ; 調用通用延時子程序
        ret                                ; 子程序返回
;延時時間對照表
;**********************************
;fos=8MHz
;dt   time    dt  time   dt   time
;22    1ms    26  1.5ms  29    2ms
;51   10ms    63  18ms   64   18.8ms
;65   19.6ms  144 200ms  197  500ms
;249    1s
;**********************************
delay:                                ; 通用延時子程, 子程序2級嵌套
            push dt                ; 進棧,需2t
del1:        push dt                ; 進棧,需2t
del2:        push dt                ; 進棧,需2t
del3:        dec dt                ; dt-1,需1t
        brne        del3        ; 上條指令執行后Z=0轉, Z=1順執, 需1t/2t
        pop dt                        ; 出棧, 需2t
        dec dt                        ; dt-1,需1t
        brne        del2        ; 上條指令執行后Z=0轉, Z=1順執, 需1t/2t
        pop dt                        ; 出棧, 需2t
        dec dt                        ; dt-1,需1t
        brne        del1        ; 上條指令執行后Z=0轉, Z=1順執, 需1t/2t
        pop dt                        ; 出棧, 需2t
        ret                                ; 子程序返回, 需4t
回復

使用道具 舉報

2#
發表于 2010-8-6 11:15:34 | 只看該作者
這遙控伺服機當學生時玩車不知拆了多少了
您需要登錄后才可以回帖 登錄 | 注冊會員

本版積分規則

Archiver|手機版|小黑屋|機械社區 ( 京ICP備10217105號-1,京ICP證050210號,浙公網安備33038202004372號 )

GMT+8, 2025-7-19 19:24 , Processed in 0.064843 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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