|
/script> F9 。籆=0相減結果為負,F(xiàn)9 ┋ 4) 循環(huán)n次的程序 如果要使某段程序循環(huán)執(zhí)行n次,可以用一個寄存器作計數(shù)器。下例以F10做計數(shù)器,使程序循環(huán)8次。 COUNT EQU 10 ;定義F10名稱為COUNT(計數(shù)器) ┋ MOVLW 8 MOVWF COUNT LOOP 。谎h(huán)體 LOOP ┋ DECFSZ COUNT,1 。籆OUNT減1,結果為零則跳 GOTO LOOP 。唤Y果不為零,繼續(xù)循環(huán) ┋ 。唤Y果為零,跳出循環(huán) 5)“IF……THEN……”格式的程序 下面以“IF X=Y THEN GOTO NEXT”格式為例。 MOVF X,0 ;X→W SUBWF Y,0 。籝—W(X)→W BTFSC STATUS,Z ;X=Y 否 GOTO NEXT 。籜=Y,跳到NEXT去執(zhí)行。 ┋ ;X≠Y 6)“FOR……NEXT”格式的程序 “FOR……NEXT”程序使循環(huán)在某個范圍內進行。下例是“FOR X=0 TO 5”格式的程序。F10放X的初值,F(xiàn)11放X的終值。 START EQU 10 DAEND EQU 11 ┋ MOVLW 0 MOVWF START 。弧0→START(F10) MOVLW 5 MOVWF DAEND ;5→DAEND(F11) LOOP ┋ INCF START,1 ;START值加1 MOVF START,0 SUBWF DAEND,0 。籗TART=DAEND ?(X=5否) BTFSS STATUS,Z GOTO LOOP ;X<5,繼續(xù)循環(huán) ┋ ;X=5,結束循環(huán) 7)“DO WHILE……END”格式的程序 “DO WHILE……END”程序是在符合條件下執(zhí)行循環(huán)。下例是“DO WHILE X=1”格式的程序。F10放X的值。 X EQU 10 ┋ MOVLW 1 MOVWF X ;1→X(F10),作為初值 LOOP ┋ MOVLW 1 SUBWF X,0 BTFSS STATUS,Z 。籜=1否? GOTO LOOP ;X=1繼續(xù)循環(huán) ┋ ;X≠1跳出循環(huán) 8) PIC單片機查表程序 查表是程序中經(jīng)常用到的一種操作。下例是將十進制0~9轉換成7段LED數(shù)字顯示值。
設LED為共陽,則0~9數(shù)字對應的線段值如下表: |