版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
傳感器與RFID實(shí)驗(yàn)報(bào)告一、實(shí)驗(yàn)?zāi)康模?理解串口通信原理;.掌握CC2530單片機(jī)與PC機(jī)串口通信的方法。二、實(shí)驗(yàn)設(shè)備:.unSPUSBProbe在線調(diào)試器一個(gè);.物聯(lián)網(wǎng)多網(wǎng)技術(shù)綜合教學(xué)開發(fā)設(shè)計(jì)平臺(tái)一套。、實(shí)驗(yàn)要求:.編程要求:編寫一段C語言程序;.實(shí)驗(yàn)現(xiàn)象:PC機(jī)的串口調(diào)試助手顯示“HelloWorld!”;.實(shí)現(xiàn)功能:單片機(jī)向PC機(jī)發(fā)送字符串,PC機(jī)接收并顯示字符串內(nèi)容。四、實(shí)驗(yàn)步驟:.使用MiniUSB延長線將協(xié)調(diào)器的MiniUSB接口連接至PC機(jī)的USB接口;.使用方口USB延長線將燒寫器連接至PC機(jī)上;.連接燒寫器和協(xié)調(diào)器,確認(rèn)連接無誤;.使用“物聯(lián)網(wǎng)綜合應(yīng)用試驗(yàn)箱”文件夾的對(duì)應(yīng)驅(qū)動(dòng)程序,安裝至PC機(jī)上(具體安裝方法見前幾次實(shí)驗(yàn)報(bào)告);.在控制面板一一設(shè)備管理器中,觀看是否成功安裝驅(qū)動(dòng),并查看串口的連接方式(本實(shí)驗(yàn)為COM3);.打開IAR,編寫程序,燒寫進(jìn)單片機(jī)中(具體操作方法同前幾次實(shí)驗(yàn)),實(shí)現(xiàn)“helloworld!”字符的發(fā)送;.打開串口調(diào)試助手,可以發(fā)現(xiàn),程序已經(jīng)完成定時(shí)發(fā)送“helloworld”字符串;.修改程序,使程序?qū)嶒?yàn)可通過串口調(diào)試助手發(fā)送任何自定義數(shù)據(jù);.打開串口調(diào)試助手,選擇連接方式“COM3”,打開終端,在窗口輸入數(shù)據(jù),點(diǎn)擊“發(fā)送”,可以發(fā)現(xiàn),完成了自定義數(shù)據(jù)的發(fā)送。圖為使用程序發(fā)送HelloWorld!字節(jié)的實(shí)現(xiàn)結(jié)果。設(shè)愛字體|設(shè)蛋背祟色|
保存顯示|
清春顯本"|
HEX設(shè)愛字體|設(shè)蛋背祟色|
保存顯示|
清春顯本"|
HEX顯示端口.13T[關(guān)詡珊口]昱DdtrDrts Ddsr波特率115200 "口定時(shí)發(fā)送100ms[□發(fā)送時(shí)添加換行[OHEX發(fā)送獷展數(shù)據(jù)位[8 11 一重停止位 一 T校始位慶校蛤伽。凌陽科技大學(xué)計(jì)劃AuthonLeajianR:60 S:20 COM3,115200,8,1,0已打開圖為完成程序修改,使用自定義字符發(fā)送的實(shí)現(xiàn)結(jié)果。附:完成實(shí)驗(yàn)步驟8的關(guān)鍵為:修改UART.c文件中的函數(shù)__interruptvoidUART0_ISR(void),去掉使其失效的注釋符,使該函數(shù)完成自己的作用,完成自定義數(shù)據(jù)的發(fā)送。如圖所示:++J.I£:d^.JIL:dWt!L:L.IJL-Ul\j,U_VIL.1UJX__interruptvoidUART0_ISR(void)staticchartEmp[1]定義一個(gè)元素的temp數(shù)組temp[0]=UDDEUF;”接收到的元素哦值給第0個(gè)元素UARTO_Send(temp,1);/7■調(diào)用發(fā)送函數(shù)將收到的數(shù)據(jù)發(fā)送出去URX0IF=0; /7■清中斷標(biāo)志五、實(shí)驗(yàn)總結(jié):.了解了串口通訊的使用,UARTUSB轉(zhuǎn)串口通信數(shù)據(jù)線的使用;.學(xué)會(huì)了如何使用程序發(fā)送程序中自帶的字符;.學(xué)會(huì)了如何使用UART文件中包含的項(xiàng)目,實(shí)現(xiàn)自定義的字符發(fā)送;.最后程序的修改是在老師的指導(dǎo)下完成,說明自己對(duì)程序的理解還不夠;.完成通信的函數(shù)大部分為系統(tǒng)自帶,自己能獨(dú)立編程的能力有限,希望能庚隨老師繼續(xù)學(xué)習(xí)。六、實(shí)驗(yàn)中使用的程序的理解和注釋:Basic.c文件#include"Basic.h"/************************************************************函數(shù)名稱:delay**實(shí)現(xiàn)功能:微秒級(jí)短暫延時(shí)函數(shù)*入口參數(shù):n:延時(shí)值;**返回結(jié)果:Nonevoiddelay(uintn)(uinti;for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);for(i=0;i<n;i++);)/************************************************************函數(shù)名稱:Delay**實(shí)現(xiàn)功能:約10_ms延時(shí)函數(shù)*入口參數(shù):n:需要延時(shí)的10ms數(shù);**返回結(jié)果:NonevoidDelay(uintn)(uinti,j,k;for(i=0;i<n;i++)for(j=0;j<100;j++)for(k=0;k<100;k++) ;)/************************************************************函數(shù)名稱:LEDPortInit**實(shí)現(xiàn)功能:初始化LED_D8_D9(P2_0.P1_1)*入口參數(shù):None**返回結(jié)果:NonevoidLEDPortInit(void)(P1SEL&=~0X02;//P1接口置為00000010P2SEL&=~0X01;//P2接口置為00000001P1DIR|=0X02;P2DIR|=0X01;CLR_LED_D8;CLR_LED_D9;)/************************************************************函數(shù)名稱:GetCh08bitADC**實(shí)現(xiàn)功能:獲取ADC通道0的8位ADC輸入值*入口參數(shù):None**返回結(jié)果:1ByteADC值uint8GetCh08bitADC(void)(uint8v=0;ADCCFG=0x01;〃ADCCFG被置為00000001ADCCON1=0x33;//ADCCON1被置為00110011ADCCON2=0xB0;//ADCCON2被置為11000000ADCCON1|=0x40;//ADCCON1被置為01000000while(!(ADCCON1&0x80));v=ADCL;//把ADCL賦值給vv=ADCH;//把ADCH賦值給vreturn(v);)/*************************************************************函數(shù)名稱:SetlOInput**實(shí)現(xiàn)功能:設(shè)置端口為三態(tài)輸入(不啟用內(nèi)部上下拉電阻)**入口參數(shù):group:Port**bit:BitinPort**返回結(jié)果:None//pull:0-disable,1-pulldown,2-pullupvoidSetIOInput(uint8group,uint8bit)(switch(group)(/*當(dāng)group=0,6比左移一位,取反和PODIR與運(yùn)算賦值給PODIR;6設(shè)左移一位,取反和POSEL與運(yùn)算賦值給POSEL;6設(shè)左移一位,取非和POINP與運(yùn)算賦值給POINP;*/case0:P0DIR&=~(1<<bit);P0SEL&=~(1<<bit);P0INP|=(1<<bit);break;/*當(dāng)group=1,6比左移一位,取反和P1DIR與運(yùn)算賦值給P1DIR;6設(shè)左移一位,取反和P1SEL與運(yùn)算賦值給P1SEL;6設(shè)左移一位,取非和P1INP與運(yùn)算賦值給P1INP;*/P1DIR&=~(1<<bit);P1SEL&=~(1<<bit);P1INP|=(1<<bit);break;/*當(dāng)group=2,6比左移一位,取反和P2DIR與運(yùn)算賦值給P2DIR;6設(shè)左移一位,取反和P2SEL與運(yùn)算賦值給P2SEL;6設(shè)左移一位,取非和P2INP與運(yùn)算賦值給P2INP;*/P2DIR&=~(1<<bit);P2SEL&=~(1<<bit);P2INP|=(1<<bit);break;))/*************************************************************函數(shù)名稱:SetIOOutput**實(shí)現(xiàn)功能:設(shè)置端口為通用輸出IO口**入口參數(shù):group:Port**bit:BitinPort**返回結(jié)果:NonevoidSetIOOutput(uint8group,uint8bit)(switch(group)
(/*當(dāng)group=0,狀土左移一位,取反和P0DIR與運(yùn)算賦值給P0DIR;狀土左移一位,取反和P0SEL與運(yùn)算賦值給P0SEL;case0:P0DIR|=(1<<bit);P0SEL&=~(1<<bit);break;/當(dāng)group=0,狀土左移一位,取反/*和P1DIR與運(yùn)算賦值給P1DIR;6比左移一位,取反和P1SEL與運(yùn)算賦值給P1SEL;*/P1DIR|=(1<<bit);P1SEL&=~(1<<bit);break;/*當(dāng)group=2;6比左移一位,取反和P2DIR與運(yùn)算賦值給P2DIR;6設(shè)左移一位,取反和P2SEL與運(yùn)算賦值給P2SEL;P2DIR|=(1<<bit);P2SEL&=~(1<<bit);break;))/*************************************************************函數(shù)名稱:GetIOLevel**實(shí)現(xiàn)功能:獲取對(duì)應(yīng)端口上的輸入電平**入口參數(shù):group:Port**bit:BitinPort**返回結(jié)果:1Byte(1:輸入為高電平;0:輸入為低電平;)uint8GetIOLevel(uint8group,uint8bit)(switch(group)(case0: return !!(P0 & (1 << bit));return !!(P1 & (1 << bit));return !!(P2 & (1 << bit));)return0;)/************************************************************函數(shù)名稱:SetIOLevel**實(shí)現(xiàn)功能:設(shè)置IO口輸出電平*入口參數(shù):group:Port**bit:BitinPort*value:(1:輸出高電平;0:輸出低電平;)**返回結(jié)果:NonevoidSetIOLevel(uint8group,uint8bit,uint8value)(switch(group)(case0:if(value)P0|=(1<<bit);elseP0&=~(1<<bit);break;if(value)P1|=(1<<bit);P1|=(1<<bit);elseP1&=~(1<<bit);break;if(value)P2|=(1<<bit);elseP2&=~(1<<bit);break;))Basic.h文件#ifndef__BASIC_H__#define__BASIC_H__#include<iocc2530.h>〃數(shù)據(jù)類型重命名typedefunsignedintuint;typedefunsignedcharuchar;typedefunsignedintuint16;typedefunsignedcharuint8;//LED_D8_D9操作#defineSET_LED_D8 (P2 &= 0XFE) 〃點(diǎn)亮LED_D8#defineSET_LED_D9 (P1 &= 0XFD) 〃點(diǎn)亮LED_D9#defineCLR_LED_D8 (P2 |= 0X01) 〃熄滅LED_D8#defineCLR_LED_D9 (P1 |= 0X02) 〃熄滅LED_D9#defineLED_D8_TURN(P2=0X01)〃改變LED_D8狀態(tài)(亮變滅,滅變亮)#defineLED_D9_TURN(P1"=0X02)〃改變LED_D9狀態(tài)(亮變滅,滅變亮)voiddelay(uint);//微秒級(jí)短暫延時(shí)函數(shù)voidDelay(uintn);//約10ms延時(shí)函數(shù)voidLEDPortInit(void);//LED_D8_D9端口初始化函數(shù)uint8GetCh08bitADC(void);//ADC通道0以8采樣位獲取輸入voidSetIOInput(uint8group,uint8bit);//設(shè)置端口為三態(tài)輸入voidSetIOOutput(uint8group,uint8bit);//設(shè)置端口為通用輸出IO口uint8GetIOLevel(uint8group,uint8bit);//獲取IO□輸入電平狀態(tài)voidSetIOLevel(uint8group,uint8bit,uint8value);/設(shè)置IO端口輸出電平狀態(tài)UART.h文件#ifndef__UART_H__#define__UART_H__#include"Basic.h"#include<string.h>//CC2530UART波特率可選值typedefenum(
BAUD_2400,//U0GCR=6U0BAUD=59;BAUD_4800,//U0GCR=7U0BAUD=59;BAUD_9600,//U0GCR=8U0BAUD=59;BAUD_14400,//U0GCR=8U0BAUD=216;BAUD_19200,//U0GCR=9U0BAUD=59;BAUD_28800,//U0GCR|=9U0BAUD=216;BAUD_38400,//U0GCR|=10;U0BAUD=59;BAUD_57600,//U0GCR|=10;U0BAUD=216;BAUD_76800,//U0GCR|=11;U0BAUD=59;BAUD_115200,//U0GCR|=11;U0BAUD=216;BAUD_230400,//U0GCR|=12;U0BAUD=216;}BaudSel;voidUART0_Init(BaudSelbaud);//UART0初始化設(shè)置voidUART0_Send(char*Data,intlen);//UART0發(fā)送數(shù)據(jù)voidUART0_Dis_uNum(uint16uValue);//UART0以十進(jìn)制方式顯示無符號(hào)數(shù)voidUART0_Dis_fNum(floatfValue);//UART0以十進(jìn)制方式顯示浮點(diǎn)型數(shù)UART.c文件#include〃UART.h〃/************************************************************函數(shù)名稱:UART0_Init**實(shí)現(xiàn)功能:初始化UART0*入口參數(shù):baud:波特率設(shè)置;**返回結(jié)果:NonevoidUART0_Init(BaudSelbaud)(CLKCONCMD&=~0X40; 〃晶振while(!(SLEEPSTA&0X40)); 〃等待晶振穩(wěn)定CLKCONCMD&=~0X47; 〃TICHSPD128分頻,CLKSPD不分頻SLEEPCMD|=0X04;〃關(guān)閉不用的RC振蕩器PERCFG=0X00; 〃位置1P0口P0SEL|=0X0C; 〃P0用作串口U0CSR|=0X80; 〃UART方式switch(baud)(caseBAUD_2400: U0GCR|=6U0BAUD|=59; breakcaseBAUD_4800: U0GCR|=7U0BAUD|=59; breakcaseBAUD_9600: U0GCR|=8U0BAUD|=59; break;caseBAUD_14400: U0GCR|=8U0BAUD|=216;break;caseBAUD_19200: U0GCR|=9U0BAUD|=59; break;caseBAUD_28800: U0GCR|=9U0BAUD|=216;break;caseBAUD_38400: U0GCR=10U0BAUD|=59; break;caseBAUD_57600: U0GCR=10U0BAUD|=216;break;caseBAUD_76800: U0GCR=11U0BAUD|=59; break;caseBAUD_115200:U0GCR=11U0BAUD|=216;break;caseBAUD_230400:U0GCR=12U0BAUD|=216;break;default :U0GCR=11U0BAUD|=216;break;//BAUD_115200;)UTX0IF=0;U0CSR|=0X40; 〃允許接收IEN0|=0X84; 〃開總中斷,接收中斷)/************************************************************函數(shù)名稱:UART0_Send**實(shí)現(xiàn)功能:UART0發(fā)送數(shù)據(jù)**返回結(jié)果:None*入口參數(shù):Data:待發(fā)送數(shù)據(jù)區(qū)首地址len:待發(fā)送數(shù)據(jù)的字節(jié)數(shù)voidUART0_Send(char*Data,intlen)(inti;for(i=0;i<len;i++)(U0DBUF=*Data++;while(UTX0IF==0);UTX0IF=0;))/*************************************************************函數(shù)名稱:UART0_Dis_uNum**實(shí)現(xiàn)功能:UART0以十進(jìn)制方式顯示uint16型數(shù)據(jù)**入口參數(shù):uValue:需要顯示的無符號(hào)型數(shù)據(jù)**返回結(jié)果:NonevoidUART0_Dis_uNum(uint16uValue)(uint8i;charcData[5]={'0','0','0','0','0'};cData[0]=uValue%100000/10000+'0'//nValue對(duì)100000取余出10000賦值于cData第0個(gè)元素cData[1]=uValue%10000/1000+'0';〃nValue對(duì)10000取余出1000賦值于cData第01個(gè)元素cData[2]=uValue%1000/100+'0';〃nValue對(duì)1000取余出100賦值于cData第2個(gè)元素cData[3]=uValue%100/10+'0';〃nValue對(duì)100取余出10賦值于cData第3個(gè)元素cData[4]=uValue%10/1+'0';〃nValue對(duì)10取余出1賦值于cData第4個(gè)元素if(0!=uValue)(for(i=0;i<5;i++)(if('0'!=cData[i])break;if('0'==cData[i])cData[i]='';))elseif(0==uValue)(for(i=0;i<4;i++)(cData[i]='';))UART0_Send("",1);〃數(shù)字和其他輸出內(nèi)容前后都有一個(gè)空格間距UART0_Send(cData,5);UART0_Send("",1);)/************************************************************函數(shù)名稱:UART0_Dis_fNum**實(shí)現(xiàn)功能:UART0以十進(jìn)制方式顯示float型數(shù)據(jù)*入口參數(shù):fValue:需要顯示的浮點(diǎn)型數(shù)據(jù)**返回結(jié)果:NonevoidUART0_Dis_fNum(floatfValue)(uint16u
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年云南云丘發(fā)展集團(tuán)有限責(zé)任公司招聘備考題庫及答案詳解1套
- 理想之光課件
- 理發(fā)的獅子課件
- 消防安全應(yīng)用場景解析
- 班級(jí)積分榜課件
- 預(yù)售直播話術(shù)
- 就業(yè)前景向好行業(yè)分析
- 高熱護(hù)理中的心理支持
- 文職面試語言表達(dá)術(shù)
- 2026年及未來5年市場數(shù)據(jù)中國2-羥基苯甘氨酸行業(yè)發(fā)展趨勢預(yù)測及投資戰(zhàn)略咨詢報(bào)告
- 2025大理州強(qiáng)制隔離戒毒所招聘輔警(5人)筆試考試備考題庫及答案解析
- 2025年安全培訓(xùn)計(jì)劃表
- 2026年榆林職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫參考答案詳解
- 2025年沈陽華晨專用車有限公司公開招聘筆試歷年參考題庫附帶答案詳解
- 2026(蘇教版)數(shù)學(xué)五上期末復(fù)習(xí)大全(知識(shí)梳理+易錯(cuò)題+壓軸題+模擬卷)
- 垃圾中轉(zhuǎn)站機(jī)械設(shè)備日常維護(hù)操作指南
- 單證主管助理客戶服務(wù)能力提升方案
- 汽車行業(yè)可信數(shù)據(jù)空間方案
- 畜牧業(yè)機(jī)械化培訓(xùn)課件
- 工程質(zhì)量管理工作制度
- 云南交投集團(tuán)筆試試題及答案
評(píng)論
0/150
提交評(píng)論