单片机AT89C51输出2s方波汇编程序
- 格式:docx
- 大小:226.03 KB
- 文档页数:2
单片机AT89C51输出2s方波汇编程序
ORG 0000H
SJMP STAR
ORG 000BH ;T0中断入口地址
SJMP DVT0
ORG 0030H ;主程序开始地址
STAR: MOV TMOD,#01H ;选择定时/计数器T0,工作方式1,关闭T1 MOV IE,#82H ;开总中断和T0中断
MOV TH0,#0FFH ;向T0高8位送入初值
MOV TL0,#0F5H; ;向T0低8位送入初值,这里初值只是用于启
动T0,当计数TF0=1溢出,转到中断DVT0
这里的值会被清零
SETB TR0 ;启动T0
MOV R0,#20 ;T0在工作方式1下最大定时值为65.536ms,
要周期2s的方波,定时为1s。设定时时间为
50ms,计20次为20×50ms=1000ms=1s SJMP $ ;等待中断
DVT0: MOV TH0,#3CH ;中断程序,装入定时时间为50ms的初值MOV TL0,#0B0H ;高8位为3CH,低8位为B0H
DJNZ R0,LOOP ;判断R0是否等于0,不等于0中断返回,继
续等待中断(计时满1s,程序向下执行)MOV R0,#20 ;重新给R0赋值20
CPL P1.0 ;P1.0输出取反
LOOP: RETI ;中断返回
END