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