中斷方式串行通信程序設(shè)計(jì)new_第1頁(yè)
中斷方式串行通信程序設(shè)計(jì)new_第2頁(yè)
中斷方式串行通信程序設(shè)計(jì)new_第3頁(yè)
中斷方式串行通信程序設(shè)計(jì)new_第4頁(yè)
中斷方式串行通信程序設(shè)計(jì)new_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、42972425313510856869深圳職業(yè)技術(shù)學(xué)院 陳海松 副教授中斷方式串行通信程序設(shè)計(jì)單片機(jī)應(yīng)用技術(shù)適用于應(yīng)用型本科及高職高專電子信息類專業(yè) 實(shí)例:實(shí)例: 甲機(jī)作為發(fā)送端,連接一個(gè)按鍵;甲機(jī)作為發(fā)送端,連接一個(gè)按鍵;乙機(jī)作為接收端,連接一個(gè)數(shù)碼管。將乙機(jī)作為接收端,連接一個(gè)數(shù)碼管。將甲機(jī)按鍵次數(shù)(甲機(jī)按鍵次數(shù)(09,超過(guò),超過(guò)10次后又回次后又回到到0)發(fā)送給乙機(jī),并在乙機(jī)的數(shù)碼管)發(fā)送給乙機(jī),并在乙機(jī)的數(shù)碼管上顯示出來(lái)。上顯示出來(lái)。 1)本系統(tǒng)假定兩機(jī)處于一個(gè)機(jī)箱內(nèi)。串行口)本系統(tǒng)假定兩機(jī)處于一個(gè)機(jī)箱內(nèi)。串行口工作方式工作方式1實(shí)現(xiàn)雙機(jī)通信,實(shí)現(xiàn)雙機(jī)通信,當(dāng)按下按鍵一當(dāng)按下按鍵一個(gè)

2、數(shù)據(jù)寫(xiě)入甲機(jī)串行口發(fā)送個(gè)數(shù)據(jù)寫(xiě)入甲機(jī)串行口發(fā)送緩沖區(qū)緩沖區(qū)SBUF時(shí),串行口將時(shí),串行口將8位數(shù)據(jù)從甲機(jī)位數(shù)據(jù)從甲機(jī)TXD引腳輸出引腳輸出(低位在前)到乙機(jī)(低位在前)到乙機(jī)RXD引腳,甲機(jī)發(fā)送完,自動(dòng)置發(fā)送引腳,甲機(jī)發(fā)送完,自動(dòng)置發(fā)送中斷標(biāo)志中斷標(biāo)志TI為為1,向,向CPU申請(qǐng)中斷;乙申請(qǐng)中斷;乙機(jī)接收完,自動(dòng)置機(jī)接收完,自動(dòng)置接收中斷標(biāo)志接收中斷標(biāo)志RI為為1 ,存放接收到的數(shù)字存放接收到的數(shù)字。發(fā)送采用查詢方。發(fā)送采用查詢方式,接收采用中斷方式。式,接收采用中斷方式。 2)數(shù)碼管顯示)數(shù)碼管顯示采用采用1個(gè)個(gè)共陽(yáng)數(shù)碼共陽(yáng)數(shù)碼管顯示管顯示。1.1.分析分析2.2.硬件設(shè)計(jì)硬件設(shè)計(jì) 甲機(jī)作為

3、發(fā)送端,乙機(jī)作為接收端,甲機(jī)的甲機(jī)作為發(fā)送端,乙機(jī)作為接收端,甲機(jī)的RXDRXD引腳接乙機(jī)的引腳接乙機(jī)的TXDTXD引腳,甲機(jī)的引腳,甲機(jī)的TXDTXD引腳接乙機(jī)的引腳接乙機(jī)的RXDRXD引腳,且兩個(gè)單片機(jī)必須共地。甲機(jī)的引腳,且兩個(gè)單片機(jī)必須共地。甲機(jī)的P0.0P0.0引腳連接一個(gè)彈性按鍵引腳連接一個(gè)彈性按鍵S S,乙機(jī)的乙機(jī)的P1P1口連接一個(gè)共陽(yáng)極數(shù)碼管。系統(tǒng)要求將甲機(jī)按鍵口連接一個(gè)共陽(yáng)極數(shù)碼管。系統(tǒng)要求將甲機(jī)按鍵S S按下的次數(shù)顯示到乙機(jī)數(shù)碼管按下的次數(shù)顯示到乙機(jī)數(shù)碼管上,由于一個(gè)數(shù)碼管只能顯示上,由于一個(gè)數(shù)碼管只能顯示1 1位數(shù)字,所以按鍵次數(shù)超過(guò)位數(shù)字,所以按鍵次數(shù)超過(guò)1010次后

