ORG 0000H
SJMP START
ORG 001BH
AJMP INT_TIMER1
ORG 0040H
START:
MOV TMOD,#20H
MOV TH1,#231
MOV TL1,#231
SETB ET1
SETB TR1
SETB EA
MOV P1,#00H
CLR A
SJMP $
INT_TIMER1:
JZ OUTOUT_HIGH
CLR P1.2
SJMP INC_A
OUTOUT_HIGH:
SETB P1.2
INC_A: INC A
CJNE A,#08H,SKIP_SET0
CLR A
SKIP_SET0:
RETI
END
2. 單片機1秒鍾定時匯編語言怎麼編
可以有兩種方法,設晶振為12M,則
第一種方法:用延時的方法實現
DELAY: MOV R3,#10;延時子程序,延時1秒
D1: MOV R4,#200
D2: MOV R5,#250
D3: 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
3. 單片機定時器輸出波形匯編程序
#include<reg51.h>
#define uchar unsigned char
uchar times;
sbit p10=P1^0;
void t1isr() interrupt 3
{
p10=~p10;
}
main()
{
TMOD=0x60;
TH1=251;
TL1=251;
TR1=1;
ET1=1;
EA=1;
while(1);
}
4. 80c51單片機用兩個定時器實現占空比不同的方波,採用匯編語言,求教程序!謝謝
; 用一個 定時器0 實現占空比可調 PWM 方波HPWM EQU 100 ; 高電平計數值 改變 占空比LPWM EQU 200 ; 低電平計數值
PWMBZ BIT 20H ; 標志位ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ZD
ORG 0030H
MAIN:
MOV TMOD,#02H
MOV TH0,#HPWM SETB TR0
SETB EA
SETB ET0
SJMP $
T0ZD:
JB PWMBZ,T0ZD2 MOV TH0,#HPWM SETB PWMBZ SETB P1.0
RETI
T0ZD2: MOV TH0,#LPWM CLR PWMBZ CLR P1.0
RETI
5. 51單片機定時器的匯編語言程序編程,
LED BIT P1.0 ;定義LED的引腳
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H ;定時器0工作模式1
MOV TH0,#HIGH(65536-50000) ;初值,50毫秒中斷一次
MOV TL0,#LOW(65536-50000)
SETB TR0 ;啟動定時器
SETB ET0 ;啟動定時器中斷
SETB EA ;開總中斷
MOV R2,#40 ;中斷計數初始值
SJMP $
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
DJNZ R2,T0E ;R2減到0重新賦值,否則退出
MOV R2,#40
CPL LED ;LED亮滅轉換
T0E:
RETI
END