新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 由串行口接收帶偶校驗(yàn)位的ASCII碼數(shù)據(jù)塊MCS51匯編程序

由串行口接收帶偶校驗(yàn)位的ASCII碼數(shù)據(jù)塊MCS51匯編程序

作者: 時(shí)間:2016-11-29 來(lái)源:網(wǎng)絡(luò) 收藏
  由串行口接收帶偶校驗(yàn)位的ASCII碼數(shù)據(jù)塊。 設(shè)待接收數(shù)據(jù)塊共10H個(gè)字節(jié),接收后擬存于片內(nèi)RAM的40H~4FH單元;單片機(jī)采用的晶振頻率、波特率、SMOD位的值等均同上題。則相應(yīng)的接收程序如下:RSTART:MOV TMOD,#20H ;置定時(shí)器/計(jì)數(shù)器T1工作于方式2定時(shí) MOV TL1,#0E6H ;定時(shí)器/計(jì)數(shù)器T1置初值 MOV TH1,#E6H ;定時(shí)器/計(jì)數(shù)器T1置重裝數(shù) MOV R0,#40H ;R0作地址指針,指向擬存放數(shù)據(jù)塊首址 MOV R7,#10H ;R7作循環(huán)計(jì)數(shù)器,置以接收數(shù)據(jù)字節(jié)數(shù) SETB TR1 ;啟動(dòng)定時(shí)器/計(jì)數(shù)器T1 RSTART:MOV TMOD,#20H ;置定時(shí)器/計(jì)數(shù)器T1工作于方式2定時(shí) MOV TL1,#0E6H ;定時(shí)器/計(jì)數(shù)器T1置初值 MOV TH1,#E6H ;定時(shí)器/計(jì)數(shù)器T1置重裝數(shù) MOV R0,#40H ;R0作地址指針,指向擬存放數(shù)據(jù)塊首址 MOV R7,#10H ;R7作循環(huán)計(jì)數(shù)器,置以接收數(shù)據(jù)字節(jié)數(shù) SETB TR1 ;啟動(dòng)定時(shí)器/計(jì)數(shù)器T1 LOOP:MOV SCON,#50H ;置串行口工作于方式1并啟動(dòng)串行口接收WAIT:JNB RI,WAIT ;等待接收完畢 MOV A,SBUF ;取已接收字節(jié)數(shù)據(jù)到A MOV C,P ;取奇偶標(biāo)志,奇為1,偶為0 JC ERROR ;發(fā)現(xiàn)有錯(cuò),轉(zhuǎn)出錯(cuò)處理程序 ANL A,#7FH ;未出錯(cuò),去掉偶校驗(yàn)位 MOV @R0,A ;存已接收的一個(gè)字節(jié) INC R0 ;指向下一存放已接收字節(jié)的地址 DJINZ R7,LOOP ;循環(huán)接收,直到數(shù)據(jù)塊接收完畢 RET

關(guān)鍵詞: 串行口ASCII碼MCS5

評(píng)論


技術(shù)專區(qū)

關(guān)閉