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

正文內(nèi)容

基于51單片機實現(xiàn)的電子萬年歷,含語音播報和液晶顯示功能,另加蜂鳴器做警報-畢業(yè)設計(編輯修改稿)

2025-01-04 11:09 本頁面
 

【文章內(nèi)容簡介】 本的協(xié)議接下來將會是控制器與 18B20 間的數(shù)據(jù)通信如果復位低電平的時間不足或是單總線的電路斷路都不會接到存在脈沖在設計時要注意意外情況的處理 控制器發(fā)送 ROM指令雙方打完了招呼之后最要將進行交流了 ROM指令共有 5條每一個工作周期只能發(fā)一條 ROM指令分別是讀 ROM數(shù)據(jù)指定匹配芯片跳躍 ROM芯片搜索報警芯片搜索 ROM 指令為 8 位長度功能是對片內(nèi)的 64 位光刻 ROM 進行操作 其主要目的是為了分辨一條 總線上掛接的多個器件并作處理誠然單總線上可以同時掛接多個器件并通過每個器件上所獨有的 ID 號來區(qū)別一般只掛接單個18B20 芯片時可以跳過 ROM 指令注意此處指的跳過 ROM 指令并非不發(fā)送 ROM 指令而是用特有的一條跳過指令 ROM 指令在下文有詳細的介紹 控制器發(fā)送存儲器操作指令在 ROM指令發(fā)送給 18B20之后緊接著不間斷就是發(fā)送存儲器操作指令了操作指令同樣為 8位共 6條存儲器操作指令分別是寫 RAM數(shù)據(jù)讀 RAM數(shù)據(jù)將 RAM數(shù)據(jù)復制到 EEPROM溫度轉(zhuǎn)換將 EEPROM中的報警值復制到RAM工作方式切換存儲器操作指令 的功能是命令 18B20作什么樣的工作是芯片控制的關鍵 執(zhí)行或數(shù)據(jù)讀寫一個存儲器操作指令結束后則將進行指令執(zhí)行或數(shù)據(jù)的讀寫這個操作要視存儲器操作指令而定如執(zhí)行溫度轉(zhuǎn)換指令則控制器單片機 必須等待 18B20 執(zhí)行其指令一般轉(zhuǎn)換時間為 500uS 如執(zhí)行數(shù)據(jù)讀寫指令則需要嚴格遵循 18B20的讀寫時序來操作數(shù)據(jù)的讀寫方法將有下文有詳細介紹 DS28B20芯片 ROM 指令表 Skip ROM 跳躍 ROM 指令 [CCH] 這條指令使芯片不對 ROM 編碼做出反應在單總線的情況之下為了節(jié)省時間則可以選用此指令如果在多芯片掛接時使用 此指令將會出現(xiàn)數(shù)據(jù)沖突導致錯誤出現(xiàn) DS28B20 芯片存儲器操作指令 Write Scratchpad 向 RAM 中寫數(shù)據(jù) [4EH] 這是向 RAM中寫入數(shù)據(jù)的指令 隨后寫入的兩個字節(jié)的數(shù)據(jù)將會被存到地址 2 報警 RAM 之 TH 和地址 3 報警 RAM之 TL 寫入過程中可以用復位信號中止寫入 Read Scratchpad 從 RAM 中讀數(shù)據(jù) [BEH] 此指令將從 RAM 中讀數(shù)據(jù)讀地址從地址 0開始一直可以讀到地址 9完成整個 RAM數(shù)據(jù)的讀出芯片允許在讀過程中用復位信號中止讀取即可以不讀后面不需要的字節(jié)以減少 讀取時間 Convert T 溫度轉(zhuǎn)換 [44H] 收到此指令后芯片將進行一次溫度轉(zhuǎn)換將轉(zhuǎn)換的溫度值放入 RAM 的第 12 地址此后由于芯片忙于溫度轉(zhuǎn)換處理當控制器發(fā)一個讀時間隙時總線上輸出 0當儲存工作完成時總線將輸出 1在寄生工作方式時必須在發(fā)出此指令后立刻超用強上拉并至少保持 500MS 來維持芯片工作 DS18B20 復位及應答關系示意圖 DS18B20 復位及應答關系示意圖每一次通信之前必須進行復位復位的時間等待時間回應時間應嚴格按時序編程 DS18B20 讀寫時間隙 DS18B20 的數(shù)據(jù)讀寫是通過 時間隙處理位和命令字來確認信息交換的 寫時間隙寫時間隙分為寫 0和寫 1時序如圖在寫數(shù)據(jù)時間隙的前 15uS 總線需要是被控制器拉置低電平而后則將是芯片對總線數(shù)據(jù)的采樣時間采樣時間在 1560uS 采樣時間內(nèi)如果控制 器將總線拉高則表示寫 1 如果控制器將總線拉低則表示寫 0 每一位的發(fā)送都應該有一個至少 15uS 的低電平起始位隨后的數(shù)據(jù) 0 或 1 應該在 45uS 內(nèi)完成整個位的發(fā)送時間應該保持在 60120uS 否則不能保證通信的正常 讀時間隙時控制時的采樣時間應該更加的精確才行讀時間隙時也是必須先由主機產(chǎn)生至少 1uS 的低電平表 示讀時間的起始隨后在總線被釋放后的 15uS中 DS18B20會發(fā)送內(nèi)部數(shù)據(jù)位這時控制如果發(fā)現(xiàn)總線為高電平表示讀出 1如果總線為低電平則表示讀出數(shù)據(jù) 0每一位的讀取之前都由控制器加一個起始信號注意如圖所示必須在讀間隙開始的 15uS 內(nèi)讀取數(shù)據(jù)位才可以保證通信的正確在通信時是以 8 位 0 或 1 為一個字節(jié)字節(jié)的讀或?qū)懯菑母呶婚_始的即A7 到 A0 字節(jié)的讀寫順序也是自上而下的 讀時間隙 圖 315 DS1302 和 DS18B20 實際連接圖 35 時鐘電路 DS1302 時鐘電路工作原理是 DS1302 在每次進行讀寫程序前都必須初始化先把 SCLK 端置 0 接著把 RST 端置 1最后才給予 SCLK脈沖讀寫時序如下圖 317所示考察 DS1302的控制字此控制字的位 7 必須置 1 若為 0 則不能把對 DS1302 進行讀寫數(shù)據(jù)對于位 6 若對程序進行讀寫時 RAM 1 對時間進行讀寫時 CK 0 位 1 至位 5 指操作單元的地址位 0 是讀寫操作位進行讀操作時該位為 1該位為 0則表示進行的是寫操作控制字節(jié)總是從最低位開始輸入輸出的表 33 為 DS1302 的日歷時間寄存器內(nèi)容 CH 是時鐘暫停標志位當該位為 1 時時鐘振蕩器停止 DS1302 處于低功耗狀態(tài)當該位為 0 時時鐘開始運行 WP 是寫保護位在任何的對時鐘 和 RAM 的寫操作之前 WP 必須為 0 當 WP 為1 時寫保護位防止對任一寄存器的寫操作 系統(tǒng)設計的時候?qū)崿F(xiàn)了時間和鬧鐘可以調(diào)節(jié)并有鬧鐘提示功能不僅有主電源還添加了備用電源備用電源實現(xiàn)了時鐘的掉電正常運行功能實現(xiàn)的原理是備用電源使芯片的晶振在沒有主電源供電時起振時鐘依然運行所以時間沒有停止主電源開啟時液晶顯示出正確的時間和鬧鐘 利用芯片本身的閏年補償功能和月小與 31 天時可以自動調(diào)整功能加上星期自動調(diào)整函數(shù)實現(xiàn)時間的正確運行和顯示 把鬧數(shù)據(jù)寫入芯片中的 RAM區(qū)并實時讀出當前的時間若 2者是想等的則鬧鐘來臨驅(qū)動蜂鳴器發(fā)出提示 聲音對 RAM 寫入不同的鬧鐘數(shù)據(jù)實現(xiàn)了鬧鐘的調(diào)節(jié) 關于 DS1302 DS1302是美國 DALLAS公司推出的一種高性能低功耗的實時時鐘芯片附加 31 字節(jié)靜態(tài) RAM采用 SPI三線接口與 CPU進行同步通信并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號和 RAM 數(shù)據(jù)實時時鐘可提供秒分時日星期月和年一個月小與 31 天時可以自動調(diào)整且具有閏年補償功能工作電壓寬達25 ~ 55V 采用雙電源供電主電源和備用電源可設置備用電源充電方式提供了對后電源進行涓細電流充電的能力各引腳的功能為 Vcc1 主電源 Vcc2 備份電源當 Vcc2 Vcc102V 時由 Vcc2 向 DS1302 供電當 Vcc2 Vcc1 時由 Vcc1 向 DS1302 供電 SCLK 串行時鐘輸入控制數(shù)據(jù)的輸入與輸出 IO 三線接口時的雙向數(shù)據(jù)線 CE 輸入信號在讀寫數(shù)據(jù)期間必須為高該引腳有兩個功能第一 CE 開始控制字訪問移位寄存器的控制邏輯其次 CE 提供結束單字節(jié)或多字節(jié)數(shù)據(jù)傳輸?shù)姆椒? DS1302 有下列幾組寄存器 DS1302 有關日歷時間的寄存器共有 12 個其中有 7 個寄存器讀時 81h~ 8Dh 寫時 80h~ 8Ch 存放的數(shù)據(jù)格式為 BCD 碼形式如所示 DS1302 寄存器小時寄存 器 85h 84h 的位 7 用于定義 DS1302 是運行于 12 小時模式還是 24 小時模式當為高時選擇 12 小時模式在 12 小時模式時位 5 是當為 1 時表示 PM在 24小時模式時位 5是第二個 10小時位秒寄存器 81h80h的位 7定義為時鐘暫停標志 CH當該位置為 1時時鐘振蕩器停止 DS1302處于低功耗狀態(tài)當該位置為 0 時時鐘開始運行 控制寄存器 8Fh 8Eh 的位 7 是寫保護位 WP 其它 7 位均置為 0在任何的對時鐘和 RAM的寫操作之前 WP位必須為 0當 WP位為 1時寫保護位防止對任一寄存器的寫操作 DS1302 有關 RAM 的地址 DS1302 中附加 31 字節(jié)靜態(tài) RAM 的地址如所示 DS1302RAM 的地址 C1H C0H 00FFh C3H C2H 00FFh C5H C4H 00FFh FDH FCH 00FFh 讀寫時序說明 DS1302 是 SPI 總線驅(qū)動方式它不僅要向寄存器寫入控制字還需要讀取相應寄存器的數(shù)據(jù)要想與 DS1302 通信首先要先了解 DS1302 的控制字 DS1302 控制字如控制字總是從最低位開始輸出在控制字指令輸入后的下一個 SCLK 時鐘的上升沿時 數(shù)據(jù)被寫入 DS1302數(shù)據(jù)輸入從最低位 0位開始同樣在緊跟 8位的控制字指令后的下一個 SCLK脈沖的下降沿讀出 DS1302的數(shù)據(jù)讀出的數(shù)據(jù)也是從最低位到最高位數(shù)據(jù)讀寫時序如 DS1302 的控制字 DS1302 單字節(jié)讀寫 電路原理圖 電路原理圖 DS1302 與單片機的連接也僅需要 3 條線 CE 引腳SCLK 串行時鐘引腳 IO串行數(shù)據(jù)引腳 Vcc2為備用電源外接 32768kHz晶振為芯片提供計時脈沖鍵用于輸入新的時間或新的鬧鐘時間作為一種結構化的程序設計語言 C 語言的特點就是可以使你盡量少地對硬件進行操作具有很強的功能性結構性和可移植性常常被優(yōu)選作為單片機系統(tǒng)的編程語言 用 C 編寫 程序比匯編更符合人們的思考習慣開發(fā)者可以擺脫與硬件無必要的接觸更專心的考慮功能和算法而不是考慮一些細節(jié)問題這樣就減少了開發(fā)和調(diào)試的時間 C 語言具有良好的程序結構適用于模塊化程序設計因此采用 C 語言設計單片機應用系統(tǒng)程序時首先要盡可能地采用結構化的程序設計方法將功能模塊化由不同的模塊完成不同的功能這樣可使整個應用系統(tǒng)程序結構清晰易于調(diào)試和維護不同的功能模塊分別指定相應的入口參數(shù)和出口參數(shù)對于一些要重復調(diào)用的程序一般把其編成函數(shù)這樣可以減少程序代碼的長度又便于整個程序的管理還可增強可讀性和移植性 void main void 此處省略了部分語句 while 1 Get1302 time_data_buff 讀取當前時間 ReadTemperature 獲取當前溫度 getkeyvalue 獲取按鍵值 keydeal 鍵盤處理 isd_key_report 調(diào)用報時函數(shù) integerjudge 調(diào)用整點判斷函數(shù) integer_report 調(diào)用整點報時函數(shù) alarm_clock 調(diào)用鬧鐘判斷函 數(shù) night 調(diào)用夜晚判斷函數(shù) show 調(diào)用顯示函數(shù) 41 主程序流程圖 圖 42 鍵值處理流程圖 42 按鍵處理程序 根據(jù)接收的鍵值做相應的程序處理程序見附件程序 ⑴夜晚后沒有鍵按下過一段時間則關閉 LCD ⑵在蜂鳴器響時有鍵按下則取消響聲 ⑶模式鍵按下若模式值 1 則 3 模式值若模式值 3 則 1 模式值 ⑷模式 1時按修改鍵則顯示模式 2可以對時間進行修改模式 3時按修改鍵則顯示模式 4 可以對鬧鐘進行修改以下是 4 鐘模式下的鍵值處理 在模式 1 下液晶顯示當前的日期時間溫度 鬧鐘的個數(shù)此時只有按下模式鍵和修改鍵才是有效鍵按下模式鍵則顯示模式 3按下修改鍵則進入模式 2顯示具體顯示原理見液晶顯示部分程序說明 在模式 2下按左右鍵則改變時間數(shù)據(jù)臨時儲存變量數(shù)組 time_data_temp[7]數(shù)組下標的值按下上下鍵則修改對應 time_data_temp[7]相應元素的值按取消鍵則回到模式 1 按 OK 鍵則把時間數(shù)據(jù)臨時儲存變量數(shù)組 time_data_temp[7]的值給 time_data_buff[7]同時星期調(diào)整把數(shù)據(jù)送到 DS1302 中 模式 3下顯示鬧鐘 1鬧鐘 2鬧鐘 3的值和開關狀態(tài)只有修改 鍵左鍵時有效的按下則變?yōu)槟J?4 模式 4 下顯示鬧鐘的設置鬧鐘時間變量 alarm_data_ascii[12]左右鍵改變數(shù)組的下標上下鍵改變數(shù)組對應元素的值按下取消鍵則回到模式 3 按下 OK 鍵則把鬧鐘數(shù)據(jù)寫到 DS1302 中模式回到模式 3 43 整點報時程序 本系統(tǒng)設計時實現(xiàn)實時報時和整點報時功能限于篇幅僅對整點報時進行說明按照語音芯片的工作原理我先把語音錄到芯片中然后用軟件分析出每一段語音的具體地址建立數(shù)組 code unsigned int voiceaddress[]數(shù)組中保存的是地址值調(diào)用制定地址播放函數(shù) void isd_setplay uint suint e 就可以播放指定地址聲音 整點報時播報內(nèi)容是滴滴聲現(xiàn)在時間 xx 點整程序設計如下先判斷整點標志位 integerreportf 置 1 則初始化語音芯片整點報時切換變量 integerturn 置 0 使 integerturn 遞增控制播放流程的開始到結束 44 液晶顯示程序 Nokia5110液晶顯示原理比較簡單先對它進行初始化之后使其在 4種模式下顯示不同的內(nèi)容當模式切換時顯示的內(nèi)容將改變例如當前為模式 1 按下模式鍵模式更改為模式 3顯示內(nèi)容變?yōu)槟J?3的內(nèi)容各個模式下的顯 示內(nèi)容和例子請參看硬件部分 Nokia5110 液晶顯示說明程序見附件程
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1