MCS-51單片機(jī)的串行口應(yīng)用的程序設(shè)計(jì)舉例
1.實(shí)驗(yàn)設(shè)計(jì)
定時(shí)中斷程序,串行口P3.0、P3.1輸出,用74LS164移位寄存器驅(qū)動(dòng)發(fā)光二極管
;定時(shí)器0于方式1,16位,10ms中斷一次
;40H10ms定時(shí)計(jì)數(shù)單元
;41H初值為01101101B
;位地址00H=1
;定時(shí)方式1為10MS:THX=0ECH,TLX=78H
;串行口以方式0工作,不需初始化
2.參考程序
LPOUTEQU41H;輸出緩沖區(qū)
DISPEQU0DE00H;顯示子程序入口
;
ORG0000H
START:AJMPMAIN
;
ORG000BH;定時(shí)器0中斷服
AJMPTINT0;務(wù)程序入口
;
ORG0030H
MAIN:MOVR0,#39H;顯示緩沖區(qū)初始化
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;主程序循環(huán)
SJMPMAIN_1
;
CONT:MOV3FH,LPOUT
LCALLDISP;控制程序
MOVSBUF,LPOUT;串行口輸出
RET
;
;定時(shí)器0中斷服務(wù)程序
TINT0:MOVTH0,#0ECH
MOVTL0,#78H
PUSHACC;保護(hù)現(xiàn)場(chǎng)
PUSHPSW
INC40H
MOVA,40H
CJNEA,#50,TINT0R
MOV40H,#0
MOVA,41H
MOVC,00H
RRCA
MOV41H,A
MOV00H,C
MOV3FH,A;輸出顯示緩沖
TINT0R:POPPSW;恢復(fù)現(xiàn)場(chǎng)
POPACC
RETI