嵌入式高級(jí)應(yīng)用可穿戴設(shè)備開(kāi)發(fā)ppt課件(完整版)_第1頁(yè)
嵌入式高級(jí)應(yīng)用可穿戴設(shè)備開(kāi)發(fā)ppt課件(完整版)_第2頁(yè)
嵌入式高級(jí)應(yīng)用可穿戴設(shè)備開(kāi)發(fā)ppt課件(完整版)_第3頁(yè)
嵌入式高級(jí)應(yīng)用可穿戴設(shè)備開(kāi)發(fā)ppt課件(完整版)_第4頁(yè)
嵌入式高級(jí)應(yīng)用可穿戴設(shè)備開(kāi)發(fā)ppt課件(完整版)_第5頁(yè)
已閱讀5頁(yè),還剩126頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 項(xiàng)目一設(shè)計(jì)開(kāi)發(fā)光照度檢測(cè)控制器【知識(shí)點(diǎn)】單片機(jī)的概念、特點(diǎn)STM8L051F3單片機(jī)的引腳STM8L051F3單片機(jī)最小系統(tǒng)STM8L051F3單片機(jī)的基本IO口中斷原理ADC原理光照傳感器【技能點(diǎn)】識(shí)別單片機(jī)最小系統(tǒng)的常用元器件。掌握單片機(jī)庫(kù)函數(shù)開(kāi)發(fā)的技巧。使用IAR軟件下載調(diào)試程序。熟悉STM8L051F3芯片各引腳的功能特點(diǎn)與使用。熟悉并掌握模擬量ADC轉(zhuǎn)換器中斷的使用方法了解光照傳感器的工作原理和簡(jiǎn)單使用1.開(kāi)發(fā)板設(shè)計(jì)介紹PCB設(shè)計(jì)開(kāi)發(fā)板原理圖2.開(kāi)發(fā)板焊接焊接時(shí)應(yīng)遵循“先低后高、先內(nèi)后外、先耐熱后不耐熱”的順序焊接,焊接好的電路板如圖右所示。具體詳細(xì)細(xì)節(jié)參考參考相關(guān)書(shū)籍。 3.開(kāi)發(fā)

2、平臺(tái)連接3.開(kāi)發(fā)板引腳功能說(shuō)明知識(shí)1. STM8L051F3性能特征表STM8L051F3采用TSSOP20(20引腳)封裝,運(yùn)行電壓在1.8V3.6V,運(yùn)行的溫度范圍在-4085,主要性能如左表?yè)碛?5 種低功耗模式高級(jí) STM8 內(nèi)核上電/掉電復(fù)位、低壓復(fù)位、可編程電壓檢測(cè)可外接 32kHz 和 116MHz 的外部晶振、內(nèi)部 16MHz 高速 RC、內(nèi)部 38kHz 低速 RC、時(shí)鐘安全系統(tǒng)低功耗 RTC8KbyteFLASH、256byteEEPROM、1KbyteRAMDMA 功能12BitADC,內(nèi)部參考電壓2個(gè)16位定時(shí)器、1個(gè)8位定時(shí)器、1個(gè)窗口看狗、1個(gè)獨(dú)立看門(mén)狗、1個(gè)Bee

3、perSPI、IIC、USART快速的編程&仿真接口 SWIM、USART 的 Bootloader知識(shí)2. STM8L051F3通用I/O端口(GPIO)GPIO庫(kù)函數(shù)GPIO_Init(GPIOB, GPIO_PIN_0, GPIO_MODE_OUT_OD_HIZ_SLOW );GPIO_ResetBits(GPIOB,GPIO_PIN_0);GPIO_SetBits(GPIOB,GPIO_PIN_0);GPIO_MODE_IN_FL_NO_IT浮動(dòng)輸入無(wú)中斷功能GPIO_MODE_IN_PU_NO_IT上拉輸入無(wú)中斷功能GPIO_MODE_IN_FL_IT浮動(dòng)輸入有中斷功能GPIO_MO

4、DE_IN_PU_IT上拉輸入有中斷功能GPIO_MODE_OUT_OD_LOW_FAST快速開(kāi)漏輸出低電平GPIO_MODE_OUT_PP_LOW_FAST快速推挽輸出低電平GPIO_MODE_OUT_OD_LOW_SLOW慢速開(kāi)漏輸出低電平GPIO_MODE_OUT_PP_LOW_SLOW慢速推挽輸出低電平GPIO_MODE_OUT_OD_HIZ_FAST快速開(kāi)漏輸出高阻態(tài)GPIO_MODE_OUT_PP_HIGH_FAST快速推挽輸出高電平GPIO_MODE_OUT_OD_HIZ_SLOW慢速開(kāi)漏輸出高阻態(tài)GPIO_MODE_OUT_PP_HIGH_SLOW慢速推挽輸出高電平任務(wù)一 :流

5、水燈制作嵌入式高級(jí)應(yīng)用可穿戴設(shè)備開(kāi)發(fā)設(shè)計(jì)并制作一個(gè)流水燈的單片機(jī)控制系統(tǒng),在單片機(jī)的PB3、PB4、PB5端口分別接一個(gè)發(fā)光二極管,使3個(gè)發(fā)光二極管輪流點(diǎn)亮,間隔時(shí)間大約為0.5秒。 發(fā)光二極管簡(jiǎn)稱為L(zhǎng)ED。當(dāng)電子與空穴復(fù)合時(shí)能輻射出可見(jiàn)光,因而可以用來(lái)制成發(fā)光二極管。在電路及儀器中作為指示燈,或者組成文字或數(shù)字顯示。LED 發(fā)光二極管簡(jiǎn)介L(zhǎng)ED發(fā)光二極管原理圖設(shè)置為0,延時(shí)使PB3、PB4、PB5為1延時(shí)開(kāi)始初始化PB3、PB4、PB5為輸出真設(shè)置PB3為0,延時(shí)設(shè)置PB4為0,延時(shí)設(shè)置PB5為0,延時(shí)程序流程圖任務(wù)一 實(shí)驗(yàn)效果任務(wù)二 設(shè)計(jì)制作按鍵控制LED燈本小節(jié)介紹將 GPIO 配置為外

6、部中斷輸入模式,并通過(guò) KEY(PD0)來(lái)觸發(fā)一個(gè)外部中斷信號(hào),產(chǎn)生中斷,然后控制 LED1 的狀態(tài)。實(shí)現(xiàn)步驟:1)初始化 LED1 為推挽輸出模式(初始電平高)2)初始化 KEY 為上拉輸入&中斷模式,并配置為下降沿觸發(fā)通過(guò)鍵盤(pán)產(chǎn)生外部中斷,在中斷中控制LED發(fā)光二極管,當(dāng)鍵盤(pán)按下時(shí)發(fā)光二極管狀態(tài)取反。知識(shí)3.中斷內(nèi)容中斷服務(wù)程序發(fā)申請(qǐng)中斷服務(wù)程序發(fā)申請(qǐng)外設(shè)CPU中斷示意圖 CPU執(zhí)行程序時(shí),由于發(fā)生了某種隨機(jī)的事件(外部或內(nèi)部),引起CPU暫時(shí)中斷正在運(yùn)行的程序,轉(zhuǎn)去執(zhí)行一段特殊的服務(wù)程序(中斷服務(wù)子程序或中斷處理程序),以處理該事件,該事件處理完后又返回被中斷的程序繼續(xù)執(zhí)行,這一過(guò)程稱為

7、中斷。 例如:吃飯時(shí)突然手機(jī)鈴響中斷映射表知識(shí)3-1.中斷控制器ITC中斷控制器提供如下功能: 硬件中斷的管理 端口A、B、C、D的I/O引腳都具有外部中斷能力,每一個(gè)端口都有獨(dú)立的中斷向量。 軟件中斷的管理(TRAP) 具有靈活的優(yōu)先級(jí)和中斷等級(jí)管理,支持可嵌套的或同級(jí)中斷管理: 多達(dá)4個(gè)軟件可編程的嵌套等級(jí) 最多有32個(gè)中斷向量,其入口地址由硬件固定 2個(gè)不可屏蔽的事件: RESET, TRAP 1個(gè)不可屏蔽的最高優(yōu)先級(jí)的硬件中斷 (TLI) 固定的中斷向量地址位于程序空間映像的高位地址段(0 x008004 to 0 x00807C),其 地址順序即為硬件的優(yōu)先順序。中斷觸發(fā)方式:00:

