第二十二課單片機(jī)與PC機(jī)的串行通信編程實踐測試題_第1頁
第二十二課單片機(jī)與PC機(jī)的串行通信編程實踐測試題_第2頁
第二十二課單片機(jī)與PC機(jī)的串行通信編程實踐測試題_第3頁
第二十二課單片機(jī)與PC機(jī)的串行通信編程實踐測試題_第4頁
第二十二課單片機(jī)與PC機(jī)的串行通信編程實踐測試題_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二十二課單片機(jī)與PC機(jī)的串行通信編程實踐13.3.1在AVR單片機(jī)開發(fā)板板上,進(jìn)行單片機(jī)與PC機(jī)(個人電腦)的通信試驗1PC機(jī)發(fā)送一個字符給單片機(jī),單片機(jī)收到后即在發(fā)光管D1~D8上進(jìn)行顯示,同時將其回發(fā)給PC機(jī)。為便于初學(xué)者實驗成功,單片機(jī)的發(fā)送接收均采用查詢方式。實驗電路可參考第4章的圖4-1(AVRDEMO單片機(jī)綜合試驗板電路原理圖)。在我的文檔中新建一個ac13-1的文件夾。建立一個ac13-1.prj的工程項目,最后單片機(jī)培訓(xùn)建立源程序文件ac13-1.c。輸入下面的程序:#include<iom16v.h>//包含頭文件#include<macros.h>//==================================voidport_init(void)//初始化端口子函數(shù){PORTA=0xFF;//PD端口初始化輸出11111111DDRA=0x00;//將PA端口設(shè)為輸入PORTB=0xFF;//PD端口初始化輸出11111111DDRB=0xFF;//將PB端口設(shè)為輸出PORTC=0xFF;//PD端口初始化輸出11111111//51單片機(jī)培訓(xùn)DDRC=0x00;//將PC端口設(shè)為輸入PORTD=0xFF;//PD端口初始化輸出11111111DDRD=0x02;//將PD端口的PD1設(shè)為輸出,其它設(shè)為輸入}//**********************************************voiduart0_init(void)//初始化UART子函數(shù){UCSRB=0x00;//禁止UART發(fā)送和接收UCSRA=0x02;//倍速UCSRC=0x06;//8位數(shù)據(jù)位UBRRL=0x67;//波特率9600UBRRH=0x00;UCSRB=0x18;//允許UART發(fā)送和接收單片機(jī)C語言教程}//**********************************************voidinit_devices(void)//芯片的初始化子函數(shù){port_init();//調(diào)用端口初始化子函數(shù)uart0_init();//調(diào)用UART初始化子函數(shù)}//**********************************************voiduart0_send(unsignedchari)//發(fā)送1個字符的子函數(shù){while(!(UCSRA&(1<<UDRE)));//等待發(fā)送緩沖區(qū)為空單片機(jī)教材UDR=i;//發(fā)送1個字符}//************************************************unsignedcharuart0_receive(void)//接收1個字符的子函數(shù){while(!(UCSRA&(1<<RXC)));//等待接收數(shù)據(jù)returnUDR;//返回接收到的數(shù)據(jù)}//---------------------------------------------------------------voidmain(void)//主函數(shù){unsignedchartemp;//定義局部變量init_devices();//調(diào)用芯片初始化子函數(shù)AVR單片機(jī)教程while(1)//無限循環(huán){temp=uart0_receive();//等待接收數(shù)據(jù)PORTB=~temp;//接收的數(shù)據(jù)轉(zhuǎn)成低電平后點亮LEDuart0_send(temp);//再將接收的數(shù)據(jù)發(fā)送出去}}編譯通過后,AVR單片機(jī)綜合試驗板接通5V穩(wěn)壓電源,將生成的ac13-1.hex文件下載到試驗板上的單片機(jī)中,注意,標(biāo)示“UART”及“LED”的雙排針應(yīng)插上單片機(jī)開發(fā)短路塊。在做實驗時,我們需要在PC機(jī)上進(jìn)行信息發(fā)送。這里使用的是一個名叫COMPortDebuger(串口調(diào)試器軟件)的免安裝共享軟件,其下載地址為:或圖13-1打開串口調(diào)試器軟件,其界面如圖13-1所示。右上方為發(fā)送區(qū),右下方protel培訓(xùn)為接收區(qū)。左上方的初始化區(qū)域(如波特率、數(shù)據(jù)位等)一般不必更改(初始化為:端口號1、波特率9600、數(shù)據(jù)位8、停止位1、校驗位無)。若你的PC機(jī)串口COM1已占用時,才可考慮改用COM2。將PC機(jī)的串口與AVR單片機(jī)綜合試驗板的串口連接好。清空發(fā)送區(qū)、接收區(qū)的原有內(nèi)容,然后打開串口。我們做的實驗比較簡單,每次只能輸入一位字符進(jìn)行發(fā)送。發(fā)送區(qū)輸入1,點發(fā)送,我們發(fā)現(xiàn)AVR單片機(jī)綜合試驗板的8個LED(D1~D8)中,D6、D5、D1發(fā)光管點亮(即數(shù)據(jù)為0x31),同時接收區(qū)立即顯示收到的1(見圖13-2)。發(fā)送區(qū)單片機(jī)論壇輸入A,點發(fā)送,我們發(fā)現(xiàn)D7、D1發(fā)光管點亮(即數(shù)據(jù)為0x41),同時接收區(qū)立即顯示收到的A(見圖13-3)。通過查對ASCII碼表可知,0x31是數(shù)字1的ASCII碼,0x41是字母A的ASCII碼。圖13-2圖13-3發(fā)送區(qū)勾選“按16進(jìn)制顯示或發(fā)送”,接收區(qū)勾選“按16進(jìn)制顯示”,發(fā)送區(qū)輸入8,點發(fā)送,我們發(fā)現(xiàn)AVR單片機(jī)綜合試驗板的中,D4發(fā)光管點亮(即數(shù)據(jù)為0x80),同時接收區(qū)立即顯示收到的08

溫馨提示

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

最新文檔

評論

0/150

提交評論