資源描述:
《單片機(jī)與無(wú)線通信模塊串口通信發(fā)送部分子程序.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、單片機(jī)與無(wú)線通信模塊串口通信:發(fā)送部分子程序ORG1000HTBLOCKDATA20HLENDATAIEHSTART:MOVSCON,#80H;設(shè)置串行口工作方式MOVPCON,#80H;波特率設(shè)置MOVR0,#TBLOCK;數(shù)據(jù)起始地址送RMOVR2,#LEN;數(shù)據(jù)長(zhǎng)度送R2MOVR3,#OOH;存入累加器和寄存器RACALLTXSU;調(diào)用發(fā)送子程序SJMP$:待機(jī)ORG1100HTXSUB:PUSHACC;保護(hù)A中內(nèi)容PUSHPSW;保護(hù)PSW中內(nèi)容CLRTI;TI清0TXLEN:MOVSBUF,R2;發(fā)送數(shù)據(jù)塊長(zhǎng)度JNBTI,$;
2、等待發(fā)完CLRTI:發(fā)送完TI清0TXD:MOVA,@CRO:發(fā)送字符送AMOVSBUF,A;啟動(dòng)發(fā)送JNBTI,$;等待發(fā)完CLRTI;發(fā)送完TI清0ADDA,R3;求累加和MOVR3,A:存入R3INCRO;字符塊指針加1DJNZR2,TXD;若字符未發(fā)完,則繼續(xù)TXSUM:MOVSBUF,R2;若發(fā)完,發(fā)累加和JNBTI,$:等待累加和發(fā)完CLRTI;若發(fā)完,TI清0MOVR3,#OOH;累加和寄存器清0POPPSW;恢復(fù)PSW內(nèi)容POPACC;恢復(fù)ACC內(nèi)容;RETI:中斷返回END⑵單片機(jī)接收部分子程序ORGOOOOHBLOC
3、KDATA,30H;設(shè)置T1工作方式START:MOVTMOD,#20H;設(shè)置時(shí)間常數(shù)初值MOVTH1,#OF4HMOVTL1,#OF4HSETBTR1;啟動(dòng)TIMOVSCON,#ODOH;串行口工作于方式3接收MOVPCON,#80H;使SMOD=1MOVR0,BLOCK;接收數(shù)據(jù)區(qū)始址送ROMOVR3,#OOH;累加器寄存器R3清0ACALLRXSUB;轉(zhuǎn)接收子程序SJMP$待機(jī)RXSUB:CLRRI;RI清0RXLEN:JNBRI,$;等待接收數(shù)據(jù)塊長(zhǎng)度字節(jié)CLRRI;接收完后清RIMOVA,SBUF;數(shù)據(jù)塊長(zhǎng)度送AMOVR2,A
4、;存入R2ADDA,R2;開(kāi)始求累加和MOVR3,A;累加和存入R3RXD:JNBRI,$;等待接收字符CLRRI;接收完清RIMOV@RO,A;接收字符存入內(nèi)存ADDA,R3;求累加和MOVR3,A;存入R3INCRO;接收數(shù)據(jù)區(qū)加1DJNZR2,RXD:若沒(méi)有接收完,則繼續(xù)RXSUM:JNBRI,$:等待接收累加和CLRRI;接收完RI清0MOVA,SBUF;接收累加和送AXRLA,R3;比較兩累加和JNZERROR:若不等,轉(zhuǎn)出錯(cuò)處理RETERROR:ACALLERRSTR;轉(zhuǎn)發(fā)送出錯(cuò)指示信息DBOD,OAHDB‘WRONGMAS
5、SAGE'DB1BHTXERRSUM:MOVA,R3;回送累加和MOVSBUF,ARET;返回ERRSTR:POPDPH:彈出CR的地址POPDPLCLRAMOVCA,@A+DPTRLOOP:MOVSBUF,A:發(fā)送出錯(cuò)信息JNBTI,$CLRTIINCDPTR;取下個(gè)待發(fā)字符CLRAMOVCA,@A+DPTRCJNEA,#IBH,LOOPMOVA,#01JMP@A+DPTREND