8、下降沿和低電平觸發(fā)01:僅上升沿觸發(fā)10:僅下降沿觸發(fā)11:上升沿和下降沿觸發(fā)為了產(chǎn)生中斷,相應(yīng)的GPIO端口必須被配置為中斷使能的輸入口。知識(shí)3-2.中斷觸發(fā)方式按鍵控制LED程序流程圖否PD0初始化PB4初始化PB5初始化S2鍵按下使LED4、LED5燈狀態(tài)取反,延時(shí)是開(kāi)始按鍵控制LED實(shí)驗(yàn)結(jié)果程序最終實(shí)現(xiàn)根據(jù)光敏傳感器(光敏電阻)的光照檢測(cè)控制LED燈裝置,當(dāng)光敏電阻值大于300時(shí)打開(kāi)LED燈,當(dāng)光敏電阻值小于200時(shí),熄滅LED燈,同學(xué)們也可根據(jù)光線強(qiáng)弱的實(shí)際情況改變這些閥值,設(shè)計(jì)出自己的光控?zé)粞b置。任務(wù)三 光照度檢測(cè)控制系統(tǒng) 模數(shù)轉(zhuǎn)換器即A/D轉(zhuǎn)換器,或簡(jiǎn)稱ADC,是指將一個(gè)模擬信號(hào)

9、轉(zhuǎn)變?yōu)閿?shù)字信號(hào)的電子元器件。通常的模數(shù)轉(zhuǎn)換器是將一個(gè)輸入電壓信號(hào)轉(zhuǎn)換為一個(gè)輸出的數(shù)字信號(hào)。由于數(shù)字信號(hào)本身不具有實(shí)際意義,僅僅表示一個(gè)相對(duì)大小。故任何一個(gè)模數(shù)轉(zhuǎn)換器都需要一個(gè)參考模擬量作為轉(zhuǎn)換的標(biāo)準(zhǔn),比較常見(jiàn)的參考標(biāo)準(zhǔn)為最大的可轉(zhuǎn)換信號(hào)大小。而輸出的數(shù)字量則表示輸入信號(hào)相對(duì)于參考信號(hào)的大小。 A/D轉(zhuǎn)換的作用是將時(shí)間連續(xù)、幅值也連續(xù)的模擬量轉(zhuǎn)換為時(shí)間離散、幅值也離散的數(shù)字信號(hào)。因此,A/D轉(zhuǎn)換一般要經(jīng)過(guò)取樣、保持、量化及編碼4個(gè)過(guò)程。知識(shí)4. ADC知識(shí)4-1. ADC 配置1、ADC1 配置函數(shù)void ADC1_Config(void)CLK_PeripheralClockConfig(C

10、LK_Peripheral_ADC1, ENABLE); /打開(kāi) ADC1 外設(shè)的時(shí)鐘GPIO_Init(ADC_IN22_GPIO_PORT, ADC_IN22_GPIO_PINS, GPIO_Mode_In_FL_No_IT);/初始化 ADC1,單次轉(zhuǎn)換模式,12 位分辨率,ADC 時(shí)鐘 2 分頻ADC_Init(ADC1, ADC_ConversionMode_Single, ADC_Resolution_12Bit, ADC_Prescaler_2);/配置 ADC 采樣時(shí)間,384 個(gè)時(shí)鐘周期ADC_SamplingTimeConfig(ADC1, ADC_Group_SlowCh

11、annels, ADC_SamplingTime_384Cycles);ADC_ChannelCmd(ADC1, ADC_Channel_22, ENABLE); /打開(kāi) ADC1 的 22 通道ADC_Cmd(ADC1, ENABLE); /使能 ADC1 2、ADC1 采樣函數(shù)uint16_t Read_ADC_Value(void)uint16_t temp;ADC_SoftwareStartConv(ADC1); /啟動(dòng)一次 ADC 轉(zhuǎn)換while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)= RESET); temp = ADC_GetConversi

12、onValue(ADC1); /讀取 ADC 值return temp; /返回 ADC 值 /GPIO 為浮空輸入模式嵌入式高級(jí)應(yīng)用可穿戴設(shè)備開(kāi)發(fā)光敏電阻是利用半導(dǎo)體的光電導(dǎo)效應(yīng)制成的一種電阻值隨入射光的強(qiáng)弱而改變的電阻器,又稱為光電導(dǎo)探測(cè)器;入射光強(qiáng),電阻減小,入射光弱,電阻增大。還有一種入射光弱,電阻減小,入射光強(qiáng),電阻增大。根據(jù)光敏電阻的光譜特性,可分為三種光敏電阻器:紫外光敏電阻空對(duì)空、紅外光敏電阻空對(duì)空、可見(jiàn)光光敏電阻器。硬件準(zhǔn)備光敏電阻傳感器接口連接原理圖程序流程圖與實(shí)驗(yàn)結(jié)果 項(xiàng)目二 設(shè)計(jì)制作智能電子鐘【知識(shí)點(diǎn)】IIC通信原理IIC通信的基本功能與編程基礎(chǔ)STM8L051F3 單

13、片機(jī)TIM4定時(shí)器/計(jì)數(shù)器的工作原理OLED 顯示模擬IIC通信的軟件實(shí)現(xiàn)原理RTC的基本功能和工作原理【技能點(diǎn)】顯示屏的特點(diǎn)和類(lèi)型IIC通信編程定時(shí)器接口模塊編程模擬IIC通信的軟件實(shí)現(xiàn)OLED 驅(qū)動(dòng)顯示應(yīng)用RTC讀取時(shí)間日歷的軟件編程任務(wù)一 設(shè)計(jì)制作字符顯示器在本任務(wù)中主要完成STM8L051F3單片機(jī)通過(guò)IIC和OLED顯示屏通信,驅(qū)動(dòng)OLED顯示屏,顯示相應(yīng)的字符內(nèi)容的任務(wù)。首先介紹了IIC通信和OLED顯示屏的工作原理,以及它們的工作時(shí)序等在本次任務(wù)中用到的相關(guān)知識(shí),給出了項(xiàng)目的開(kāi)發(fā)原理和程序流程圖。硬件開(kāi)發(fā)平臺(tái)與以上任務(wù)相同,最后給出OLED顯示“WXSTC”字符的單片機(jī)STM8L

14、051F3程序,最終實(shí)現(xiàn)軟硬件聯(lián)調(diào)。知識(shí)點(diǎn)1. I2C串行總線概述 I2C總線是PHLIPS公司推出的一種串行總線,是具備多主機(jī)系統(tǒng)所需的總線裁決和高低速器件同步功能的高性能串行總線。I2C總線只有兩根雙向信號(hào)線。一根是數(shù)據(jù)線SDA,另一根是時(shí)鐘線SCL。 I2C總線通過(guò)上拉電阻接正電源。當(dāng)總線空閑時(shí),兩根線均為高電平。連到總線上的任一器件輸出的低電平,都將使總線的信號(hào)變低,即各器件的SDA及SCL都是線“與”關(guān)系。知識(shí)點(diǎn)1-1. I2C串行總線概述 每個(gè)接到I2C總線上的器件都有唯一的地址。主機(jī)與其它器件間的數(shù)據(jù)傳送可以是由主機(jī)發(fā)送數(shù)據(jù)到其它器件,這時(shí)主機(jī)即為發(fā)送器。由總線上接收數(shù)據(jù)的器件則

15、為接收器。 在多主機(jī)系統(tǒng)中,可能同時(shí)有幾個(gè)主機(jī)企圖啟動(dòng)總線傳送數(shù)據(jù)。為了避免混亂, I2C總線要通過(guò)總線仲裁,以決定由哪一臺(tái)主機(jī)控制總線。知識(shí)點(diǎn)1-2. I2C串行總線概述知識(shí)點(diǎn)2. I2C總線的數(shù)據(jù)傳送 I2C總線進(jìn)行數(shù)據(jù)傳送時(shí),時(shí)鐘信號(hào)為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時(shí)鐘線上的信號(hào)為低電平期間,數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變化。1、數(shù)據(jù)位的有效性規(guī)定 SCL線為高電平期間,SDA線由高電平向低電平的變化表示起始信號(hào);SCL線為高電平期間,SDA線由低電平向高電平的變化表示終止信號(hào)。 起始和終止信號(hào)都是由主機(jī)發(fā)出的,在起始信號(hào)產(chǎn)生后,總線就處于被占用的狀態(tài);在終止信號(hào)產(chǎn)

