freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計-無線溫控風扇-畢業(yè)設(shè)計(編輯修改稿)

2025-01-05 23:43 本頁面
 

【文章內(nèi)容簡介】 圖 33 ZigBee 核心板上的降壓電路 DS18b20 溫度傳感器模塊設(shè)計 DS18B20 的核心功能是它的直接讀數(shù)字的溫度傳感器。 Ds18b20 啟動后保持低功耗等待狀態(tài); 0 當需要執(zhí)行溫度測量和 AD 轉(zhuǎn)換時,總線控制器發(fā)出 44h 命令。在那之后,產(chǎn)生的溫度數(shù)據(jù)以 2個字節(jié)的形式存儲到高速暫存器的溫度寄存器中, ds18b20 繼續(xù)保持等待狀態(tài)。當 ds18b20 由外部電源供電時,總線控制器在溫度轉(zhuǎn)換指令之后發(fā)起“讀時序”, ds18b20 正在溫度轉(zhuǎn)換中返回 0,結(jié)束后返回 1。 它在 PL2303 上, VDD 接 伏, DQ接 , GND接地即 口。 它的電路原理圖如下所示: 第 14 頁 共 42 頁 圖 34 DS18b20 原理圖 L298N 電機驅(qū)動模塊設(shè)計 該驅(qū)動板可驅(qū)動 2 路直流電機,使能端 ENA, ENB 為高電平時有效,控制方式及直流電機狀態(tài)表如下所示 表 31直流電機驅(qū)動狀態(tài)表 ENA IN1 IN2 直流電機狀態(tài) 0 X X 停止 1 0 0 制動 1 0 1 正轉(zhuǎn) 1 1 0 反轉(zhuǎn) 1 1 1 制動 若要對直流電機進行 PWN 調(diào)速,需設(shè)置 IN1 和 IN2,確定電機的轉(zhuǎn)動方向,然后對使能端輸出 PWN 脈沖,即可 實現(xiàn)調(diào)速。當使能信號為 0 時,電機處于自由停止狀態(tài);當使能信號為 1時,且 IN1 和 IN2 為 00或 11 時,電機處于制動狀態(tài),阻止電機轉(zhuǎn)動。 以下是 L298N 電路驅(qū)動電路圖: 由于它的工作電壓范圍在 5 到 36 伏之間,我把電機驅(qū)動的使能端 ENA 接ZigBee 底板上第 , IN1 接底板感應座 5伏 I/O 口, IN2 接底板感應座上的 GND。并把電機驅(qū)動上的 12 伏輸入及電源地接 12負電源。并選擇一端(如馬達 B輸出)的 VCC 接小風扇的紅線, GND 接小風扇的黑線。 第 15 頁 共 42 頁 圖 35L298N 電機驅(qū)動原理圖 第 16 頁 共 42 頁 4 軟件軟件 軟件 IAR 的介紹 IAR Embedded workbench 是瑞典 IAR Systems 公司為微處理器開發(fā)的一個集成開發(fā)環(huán)境簡稱 IAR EW,支持 ARM, AVR, MSP430 等芯片內(nèi)核平臺。 主要特點如下:別補兵 IAR ARM C/C++ Compiler。 IAR XLINK Linker。 。 。 。 CSPY調(diào)試器。 IAR Systems 是嵌入式系統(tǒng) 開發(fā)工具和服務的供應商。公司成立于 1983 年,提供的產(chǎn)品包括:帶有 C/C++編譯器和調(diào)試器的集成開發(fā)環(huán)境 (IDE)、實時操作系統(tǒng)和中間件、開發(fā)套件、硬件仿真器以及狀態(tài)機建模工具。 公司總部在位于瑞典烏普薩拉市, IAR Systems 于 1999 年 1 月 4 日在納斯達克 OMX 斯德哥爾摩上市。愛亞軟件技術(shù)咨詢(上海)有限公司是 IAR Systems在中國的全資子公司。 軟件總體設(shè)計流程 軟件程序主要實現(xiàn) ZigBee 發(fā)送模塊,溫度傳感模塊, ZigBee 接收模塊,通信模塊等各個模塊的功能實現(xiàn)和總體連接并實現(xiàn)。 發(fā) 送模塊用來發(fā)送數(shù)據(jù),溫度傳感模塊就是 DS18b20 用來采集溫度, ZigBee接收模塊接收才過來的數(shù)據(jù),通信模塊是用來實現(xiàn)發(fā)送和接收模塊之間無線通信的。具體流程圖如下 。 第 17 頁 共 42 頁 是 是 否 否 圖 41 軟件總體流程圖 程序初始化編程如下 : void InitCLK() { CLKCONCMD amp。= ~0x40。 //設(shè)置系統(tǒng)時鐘源為 32MHZ 晶振 while(CLKCONSTA amp。 0x40)。 //等待晶振穩(wěn)定為 32M CLKCONCMD amp。= ~0x47。 //設(shè)置系 統(tǒng)主時鐘頻率為 32MHZ } 開始 初始化 讀取 ds18b20 上的外界溫度 讀取預設(shè)下限溫度 外界溫度是否大于預設(shè)下限溫度 保持風扇風速 外界溫度是否大于預設(shè)上限溫度 增加風扇轉(zhuǎn)速 結(jié)束 第 18 頁 共 42 頁 功能 : 定時器初始化,系統(tǒng)不配置工作時鐘時默認是 2分頻,即 16MHz。 void InitT3() { T3CTL |= 0x08 。 //開溢出中斷 T3IE = 1。 //開總中斷和 T3中斷 T3CTL |= 0xE0。 //128 分頻 ,128/16000000*N=,N=62500 T3CTL amp。= ~0x03。 // 自 動 重 裝 00 - 0xff 62500/255=245(次 ) T3CTL |= 0x10。 //啟動 EA = 1。 //開總中斷 } 功能 : 串口初始化函數(shù) void InitUart() { PERCFG = 0x00。 //位置 1 P0 口 P0SEL = 0x0c。 //P0 用作串口 P2DIR amp。= ~0xc0。 //P0 優(yōu)先作為 UART0 U0CSR |= 0x80。 //串口設(shè)置為 UART 方式 U0GCR |= 11。 U0BAUD |= 216。 //波特率設(shè)為 115200 U0CSR |= 0x40。 //UART 接收器使能 UTX0IF = 0。 //UART0 TX 中斷標志初始置位 0 } 功能 : 串口發(fā)送函數(shù) ZigBee 發(fā)送模塊設(shè)計流程 ZigBee 發(fā)送模塊主要是把 ds18b20 采集到的溫度進行解析編譯發(fā)送給接收模塊,具體設(shè)計流程圖如下: 第 19 頁 共 42 頁 圖 42 發(fā)送模塊流程圖 發(fā)送模塊比較簡單將處理后溫度數(shù)據(jù)發(fā)送給接收模塊就可以了。 具體程序如下 : static void appSwitch() //發(fā)送 {//char str[9]=DS18B20:。 uint8 strTemp[6]。 uchar ucTemp。 float fTemp。 //halLcdWriteLine(HAL_LCD_LINE_1, Switch)。 //halLcdWriteLine(HAL_LCD_LINE_2, Joystick Push)。 //halLcdWriteLine(HAL_LCD_LINE_3, Send Command)。 ifdef ASSY_EXP4618_CC2420 halLcdClearLine(1)。 halLcdWriteSymbol(HAL_LCD_SYMBOL_TX, 1)。 endif pTxData[0] = 0。 pTxData[1] = 1。 pTxData[2] = 2。 pTxData[3] = 3。 // Initialize BasicRF = SWITCH_ADDR。 if(basicRfInit(amp。basicRfConfig)==FAILED) { HAL_ASSERT(FALSE)。 } // 由于模塊只需要發(fā)射,所以把接收屏蔽掉以降低功耗 。 basicRfReceiveOff()。 ZigBee 接收模塊設(shè)計流程 初始化 等待初始化完成 啟動溫度測量并讀取 等待轉(zhuǎn)化完成 讀取高八位和低八位 發(fā)送 第 20 頁 共 42 頁 ZigBee 接收模塊是把發(fā)送模塊發(fā)送過來的數(shù)據(jù)進行處理,轉(zhuǎn)換成信號給驅(qū)動。具體流程圖如下: 圖 43 接收模塊流程圖 接收模塊對溫度數(shù)據(jù)進行處理并轉(zhuǎn)化成電流或電壓信號給驅(qū)動治風扇轉(zhuǎn)動。 具體程序如下 : while (TRUE) { while(!basicRfPacketIsReady())。 //檢查模塊是否已經(jīng)可以接收下一個數(shù)據(jù),如果準備好剛返回 TRUE //把收到的數(shù)據(jù)復制到 buffer 中 if(basicRfReceive(pRxData, APP_PAYLOAD_LENGTH, NULL)0) { if(pRxData[3] == 3) {//判斷接收到的數(shù) 據(jù)是否就是LIGHT_TOGGLE_CMD halLedToggle(1)。 //改變 Led1 的狀態(tài) } } wen_du=(pRxData[0]amp。0x0f)*10+(pRxData[1]amp。0x0f)。 if(wen_du=20amp。amp。wen_du=25) 開始 初始化 接收來自發(fā)送模塊的溫度數(shù)據(jù)信號 等待轉(zhuǎn)化 轉(zhuǎn)化完成 對溫度數(shù)據(jù)進行處理 結(jié)束 第 21 頁 共 42 頁 PWM_ON=0。 else if(wen_du=25amp。amp。wen_du=30) PWM_ON=0。 else if(wen_du=30amp。amp。wen_du=35) PWM_ON=90。 else if(wen_du35) PWM_ON=100。 else if(wen_du20) PWM_ON=100。 UartSendString(str, 9)。 UartSendString(pRxData, 2)。 UartSendString(str1, 3)。 UartSendString(\n, 1)。 } } 溫度采集模塊設(shè)計流程 本 模塊是實現(xiàn)對 DS18b20 溫度的讀取,并且轉(zhuǎn)化為十六進制數(shù)據(jù)進行處理。具體流程圖如下 : 否 是 圖 44溫度模塊流程圖 開始 初始化 DS18b20 發(fā)溫度轉(zhuǎn)換指令( 44H) 轉(zhuǎn)換完成 轉(zhuǎn)換完成 讀取轉(zhuǎn)換后的字節(jié)并保存 溫度處理 結(jié)束 第 22 頁 共 42 頁 首先, DS18B20 輸出的一位( 1 bit)信號是不能被單片機變?yōu)槎辔坏模晃痪褪且晃?,單片機需要
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1