4、回零次后回零。兩。兩個(gè)系統(tǒng)的晶振個(gè)系統(tǒng)的晶振頻率均為頻率均為11.0592MHz11.0592MHz。l#include /包含頭文件包含頭文件REGX51.Hlsbit S=P00; /定義定義P0.0引腳位名稱為引腳位名稱為Slunsigned char count; /全局變量,用于存放按鍵次數(shù)全局變量,用于存放按鍵次數(shù)l/函數(shù)名:函數(shù)名:keyl/函數(shù)功能:檢測(cè)按鍵函數(shù)功能:檢測(cè)按鍵S是否按下,如果按下是否按下,如果按下count加加1計(jì)數(shù)計(jì)數(shù)l/形式參數(shù):無(wú)形式參數(shù):無(wú) l/返回值:無(wú)返回值:無(wú)lvoid key()l unsigned int k;l if (S=0) /第一次判斷

5、第一次判斷S是否按下是否按下l for(k=0;k1200;k+); /延時(shí)去抖延時(shí)去抖 l if(S=0) /再次判斷再次判斷S是否按下是否按下l if(+count=10)count=0; /按鍵次數(shù)處理按鍵次數(shù)處理l while(!S); /等待等待S釋放釋放l 3.3.軟件設(shè)計(jì)軟件設(shè)計(jì)發(fā)發(fā)送送程程序序:lvoid main()lPCON=0 x00; /SMOD=0l TMOD=0 x20; /設(shè)置定時(shí)器設(shè)置定時(shí)器T1為方式為方式2 l TL1=0 xfd; /波特率為波特率為9600b/sl TH1=0 xfd;l TR1=1;l SCON=0 x40; /定義串行口工作于方式定義串

6、行口工作于方式1,不接收,不接收l(shuí) count=0; /次數(shù)清次數(shù)清0l while(1) l key(); /調(diào)用按鍵處理函數(shù)調(diào)用按鍵處理函數(shù)l SBUF=count; /發(fā)送次數(shù)發(fā)送次數(shù)l while(!TI); /查詢查詢TI是否由是否由0變變1l TI=0; /軟件給軟件給TI清清0l l 3.3.軟件設(shè)計(jì)軟件設(shè)計(jì)發(fā)發(fā)送送程程序序:l#include /包含頭文件包含頭文件REGX51.Hl/定義定義09共陽(yáng)極顯示字型碼共陽(yáng)極顯示字型碼lcode unsigned char tab=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x8

7、0,0 x90;l/函數(shù)名:函數(shù)名:seriall/函數(shù)功能:串行口中斷接收函數(shù)函數(shù)功能:串行口中斷接收函數(shù)l/形式參數(shù):無(wú)形式參數(shù):無(wú)l/返回值:無(wú)返回值:無(wú)lvoid serial( ) interrupt 4/串口中斷類型號(hào)為串口中斷類型號(hào)為4l EA=0;/關(guān)中斷關(guān)中斷l(xiāng) RI=0; /軟件清除中斷標(biāo)志位軟件清除中斷標(biāo)志位l P1=tabSBUF; /顯示接收數(shù)據(jù)顯示接收數(shù)據(jù)l EA=1;l 接接收收顯顯示示程程序:序:lvoid main()/主函數(shù)主函數(shù)lPCON=0 x00;/SMOD=0lTMOD=0 x20; /設(shè)置定時(shí)器設(shè)置定時(shí)器T1為方式為方式2 l TL1=0 xfd; /波特率為波特率為9600b/sl TH1=0 xfd;l TR1=1;l SCON=0 x40; /定義串行口工作于方式定義串行口工作于方式1,不,不接收接收l(shuí) ES=1; /開(kāi)串行口中斷開(kāi)串行口中斷l(xiāng)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論