單片機技術與應用電子教案 4.串口發(fā)送指令控制LED_第1頁
單片機技術與應用電子教案 4.串口發(fā)送指令控制LED_第2頁
單片機技術與應用電子教案 4.串口發(fā)送指令控制LED_第3頁
單片機技術與應用電子教案 4.串口發(fā)送指令控制LED_第4頁
單片機技術與應用電子教案 4.串口發(fā)送指令控制LED_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課時教案課程:單片機技術與應用-基于CC2530的ZigBee技術開發(fā)與應用課題串口發(fā)送指令控制LED課時4教學目標知識:1.掌握UART查詢方式接收串口數據原理。2.掌握UART中斷方式接收串口數據原理。技能:1.能根據實際應用實現(xiàn)UART接收數據通信。2.具備串口調試助手配置與應用能力。3.具有在基礎任務上進一步開發(fā)能力。素質:1.具備嚴謹求實、認真負責、踏實敬業(yè)的工作態(tài)度。2.具有創(chuàng)新精神及探究意識。重點1.UART查詢方式接收串口數據原理。2.UART中斷方式接收串口數據原理。難點兩種方式下接收串口數據的程序設計教法任務驅動式理實一體化學法實訓小組合作教具試驗多媒體、PPT課件教學過程問題設計及知識點師生互動設計(問題與任務)串口發(fā)送指令控制LED【任務描述】使用PC端的串口調試程序,通過串口向ZigBee模塊發(fā)送指令,點亮LED1--LED4。發(fā)送1時,LED1亮;發(fā)送2時,LED2亮;發(fā)送3時,LED3亮;發(fā)送4時;LED4亮;發(fā)送5時,LED全部熄滅?!救蝿辗治觥?.知識分析實現(xiàn)通過串口發(fā)送指令控制LED燈,必須要理解UART發(fā)送及接收原理,清晰掌握UART查詢和中斷方式下如何接收串口數據。2.設備分析實訓任務在選擇ZigBee實訓模塊基礎上,還需選取USB轉串口線對ZigBee模塊與PC進行連接,并通過串口調試助手進行調試。3.技能分析實現(xiàn)通過串口發(fā)送指令控制LED燈,必須具備UART接收數據通信的能力,程序代碼編譯成功后,還需要具備串口助手調試配置能力,實現(xiàn)串口數據對LED燈的控制【知識儲備】1.UART接收串口數據(1)查詢方式接收串口數據(先查后收)程序查詢方式是主機與外設間進行信息交換的最簡單方式。查詢法就是使串口一直處于等待的狀態(tài),查看串口上是否接收到數據,通過查看TCON.URXxIF的值,若不是1,接收程序繼續(xù)查詢等待。若為1,表示串口上有數據且串口上的數據已經接收完畢,軟件編程將TCON.URXxIF的值清零,緩沖寄存器UxDBUF中的數據賦值給程序變量,完成數據接收。數據接收完畢后,就開始對接收的數據進行相應的操作。在UART配置后,通過設置UxCSR.RE的值來控制串口接收器允許接收還是禁止接收。當1寫入UxCSR.RE位時,在UART上數據接收就開始了。然后UART會在輸入引腳RXDx中尋找有效起始位,并且設置UxCSR.ACTIVE位為1。當檢測出有效起始位時,收到的字節(jié)就傳入到接收寄存器,UxCSR.RX_BYTE位設置為1。該操作完成時,產生接收中斷。同時UxCSR.ACTIVE變?yōu)榈碗娖?。通過寄存器UxDBUF提供收到的數據字節(jié),當UxDBUF讀出時,UxCSR.RX_BYTE位由硬件清零。(2)中斷方式接收串口數據(等待中斷,在中斷中接收)中斷方式是運用串口的中斷服務程序(ISR)來完成的。如果串口上有值,那么就會調用相應的中斷向量,中斷向量則把程序指針指到相應的ISR。對接收數據的操作在ISR中進行,ISR完成之后,程序指針會跳回中斷前的地方,繼續(xù)進行剛才被中斷的工作。程序初始化時,通過設置IEN0.URXxIE的值為1,使能USARTx的串口接收中斷。CC2530單片機在數據接收完畢后,中斷標志位TCON.URXxIF被置1,就產生串口接收數據中斷。在中斷處理函數中,對中斷標志位TCON.URXxIF軟件清零,緩沖寄存器UxDBUF中的數據賦值給程序變量,完成數據接收。(3)查詢方式與中斷方式的區(qū)別查詢方式:反應速度慢,穩(wěn)定性高。中斷方式:是一種硬件機制,反應速度快,要求電路板制作水平高,不易受干擾?!救蝿罩笇А咳蝿?:串口通信控制LED燈(查詢方式)1.程序設計思路1)任務流程圖如圖4-2-1所示。圖4-2-1UATR查詢方式接收程序流程圖2)初始化USART0的各個寄存器,設置USART0的工作方式為UART模式,并將其波特率設置為19200。3)在主函數中設計指令控制語句,通過指令控制LED燈的亮滅。2.搭建開發(fā)環(huán)境1)新建工作區(qū),工作區(qū)名為:work5_3_1。2)新建工程,工程名為:project5_3_1。3)新建源程序文件,命名為test5_3_1.c。4)將test5_3_1.c文件添加到project5_3_1工程中。5)按鍵CTRL+S保存工作區(qū)。6)配置工程選項,“Project”->“Options”->“GeneralOptions”,“Device”->“TexasInstruments”->“CC2530F256”。7)配置linker,勾選Overridedefault8)配置Debugger,“Debugger”->“Setup”->“Driver”->“TexasInstruments”。3.在編輯窗口設計程序(1)準備工作引入CC2530必要的頭文件“iocc2530.h”,具體代碼如下:#include<iocc2530.h>#defineLED1P1_0#defineLED2P1_1#defineLED3P1_3#defineLED4P1_4(2)初始化串口配置voidinitial_usart_rx(){PERCFG=0X00;//usart0使用備用位置1,TX-P0_3,RX-P0_2P0SEL|=0X3C;//USART0使用位置1,設置相應引腳為片內外設I/O口P2DIR&=~0XC0;//P0優(yōu)先作為UART模式U0CSR|=0XC0;//選擇USART通信為UART模式,允許接收U0GCR=9;U0BAUD=59;URX0IF=0;}(3)設計主函數(兩種指令控制語句實現(xiàn)指令控制)voidmain(void){CLKCONCMD&=~0x7F;//晶振選擇為32MHZwhile(CLKCONSTA&0X40);//等待晶振穩(wěn)定CLKCONCMD&=~0X47;//設置系統(tǒng)時鐘頻率為32MHzinitial_usart_rx();P1SEL&=~0X1B;P1DIR|=0X1B;P1=0X00;while(1){if(URX0IF==1) { URX0IF=0;switch(U0DBUF)//寄存器接收到的數據{case'1':LED1=1;break;//'1'表示接收到的數據為字符,以下相同case'2':LED2=1;break;case'3':LED3=1;break;case'4':LED4=1;break;case'5':LED1=LED2=LED3=LED4=0;break;default:break;}/*串口調試助手中發(fā)送設置編碼形式為HEX時的語句*/switch(U0DBUF)//寄存器接收到的數據{case0x01:LED1=1;break;//0X01表示接收到的數據為十六進制,以下相同case0x02:LED2=1;break;case0x03:LED3=1;break;case0x04:LED4=1;break;case0x05:LED1=LED2=LED3=LED4=0;break;default:break;}}}}4.編譯、下載程序1)編譯無誤后,將CCDebugger與實驗板相連,并連接到電腦。2)用USB轉串口數據線把實驗板連接到電腦。3)下載程序,打開串口調試助手,配置好相應串口號及波特率,選擇發(fā)送設置,然后發(fā)送不同指令控制LED燈的亮滅狀態(tài)。任務2:串口通信控制LED燈(中斷方式)1.程序設計思路1)任務流程圖:2)初始化USART0的各個寄存器,設置USART0的工作方式為UART模式,并將其波特率設置為19200。3)設計串口接收中斷服務函數,產生中斷時通過指令控制LED燈的亮滅。2.搭建開發(fā)環(huán)境1)新建工作區(qū),工作區(qū)名為:work5_3_2。2)新建工程,工程名為:project5_3_2。3)新建源程序文件,命名為test5_3_2.c。4)將test5_3_2.c文件添加到project5_3_2工程中。5)按鍵CTRL+S保存工作區(qū)。6)配置工程選項,“Project”->“Options”->“GeneralOptions”,“Device”->“TexasInstruments”->“CC2530F256”。7)配置linker,勾選Overridedefault8)配置Debugger,“Debugger”->“Setup”->“Driver”->“TexasInstruments”。3.在編輯窗口設計程序(1)準備工作引入CC2530必要的頭文件“iocc2530.h”,具體代碼如下:#include"iocc2530.h"#defineLED1P1_0#defineLED2P1_1#defineLED3P1_3#defineLED4P1_4(2)串口初始化配置voidinitial_usart_tx(){PERCFG=0X00;//USART0使用備用位置1.TX-P0_3RX-P0_2P0SEL|=0X3C;//USART0使用位置1,設置相應引腳為片內外設I/O口P2DIR&=~0XC0;//P0優(yōu)先作為UART模式U0CSR|=0XC0;//UART模式,允許接收U0GCR=9;U0BAUD=59;URX0IF=0;IEN0=0X84;}(3)設計串口接收中斷服務函數#pragmavector=URX0_VECTOR__interruptvoidUART0_ISR(void){URX0IF=0;switch(U0DBUF){case'1':LED1=1;break;//接收到的數據為字符,若接收的數據為十六進制,則為0X01case'2':LED2=1;break;case'3':LED3=1;break;case'4':LED4=1;break;case'5':LED1=LED2=LED3=LED4=0;break;default:break;}}(4)設計主函數//**************主函數*****************voidmain(void){CLKCONCMD&=0X80;while(CLKCONSTA&0x40);initial_usart_tx();P1SEL&=0xE6;P1DIR|=0X1B;P1=0X00;while(1); }3.編寫、分析、調試程序1)編譯無誤后,將CCDebugger與ZigBee模塊相連,并連接到電腦。(具體連接方式同任務2)2)用USB轉串口數據線把ZigBee模塊連接到電腦。(具體連接方式同任務2)3)下載程序,打開串口調試助手,配置好相應串口號及波特率,選擇發(fā)送設置,然后發(fā)送不同指令控制LED燈的亮滅狀態(tài)。教師引導學生分析任務小組合作探究查詢方式及中斷方式串口接收數據的工作原理學生總結兩種方式的區(qū)別教師引導學生設計查詢方式接收程序流程圖學生依據任務要求搭建開發(fā)環(huán)境學生編寫程序:引入頭文件,定義相關變量小組合作,依據串口初始化配置流程設計串口初始化函數教師指導評價做中教做中學教師引導學生編寫主函數,理解程序設計思路學生動手操作強化訓練學生動手操作,教師巡視指導教師引導學生設計中斷方式接收程序流程圖學生依據任務要求搭建開發(fā)環(huán)境學生編寫程序:引入頭文件,定義相關變量小組合作,依據串口初始化配置流程設計串口初始化函數教師指導評價教師引導學生編寫串口服務函數學生編寫主函數做中教做中學教師引導學生編寫主函數,理解程序設計思路學生動手操作強化訓練新知應用模擬電子溫度計警報系統(tǒng),通過串口,PC向ZigBee模塊發(fā)送溫度指令,點亮LED1和LED2。發(fā)送的溫度低于(包含)37度,LED1亮,LED2滅;溫度高于37度,LED1滅,LED2亮。(注:溫

溫馨提示

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

評論

0/150

提交評論