匯編語(yǔ)言串口通信接收發(fā)送程序題

匯編語(yǔ)言串口通信接收發(fā)送程序題

ID:36587202

大?。?3.00 KB

頁(yè)數(shù):8頁(yè)

時(shí)間:2019-05-12

匯編語(yǔ)言串口通信接收發(fā)送程序題_第1頁(yè)
匯編語(yǔ)言串口通信接收發(fā)送程序題_第2頁(yè)
匯編語(yǔ)言串口通信接收發(fā)送程序題_第3頁(yè)
匯編語(yǔ)言串口通信接收發(fā)送程序題_第4頁(yè)
匯編語(yǔ)言串口通信接收發(fā)送程序題_第5頁(yè)
資源描述:

《匯編語(yǔ)言串口通信接收發(fā)送程序題》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、例2利用定時(shí)/計(jì)數(shù)器T0的方式1,產(chǎn)生10ms的定時(shí),并使P1.0引腳上輸出周期為20ms的方波,采用中斷方式,設(shè)系統(tǒng)時(shí)鐘頻率為12MHz。解:1、計(jì)算計(jì)數(shù)初值X:由于晶振為12MHz,所以機(jī)器周期Tcy為1ms。所以:N=t/Tcy=10×10-3/1×10-6=10000X=65536-10000=55536=D8F0H即應(yīng)將D8H送入TH0中,F(xiàn)0H送入TL0中2、求T0的方式控制字TMOD:M1M0=01,GATE=0,C/T=0,可取方式控制字為01H;ORG0000HLJMPMAIN;跳轉(zhuǎn)到主程序ORG000BH;T0的中斷入口地址LJMPDVT0;轉(zhuǎn)向中斷服務(wù)程

2、序ORG0100HMAIN:MOVTMOD,#01H;置T0工作于方式1MOVTH0,#0D8H;裝入計(jì)數(shù)初值MOVTL0,#0F0HSETBET0;T0開(kāi)中斷SETBEA;CPU開(kāi)中斷SETBTR0;啟動(dòng)T0SJMP$;等待中斷DVT0:CPLP1.0;P1.0取反輸出MOVTH0,#0D8H;重新裝入計(jì)數(shù)值MOVTL0,#0F0HRETI;中斷返回END?2、串行口方式1的發(fā)送和接收例7-4:89C51串行口按雙工方式收發(fā)ASCII字符,最高位用來(lái)作奇偶校驗(yàn)位,采用奇校驗(yàn)方式,要求傳送的波特率為1200b/s。編寫(xiě)有關(guān)的通信程序。解:7位ASCII碼加1位奇校驗(yàn)共8位數(shù)據(jù)

3、,故可采用串行口方式1。89C51單片機(jī)的奇偶校驗(yàn)位P是當(dāng)累加器A中1的數(shù)目為奇數(shù)時(shí),P=1。如果直接把P的值放入ASCII碼的最高位,恰好成了偶校驗(yàn),與要求不符。因此,要把P的值取反以后放入ASCII碼最高位,才是要求的奇校驗(yàn)。?2、串行口方式1的發(fā)送和接收?雙工通信要求收、發(fā)能同時(shí)進(jìn)行。收、發(fā)操作主要是在串行接口進(jìn)行,CPU只是把數(shù)據(jù)從接收緩沖器讀出和把數(shù)據(jù)寫(xiě)入發(fā)送緩沖器。數(shù)據(jù)傳送用中斷方式進(jìn)行,響應(yīng)中斷以后,通過(guò)檢測(cè)是RI置位還是TI置位來(lái)決定CPU是進(jìn)行發(fā)送操作還是接收操作。發(fā)送和接收都通過(guò)調(diào)用子程序來(lái)完成,設(shè)發(fā)送數(shù)據(jù)區(qū)的首地址為20H,接收數(shù)據(jù)區(qū)的首地址為40H,f

4、osc為6MHz,通過(guò)查波特率初值(表7-2)可知定時(shí)器的初裝值為F3H。定時(shí)器T1采用工作模式2,可以避免計(jì)數(shù)溢出后用軟件重裝定時(shí)初值的工作。?2、串行口方式1的發(fā)送和接收主程序MOVTMOD,#20H;定時(shí)器1設(shè)為模式2MOVTL1,#0F3H;定時(shí)器初值MOVTH1,#0F3H;8位重裝值SETBTR1;啟動(dòng)定時(shí)器1MOVSCON,#50H;設(shè)置為方式1,;REN=1MOVR0,#20H;發(fā)送數(shù)據(jù)區(qū)首址MOVR1,#40H;接收數(shù)據(jù)取首址ACALLSOUT;先輸出一個(gè)字符SETBESSETBEASJMP$;等待中斷?2、串行口方式1的發(fā)送和接收發(fā)送子程序SOUT:CLR

5、TIMOVA,@R0;取發(fā)送數(shù)據(jù)到AMOVC,P;奇偶標(biāo)識(shí)賦予CCPLC;奇校驗(yàn)MOVACC.7,CINCR0;修改發(fā)送數(shù)據(jù)指針MOVSBUF,A;發(fā)送ASCII碼RET;返回?2、串行口方式1的發(fā)送和接收?例7-7:利用串行口和堆棧技術(shù)發(fā)送字符串常量。?上面兩個(gè)例子中,發(fā)送和接收的都是一些變量數(shù)據(jù),且存放在內(nèi)部RAM單元中?,F(xiàn)說(shuō)明如何利用堆棧技術(shù)發(fā)送存放在程序存儲(chǔ)器內(nèi)的字符串常量。?下面的例子中,這些字符串是發(fā)送給CRT終端的,以回車(chē)符(CR)和換行符(LF)開(kāi)始,以換碼符(ESC)為結(jié)尾。下面是程序片斷:?2、串行口方式1的發(fā)送和接收CREQU0DH;ASCII回車(chē)符LF

6、EQU0AH;ASCII換行符ESCEQU1BH;ASCII換碼符……MOVTMOD,#20H;設(shè)置定時(shí)器T1為模式2MOVTL1,#0FDH;設(shè)波特率位9600b/s;(fosc=11.059MHz)MOVTH1,#0FDHSETBTR1;啟動(dòng)T1運(yùn)行MOVSCON,#01000000B;設(shè)置串行口方式1ACALLXSTRINGDBCR,LFDB‘NU&BIAA’;字符串常量DBESCMOVB,#01H……?3、串行口方式2、方式3的發(fā)送和接收?串行口方式2與方式3基本一樣(只是波特率設(shè)置不同),接收/發(fā)送11位信息:開(kāi)始為l位起始位(0),中間8位數(shù)據(jù)位,數(shù)據(jù)位之后為1位

7、程控位(由用戶置SCON的TB8決定),最后是1位停止位(1)。只比方式l多了一位程控位。?3、串行口方式2、方式3的發(fā)送和接收例7-8:用第9個(gè)數(shù)據(jù)位作奇偶校驗(yàn)位,編制串行口方式2的發(fā)送程序。?解:設(shè)計(jì)一個(gè)發(fā)送程序,將片內(nèi)RAM50H~5FH中的數(shù)據(jù)串行發(fā)送;串口設(shè)定為方式2,TB8作奇偶校驗(yàn)位。在數(shù)據(jù)寫(xiě)入發(fā)送緩沖器之前,先將數(shù)據(jù)的奇偶位P寫(xiě)入TB8,這時(shí),第9位數(shù)據(jù)作奇偶校驗(yàn)用。程序清單如下:TRT:MOVSCON,#80H;方式2設(shè)定MOVPCON,#80H;取波特率為fosc/32MOVR7,#

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。