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

正文內(nèi)容

基于單片機的簡易燈光時鐘設(shè)計畢業(yè)論文(帶程序)(編輯修改稿)

2025-06-19 21:05 本頁面
 

【文章內(nèi)容簡介】 02的引腳功能圖 引腳號 引腳名稱 功能 1 VCC2 主電源 2, 3 X1, X2 振蕩源,外接 32768HZ 晶振 4 GND 地線 5 RST 復(fù)位 /片選線 6 I/O 串行數(shù) 據(jù)輸入 /輸出端(雙向) 7 SCLK 串行數(shù)據(jù)輸入端 8 VCC1 后備電源 圖 DS1302 引腳功能表 在 中,最高位控制字(第七位)必須是一個合乎邏輯的,即必須為邏輯 1,第六位控制字為 0是日歷時鐘對數(shù)據(jù)的訪問,第六位是 1表示存取 RAM 數(shù)據(jù),第五位地址到第一位( A4A0)表示指針指向操作單元地址,電平 1 或 0分別表示寫操作是讀操作。 圖 DS1302 控制字 DS1302 共有 12 個寄存器,其中有 7 個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為 BCD 碼形式,其日歷、時間寄存器及 其控制字見表 2,其中奇數(shù)為讀操作,偶數(shù)為寫操作。 總共有 12 個寄存器 DS1302,與日歷 ,時鐘相關(guān)寄存器共 7 個,都存儲為BCD 格式,日歷,時鐘寄存器和相關(guān)聯(lián)的控制字的數(shù)據(jù)位如表 2 所示,其特征 10 在于所述奇數(shù)讀操作,寫操作是偶數(shù)。 表 2 DS1302 的日歷、時鐘寄存器及其控制字 寄存器名 命令字 取值 范圍 各位內(nèi)容 寫操作 讀操作 7 6 5 4 3 2 1 0 秒寄存器 80H 81H 0059 CH 10秒 秒 分鐘寄存器 82H 83H 0059 0 10分 分 小時寄存器 84H 85H 0112或 0023 12/ 24 0 10 時 時 AM/PM 日期寄存器 86H 87H 1— 31 0 10日 日 月份寄存器 88H 89H 0112 0 0 0 10 月 周日寄存器 8AH 8BH 0107 0 0 0 0 0 周日 年份寄存器 8CH 8DH 0099 10年 年 從表 2 我們可以發(fā)現(xiàn),小時寄存器的第七位為 1 是 12 小時計時模式,在 12小時計時模式下,第五位為高電平表示 AM,低電 平表示 PM,第七位為 0 是 24小時模式,這是位 5 為第二個十小時位標(biāo)志。 暫停位位于秒寄存器的第七位,當(dāng)該位被設(shè)置為 1 時,時鐘振蕩器停止工作,然后 DS1302 工作在低功率模式,該位為 0 時,時鐘正常運行。 控制寄存器地址是 8FH, 8EH,其第七位是寫保護位,其余七位均要置 0,在對時鐘進行的任何寫操作時,寫保護位 WP 必須是 0,否則,寫保護位禁止任何一個寄存器進行寫操作。 溫度檢測模塊設(shè)計 本設(shè)計還帶有一個溫度檢測的功能,系統(tǒng)可以通過讀取 DS18B20 的溫度數(shù)據(jù)并在 LCD1602 上顯示,使整個時鐘的功能更加豐 富。 溫度傳感器工作原理 溫度傳感器 DS18B20 測溫在 55 至 +125 攝氏度范圍內(nèi),具有 12位的精度。它有 ,可設(shè)置存儲在 EEPROM中,用戶自定義的報警溫度在掉電后仍然可以保存。另外,多個溫度傳感器可以并聯(lián)連接,但只需要使用 CPU 上的一個端口就可以與溫度傳感器電路進行通信,這樣微控制器端口占用最少。 它可以節(jié)省大量的端口和邏輯電路就能構(gòu)成溫度測量系統(tǒng)。 圖 是 DS18B20 的引腳圖。 圖 DS18B20 引腳圖 11 我在實驗中發(fā)現(xiàn),當(dāng)使用 DS18B20, VCC電壓應(yīng)保持在 5V,否則,如果電壓太低,降低了溫度傳感器的精度。 而且,溫度傳感器從測量溫度結(jié)束后,將溫度傳出到轉(zhuǎn)換到數(shù)字量的時候,需要一定的延時時間,否則會導(dǎo)致轉(zhuǎn)換錯誤,總是顯示一個時間不動。 DS18B20 硬件電路設(shè)計 GND1DQ2VCC3U3DS18B20+5V10kR5+5V 圖 DS18B20 溫度檢測電路圖 如圖 所示的是 DS18B20 的硬件設(shè)計, DQ 作為溫度傳感器 DS18B20 數(shù)據(jù)輸出端口,單片機通過檢測可以實時輸出溫度值的數(shù)據(jù), 由于該溫度傳感器是單線通信,所以當(dāng)發(fā)送數(shù)據(jù)時為低電平有效,接收數(shù)據(jù)是為高電平有效, 即輸出邏輯 1,但是,在接收狀態(tài)下,必須外接上拉電阻將其拉為高電平,才能正常輸出邏輯 1. 語音模塊設(shè)計 語音模塊設(shè)計采用 NY3P035芯片,該芯片內(nèi)部含有一個 ROM表。單片機通過對該芯片發(fā)送序列的脈沖信號來查找該 ROM 的地址,以此來發(fā)出聲音。 圖 語音芯片引腳圖 單片機控制原理是:先發(fā)送一個復(fù)位脈沖到 RST( Rest)腳,接著發(fā)送 10 個脈沖到 DATA 腳。芯片即刻工作,播放第十段的聲音;如果需要播放第五段的聲音,則是:先發(fā)送一個復(fù)位脈沖到 REST 腳,接著發(fā)送 5 個脈沖到 DATA 腳。芯片即刻工作,播放第 5 段的聲音; 12 第四章 .系統(tǒng)軟件設(shè)計 系統(tǒng)軟件總體設(shè)計 開 始系 統(tǒng) 初 始 化系 統(tǒng) 顯 示 相 關(guān)時 間 溫 度 信 息是 否 按 下 按 鍵按 鍵 掃 描 子 程 序否是讀 取 時 鐘 芯 片的 相 關(guān) 時 間 信 息讀 取 溫 度 參 數(shù)是 否 和 設(shè) 定的 鬧 鐘 時間 一 致驅(qū) 動 鬧 鐘 發(fā) 聲是否 圖 主程序流程圖 主程序流程圖如圖 所示,首先系統(tǒng)經(jīng)過初始化,清除系統(tǒng)中原有的一些冗余信息后,讀取時鐘芯片 DS1302 的內(nèi)部相關(guān)信息,例如:年、月、日等時間參數(shù),緊接著判斷當(dāng)前信息是不是和設(shè)定的鬧鐘信息一致,如果是的話,單片機就發(fā)出驅(qū)動信號驅(qū)動蜂鳴器發(fā)出聲音,如果不是,則單片機將讀取溫度傳感器 DS18B20 的相關(guān)信息,然后將讀取的時 間信息和溫度信息傳入 LCD1602 13 進行顯示,單片機在每個循環(huán)時都會檢測是否有用戶按鍵,如果有按鍵的話,將自動跳轉(zhuǎn)到相應(yīng)的子程序。 開 始復(fù) 位 端 變 高 啟 動 一次 數(shù) 據(jù) 傳 送 工 作寫 命 令 字 節(jié) 一 位SCLK發(fā) 脈 沖夠 8次 嗎 ?寫 數(shù) 據(jù) 字 節(jié) 一 位SCLK發(fā) 脈 沖夠 8次 嗎 ?復(fù) 位 端 變 低結(jié) 束否是否是 圖 時鐘模塊子函數(shù)程序流程圖 時鐘模塊的流程圖如圖 所示,首先先讓時鐘芯片的復(fù)位引腳置高, 然后開始數(shù)據(jù)傳輸,然后寫一個指令字節(jié),然后發(fā)送串行時鐘脈沖信號,一直循環(huán),直到發(fā)送了 8 個命令字節(jié)為止。當(dāng)發(fā)送完 8 個命令字節(jié)時,寫數(shù)據(jù)進時鐘芯片,首先寫入一位數(shù)據(jù)字節(jié),然后給 SCLK 引腳發(fā)送脈沖,一直循環(huán)寫入 8 次,這 樣數(shù)據(jù)寫入完成,最后將復(fù)位引腳拉為低電平,這樣就可以完成時鐘芯片的一次操作。 14 按 鍵 1 是 否按 下按 鍵 2 是 否按 下按 鍵 3 是 否按 下時 間 設(shè) 定 鬧 鈴 設(shè) 定切 換 對 應(yīng) 菜單增 加 相 應(yīng) 值YNNYYYNY按 鍵 掃 描 子函 數(shù)松 手 檢 測松 手 檢 測鬧 鈴 標(biāo) 志 位清 零Yg F u n c t i o n c ou n t = 0按 鍵 4 是 否按 下Yg F u n c t i o n co u n t = = 2 ?g F u n c t i o n c ou n t = = 3 ?N Ng F u n c t i o n c ou n t = = 1 ?Ng F u n c t i o n c o u n t= = 0 amp。 amp。 B e e p = = 0 ?g F u n c t i o n c ou n t + +N清 除 屏 幕 顯示松 手 檢 測減 少 相 應(yīng) 值 松 手 檢 測N結(jié) 束g F u n c t i o n c ou n t = = 4 ?N重 置 時 間Y圖 按鍵掃描程序流程圖 鍵盤掃描程序流程圖如圖 所示,當(dāng)進入到按鍵掃描子函數(shù)后,首先判斷按下的是哪個按鍵,如果是按鍵 1 的話,則檢測單片機是否處于鬧鐘的觸發(fā)狀態(tài),是的話,將鬧鐘標(biāo)志位清 0,不是 0 的話,那么變量 gFunctioncount加 1,進入時鐘設(shè)置界面,如果是的話重新檢測按鍵,如果是按鍵 2的話,則用于選定不同的所需的時間參數(shù),按鍵 3和按鍵 4實現(xiàn) 時間參數(shù)的確定,如果仍然是按鍵 1 時,則變量 gFunctioncount 加 1,進入鬧鐘設(shè)置模式,此時通過按鍵確定并設(shè)置鬧鐘參數(shù)。繼續(xù)按鍵 1,則 gFunctioncount加 1,進入復(fù)位模式,按下確認(rèn)鍵,則使當(dāng)前時間參數(shù)全部復(fù)位。并且 gFunctioncount 清 0,以及清除屏幕顯示,最后跳出設(shè)置功能。按鍵 2的功能是切換對應(yīng)菜單,按鍵 3是用于增加相應(yīng)值,按鍵 4是用于減少相應(yīng)值。 15 調(diào) 用 自 定 義字 庫設(shè) 置 D D R A M 地址 , 在 第 一行 顯 示設(shè) 置 顯 示 數(shù)據(jù) 首 地 址循 環(huán) 量 設(shè) 置取 字 符 代 碼循 環(huán) 完 ?設(shè) 置 D D R A M 地址 , 在 第 一行 顯 示設(shè) 置 顯 示 數(shù)據(jù) 首 地 址循 環(huán) 量 設(shè) 置取 字 符 代 碼循 環(huán) 完 ?結(jié) 束 圖 LCD1602 初始化子程序函數(shù)流程圖 LCD1602 子 程序函數(shù)流程圖如圖 所示,首先先調(diào)用液晶自定義的字庫,設(shè)置好 DDRAM 地址后在第一行顯示,根據(jù)程序中的數(shù)據(jù),設(shè)置顯示數(shù)據(jù)的首地址,并設(shè)置循環(huán)量,在循環(huán)過程中不斷的取字符代碼直到終止,第二行的顯示過程同理,兩行顯示完畢后便結(jié)束子程序 16 開 始初 始 化DS18B20發(fā) 送 跳 過 ROM命 令 到DS18B20發(fā) 送 溫 度 轉(zhuǎn)換 命 令等 待 轉(zhuǎn) 換 完成初 始 化DS18B20發(fā) 送 跳 過 ROM命 令 到 18B20讀 取 溫 度 值到 緩 沖 區(qū)調(diào) 用 溫 度 處理子 程 序結(jié) 束 圖 溫度傳感器 DS18B20 溫度檢測子程序流程圖 溫度傳感器 DS18B20 溫度檢測子程序流程圖如圖 所示, 進入溫度讀取子函數(shù)時,首先初始化 DS18B20 溫度傳感器的參數(shù),單片機發(fā)送跳過 ROM 命令給 DS18B20,然后發(fā)送溫度轉(zhuǎn)換命令并且延時一定時間等待轉(zhuǎn)換完畢,等轉(zhuǎn)換完畢后單片機在再次初始化 DS18B20,發(fā)送跳過 ROM 命令,溫度到緩沖區(qū),最終溫度處理子程序調(diào)用達到存儲實時溫度的目的。 程序設(shè)計原理 軟件設(shè)計是基于硬件設(shè)計的基礎(chǔ)之上,首先要明確硬件設(shè)計的原理,區(qū)分哪些是需要硬件設(shè)計的,哪些是軟件設(shè)計的范疇,軟件設(shè)計要明確設(shè)計內(nèi)容的真正目的,設(shè)計程序最好要簡單明了,盡量減少多余的冗余信息,減少 CPU 的負(fù)擔(dān)。 17 軟件分析方面的任務(wù)是軟件設(shè)計的一個總體規(guī)劃。 從軟件的功能的角度可以分為兩大類:一類 是在軟件的設(shè)計,可以完成各種實質(zhì)性的功能,如測量,計算,顯示,打印,導(dǎo)出控制和通信,以及其他的監(jiān)控軟件,其目的是作為軟件調(diào)度軟件的組織來執(zhí)行模塊的作用和運作之間的關(guān)系。這兩種類型的軟件設(shè)計方法都有其自身的特點,專注于算法的軟件設(shè)計,不斷提高軟件完成功能效率,以及與之密切相關(guān)的硬件,都有不斷變化的可能性,關(guān)鍵就在于我們設(shè)計者是怎么進行操作的。 軟件需求分析的任務(wù),應(yīng)該將執(zhí)行模塊一一的列表,定義每個執(zhí)行模塊的輸入和輸出,并繪制了相應(yīng)的程序流程圖,并制定可執(zhí)行模塊的引腳和功能 。 18 硬件調(diào)試 在制作硬件電路之前,我們先根據(jù)實際需要的功能劃分硬件模塊,并且在 PROTEL 里面畫出其硬件原理圖和 PCB 圖,檢查無誤后開始先在萬用板上焊接,調(diào)試無誤后在腐蝕板上制作焊接。 在本萬年歷的硬件調(diào)試中遇到過許多常見的問題,現(xiàn)在回想這類問題,只要在當(dāng)時認(rèn)真一些,多思考,多查下資料,這些問題都是可以避免的,以下為主要的問題: 問題 1:剛開始的時候以為單片機 I/O 口可以直接驅(qū)動蜂鳴器發(fā)出聲響,后來調(diào)試了很久都不能發(fā)出聲音。 解決:經(jīng)過多方面的查找相關(guān)資料,如進入圖書館查找歷年來的設(shè)計資 料,或者進入相關(guān)資源的數(shù)據(jù)庫,或者在商家處尋求相關(guān)芯片的 PDF 資料文件,最終我知道了單片機的 I/O 口給蜂鳴器提供不了足夠的驅(qū)動電流,所以我們采用三極管放大器來將電流放大,用以驅(qū)動蜂鳴器工作,實驗證明,把三極管放大器加在系統(tǒng)上后蜂鳴器就可以正常工作,發(fā)出聲音了。 問題 2:單片機一直讀取 DS18B20 的溫度總是錯誤,顯示的時候不是亂碼就是總顯示 24 攝氏度或者 85。 解決 : 經(jīng)過查找芯片手冊,知道 DS18B20 的輸出端是漏極開路結(jié)構(gòu),需要加上拉電阻才能讀取數(shù)據(jù)正常 . 問題 3:本設(shè)計要實現(xiàn)語言實時報時,但是在用萬 用版做出來的時候,不管怎么做,都沒有語音發(fā)出聲音。 解決:剛開始懷疑是對語音芯片設(shè)計有問題,但是通過查找芯片手冊,發(fā)現(xiàn)對于語言報時模塊中的核心芯片設(shè)計沒有任何問題,接著懷疑是程序方面有問
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1