16、生后,總線就處于空閑狀態(tài)。連接到I2C總線上的器件,若具有I2C總線的硬件接口,則很容易檢測(cè)到起始和終止信號(hào)。知識(shí)點(diǎn)2-1 IIC通信的起始和終止信號(hào)知識(shí)點(diǎn)2-2 IIC通信的數(shù)據(jù)傳送格式(1)字節(jié)傳送與應(yīng)答 每一個(gè)字節(jié)必須保證是8位長(zhǎng)度。數(shù)據(jù)傳送時(shí),先傳送最高位(MSB),每一個(gè)被傳送的字節(jié)后面都必須跟隨一位應(yīng)答位(即一幀共有9位)。 由于某種原因從機(jī)不對(duì)主機(jī)尋址信號(hào)應(yīng)答時(shí)(如從機(jī)正在進(jìn)行實(shí)時(shí)性的處理工作而無(wú)法接收總線上的數(shù)據(jù)),它必須將數(shù)據(jù)線置于高電平,而由主機(jī)產(chǎn)生一個(gè)終止信號(hào)以結(jié)束總線的數(shù)據(jù)傳送。 如果從機(jī)對(duì)主機(jī)進(jìn)行了應(yīng)答,但在數(shù)據(jù)傳送一段時(shí)間后無(wú)法繼續(xù)接收更多的數(shù)據(jù)時(shí),從機(jī)可以通過(guò)對(duì)無(wú)

17、法接收的第一個(gè)數(shù)據(jù)字節(jié)的“非應(yīng)答”通知主機(jī),主機(jī)則應(yīng)發(fā)出終止信號(hào)以結(jié)束數(shù)據(jù)的繼續(xù)傳送。 當(dāng)主機(jī)接收數(shù)據(jù)時(shí),它收到最后一個(gè)數(shù)據(jù)字節(jié)后,必須向從機(jī)發(fā)出一個(gè)結(jié)束傳送的信號(hào)。這個(gè)信號(hào)是由對(duì)從機(jī)的“非應(yīng)答”來(lái)實(shí)現(xiàn)的。然后,從機(jī)釋放SDA線,以允許主機(jī)產(chǎn)生終止信號(hào)。知識(shí)點(diǎn)2-2 IIC通信的數(shù)據(jù)傳送格式IIC總線的尋址 I2C總線協(xié)議有明確的規(guī)定:采用7位的尋址字節(jié)(尋址字節(jié)是起始信號(hào)后的第一個(gè)字節(jié))。 (1)尋址字節(jié)的位定義D7D1位組成從機(jī)的地址。D0位是數(shù)據(jù)傳送方向位,為“0”時(shí)表示主機(jī)向從機(jī)寫(xiě)數(shù)據(jù),為“1”時(shí)表示主機(jī)由從機(jī)讀數(shù)據(jù)。知識(shí)點(diǎn)2-3主機(jī)發(fā)送地址時(shí),總線上的每個(gè)從機(jī)都將這7位地址碼與自己的

18、地址進(jìn)行比較,如果相同,則認(rèn)為自己正被主機(jī)尋址,根據(jù)R/T位將自己確定為發(fā)送器或接收器。從機(jī)的地址由固定部分和可編程部分組成。在一個(gè)系統(tǒng)中可能希望接入多個(gè)相同的從機(jī),從機(jī)地址中可編程部分決定了可接入總線該類(lèi)器件的最大數(shù)目。如一個(gè)從機(jī)的7位尋址位有4位是固定位,3位是可編程位,這時(shí)僅能尋址8個(gè)同樣的器件,即可以有8個(gè)同樣的器件接入到該I2C總線系統(tǒng)中。知識(shí)點(diǎn)2-3IIC總線的尋址 I2C總線上傳送的數(shù)據(jù)信號(hào)是廣義的,既包括地址信號(hào),又包括真正的數(shù)據(jù)信號(hào)。 在起始信號(hào)后必須傳送一個(gè)從機(jī)的地址(7位),第8位是數(shù)據(jù)的傳送方向位(R/T),用“0”表示主機(jī)發(fā)送數(shù)據(jù)(T),“1”表示主機(jī)接收數(shù)據(jù)(R)。

19、每次數(shù)據(jù)傳送總是由主機(jī)產(chǎn)生的終止信號(hào)結(jié)束。但是,若主機(jī)希望繼續(xù)占用總線進(jìn)行新的數(shù)據(jù)傳送,則可以不產(chǎn)生終止信號(hào),馬上再次發(fā)出起始信號(hào)對(duì)另一從機(jī)進(jìn)行尋址。 知識(shí)點(diǎn)2-4IIC總線的數(shù)據(jù)幀格式a、主機(jī)向從機(jī)發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在整個(gè)傳送過(guò)程中不變:注:有陰影部分表示數(shù)據(jù)由主機(jī)向從機(jī)傳送,無(wú)陰影部分則表示數(shù)據(jù)由從機(jī)向主機(jī)傳送。A表示應(yīng)答, A非表示非應(yīng)答(高電平)。S表示起始信號(hào),P表示終止信號(hào)。在總線的一次數(shù)據(jù)傳送過(guò)程中,可以有以下幾種組合方式:知識(shí)點(diǎn)2-4IIC總線的數(shù)據(jù)幀格式b、主機(jī)在第一個(gè)字節(jié)后,立即從從機(jī)讀數(shù)據(jù)c、在傳送過(guò)程中,當(dāng)需要改變傳送方向時(shí),起始信號(hào)和從機(jī)地址都被重復(fù)產(chǎn)生一次,但兩

20、次讀/寫(xiě)方向位正好反相。知識(shí)點(diǎn)2-4IIC總線的數(shù)據(jù)幀格式知識(shí)點(diǎn)2-5IIC總線的信號(hào)格式知識(shí)點(diǎn)2-5 I2C總線通信過(guò)程主模式時(shí): I2C接口啟動(dòng)數(shù)據(jù)傳輸并產(chǎn)生時(shí)鐘信號(hào)。串行數(shù)據(jù)傳輸總是以起始條件開(kāi)始并以停止條件結(jié)束。起始條件和停止條件都是在主模式下由軟件控制產(chǎn)生。從模式時(shí): I2C接口能識(shí)別它自己的地址(7位或10位)和廣播呼叫地址。軟件能夠控制開(kāi)啟或禁止廣播呼叫地址的識(shí)別。數(shù)據(jù)和地址按8位/字節(jié)進(jìn)行傳輸,高位在前。跟在起始條件后的1或2個(gè)字節(jié)是地址(7位模式為1個(gè)字節(jié),10位模式為2個(gè)字節(jié))。地址只在主模式發(fā)送。 在一個(gè)字節(jié)傳輸?shù)?個(gè)時(shí)鐘后的第9個(gè)時(shí)鐘期間,接收器必須回送一個(gè)應(yīng)答位(AC

21、K)給發(fā)送器。軟件可以開(kāi)啟或禁止應(yīng)答(ACK),并可以設(shè)置I2C接口的地址(7位、10位地址或廣播呼叫地址)。知識(shí)點(diǎn)2-6 主設(shè)備發(fā)送模式(發(fā)送序列圖)知識(shí)點(diǎn)2-7 主設(shè)備接收模式(接收序列圖)知識(shí)點(diǎn)2-8 I2C總線狀態(tài)寄存器(I2C_SR1)知識(shí)點(diǎn)2-8 I2C總線狀態(tài)寄存器(I2C_SR1)知識(shí)點(diǎn)2-8 I2C總線狀態(tài)寄存器(I2C_SR1)OLED顯示屏:即有機(jī)發(fā)光二極管( Organic Light Emitting Diode)。 OLED 由于同時(shí)具備自發(fā)光,不需背光源、對(duì)比度高、厚度薄、視角廣、反應(yīng)速度快、可用于撓曲性面板、使用溫度范圍廣、構(gòu)造及制程較簡(jiǎn)單等優(yōu)異特性,被認(rèn)為是下

