1.实验设计
定时中断程序,串行口P3.0、P3.1输出,用74LS164移位寄存器驱动发光二极管
定时器0于方式1,16位,10ms中断一次
40H10ms定时计数单元
41H初值为01101101B
位地址00H=1
定时方式1为10MS:THX=0ECH,TLX=78H
串行口以方式0工作,不需初始化
2.参考程序
LPOUTEQU41H;输出缓冲区
DISPEQU0DE00H;显示子程序入口
ORG0000H
START:AJMPMAIN
ORG000BH;定时器0中断服
AJMPTINT0;务程序入口
ORG0030H
MAIN:MOVR0,#39H;显示缓冲区初始化
MAIN_0:MOV@R0,#0
INCR0
CJNER0,#40H,MAIN_0
MOVLPOUT,#01101101B
SETB00H
MOVTMOD,#01H;
MOVIE,#10000010B
MOVTH0,#0ECH;10ms:EC78H
MOVTL0,#78H
SETBTR0
MAIN_1:ACALLCONT;主程序循环
SJMPMAIN_1
CONT:MOV3FH,LPOUT
LCALLDISP;控制程序
MOVSBUF,LPOUT;串行口输出
RET
定时器0中断服务程序
TINT0:MOVTH0,#0ECH
MOVTL0,#78H
PUSHACC;保护现场
PUSHPSW
INC40H
MOVA,40H
CJNEA,#50,TINT0R
MOV40H,#0
MOVA,41H
MOVC,00H
RRCA
MOV41H,A
MOV00H,C
MOV3FH,A;输出显示缓冲
TINT0R:POPPSW;恢复现场
POPACC
RETI
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)