可以有兩種方法,設晶振為12M,則第一種方法:用延時的方法實現DELAY: MOV R3,#10;延時子程式,延時1秒D1: MOV R4,#200D2: MOV R5,#250D3: DJNZ R5,D3 DJNZ R4,D2 DJNZ R3,D1 RET END第二種方法:用定時器的方法實現 ———— MOV R1,#20 ————DLY: MOV TMOD,#00000001B;延時子程式,設定定時器的工作方式D1: SETB TL0,#176(65536-50000); 15536/256 (餘數) SETB TH0,#60;設定初出溢位值50ms,定時2S (商) SETB TR0 ;啟動定時器 JNB TF0,$;是否溢位,沒有溢位等待,溢位走一條指令 CLR TF0;清零溢位 DJNZ R1,D1;走20次,剛好1秒 RET END
可以有兩種方法,設晶振為12M,則第一種方法:用延時的方法實現DELAY: MOV R3,#10;延時子程式,延時1秒D1: MOV R4,#200D2: MOV R5,#250D3: DJNZ R5,D3 DJNZ R4,D2 DJNZ R3,D1 RET END第二種方法:用定時器的方法實現 ———— MOV R1,#20 ————DLY: MOV TMOD,#00000001B;延時子程式,設定定時器的工作方式D1: SETB TL0,#176(65536-50000); 15536/256 (餘數) SETB TH0,#60;設定初出溢位值50ms,定時2S (商) SETB TR0 ;啟動定時器 JNB TF0,$;是否溢位,沒有溢位等待,溢位走一條指令 CLR TF0;清零溢位 DJNZ R1,D1;走20次,剛好1秒 RET END