22、一代的平面顯示器新興應(yīng)用技術(shù)。LCD 都需要背光,而 OLED 不需要,因?yàn)樗亲园l(fā)光的。這樣同樣的顯示 OLED 效果要好一些。以目前的技術(shù),OLED 的尺寸還難以大型化,但是分辨率確可以做到很高。在此教材的開(kāi)發(fā)板中我們使用的是0.96 寸 OLED 顯示屏,該屏有以下特點(diǎn):分辨率為 128*64多種接口方式;OLED 裸屏總共3種接口包括:6800、8080 兩種并行接口方式、3 線或 4 線的串行 SPI 接口方式、 IIC 接口方式(只需要 2 根線就可以控制 OLED 了!本教材中我們實(shí)用四針的 0.96 寸IIC接口OLED 模塊,四針 IIC 接口相對(duì)比較簡(jiǎn)單一些,只有兩個(gè)信號(hào)線

23、知識(shí)點(diǎn)3 OLED顯示屏知識(shí)點(diǎn)3-1 OLED 的通訊時(shí)序本小節(jié)介紹如何初始化 IIC 以及實(shí)現(xiàn) IIC 與 OLED 進(jìn)行通訊。OLED 采用的是0.96 寸 OLED (4PIN),可以直接插入開(kāi)發(fā)板OLED擴(kuò)展接口。OLED 的通訊時(shí)序如圖2.17所示。IIC 初始化配置步驟:打開(kāi) IIC 外設(shè)時(shí)鐘使能 IIC1配置 IIC 參數(shù):IIC1、時(shí)鐘 100KHz、IIC 模式、快速模式工作周期 Tlow/Thigh=2、使能應(yīng)答、應(yīng)答從機(jī)地址 7 位要注意的是:OLED 的 IIC 通訊地址是 0 x78、OLED 的 IIC 時(shí)序只存在寫(xiě),不存在讀。知識(shí)點(diǎn)3-2 OLED 時(shí)序的IIC

24、配置從實(shí)際應(yīng)用電路圖2.18中可以看出,STM8L0510F3單片機(jī)硬件IIC(PC0、PC1)接口與顯示屏進(jìn)行通信。在我們?cè)O(shè)計(jì)的開(kāi)發(fā)板中OLED接口使用的是PB1、PB2兩個(gè)引腳,是通過(guò)軟件模擬IIC實(shí)現(xiàn)通信。所以在本任務(wù)中同學(xué)們可以通過(guò)杜邦線把OLED的SDA和SCL分別連接到PC0、PC1引腳上,完成實(shí)驗(yàn)。因STM8L0510F3單片機(jī)中硬件IIC通信接口只有一個(gè),為了滿足多個(gè)IIC通信裝置的需要,我們采用軟件模擬實(shí)現(xiàn)IIC通信,下一個(gè)任務(wù)中會(huì)詳細(xì)講解。本任務(wù)中連接方式如下:GND-GND、VCC-3V3、SCL-PC1、SDA-PC0任務(wù)一 設(shè)計(jì)制作字符顯示器任務(wù)一 設(shè)計(jì)制作字符顯示器

25、實(shí)現(xiàn)效果在本任務(wù)中,主要介紹STM8L051F3 的 TIM4定時(shí)器、RTC 相關(guān)知識(shí)和電子日歷的讀取編程技巧,在任務(wù)一的基礎(chǔ)上重點(diǎn)闡述軟件模擬IIC通信。用軟件模擬IIC通信有不少的優(yōu)點(diǎn),最大的好處是方便移植和共享,解決IIC接口不足的問(wèn)題,在STM8L051F3中不只局限與PC0、PC1IIC接口。而且同一個(gè)代碼兼容各種的MCU,無(wú)論是51,STM32還是430還是別的微控制器,在移植的時(shí)候只要將引腳的設(shè)置更改即可通用。任務(wù)二 設(shè)計(jì)制作智能電子鐘嵌入式高級(jí)應(yīng)用可穿戴設(shè)備開(kāi)發(fā) RTC(Real-time clock):實(shí)時(shí)時(shí)鐘。RTC 是一個(gè)獨(dú)立的定時(shí)器/計(jì)數(shù)器,它提供了一個(gè)實(shí)時(shí)時(shí)間和日歷與

26、一個(gè)相關(guān)的可編程鬧鐘,同時(shí)它還包括一個(gè)可用于管理低功耗模式的自動(dòng)喚醒單元。采用二進(jìn)制編碼格式的 8 位寄存器,包括秒、分、時(shí)(12 或 24 小時(shí)格式)、星期 x、日、月和年,二進(jìn)制編碼格式還可以獲取微秒的時(shí)間值。RTC 能自動(dòng)調(diào)節(jié)閏年和每個(gè)月的天數(shù)。另外還有可編程鬧鐘的 8 位寄存器,包括微秒、秒、分、時(shí)、星期 x 和日,可以把 RTC 校準(zhǔn)到 0.954ppm 的精度,在復(fù)位后,RTC 是處于寫(xiě)保護(hù)狀態(tài)的,只要供電電壓維持在系統(tǒng)運(yùn)行電壓內(nèi),不管 MCU 處于睡眠狀態(tài),RTC 是不會(huì)停止運(yùn)行的。知識(shí)點(diǎn)4 RTC簡(jiǎn)介 如何使用 RTC 的電子日歷功能,使用 LSE 或LSI作為 RTC 時(shí)鐘源

27、,讀取的日期與時(shí)間數(shù)據(jù)使用 OLED 顯示出來(lái)(OLED 采用的是技新 0.96 寸 OLED(4PIN)。系統(tǒng)的工作流程:初始化 LSE 時(shí)鐘并等待其穩(wěn)定-初始化RTC-初始化IIC-初始化OLED-讀取數(shù)據(jù)并顯示(循環(huán))。這里主要介紹 RTC 的初始化,步驟如下:1)選擇 LSE 作為 RTC 的時(shí)鐘源 ( RTC的時(shí)鐘可以選擇四種時(shí)鐘HSE/HIS/LSE/LSI)2)打開(kāi) RTC 外設(shè)時(shí)鐘3)配置 RTC 時(shí)鐘:24 小時(shí)制、計(jì)時(shí)時(shí)間 =1S4)初始化日期數(shù)據(jù)5)初始化時(shí)間數(shù)據(jù)注意程序中讀取出來(lái)的數(shù)據(jù)位為BCD碼。(RTC_GetDate(RTC_Format_BCD, &RTC_Da

28、teStr);)RTC_FORMAT_BIN 使用二進(jìn)制 RTC_FORMAT_BCD 使用16進(jìn)制 ,BCD碼(Binary-Coded Decimal)亦稱二進(jìn)碼十進(jìn)數(shù)例如 18年你得到的是 0 x18年知識(shí)點(diǎn)4-1 電子日歷配置擴(kuò)展知識(shí):對(duì)位的操作 #define BIT0 (0 x01)#define BIT1 (0 x02)#define BIT2 (0 x04)#define BIT3 (0 x08)#define BIT4 (0 x10)#define BIT5 (0 x20)#define BIT6 (0 x40)#define BIT7 (0 x80)#define BIT(

29、x) (1GND、VCC-3V3、SCL-PB2、SDA-PB1任務(wù)二 實(shí)驗(yàn)效果 項(xiàng)目三 設(shè)計(jì)開(kāi)發(fā)環(huán)境紫外線監(jiān)測(cè)器【知識(shí)點(diǎn)】DHT11溫濕度傳感器紫外線檢測(cè)傳感器DHT11溫濕度傳感器時(shí)序DHT11數(shù)據(jù)格式紫外線檢測(cè)原理紫外線傳感器電路紫外線傳感器檢測(cè)算法【技能點(diǎn)】使用數(shù)字傳感器DHT11采集溫濕度 使用紫外線傳感器采集紫外線數(shù)據(jù)利用STM8L051F3和DHT11 溫濕度傳感器設(shè)計(jì)并制作自動(dòng)環(huán)境溫濕度檢測(cè)器,并在OLED顯示屏上顯示測(cè)得的溫濕度數(shù)據(jù)。任務(wù)一 設(shè)計(jì)開(kāi)發(fā)環(huán)境溫濕度檢測(cè)器工作電壓范圍:3.3V-5.5V工作電流 :平均0.5mA輸出:?jiǎn)慰偩€數(shù)字信號(hào)測(cè)量范圍:濕度2090RH,溫度0

