51單片機-再次熟悉串口_第1頁
51單片機-再次熟悉串口_第2頁
51單片機-再次熟悉串口_第3頁
51單片機-再次熟悉串口_第4頁
51單片機-再次熟悉串口_第5頁
已閱讀5頁,還剩1頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第第頁51單片機-再次熟悉串口串口是非常常用的一個調試工具,我們都必須熟練使用串口的各個功能。

1.題目要求和解決方案

我們要做的是,電腦端發送字符串過來給單片機,然后單片機這邊接收完之后要回復給電腦端,回復內容為“接收完成!”。單片機這邊把接收到的數據存放在定義好的全局變量數組里面,我們可以通過按K4發送回去給電腦端查看剛剛接收到的內容并把它顯示出來。

我們要知道,一個漢字是需要兩個字節內存的,比如電腦端發送的字符串為“好好學習,天天向上!”其中的兩個標點符號也是中文輸入法打上的話,一個標點符號也是占用兩個字節,這個字符串就是一共占用10*2=20個字節內存。

那么怎樣判斷是否把字符串的數據都接收完成了呢?我們參考了宋老師的編程思想,使用定時計數器,也就是讓定時器0使用工作模式1計時,接收到第一個數據的時候我們先把TH0和TL0清0,然后打開定時器開始計時,當接收到第二個數據的時候又把TH0和TL0清0讓他們從0開始再次計時,直到當TH0大于等于200的時候證明時間過去了50ms左右(200*256*(12/11059200)=0.055秒),如果在這50ms里面都不再接收地到數據,那么斷定已經把字符串的數據都接收完成。

我們程序里定義的數組有關鍵字pdata,大家在《手把手教你學51單片機》文檔10.4節了解一下知識點即可。

2.main.c測試代碼

#include#include//詳見第六章第8講#include//詳見第十章第4講u8uart_i=0;u8pdataRXDBUF[64];voidCOUNT_TIMES(){TMOD//清0低四位TMOD|=0x01;//設置定時器0為工作模式1}voidmain(){u8key,x;KEY_Init();//初始化按鍵模塊EA=1;//閉合總中斷開關COUNT_TIMES();//初始化計數器ConfigUART(9600);while(1){key=KEY_Scan(0,500);if(key==4){printf_str("收到的內容為:rn");printf_str(RXDBUF);//把接收到的字符串發送給電腦端for(x=0;x=200)//判斷是否把數據接收完畢{TR0=0;//關閉定時器,停止計時printf_str("rn接收完成!rn");RXDBUF[uart_i]=;//增加結束符,滿足了“printf_str(RXDBUF);”該發送多少數據就是多少uart_i=0;//uart_i歸0是為了下次接收新的字符串是從RXDBUF[0]開始存取數據TH0=0;//清零定時器的寄存器,下次再從0開始計時TL0=0;}}}voidInterruptUART()interrupt4{if(RI)//接收到字節{RI=0;TH0=0;//每接收到一個字節數據,就清0寄存器的值,定時時間又是從0開始計時,直到TH0大于等于200的時候,TL0=0;//時間超過50ms,也就是沒有再接收到數據,因為接收到數據都會進入“if(RI)”把TH0和TL0清0,TH0大于等于200,//超出了等待時間,證明后面沒有數據發送過來了TR0=1;//接收到第一個數據就打開定時器開始計時,后面接收到第二,第三個數據照樣打開定時器計時,直到在主函數里面被關閉為止RXDBUF[uart_i]=SBUF;//接收一個字節數據uart_i++;//RXDBUF從0號元素不停往下存取數據}}

3.實驗現象

我們先把串口調試助手的設置選項選好打開串口之后,在輸入框打上“好好學習,天天向上!”,點擊發送,可以看到如下界面我們在開發板上按下K4,把剛才接收到的字符串發

溫馨提示

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

評論

0/150

提交評論