MOV DX,PORTD MOV AL,0FFHRepeat:INC AL OUT DX,AL JMP Repeat若改變鋸齒波週期,可用NOP或延時指令控制,如下: MOV DX,PORTD MOV AL,0FFHRepeat:INC AL OUT DX,AL CALL DELAY1 JMP RepeatDELAY1:MOV CX,DATA1DELAY2:LOOP DELAY2 RET產生三角波形將線性增長段和線性下降段結合起來,便可產生三角波形。程式如下: MOV AL,25H ;設定8255A的A口為輸出方式 MOV DX,0DH OUT DX,AL MOV DX,0AH MOV AL,00H ;送下限值SJ0: OUT DX,AL ;將資料輸出到A口 INC AL ;AL加1 JNZ SJ0 ;上限為FFH,沒到上限,繼續迴圈SJ1: DEC AL ;到上限,AL減1 OUT DX ,AL JNZ SJ1 ;若沒到下限,轉SJ1繼續減1輸出 JMP SJ0 ;到下限,轉SJ0重新從下限開始產生梯形波形 MOV AL,25H ;設定8255A的A口為輸出方式 MOV DX,0DH OUT DX,AL MOV DX,0AH MOV AL,00H ;從0開始 OUT DX,AL ;將資料輸出到A口TX0: INC AL ;AL加1 OUT DX,AL CMP AL,0FFH ;檢查到上限否 JNZ TX0 ;上限為FFH,沒到上限,繼續循壞 MOV CX,0FFH ;上限到,延時TX1: NOP LOOP TX1TX2: DEC AL ; AL減1 OUT DX ,AL CMP AL,00H ;檢查到下限否 JNZ TX2 ;上限為00H,沒到下限,繼續迴圈 MOV CX,0FFH ;下限到,延時TX3: NOP LOOP TX3 JMP TX0 ;轉TX0開始下一個週期
MOV DX,PORTD MOV AL,0FFHRepeat:INC AL OUT DX,AL JMP Repeat若改變鋸齒波週期,可用NOP或延時指令控制,如下: MOV DX,PORTD MOV AL,0FFHRepeat:INC AL OUT DX,AL CALL DELAY1 JMP RepeatDELAY1:MOV CX,DATA1DELAY2:LOOP DELAY2 RET產生三角波形將線性增長段和線性下降段結合起來,便可產生三角波形。程式如下: MOV AL,25H ;設定8255A的A口為輸出方式 MOV DX,0DH OUT DX,AL MOV DX,0AH MOV AL,00H ;送下限值SJ0: OUT DX,AL ;將資料輸出到A口 INC AL ;AL加1 JNZ SJ0 ;上限為FFH,沒到上限,繼續迴圈SJ1: DEC AL ;到上限,AL減1 OUT DX ,AL JNZ SJ1 ;若沒到下限,轉SJ1繼續減1輸出 JMP SJ0 ;到下限,轉SJ0重新從下限開始產生梯形波形 MOV AL,25H ;設定8255A的A口為輸出方式 MOV DX,0DH OUT DX,AL MOV DX,0AH MOV AL,00H ;從0開始 OUT DX,AL ;將資料輸出到A口TX0: INC AL ;AL加1 OUT DX,AL CMP AL,0FFH ;檢查到上限否 JNZ TX0 ;上限為FFH,沒到上限,繼續循壞 MOV CX,0FFH ;上限到,延時TX1: NOP LOOP TX1TX2: DEC AL ; AL減1 OUT DX ,AL CMP AL,00H ;檢查到下限否 JNZ TX2 ;上限為00H,沒到下限,繼續迴圈 MOV CX,0FFH ;下限到,延時TX3: NOP LOOP TX3 JMP TX0 ;轉TX0開始下一個週期