30、50精度 :濕度5%,溫度2分辨率 :濕度1%,溫度1 知識(shí)點(diǎn)1.DHT11 溫濕度傳感器 DHT11數(shù)字溫濕度傳感器采用單總線數(shù)據(jù)格式。單個(gè)數(shù)據(jù)引腳端口完成輸入輸出雙向傳輸。其數(shù)據(jù)包由5個(gè)字節(jié)(40Bit)組成。數(shù)據(jù)分小數(shù)部分和整數(shù)部分,一次完整的數(shù)據(jù)傳輸為40bit,高位先出。 DHT11的數(shù)據(jù)格式為:8bit濕度整數(shù)數(shù)據(jù)+8bit濕度小數(shù)數(shù)據(jù)+8bit溫度整數(shù)數(shù)據(jù)+8bit溫度小數(shù)數(shù)據(jù)+8bit校驗(yàn)和。 其中校驗(yàn)和數(shù)據(jù)為前四個(gè)字節(jié)相加。知識(shí)點(diǎn)1-1.DHT11 溫濕度傳感器知識(shí)點(diǎn)1-2.DHT11 溫濕度傳感器數(shù)據(jù)輸出編碼 傳感器數(shù)據(jù)輸出的是未編碼的二進(jìn)制數(shù)據(jù)。數(shù)據(jù)(濕度、溫度、整數(shù)、小

31、數(shù))之間應(yīng)該分開(kāi)處理。例如,某次從DHT11讀到的數(shù)據(jù)如圖所示:由以上數(shù)據(jù)就可得到濕度和溫度的值,計(jì)算方法:濕度= byte4 . byte3=45.0 (RH)溫度= byte2 . byte1=28.0 ( )校驗(yàn)= byte4+ byte3+ byte2+ byte1=73(校驗(yàn)正確)數(shù)據(jù)發(fā)送流程: 首先主機(jī)發(fā)送開(kāi)始信號(hào),即:拉低數(shù)據(jù)線,保持t1(至少18ms)時(shí)間,然后拉高數(shù)據(jù)線t2(2040us)時(shí)間,然后讀取DHT11的響應(yīng),正常的話,DHT11會(huì)拉低數(shù)據(jù)線,保持t3(4050us)時(shí)間,作為響應(yīng)信號(hào),然后DHT11拉高數(shù)據(jù)線,保持t4(4050us)時(shí)間后,開(kāi)始輸出數(shù)據(jù)。知識(shí)點(diǎn)1

32、-3.DHT11 溫濕度傳感器時(shí)序圖知識(shí)點(diǎn)1-3.DHT11 溫濕度傳感器時(shí)序圖DHT11輸出數(shù)字0的時(shí)序如圖DHT11輸出數(shù)字1的時(shí)序如圖一硬件準(zhǔn)備DHT11 溫濕度傳感器接口連接原理圖程序流程圖與實(shí)驗(yàn)結(jié)果任務(wù)二 設(shè)計(jì)開(kāi)發(fā)紫外線監(jiān)測(cè)顯示器設(shè)計(jì)并制作一個(gè)環(huán)境紫外線檢測(cè)顯示器,使用紫外線傳感器采集環(huán)境的紫外線強(qiáng)度信息,將采集到的信息送到單片機(jī)進(jìn)行處理,把轉(zhuǎn)換為強(qiáng)度值的紫外線數(shù)據(jù)通過(guò)顯示器顯示。知識(shí)點(diǎn)1紫外線對(duì)人體的影響紫外線是指陽(yáng)光中波長(zhǎng)10至400納米(nm)的光線,可分為UVA(紫外線A,波長(zhǎng)320400納米,長(zhǎng)波)、UVB(波長(zhǎng)290320納米,中波)、UVC(波長(zhǎng)100290納米,短波)

33、。UVB致癌性最強(qiáng),曬紅及曬傷作用為UVA的1000倍。UVC可被臭氧層所阻隔。紫外線照射會(huì)讓皮膚產(chǎn)生大量自由基,導(dǎo)致細(xì)胞膜的過(guò)氧化反應(yīng),使黑色素細(xì)胞產(chǎn)生更多的黑色素,并往上分布到表皮角質(zhì)層,造成黑色斑點(diǎn)。紫外線可以說(shuō)是造成皮膚皺紋、老化、松弛及黑斑的最大元兇。知識(shí)點(diǎn)1-2紫外線對(duì)人體的影響 紫外線能使許多物質(zhì)激發(fā)熒光,很容易讓照相底片感光。當(dāng)紫外線照射人體時(shí),能促使人體合成維生素D,以防止患佝僂病,經(jīng)常讓小孩曬曬太陽(yáng)就是這個(gè)道理。紫外線還具有殺菌作用,醫(yī)院里的病房就利用紫外線消毒。但過(guò)強(qiáng)的紫外線會(huì)傷害人體,應(yīng)注意防護(hù)。玻璃、大氣中的氧氣和高空中的臭氧層,對(duì)紫外線都有很強(qiáng)的吸收作用,能吸收掉太

34、陽(yáng)光中的大部分紫外線,因此能保護(hù)地球上的生物,使它們免受紫外線傷害。知識(shí)點(diǎn)2.紫外線傳感器構(gòu)造 最早的紫外線傳感器是基于單純的硅,精度不高。在十幾年前,日本日亞公司研發(fā)出了GaN系的晶體,由此產(chǎn)生了GaN的紫外線傳感器,其精度遠(yuǎn)遠(yuǎn)高于單晶硅的精度,成為最常用的紫外線傳感器材料。二六族ZnS材料被研發(fā)應(yīng)用到了紫外線傳感器領(lǐng)域,其精度比GaN系的傳感器提高了近105倍。在一定程度上,ZnS系的紫外線傳感器將與GaN系的平分秋色。電氣特性采用氮化鎵基材料;PIN型光電二極管;光伏工作模式;對(duì)可見(jiàn)光無(wú)響應(yīng);暗電流低;輸出電流與紫外指數(shù)成線性關(guān)系。符合歐盟RoHS指令,無(wú)鉛、無(wú)鎘典型應(yīng)用測(cè)量紫外指數(shù):手

35、機(jī)、數(shù)碼相機(jī)、MP4、PDA、GPS等攜式移動(dòng)產(chǎn)品;用于紫外檢測(cè)器:全部紫外線波段的檢測(cè)器、單UV-A波段檢測(cè)器、紫外線指數(shù)檢測(cè)器、紫外線殺菌燈輻照檢測(cè)器。知識(shí)點(diǎn)3.紫外線傳感器電路解析本模塊使用GUVA-S12SD紫外線傳感器,可放置在自然環(huán)境中檢測(cè)UV強(qiáng)度。1 GUVA-S12SD電器特性如下:GUVA-S12SD 配合一路運(yùn)算放大器組成紫外線傳感器的采集輸出電路。MUC端則需要配置好ADC引腳,從而對(duì)輸出電路電壓進(jìn)行線性測(cè)量。GUVA-S12SD電路圖GUVA-S12SD電路圖知識(shí)點(diǎn)3.紫外線傳感代碼解析運(yùn)算放大器將毫伏電壓信號(hào)放大穩(wěn)定為MUC可讀取的電壓信號(hào)。單片機(jī)通過(guò)ADC采樣和固定

