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