性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

pic16f877a 匯編跑馬燈程序請(qǐng)教 李學(xué)海書第二版187頁(yè)

大家請(qǐng)看下面的一段程序 (李學(xué)海的PIC基礎(chǔ)編第二版188頁(yè))
要實(shí)現(xiàn)的功能是RD端口的燈從0到7依次點(diǎn)亮,然后滅;再?gòu)?到0依次點(diǎn)亮,再到滅;循環(huán).
我的問題:為何不能進(jìn)入delay,在MPlab里面等等好久也不進(jìn)去,燒到實(shí)驗(yàn)板的硬件板后,只看到RD0和RD7兩個(gè)燈亮,不能達(dá)到預(yù)期的效果.
大家?guī)兔匆幌洛e(cuò)在哪里
;***************************
;<<8珠式霹靂燈控制器>>2009/4/16
;文件名為piliding.asm
;***************************
INCLUDE "C:\Program Files\Microchip\MPASM Suite\P16F877A.INC"
__Config H'3B31'
status equ 3h ;定義狀態(tài)寄存器地址
portd equ 8h
trisd equ 88h
flag equ 25h
org 000h
nop
bsf status,5
movlw 00h
movwf trisd
bcf status,5
movlw 01h
movwf portd
bsf flag,0
loop btfss status,0
goto loop1
comf flag,1
loop1 btfss flag,0
goto loop2
rlf portd,0
movwf portd
goto loop3
loop2 rrf portd,0
movwf portd
loop3 call delay
goto loop
;DELAY子程序
delay movlw 0ffh
movwf 20h
lp0 movlw 0ffh
movwf 21h
lp1 decfsz 21h,1
goto lp1
        decfsz 20h,1
goto lp0
return
;***********************************
end
全部回復(fù)(2)
正序查看
倒序查看
2009-04-17 16:57
剛才的程序沒有加注釋,現(xiàn)加上,這樣大家可以看明白了吧
;***************************
;<<8珠式霹靂燈控制器>>2009/4/16
;文件名為piliding.asm
;***************************
INCLUDE "C:\Program Files\Microchip\MPASM Suite\P16F877A.INC"
__Config H'3B31'
status equ 3h ;定義狀態(tài)寄存器地址
portd equ 8h ;定義端口D的數(shù)據(jù)寄存器地址
trisd equ 88h ;定義D的方向寄存器地址
flag equ 25h ;定義一個(gè)左/右移的標(biāo)志寄存器
org 000h
nop
bsf status,5 ;體1
movlw 00h
movwf trisd
bcf status,5
movlw 01h
movwf portd
bsf flag,0 ;左右移標(biāo)志位置,首先進(jìn)行左移LED
loop btfss status,0 ;測(cè)試進(jìn)借位位,是1則修改標(biāo)志
goto loop1 ;是0則不修改標(biāo)志
comf flag,1 ;FLAG的BIT0作為村志位,取反
loop1 btfss flag,0 ;判斷標(biāo)志位,是1則跳到循環(huán)左移
goto loop2 ;是0則跳到循環(huán)右移
rlf portd,0
movwf portd
goto loop3
loop2 rrf portd,0
movwf portd
loop3 call delay
goto loop
;DELAY子程序
delay movlw 0ffh
movwf 20h
lp0 movlw 0ffh
movwf 21h
lp1 decfsz 21h,1
goto lp1
        decfsz 20h,1
goto lp0
return
;***********************************
end
0
回復(fù)
ycwgr
LV.1
3
2009-04-20 13:08
@hunter-007
剛才的程序沒有加注釋,現(xiàn)加上,這樣大家可以看明白了吧;***************************;2009/4/16;文件名為piliding.asm;***************************INCLUDE"C:\ProgramFiles\Microchip\MPASMSuite\P16F877A.INC"__ConfigH'3B31'statusequ3h;定義狀態(tài)寄存器地址portdequ8h;定義端口D的數(shù)據(jù)寄存器地址trisdequ88h;定義D的方向寄存器地址flagequ25h;定義一個(gè)左/右移的標(biāo)志寄存器org000hnopbsfstatus,5;體1movlw00hmovwftrisdbcfstatus,5movlw01hmovwfportdbsfflag,0;左右移標(biāo)志位置,首先進(jìn)行左移LEDloopbtfssstatus,0;測(cè)試進(jìn)借位位,是1則修改標(biāo)志gotoloop1;是0則不修改標(biāo)志comfflag,1;FLAG的BIT0作為村志位,取反loop1btfssflag,0;判斷標(biāo)志位,是1則跳到循環(huán)左移gotoloop2;是0則跳到循環(huán)右移rlfportd,0movwfportdgotoloop3loop2rrfportd,0movwfportdloop3calldelaygotoloop;DELAY子程序delaymovlw0ffhmovwf20hlp0movlw0ffhmovwf21hlp1decfsz21h,1gotolp1        decfsz20h,1gotolp0return;***********************************end
comf flag,1
改為comf flag,0
0
回復(fù)
發(fā)