36、的周期頻率,從而計(jì)算出人體的心率。計(jì)算過(guò)程中考慮到測(cè)量過(guò)程有干擾的存在,所以中間使用了均值濾波算法將其中的干攏剔除,最終獲得穩(wěn)定的UV強(qiáng)度。知識(shí)點(diǎn)3-1.采集ADC數(shù)據(jù)代碼void analogDeviceHandler(void) static uint8_t timeCnt = 255; /周期計(jì)數(shù)變量,初始值255是暫緩啟動(dòng)數(shù)值 struct analogAdcDate_t adcData; /存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)體 if (0 = timeCnt) /周期采樣判斷 timeCnt = ANALOG_READ_FREP; /周期間隔數(shù)值賦予 adcData.adcM = ADC_GetConve

37、rsionValue(ADC1); /通過(guò)stm8s庫(kù)函數(shù)將采樣數(shù)據(jù)讀出 anglogDataInput(adcData); /將讀出采樣數(shù)據(jù)存入環(huán)形隊(duì)列中 else timeCnt -; /周期間隔數(shù)值自減 知識(shí)點(diǎn)3-1.存入緩沖區(qū)代碼bool analogRingQInsert(struct analogAdcDate_t date, struct ringQueue_t * queuePtr) int tmpInput; if (0 = queuePtr) return FALSE; tmpInput = queuePtr-inIndex + 1; tmpInput %= queuePt

38、r-qSize; if (tmpInput = queuePtr-outIndex) return FALSE; queuePtr-inIndex = tmpInput; queuePtr-qbufftmpInput = date; return TRUE;anglogDataInput函數(shù)嵌套著analogRingQInsert函數(shù),所以這里就直接講analogRingQInsert函數(shù)了。analogRingQInsert函數(shù)是一個(gè)環(huán)形隊(duì)列函數(shù),入?yún)⒂袃蓚€(gè),分別是存儲(chǔ)ADC原始數(shù)據(jù)的date和用于保存環(huán)形隊(duì)列數(shù)據(jù)的結(jié)構(gòu)體指針* queuePtr。函數(shù)返回則是環(huán)形隊(duì)列是否存儲(chǔ)已滿,沒(méi)滿返回T

39、RUE、滿了則返回FALSE。環(huán)形隊(duì)列通過(guò)對(duì)插入計(jì)數(shù)變量tmpInput進(jìn)行%運(yùn)算來(lái)判斷隊(duì)列是否咬尾,如果咬尾則重置tmpInput為零。知識(shí)點(diǎn)3-2.強(qiáng)度轉(zhuǎn)換代碼void analog_ultravioletProcess(struct analogAdcDate_t data) uint16_t i; uint32_t tmpMeans = 0; for (i = 1; i 100) /強(qiáng)度過(guò)域判斷 ultravioletValue = 100; uint8_t strBuff17; intNumToStr(ultravioletValue,strBuff); /格式打印 strcat(s

40、trBuff,“% ”); /格式打印 OLED_ShowString(0, 4, strBuff); /根據(jù)格式打印的內(nèi)容進(jìn)行顯示強(qiáng)度數(shù)值存入串口緩沖區(qū)代碼uint8_t analog_getData(uint8_t * buff) buff0 = ultravioletValue; return 1;analog_getData函數(shù)在iic_irqHandler函數(shù)中調(diào)用,其中analog_getData函數(shù)返回的是自己的數(shù)據(jù)長(zhǎng)度、數(shù)組指針?lè)祷氐膭t是要傳輸?shù)腢V強(qiáng)度數(shù)據(jù)。只有在主IIC器件詢問(wèn)數(shù)據(jù)時(shí)才會(huì)觸發(fā)數(shù)據(jù)的發(fā)送,所以這整一個(gè)過(guò)程是被動(dòng)的。硬件準(zhǔn)備實(shí)際電路原理圖程序流程圖與實(shí)驗(yàn)結(jié)果 項(xiàng)

41、目四 基于藍(lán)牙的人體體溫監(jiān)測(cè)器【知識(shí)點(diǎn)】非接觸式體溫傳感器概念、原理、特點(diǎn)APP的開(kāi)發(fā)STM8L UART1串口通信藍(lán)牙工作原理【技能點(diǎn)】人體體溫傳感器的應(yīng)用使用模擬IIC與傳感器通信基于藍(lán)牙模塊的APP開(kāi)發(fā)使用HC-05藍(lán)牙模塊無(wú)線數(shù)據(jù)傳輸本實(shí)驗(yàn)運(yùn)用人體體溫傳感器信息采集模塊,通過(guò)非接觸的方法連續(xù)監(jiān)測(cè)人體體溫,對(duì)采集到的數(shù)據(jù)進(jìn)行校驗(yàn)和轉(zhuǎn)化為攝氏度,并進(jìn)行顯示。任務(wù)一 設(shè)計(jì)開(kāi)發(fā)人體體溫監(jiān)測(cè)器知識(shí)點(diǎn)1.體溫采集信息價(jià)值人體正常溫度人體體溫是生命健康中的一項(xiàng)非常重要的技標(biāo),一般孩子的平均體溫都在37度左右,成人的平均體溫在36.5-36.8度之間;體溫的異常往指標(biāo)著人體處在一個(gè)非正常的狀態(tài),或是更

42、嚴(yán)重的疾病狀態(tài)。體溫除了正常狀態(tài)外,就只有高或地兩個(gè)異常狀態(tài),這兩種異常狀態(tài)會(huì)都是比較危險(xiǎn)的,如會(huì)帶嚴(yán)重要影響。知識(shí)點(diǎn)1-2.非接觸式體溫傳感器原理 紅外測(cè)溫傳感器是最常用的非接觸式測(cè)溫儀表,基于黑體輻射的基本定律,也被稱為輻射測(cè)溫儀表。一切溫度高于絕對(duì)零度的物體都在不停地向周?chē)臻g發(fā)出紅外輻射能量。物體的紅外輻射能量的大小及其按波長(zhǎng)的分布與它的表面溫度有著十分密切的關(guān)系。因此,通過(guò)對(duì)物體自身輻射的紅外能量的測(cè)量,便能準(zhǔn)確地測(cè)定它的表面溫度,這就是紅外輻射測(cè)溫所依據(jù)的客觀基礎(chǔ)。 紅外測(cè)溫模塊由光學(xué)系統(tǒng)、光電探測(cè)器、信號(hào)放大器及信號(hào)處理等部分組成。光學(xué)系統(tǒng)匯集其視場(chǎng)內(nèi)的目標(biāo)紅外輻射能量,視場(chǎng)的大

43、小由測(cè)溫儀的光學(xué)零件以及位置決定。紅外能量聚焦在光電探測(cè)儀上并轉(zhuǎn)變?yōu)橄鄳?yīng)的電信號(hào)。該信號(hào)經(jīng)過(guò)放大器和信號(hào)處理電路按照儀器內(nèi)部的算法和目標(biāo)發(fā)射率校正后轉(zhuǎn)變?yōu)楸粶y(cè)目標(biāo)的溫度值。除此之外,還應(yīng)考慮目標(biāo)和測(cè)溫模塊所在的環(huán)境條件,如溫度、氣氛、污染和干擾等因素對(duì)性能指標(biāo)的影響及修正方法。紅外測(cè)溫模塊原理圖知識(shí)點(diǎn)1-3.非接觸式體溫計(jì)構(gòu)造非接觸式體溫計(jì)構(gòu)造 本套穿戴設(shè)備使用溫度傳感器型號(hào)為MLX90615,MLX90615 內(nèi)部有 2 顆芯片,紅外熱電堆探測(cè)器和信號(hào)處理 ASSP MLX90325, 尤其是由 Melexis 設(shè)計(jì)的處理IR 傳感器輸出的芯片。 MLX90325 在信號(hào)調(diào)節(jié)芯片中使用了先進(jìn)

44、的低噪音放大器,一枚 16-bit ADC 以及功能強(qiáng)大的DSP 元件,從而實(shí)現(xiàn)高精確度溫度測(cè)量。該傳感器計(jì)算并儲(chǔ)存于 RAM 中的環(huán)境溫度以及物體溫度可實(shí)現(xiàn)0.02C 的解析度的數(shù)據(jù),并且可通過(guò)雙線標(biāo)準(zhǔn) IIC 輸出獲得 (0.02C 分辨率) 或者通過(guò) 10-bit PWM 輸出獲得。知識(shí)點(diǎn)1-4.溫度采集電路解析體溫傳感器電路解析MLX90615 有箝位二極管連接在 SDA/SCL 和 Vdd 之間。因此需要向 MLX90615提供電源以使 SMBus 線不成為負(fù)載 。知識(shí)點(diǎn)1-5.體溫傳感代碼解析軟件流程圖嵌入式 MLX90615 DSP 控制測(cè)量量度,計(jì)算物體和環(huán)境溫度并且進(jìn)行溫度的

