欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 我這個單片機匯編程序為什么不能做到左右移 [打印本頁]

作者: asd-123    時間: 2019-3-25 12:27
標題: 我這個單片機匯編程序為什么不能做到左右移
status equ 03h               ;定義狀態寄存器的地址
portd equ 08h                ;定義端口D的寄存器的地址
trisd equ 88h                ;定義端口D的方向控制寄存器的地址
flag equ 20h                 ;定義一個左右移標志寄存器
m equ 21h                    ;定義一個計數器變量
w equ 0                      ;定義傳送目標寄存器的W的指示位
f equ 1                      ;定義傳送目標寄存器的RAM的指示位
rp0 equ 5                    ;定義一個狀態寄存器的體選頁位指示位
dly1 equ 21h                 ;定義一個延時變量
dly2 equ 22h                 ;定義另一個延時變量
;---------------------------------主程序------------------------------------
org 000h
nop
bsf status,rp0              ;將狀態控制寄存器的頁選位選擇體1
movlw 00h                   ;將立即數00H送W
movwf trisd                 ;轉送到端口D的方向控制寄存器,設定輸出
bcf status,rp0              ;將狀態控制寄存器的頁選位選擇體0
bcf status,0                ;
movlw 0ffh                  ;將立即數0FEH先送到W
movwf portd                 ;再轉送到端口D,顯示
k1                           ;
movlw 01h                   ;將立即數01H先送到W
xorwf flag,f                ;將左右移標志位取反
btfss flag,0                ;測試左右移標志位FLAG=1左移。否則右移
goto loop1                  ;否,右移
goto loop2                  ;是,左移
loop1                        ;右移子程序名
movlw 0ah                   ;將立即數0AH送W
movwf m                     ;將立即數0AH轉送到M
s1                           ;
decfsz m,f                  ;M減一,結果送M。如果結果為0則跳一步,否則順序執行。
goto n1                     ;轉到右移
goto k1                     ;轉到k1
loop2                        ;左移子程序名
movlw 08h                   ;將立即數08H先送到W
movwf m                     ;再轉送到M
s2
decfsz m,f                  ;M減一,結果送M.如果結果為0則跳一步,否則順序執行
goto l1                     ;轉到右移
goto k1                     ;轉到K1
n1
rrf portd,f                 ;端口D循環右移指令
call delay                  ;調延時子程序
goto s1                     ;返回到計數器S1循環
l1
rlf portd,f                 ;端口D循環左移指令
call delay                  ;調延時子程序
goto s2                     ;返回到計數器S2循環
;--------------------------------延時子程序------------------------------------
delay                        ;子程序名
movlw 01h                  ;將外層循環參數0FFH經過W
movwf dly1                  ;送入用作外部循環變量的DLY1
lp0                          ;
movlw 0ffh                  ;將內層循環參數0FFH經過W
movwf dly2                  ;送入用作內層循環變量的DLY2
lp1                          ;
decfsz dly2,f               ;內層變量DLY2內容遞減,若為0跳一步
goto lp1                    ;跳到LP1處
decfsz dly1,f               ;外層變量DLY1內容遞減,若為0跳一步
goto lp0                    ;跳轉的LP0處
return                      ;返回主程序
end                         ;
作者: asd-123    時間: 2019-3-25 17:32
找到原因了,謝謝




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1