4个回答
展开全部
ORG 0000H ; protues 仿真 通过
AJMP MAIN
ORG 000BH
MOV TH0, #LOW T0MS ; T0 中断
MOV TL0, #HIGH T0MS ; 重置 500 uS 初值
CPL P1.0 ; P1.0 取非
RETI ; 中断返回
T0MS EQU NOT 250 ; 定义 500 uS 晶振 6 MHz
MAIN: MOV TMOD, #01H
MOV IE, #82H ; 开 T0 中断
MOV TH0, #LOW T0MS ; 设置 500 uS 初值
MOV TL0, #HIGH T0MS
SETB TR0 ; 开定时器 0
AJMP $ ; 原地等待
END
AJMP MAIN
ORG 000BH
MOV TH0, #LOW T0MS ; T0 中断
MOV TL0, #HIGH T0MS ; 重置 500 uS 初值
CPL P1.0 ; P1.0 取非
RETI ; 中断返回
T0MS EQU NOT 250 ; 定义 500 uS 晶振 6 MHz
MAIN: MOV TMOD, #01H
MOV IE, #82H ; 开 T0 中断
MOV TH0, #LOW T0MS ; 设置 500 uS 初值
MOV TL0, #HIGH T0MS
SETB TR0 ; 开定时器 0
AJMP $ ; 原地等待
END
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个百度不到吗,我记得书上就有,我这个应该是T1工作在方式2,你自己换下中断地址就好了
ORG 0000H
AJMP MAIN
ORG 001BH ;T1的中断矢量
CPL P1.0 ;中断服务:P1.0取非
RETI ;中断返回
MAIN: MOV TMOD,#01H
MOV TH0, #6
MOV TL0, #6
SETB ET1
SETB EA
SETB TR1
HERE: AJMP HERE ;原地等待中断
END
ORG 0000H
AJMP MAIN
ORG 001BH ;T1的中断矢量
CPL P1.0 ;中断服务:P1.0取非
RETI ;中断返回
MAIN: MOV TMOD,#01H
MOV TH0, #6
MOV TL0, #6
SETB ET1
SETB EA
SETB TR1
HERE: AJMP HERE ;原地等待中断
END
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用方式2更好。
已经通过仿真试验的程序如下:
.
ORG 0000H
JMP S
ORG 000BH
CPL P1.0
RETI
S: MOV TMOD, #2
MOV TH0, #6
SETB TR0
MOV IE, #82H
SJMP $
END
已经通过仿真试验的程序如下:
.
ORG 0000H
JMP S
ORG 000BH
CPL P1.0
RETI
S: MOV TMOD, #2
MOV TH0, #6
SETB TR0
MOV IE, #82H
SJMP $
END
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ORG 0000H
JMP MAIN
ORG 000BH
JMP TO_ISR
ORG 0040H
MAIN:ANL TMOD,#0F0H
ORL TMOD,#10H
MOV DPTR,#65286
MOV TL0,DPL
MOV TH0,DPH
SETB EA
SETB ET0
SETB TR0
SJMP $
TO-ISR:MOV DPTR,#65286 ; 这个是根据基数初值N=2的N次方-t*Fosc/12,算出而Focs=6MHZ
MOV TL0,DPL ;低位送到TL0
MOV TH0,DPH ;高位送到TH0,
CPL P1.0
END
其实这个用方式2或3比较好些...
JMP MAIN
ORG 000BH
JMP TO_ISR
ORG 0040H
MAIN:ANL TMOD,#0F0H
ORL TMOD,#10H
MOV DPTR,#65286
MOV TL0,DPL
MOV TH0,DPH
SETB EA
SETB ET0
SETB TR0
SJMP $
TO-ISR:MOV DPTR,#65286 ; 这个是根据基数初值N=2的N次方-t*Fosc/12,算出而Focs=6MHZ
MOV TL0,DPL ;低位送到TL0
MOV TH0,DPH ;高位送到TH0,
CPL P1.0
END
其实这个用方式2或3比较好些...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询