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

正文內(nèi)容

基于stm32的語(yǔ)音電子秤的設(shè)計(jì)本科畢業(yè)論文(參考版)

2025-06-05 22:32本頁(yè)面
  

【正文】 2g范圍內(nèi),分度值 達(dá)到 1g,量程。 return Average。i++) { if(!(Sam[i]==tmpmax||Sam[i]==tmpmin)) { sum=sum+Sam[i]。 } } for(i=0。 } 30 if(i0) { if(Sam[i]tmpmax) tmpmax=Sam[i]。 if(i==0) { tmpmax=Sam[0]。i12。 u8 i。 由于本設(shè)計(jì)所使用的單片機(jī)主頻較高,且 電子秤的重量顯示速度要求不高,所以 連續(xù)采集 12 個(gè)數(shù)據(jù), 去掉 1個(gè)最大值和 1個(gè)最小值取平均數(shù)。 本設(shè)計(jì)使用的是中位值平均濾波法( 亦 稱防脈沖干擾平均濾波法),這種方法相當(dāng)于“中位值濾波法”和 “算術(shù)平均濾波法” 的 結(jié) 合 ,即連續(xù)采樣 N個(gè)數(shù)據(jù), 去掉 X個(gè)最大值和最小值,然后計(jì)算 N2X 個(gè)數(shù)據(jù)的平均值。針對(duì)此微小的非線性問(wèn)題,本設(shè)計(jì)采用分段補(bǔ)償?shù)姆椒ǎ匆?500 克為單位,每增加 500 克補(bǔ)償 1克。 //經(jīng)擬合的函數(shù) return weight。 AD_val = AD_val/100。 28 S = 2 . 7 2 3 2 4 9 6 7r = 0 . 9 9 9 9 9 8 7 4X A x i s ( u n i t s )Y Axis (units)4 1 2 4 2 . 2 4 8 4 3 7 . 8 5 5 6 3 3 . 4 6 2 8 2 9 . 0 7 0 0 2 4 . 6 7 7 2 2 0 . 2 8 4 4 1 5 . 80 .0 01 44 3. 202 88 6. 404 32 9. 605 77 2. 807 21 6. 008 65 9. 20 圖 416 A/D 值與實(shí)際重量之間的函數(shù)關(guān)系圖 圖 417 擬合計(jì)算后的結(jié)果 擬合函數(shù)為 y=a+bx,其中 a=, b=, Y是實(shí)際重量, X是當(dāng)前重量的 A/D[19]。 RTC的一些主要函數(shù)如下: RTC的初始化函數(shù): u8 RTC_Init(void); RTC的時(shí)間設(shè)置函數(shù): u8 RTC_Set(u16 syear,u8 smon,u8 sday,u8 hour,u8 min,u8 sec); 獲得 RTC當(dāng)前時(shí)間函數(shù): u8 RTC_Get(void); 數(shù)據(jù)計(jì)算部分 稱重傳感器有良好的線性度 ,本設(shè)計(jì)使用線性擬合軟件 CurveExpert 來(lái)擬合 A/D值與實(shí)際重量之間的線性函 數(shù) [18]。//獲得編譯日期 const u8 *COMPILED_TIME=__TIME__。 27 開(kāi) 始結(jié) 束獲 得 工 程 編 譯 時(shí)間初 始 化設(shè) 置 時(shí) 間已 經(jīng) 設(shè) 置 時(shí)間 ?NY 圖 415 實(shí)時(shí)時(shí)鐘的程序流程圖 在初始化中主要完成開(kāi)啟電源時(shí)鐘和備份區(qū)域時(shí)鐘,然后取消備份 區(qū) 的寫(xiě)保護(hù) ,以便后續(xù)向備份區(qū)寫(xiě)數(shù)據(jù), 最后 向備份區(qū)寫(xiě)數(shù)據(jù),設(shè)置寄存器,開(kāi)啟 RTC。在硬件方面還添加了 3V 的紐扣電池作為后備電源,所以即使掉電后該定時(shí)器仍能運(yùn)行,且不“掉時(shí)”。 }[5][17] 實(shí)時(shí)時(shí)鐘部分 本設(shè)計(jì)的實(shí)時(shí)時(shí)鐘顯示功能通過(guò)使用 STM32F103RBT6 內(nèi)部的 RTC 模塊來(lái)實(shí)現(xiàn)。 dat=(j7)|(dat1)。i=8。 dat=0。 return data。 else data=0。//SET PA0 INPUT delay_us(12)。 26 DS18B20_DQ_OUT=1。//SET PA0 OUTPUT DS18B20_DQ_OUT=0。本例中讀函數(shù) u8 DS18B20_Read_Bit(void)和 u8 DS18B20_Read_Byte(void)代碼如下: u8 DS18B20_Read_Bit(void) // read one bit { u8 data。 } } } DS18B20的讀時(shí)序如下圖 414。 DS18B20_DQ_OUT=1。 25 } else { DS18B20_DQ_OUT=0。 DS18B20_DQ_OUT=1。 if (testb) { DS18B20_DQ_OUT=0。0x01。j=8。//SET PA0 OUTPUT。 u8 testb。寫(xiě)兩位數(shù)據(jù)的間隔要大于 1us。 圖 413 DS18B20 寫(xiě)時(shí)序 如果要寫(xiě)“ 0”則主控芯片拉低總線 60us~120us,在開(kāi)始拉低總線 15us后 DS18B20會(huì)開(kāi)始檢測(cè)總線狀態(tài),此時(shí)會(huì)檢測(cè)到低電平 [3]。 24 } 該函數(shù)返回 1則總線上沒(méi)有 DS18B20,返回 0 則有。 if(retry=240) return 1。 delay_us(1)。amp。 else retry=0。 }。retry200) { retry++。 //SET PA0 INPUT while (DS18B20_DQ_INamp。 23 圖 412 DS18B20 檢測(cè)時(shí)序 首先由主控芯片拉低總線 480us~960us,然后等待 15us~60us,之后芯片自己會(huì)拉低總線,主控芯片通過(guò)檢測(cè)是否 有 低電平來(lái) 判斷 DS18B20是否存在 , 具體代碼如下 [3]: u8 DS18B20_Check(void) { u8 retry=0。 開(kāi) 始初 始 化D S18B20是 否 存在 ?寫(xiě) 數(shù) 據(jù) 開(kāi) 始 轉(zhuǎn) 換讀 溫 度結(jié) 束YN 圖 411 DS18B20 程序流程圖 在初始化中主要完成主控芯片與 DS18B20 相連的數(shù)據(jù)引腳的時(shí)鐘的開(kāi)啟和復(fù)位DS18B20。 } DS18B20芯片部分 DS18B20 通過(guò)單總線和主控芯片連接 ,時(shí)序比較復(fù)雜。 22 AD_sck=0。 } AD_sck=1。 AD_sck=0。i++) { AD_sck=1。 //AD_dout為 1時(shí)表明 A/D轉(zhuǎn)換器還未準(zhǔn)備好 for(i=0。 AD_sck=0。 根據(jù) HX711芯片 的時(shí)序圖編寫(xiě)寫(xiě)數(shù)據(jù)函數(shù) u32 Read_HX711(void)( 由于該芯片只需發(fā)數(shù)據(jù)給主控芯片,所以無(wú)需編寫(xiě)寫(xiě)入數(shù)據(jù) 的 函數(shù) ) 具體函數(shù)代碼如下: u32 Read_HX711(void) { u32 count=0。 HX711 芯片的PD_SCK 設(shè)置為推挽輸入, DOUT 設(shè)置為上拉輸入。 HX711 程序流程如圖 410。通過(guò) PD_SCK的脈沖個(gè)數(shù)來(lái)選擇轉(zhuǎn)換通道和增益,其時(shí)序如圖 49。各函數(shù)功能如下: 播報(bào) 0~9999 任意整數(shù) 函數(shù) : void pronounce_num(u16 t); 播報(bào)小數(shù)點(diǎn)后 三位數(shù) 函數(shù) : void pronounce_point3num(u16 t); 播報(bào)小數(shù)點(diǎn)后兩位數(shù) 函數(shù) : void pronounce_point2num(u8 t)。 sda=1。 delay_us(600)。 } else { delay_us(200)。//高電平比低 電平為 600us: 200us,表示發(fā)送數(shù)據(jù) 1 sda=0。 //無(wú)論是 1還是 0 sda都是先高電平 if(addr amp。i8。 delay_ms(5)。 delay_ms(17)。 delay_ms(5)。 根據(jù) WT588D模塊 的時(shí)序圖編寫(xiě)寫(xiě)數(shù)據(jù)函數(shù) void send_dat(u8 addr)( 由于該模塊與主控芯片的連接為單向,所以無(wú)需編寫(xiě)讀 數(shù)據(jù)函數(shù) ) ,具體代碼如下: void send_dat(u8 addr) { u8 i。 當(dāng) WT588D接收到指令后調(diào)用 flash 內(nèi)的語(yǔ)音進(jìn)行發(fā)音。 開(kāi) 始初 始 化接 收 到 指 令 ?發(fā) 音完 成 發(fā) 音 ?結(jié) 束YYNN 圖 48 WT588D 的程序流程圖 在初始化部分中 設(shè)置 主控芯片 與 WT588D 模塊相連接的 IO 口。 圖 47中 D0~D7 表示一個(gè)地址或者命令數(shù)據(jù),數(shù)據(jù)中的 00H~ DBH是 地址指令, F2H是循環(huán)播放命令, FEH是停止播放命令, E0H~ E7H是 音量調(diào)節(jié)命令。先拉低 RESET復(fù)位信號(hào) 5ms,然后置高電平等待大于 17ms 的時(shí)間,再將數(shù)據(jù)信號(hào)拉低 5ms,最后發(fā)送數(shù)據(jù)。 一線串口 通訊 模式時(shí)序 如 圖 47。 VoiceChip VB的語(yǔ)音工程如圖 46。 17 WT588D語(yǔ)音模塊部分 在使用 WT588D 語(yǔ)音模塊 前需要將語(yǔ)音塊下載到模塊中,然后再通過(guò)主控芯片向WT588D芯片發(fā)送命令, WT588D調(diào)用 flash的語(yǔ)音進(jìn)而發(fā)音 。 式中的 XLCD和 YLCD是液晶屏上的像素坐標(biāo) ; Xfac和 Yfac是觸摸屏上讀出的觸控點(diǎn)坐標(biāo) ; Px 和 Py 分別為兩坐標(biāo)的比例系數(shù); xoff和 yoff是橫向和縱向的偏移量。 在初始化完后還要進(jìn)行觸控點(diǎn)和液晶顯示位置的匹配。此外還初始化了外部中斷, 當(dāng)有觸控動(dòng)作時(shí),觸控動(dòng)作產(chǎn)生的下降沿會(huì)觸發(fā)中斷,進(jìn)而執(zhí)行中斷服務(wù)函數(shù)[11]。 15 圖 43 開(kāi)機(jī)前的初始化界面 圖 44 使用時(shí)的主界面 TFT觸控液晶屏的觸控部分程序流程如圖 45。 通過(guò)函數(shù)將字符和數(shù)字顯示到TFTLCD模塊上。 對(duì)于顯示驅(qū)動(dòng)芯片 ILI9320 的初始化, 首先讀取 TFTLCD的控制芯片的型號(hào),然后 再 根據(jù)具體型號(hào)向芯片 寫(xiě)入一系列的特定命令 , 例如開(kāi)啟振蕩器、設(shè)置縱向 26 萬(wàn)色顯示、設(shè)置縱向更新 GRAM等,然后 啟動(dòng) TFTLCD的顯示 , 整屏填充白色 [13]。當(dāng) 主控芯片 從模塊讀數(shù)據(jù)時(shí)設(shè)置為上拉輸入模式,寫(xiě)數(shù)據(jù)時(shí)設(shè)置為上拉輸出模式。觸摸程序的處 理是在中斷程序中執(zhí)行的 14 各個(gè)模塊的程序設(shè)計(jì)思路及部分代碼 TFT觸控 液晶 模塊部分 本設(shè)計(jì)選用的 TFT觸控液晶 模塊的 顯示部分 程序流程如圖 42。 開(kāi) 始初 始 化取 零 點(diǎn)顯 示 固 定 界 面讀 A D值計(jì) 算 重 量讀 溫 度 值計(jì) 算 價(jià) 格顯 示 各 個(gè) 數(shù) 據(jù) 圖 41 軟件流程圖 系統(tǒng)上電后首先 執(zhí)行 各個(gè)功能模塊的初始化,初始化包括功能模塊內(nèi)部功能的設(shè)置和與主控芯片連接的 IO 口模式的設(shè)置 , 初始化完后 該系統(tǒng)會(huì)讀取 A/D值然后作為零重量的 A/D 值(取零點(diǎn)) , 在取完零點(diǎn)后顯示該系統(tǒng)固定不變的內(nèi)容,如鍵盤(pán), 顯示項(xiàng)目等。硬件是系統(tǒng)的 肉體 ,軟件是系統(tǒng)的靈魂 , 軟件決定了產(chǎn)品的思想, 對(duì)一個(gè)產(chǎn)品至關(guān)重要 。 GNDIN3GND1OUT2OUT4U3 C15104C1410uFGNDC1310uFC12104GND123654SW1SWLock1 23 45 69V_BatteryHeader 3X29VIN12OUT3GNDU57805GNDC2210uFC25104C2410uFC261049V5V9V 39 系統(tǒng)電源電路圖 如圖使用 9V層積 電池 為主電源 ,通過(guò) 穩(wěn)壓芯片 得到 ,供主控芯片 和 TFT觸控液晶模塊 使用 , 通過(guò)穩(wěn)壓芯片 LM7805得到 5V的電壓,供 WT588D語(yǔ)音模塊 、 HX711 芯片 和蜂鳴器 使用 [3]。 12 電源模塊的硬件電路設(shè)計(jì) 本設(shè)計(jì)的主控芯片 和 TFT觸控液晶模塊 需要 , WT588D語(yǔ)音模塊、 HX711芯片和蜂鳴器需要 5V電壓。采用 ,可以直接短接 VDD跟 VCC,但考慮到使用環(huán)境聲音嘈雜,故 VDD供 5V以提供較大的音量。 P051P062P073P104P115P126REST7DAC8PWM+9PWM10P1411P1312P1613GND14P1515P0316P0217P0118P0019VCC20BUSY21VDD22P0423NC24NC25NC26NC27NC28U4WT588D 語(yǔ)音模塊R13470D4LEDVCC5PA2PA312P2喇叭 圖 38 WT588D 與主控芯片的硬件連接圖 圖中 P2 為 ,與模塊的正負(fù) PWM輸出連接,該模塊的復(fù)位引腳連 接主控芯片的 IO 口 PA3, 由于 該模塊 與主控芯片為 一線
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1