45、后處理,將它們通過(guò) IIC 兼容接口或是 PWM 模式輸出。單片機(jī)通過(guò)IIC總線讀取MLX90615的溫度數(shù)據(jù)數(shù)據(jù),通過(guò)PEC校驗(yàn)計(jì)算得出溫度可靠的數(shù)據(jù),并將校驗(yàn)后的數(shù)據(jù)轉(zhuǎn)換為攝氏度數(shù)據(jù)。知識(shí)點(diǎn)1-6.采集溫度數(shù)據(jù)核心代碼 DataL=RX_byte(ACK);/通過(guò)發(fā)送ACK將低字節(jié)的數(shù)據(jù)接收回來(lái) DataH=RX_byte(ACK); /通過(guò)發(fā)送ACK將高字節(jié)的數(shù)據(jù)接收回來(lái) Pec=RX_byte(NACK);/通過(guò)發(fā)送ACK將校驗(yàn)字節(jié)的數(shù)據(jù)接收回來(lái) STOP_bit();/結(jié)束通信 arr0=SlaveAddress;/ arr1=command;/ arr2=SlaveAddress;

46、/將數(shù)據(jù)載入校驗(yàn)計(jì)算數(shù)組 arr3=DataL;/ arr4=DataH;/ arr5=0;/ PecReg=PEC_calculation(arr); /計(jì)算校驗(yàn)字節(jié) while(PecReg != Pec);/如果計(jì)算的校驗(yàn)字節(jié)與接收的校驗(yàn)不一致,那么重新do-while *(unsigned char *)(&data)=DataH; / *(unsigned char *)(&data)+1)=DataL ; /data=DataH:DataL return data;知識(shí)點(diǎn)1-7.攝氏度換算函數(shù)代碼1.攝氏度換算函數(shù)代碼static float CalcTemp(uint16_t v

47、alue) float temp; temp = (value * 0.02) - 273.15; return temp;IR 傳感器包括串聯(lián)的熱電偶,冷接頭放置在厚的芯片襯底上,熱接頭放置在薄膜上。薄膜加熱(或是冷卻)從而吸收并輻射 IR。熱電堆的輸出信號(hào)為:Vir (Ta,To) = A.(To4 - Ta 4 ),其中 To 是物體的絕對(duì)溫度(開(kāi)爾文),Ta 是傳感器片絕對(duì)溫度,A 是總體的敏感度。需要一個(gè)附加的傳感器來(lái)測(cè)量芯片的溫度。在測(cè)量完兩個(gè)傳感器輸出后,對(duì)應(yīng)的環(huán)境溫度和物體溫度被計(jì)算出。計(jì)算是通過(guò)內(nèi)部 DSP 產(chǎn)生數(shù)字輸出并和測(cè)量溫度成線形比例。環(huán)境溫度 Ta傳感器芯片溫度通過(guò)

48、 PTAT 元件測(cè)量。所有傳感器的狀態(tài)和數(shù)據(jù)處理都是片上操作的,線性的傳感器溫度 Ta存于 RAM 中。計(jì)算所得的 Ta 分辨率為 0.02 C。傳感器出廠校準(zhǔn)范圍為-40 到 +85 C。 在 RAM 單元地址 6h 中 2D89h 代表 -40 C,45F3h 代表+85 C。將 RAM 內(nèi)容轉(zhuǎn)換為實(shí)際的 Ta 比較簡(jiǎn)單:TaK = Tareg 0.02 公式轉(zhuǎn)為代碼應(yīng)用: temp = (value * 0.02) - 273.152.攝氏度數(shù)值存入串口緩沖區(qū)代碼uint8_t temperature_getData(uint8_t * buff) buff0 = tempHigh; b

49、uff1 = tempLow; return 2;temperature_getData函數(shù)在iic_irqHandler函數(shù)中調(diào)用,其中temperature_getData函數(shù)返回的是自己的特定數(shù)據(jù)類(lèi)型標(biāo)識(shí)、數(shù)組指針?lè)祷氐膭t是要傳輸?shù)臄z氏數(shù)據(jù)。硬件準(zhǔn)備體溫傳感器接口連接電路原理圖軟件流程圖與實(shí)驗(yàn)結(jié)果任務(wù)三 設(shè)計(jì)開(kāi)發(fā)基于藍(lán)牙的人體體溫監(jiān)測(cè)器本任務(wù)學(xué)習(xí)STM8L051F3的USART部分相關(guān)知識(shí)。以單片機(jī)和藍(lán)牙模塊HC-5為主,設(shè)計(jì)基于藍(lán)牙無(wú)線傳輸?shù)臄?shù)據(jù)采集系統(tǒng),利用任務(wù)二設(shè)計(jì)的APP作為上位機(jī),實(shí)時(shí)讀取和顯示有單片機(jī)和體溫傳感器采集處理得到人體體溫?cái)?shù)據(jù)。UART在進(jìn)行雙向通訊時(shí)最少需要兩個(gè)引

50、腳:UART_RX 串行數(shù)據(jù)輸入引腳與 UART_TX 串行數(shù)據(jù)輸出引腳,它們?cè)谡5?UART 模式下,異步串行通信的字符格式數(shù)據(jù)收發(fā),有一個(gè)固定的格式,如下圖4.25所示知識(shí)點(diǎn)2.通用同步異步收發(fā)器(UART)異步串行通信以字符為單位,即一個(gè)字符一個(gè)字符地傳送 。我們經(jīng)常使用的串口起始是指 UART(通用異步收發(fā)器),UART 與 USART 的根本區(qū)別就是 USART 可以同步進(jìn)行收發(fā),USART 比 UART 多一個(gè) CLK 引腳。知識(shí)點(diǎn)3.HC-05藍(lán)牙通訊模塊HC-05藍(lán)牙通訊模塊引腳介紹序號(hào)名稱說(shuō)明1EN電源控制端(高電平使能,低電平失能)2VCC電源(3.3V5.0V)3GND

51、地4TXD模塊串口發(fā)送腳(TTL電平,不能直接接RS232電平!),可接單片機(jī)的RXD5RXD模塊串口接收腳(TTL電平,不能直接接RS232電平!),可接單片機(jī)的TXD6STATE配對(duì)狀態(tài)輸出;配對(duì)成功輸出高電平,未配對(duì)則輸出低電平。 HC-05 嵌入式藍(lán)牙串口通訊模塊(以下簡(jiǎn)稱模塊)具有兩種工作模式:命令響應(yīng)工作模式和自動(dòng)連接工作模式,在自動(dòng)連接工作模式下模塊又可分為主(Master)、從(Slave) 和回環(huán)(Loopback)三種工作角色。當(dāng)模塊處于自動(dòng)連接工作模式時(shí),將自動(dòng)根據(jù)事先設(shè)定的方式連接的數(shù)據(jù)傳輸;當(dāng)模塊處于命令響應(yīng)工作模式時(shí)能執(zhí)行下述所有 AT 命令,用戶可向模塊發(fā)送各種

52、AT 指令,為模塊設(shè)定控制參數(shù)或發(fā)布控制命令。通過(guò)控制模塊外部引腳(PIO11)輸入電平,可以實(shí)現(xiàn)模塊工作狀態(tài)的動(dòng)態(tài)轉(zhuǎn)換。知識(shí)點(diǎn)3-1.HC-05 嵌入式藍(lán)牙串口通訊模塊工作模式模塊自帶了一個(gè)狀態(tài)指示燈:LED。該燈有3種狀態(tài)(1).在模塊上電的同時(shí)(也可以是之前),將KEY設(shè)置為高電平(接VCC),此時(shí)LED慢閃(1秒亮1次),模塊進(jìn)入AT狀態(tài),且此時(shí)波特率固定為38400。(2).在模塊上電的時(shí)候,將KEY懸空或接GND,此時(shí)TA快閃(1秒2次),表示模塊進(jìn)入可配對(duì)狀態(tài)。如果此時(shí)將KEY再拉高,模塊也會(huì)進(jìn)入AT狀態(tài),但是LED依舊保持快閃。(3).模塊配對(duì)成功,此時(shí)LED雙閃(一次閃2下,

53、2秒閃一次)。有了LED指示燈,我們就可以很方便的判斷模塊的當(dāng)前狀態(tài),方便大家使用。知識(shí)點(diǎn)3-2. 模塊自帶STATE狀態(tài)指示燈有2種方法使模塊進(jìn)入AT指令狀態(tài):(1).上電之前將KEY設(shè)置為VCC,上電后,模塊即進(jìn)入AT指令狀態(tài)。 進(jìn)入AT狀態(tài)后,模塊的波特率為:38400(8位數(shù)據(jù)位,1位停止位)。(2).模塊上電后,通過(guò)將KEY接VCC,使模塊進(jìn)入AT狀態(tài)。 進(jìn)入AT狀態(tài)后,模塊波特率和通信波特率一致。 HC-05藍(lán)牙串口模塊所有功能都是通過(guò)AT指令集控制,這我們僅介紹用戶常用的幾個(gè)AT指令,詳細(xì)的指令集,請(qǐng)參考“HC-05藍(lán)牙指令集.pdf”這個(gè)文檔。1.進(jìn)入AT狀態(tài)知識(shí)點(diǎn)3-3.模塊

54、使用-AT指令集模塊的指令結(jié)構(gòu)為:AT+? 查詢參數(shù)格式AT+= 設(shè)置參數(shù)格式其中CMD(指令)和PARAM(參數(shù))都是可選的,不過(guò)切記在發(fā)送末尾添加回車(chē)符(rn),否則模塊不響應(yīng),比如我們要查看模塊的版本:串口發(fā)送:AT+VERSION?rn 模塊回應(yīng):+VERSION:2.0-20100601OK 2.指令結(jié)構(gòu)硬件準(zhǔn)備藍(lán)牙模塊連接原理圖 手機(jī)APP讀取設(shè)備檢測(cè)到溫度數(shù)據(jù)實(shí)驗(yàn)效果 項(xiàng)目五 實(shí)訓(xùn)運(yùn)動(dòng)輔助設(shè)備的設(shè)計(jì)【知識(shí)點(diǎn)】心率傳感器原理心率傳感器檢測(cè)算法MPU6050傳感器原理MPU6050傳感器檢測(cè)算法【技能點(diǎn)】使用心率傳感器采集心率數(shù)據(jù)使用MPU6050傳感器采集計(jì)步數(shù)據(jù)任務(wù)一設(shè)計(jì)開(kāi)發(fā)人體

55、心率檢測(cè)器利用STM8L051F3和心率傳感器設(shè)計(jì)并制作自動(dòng)心率檢測(cè)器,并在OLED顯示屏上顯示測(cè)得的人體心率數(shù)據(jù)知識(shí)點(diǎn)2.心率采集信息價(jià)值安靜心率心率是指正常人安靜狀態(tài)下每分鐘心跳的次數(shù),也叫安靜心率,一般為60100次/分,可因年齡、性別或其他生理因素產(chǎn)生個(gè)體差異。一般來(lái)說(shuō),年齡越小,心率越快,老年人心跳比年輕人慢,女性的心率比同齡男性快,這些都是正常的生理現(xiàn)象。安靜狀態(tài)下,成人正常心率為60100次/分鐘,理想心率應(yīng)為5570次/分鐘(運(yùn)動(dòng)員的心率較普通成人偏慢,一般為50次/分鐘左右)。心率曲線心率采集常見(jiàn)問(wèn)題(1)心率過(guò)速成人安靜時(shí)心率超過(guò)100次/分鐘(一般不超過(guò)160次/分鐘),

56、稱為竇性心動(dòng)過(guò)速,常見(jiàn)于興奮、激動(dòng)、吸煙、飲酒、喝濃茶或咖啡后,或見(jiàn)于感染、發(fā)熱、休克、貧血、缺氧、甲亢、心力衰竭等病理狀態(tài)下,或見(jiàn)于應(yīng)用阿托品、腎上腺素、麻黃素等藥物后。(2)心率過(guò)緩成人安靜時(shí)心率低于60次/分鐘(一般在45次/分鐘以上),稱為竇性心動(dòng)過(guò)緩,可見(jiàn)于長(zhǎng)期從事重體力勞動(dòng)的健康人和運(yùn)動(dòng)員;或見(jiàn)于甲狀腺機(jī)能低下、顱內(nèi)壓增高、阻塞性黃疸以及洋地黃、奎尼丁或心得安類(lèi)藥物過(guò)量。如果心率低于40次/分鐘,應(yīng)考慮有病態(tài)竇房結(jié)綜合征、房室傳導(dǎo)阻滯等情況。如果脈搏強(qiáng)弱不等、不齊且脈率少于心率,應(yīng)考慮心房纖顫。知識(shí)點(diǎn)2-1心率傳感器原理心率測(cè)量方法傳統(tǒng)的心率脈搏測(cè)量方法主要有三種:從心電信號(hào)中提取

57、從測(cè)量血壓時(shí)壓力傳感器測(cè)到的波動(dòng)來(lái)計(jì)算脈率光電容積法前兩種方法提取信號(hào)都會(huì)限制監(jiān)測(cè)對(duì)像的活動(dòng),如果長(zhǎng)時(shí)間使用會(huì)增加監(jiān)測(cè)對(duì)像的生理和心理上的不舒適感。而光電容積法脈搏測(cè)量作為監(jiān)護(hù)測(cè)量中最普遍的方法之一,其具有方法簡(jiǎn)單、佩戴方便、可靠性高等特點(diǎn)。光電容積法原理光電容積法的基本原理是利用人體組織在血管搏動(dòng)時(shí)造成透光率不同來(lái)進(jìn)行脈搏測(cè)量的。其使用的傳感器由光源和光電變換器兩部分組成,通過(guò)綁帶或夾子固定在病人的手腕上。光源一般采用對(duì)動(dòng)脈血中氧和血紅蛋白有選擇性的一定波長(zhǎng)(500nm700nm)的發(fā)光二極管。當(dāng)光束透過(guò)人體外周血管,由于動(dòng)脈搏動(dòng)充血容積變化導(dǎo)致這束光的透光率發(fā)生改變,此時(shí)由光電變換器接收經(jīng)

58、人體組織反射的光線,轉(zhuǎn)變?yōu)殡娦盘?hào)并將其放大和輸出。由于脈搏是隨心臟的搏動(dòng)而周期性變化的信號(hào),動(dòng)脈血管容積也周期性變化,因此光電變換器的電信號(hào)變化周期就是脈搏率。 根據(jù)相關(guān)文獻(xiàn)和實(shí)驗(yàn)結(jié)果,560nm的光波可以反映皮膚淺部微動(dòng)脈信息,適合用來(lái)提取脈搏信號(hào)。該傳感器主動(dòng)發(fā)射峰值波長(zhǎng)為515nm的綠光LED,再通過(guò)光接收器拾取反射光譜,由于脈搏信號(hào)的頻帶一般在0.05200Hz之間,信號(hào)幅度均很小,一般在毫伏級(jí)水平,容易受到各種信號(hào)干擾。在感受器后面使用了低通濾波器和運(yùn)放構(gòu)成的放大器,將信號(hào)放大了數(shù)百倍后,信號(hào)可以很好地被單片機(jī)的AD采集到。知識(shí)點(diǎn)2-2.心率傳感器電路解析本模塊使用SON1303光電式心率傳感器,可放置于人體各部位測(cè)試人體心率和脈搏。1SON1303采用的反射式光電傳感器使測(cè)量方式更加自由,應(yīng)用范圍遍及可佩戴式電子產(chǎn)品以及新式測(cè)試方法的脈搏測(cè)量?jī)x器,能擴(kuò)大脈搏測(cè)量配套設(shè)備的應(yīng)用范圍2.內(nèi)部集成高科技納米涂層環(huán)境光檢測(cè)傳感器,過(guò)濾不需要的光源,減少由其他光源

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論