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

正文內(nèi)容

基于單片機的電子鐘課程畢業(yè)設(shè)計論文(編輯修改稿)

2025-07-24 20:19 本頁面
 

【文章內(nèi)容簡介】 利用了人眼的暫留效應(yīng)和發(fā)光二極管發(fā)光時間的長短,發(fā)光的亮度等因素。靜態(tài)顯示,是由微型計算機一次輸出顯示模型后,就能保持該顯示結(jié)果,直到下次發(fā)送新的顯示模型為止。靜態(tài)顯示驅(qū)動程序簡單,且CPU占用率低,但每個LED數(shù)碼管需要一個鎖存器來鎖存每一個顯示位的筆段代碼,硬件開銷大,僅適合顯示位數(shù)較少的場合。為了在顯示部分節(jié)省單片機I/O口,故采用靜態(tài)顯示方式。74LS164是8位移位寄存器,應(yīng)用該芯片驅(qū)動LED做顯示部分,其優(yōu)點在于連線簡單,節(jié)省單片機I/O口,軟件編程容易。關(guān)于74LS164的具體編程方法,[14][15]。 顯示面板LED分布圖 按鍵電路設(shè)計根據(jù)功能需要,本時鐘需要設(shè)置以下功能鍵:校對選擇鍵,加1操作鍵,減1操作鍵,顯示日期鍵,顯示溫度鍵,鬧鈴開關(guān)鍵。按照鍵盤與CPU的連接方式可分為獨立式鍵盤和矩陣式鍵盤。獨立式鍵盤是各個按鍵相互獨立,每個按鍵占用一個I/O口線,每根I/O口線上的按鍵不會影響其他I/O口上按鍵工作狀態(tài)。獨立式鍵盤電路配置靈活,軟件結(jié)構(gòu)簡單,但每個按鍵必須占用一根I/O口,在按鍵數(shù)量較多時,I/O口線浪費較大,且電路結(jié)構(gòu)復(fù)雜。矩陣式鍵盤適合按鍵較多時使用。由于本設(shè)計的電子鐘最多需要7個按鍵,若采用矩陣式鍵盤時會有按鍵浪費,故采用的是獨立式鍵盤。對于內(nèi)置了上拉電阻的I/O引腳來說,外接上拉電阻沒有意義[15][16]。 鍵盤電路其中KKK7為帶自鎖按鍵,每次按下后,、從高電平被拉至低電平。只有再次按下,按鍵彈出,與之連接的單片機管腳才會重新被拉回高電平。KKKK6鍵為自動復(fù)位按鍵。每次按下后,會自動彈出。單片機管腳只有在按鍵按下時為低電平,按鍵彈出后重新恢復(fù)高電平。 按鍵功能表按鍵鍵名功能屬性K1Calendar顯示日歷自鎖K2T顯示溫度自鎖K3FUN功能選擇自動復(fù)位K4UP數(shù)值加一操作自動復(fù)位K5DOWN數(shù)值減一操作自動復(fù)位K6Enter/Snooze確認鍵/貪睡自動復(fù)位K7Alarm鬧鈴開關(guān)自鎖按鍵操作說明如下:K1鍵:該鍵為帶自鎖按鍵,在正常顯示時間狀態(tài)下,每次將按鍵按下, LED數(shù)碼管將顯示日期;再次按下,按鍵彈出,重新顯示時間。K2鍵:該鍵為帶自鎖按鍵,在正常顯示時間狀態(tài)下,每次將按鍵按下,LED數(shù)碼管將顯示環(huán)境溫度;再次按下,按鍵彈出,重新顯示時間。K3鍵:該鍵為自動復(fù)位鍵,在正常顯示時間狀態(tài)下,第一次按下后,開始校對小時,以后每次按下都會分別進入對分、秒、鬧鈴時、鬧鈴分、年、月、日的校對狀態(tài)。K4鍵:該鍵為自動復(fù)位鍵,在校對狀態(tài)下,每次按動該鍵,都會使相應(yīng)校對位進行加1操作。例如:校對小時狀態(tài),每按一下,小時位加1,當加至小時最高值23時,再按K4鍵,小時位回0。調(diào)分、秒、年、月、日與皆之相同,只是各位最高值不同。K5鍵:該鍵為自動復(fù)位鍵,與K4鍵類似,不同之處是該鍵每次按下將使相應(yīng)校對位進行減1操作。K6鍵:該鍵為自動復(fù)位鍵,在校對狀態(tài)下,按下該鍵,從校對狀態(tài)返回時間顯示狀態(tài);在響鈴狀態(tài)下,按下該鍵,鬧鈴進入貪睡狀態(tài)。K7鍵:該鍵為帶自鎖按鍵,按下后鬧鈴開啟,彈出后鬧鈴關(guān)閉。 鬧鈴電路設(shè)計鬧鈴音樂可以直接采用蜂鳴器鬧鈴,如當前時刻與鬧鈴時間相同,單片機向蜂鳴器送出高電平,蜂鳴器發(fā)聲。采用蜂鳴器鬧鈴結(jié)構(gòu)簡單,控制方便,但是發(fā)出的鬧鈴聲音單一。也可以在編程的時候編寫一段音樂程序,待鬧鈴時間到時,調(diào)用該音樂程序給揚聲器,便響起音樂。不過該方法只能做一些簡單音樂,并且音樂程序會占用很多單片機存儲資源。還有一種方法是采用錄音放音芯片1420做鬧鈴,先對錄放音設(shè)備錄入一段音樂,當?shù)皆O(shè)定時間時,單片機控制錄放音設(shè)備放音。采用錄放音電路,鈴聲可以是預(yù)先設(shè)定的一段自己喜歡的音樂,符合電器設(shè)備人性化的要求。且1420芯片可以分段錄音,還具有語音報時功能。另外,也可以購置一塊音樂集成電路,加置在單片機和蜂鳴器之間,當單片機連接鬧鈴電路的管腳送出高電平時,音樂集成電路會給蜂鳴器特定脈沖,使蜂鳴器發(fā)聲。此類集成電路體積較小,使用方便,不足的是音樂簡單、單一。鬧鈴的音樂不是本設(shè)計中的重點,故采用最簡單的方法,占用單片機一根I/, 。,S9012的發(fā)射極和集電極導(dǎo)通,使蜂鳴器發(fā)聲。當響鈴標志位為“1”時,使蜂鳴器U11發(fā)出聲音[16]。 鬧鈴電路 復(fù)位電路設(shè)計復(fù)位是單片機的初始化操作,以便使CPU和系統(tǒng)中其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。除了進入系統(tǒng)的正常初始化之外,當單片機系統(tǒng)在運行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,也可按復(fù)位鍵重新啟動。復(fù)位后,PC內(nèi)容初始化為0000H,使單片機從0000H單元開始執(zhí)行程序。單片機復(fù)位后,除了PC之外,還對片內(nèi)的特殊功能寄存器有影響。單片機復(fù)位后不影響內(nèi)部RAM的狀態(tài)[17]。89C51單片機復(fù)位信號的輸入端是RST引腳,高電平有效。其有效時間持續(xù)24個時鐘周期(2個機器周期)以上。RST端的外部復(fù)位電路有兩種操作方式:上電自動復(fù)位和按鍵手動復(fù)位。上電自動復(fù)位是利用電容儲電來實現(xiàn)的,(a)所示。上電瞬間,RC電路充電,RST端出現(xiàn)正脈沖,隨著充電電流的減少,RST的電位逐漸下降。按鍵手動復(fù)位有電平方式和脈沖方式兩種。按鍵電平復(fù)位是相當于RST端通過電阻接高電平,(b)所示;按鍵脈沖復(fù)位,利用RC微分電路產(chǎn)生正脈沖,(c)所示[12]。出于應(yīng)用方便,本設(shè)計采用按鍵電平復(fù)位電路。實際電路請參見附錄C,復(fù)位按鍵為K8。 單片機寄存器的復(fù)位狀態(tài)表寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTCON00HACC00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HPP3FFHSCON00HIP000000BSBUF不定IE000000BPCON0B(NMOS)TMOD00H00000B(CHMOS) 上電復(fù)位和按鍵復(fù)位電路第四章 電子時鐘軟件設(shè)計C51單片機可以應(yīng)用匯編語言和C語言進行編程。,匯編語言與機器指令一一對應(yīng)所以用匯編語言編寫的程序在單片機里運行起來效率較高。C語言程序可讀性高,更便于理解。本設(shè)計使用C語言編程。 主程序設(shè)計第一次上電,系統(tǒng)先進行初始化, LED顯示初始時間“14:28:00”,并開始走時。初始日期為2008年5月12日,此刻若按K1鍵,LED顯示“080512”。單片機依次開始調(diào)用鍵盤掃描子程序、DS1302子程序、DS18B20子程序、鬧鈴子程序,經(jīng)過延時,返回程序開頭循環(huán)運行。 多功能電子鐘主程序流程圖 子程序設(shè)計 實時時鐘日歷子程序設(shè)計該程序主要實現(xiàn)對DS1302寫保護、充電,對年、月、日、時、分、秒等寄存器的讀寫操作。在讀寫操作子程序中都執(zhí)行了關(guān)中斷指令,因為在串行通信時對時序要求比較高,而且在此是用I/O口軟件模擬串行時鐘脈沖,所以在通信過程中最好保證傳輸?shù)倪B續(xù)性,不要允許中斷。 實時時鐘日歷子程序流程圖DS1302每次上電時自動處于暫停狀態(tài),必須把秒寄存器的位7置位0,時鐘才開始計時。如果DS1302一直沒有掉電,則不存在此問題。在進行寫操作時,需要先解除寫保護寄存器的“禁止”狀態(tài)。當用多字節(jié)模式進行操作時,必須寫夠8字節(jié)[18]。源程序見附錄A。 環(huán)境溫度采集子程序設(shè)計DS18B20是1—wire單線器件,它在一根數(shù)據(jù)線上實現(xiàn)數(shù)據(jù)的雙向傳輸,這就需要一定的協(xié)議來對讀寫數(shù)據(jù)提出嚴格的時序要求,而AT89C51單片機并不支持單線傳輸。因此,必須采用軟件的方法來模擬單線的協(xié)議時序。主機操作單線器件DS18B20必須遵循下面的順序。1. 初始化單線總線上的所有操作均從初始化開始。初始化過程如下:主機通過拉低單線480μs以上,產(chǎn)生復(fù)位脈沖,然后釋放該線,進入RX接收模式。主機釋放總線時,會產(chǎn)生一個上升沿。單線器件DS18B20檢測到該上升沿后,延時15~60μs,通過拉低總線60~240μs來產(chǎn)生應(yīng)答脈沖。主機接收到從機的應(yīng)答脈沖后,說明有單線器件在線。2. ROM操作命令一旦總線主機檢測到應(yīng)答脈沖,便可以發(fā)起ROM操作命令。共有5位ROM操作命令。 DS18B20的ROM操作命令命令類型命令字節(jié)功能說明Raed Rom33H此命令讀取激光ROM中的64位,只能用于總線上單個DS18B20器件的情況,多掛則會發(fā)生數(shù)據(jù)沖突Match Rom(匹配ROM)55H 此命令后跟64位ROM序列號,尋址多掛接總線上的DS18B20。只有序列號完全匹配的DS18B20才能響應(yīng)后面的內(nèi)存操作命令,其他不匹配的將等待復(fù)位脈沖。此命令可用于單掛接或者多掛接總線。Skip Rom(跳過ROM)CCH此命令用于單掛接總線系統(tǒng)時,可以無需提供64位ROM序列號皆可運行內(nèi)存操作命令。如果總線上接多個DS18B20,并且在此命令后執(zhí)行讀命令,將會發(fā)生數(shù)據(jù)沖突。Search Rom(搜索ROM)F0H 主機調(diào)用此命令,通過一個排除法過程,可以識別出總線上所有器件的ROM序列號。Alarm Search(告警搜索)ECH 此命令流程圖和Search Rom命令相同,但是DS18B20只有在最近的一次溫度測量時滿足了告警觸發(fā)條件,才會響應(yīng)此命令。3. 內(nèi)存操作命令在成功執(zhí)行了ROM操作命令之后,才可以使用內(nèi)存操作命令。主機可以提供6種內(nèi)存操作命令。 DS18B20內(nèi)存操作命令命令類型命令字節(jié)功能說明Write Scratchpad(寫暫存器)4EH此命令寫暫存器中地址2~4的3個字節(jié)(TH、TL和配置寄存器)在發(fā)起復(fù)位脈沖之前,3個字節(jié)都必須要寫。Rrad Scratchpad(讀暫存器)BEH 此命令讀取暫存器內(nèi)容,從字節(jié)0一直讀取到字節(jié)8。主機可以隨時發(fā)起復(fù)位脈沖以停止此操作。Copy Scratchpad(復(fù)制暫存器)48H 此命令將暫存器中的內(nèi)容復(fù)制進E2RAM,以便將溫度告警觸發(fā)字節(jié)存入非易失內(nèi)存。如果在此命令后產(chǎn)生讀時隙,那么只要器件在進行復(fù)制就會輸出0,復(fù)制完成后,再輸出1。Convert T(溫度轉(zhuǎn)換)44H 此命令開始溫度轉(zhuǎn)換操作。如果在此命令后主機產(chǎn)生讀時隙,那么只要器件在進行溫度轉(zhuǎn)換就會輸出0,轉(zhuǎn)換完成后再輸出1。Recall E2(重調(diào)E2存儲器)B8H 將存儲在E2RAM中的溫度告警觸發(fā)值和配置寄存器值重新拷貝到暫存器中。此重調(diào)操作在DS18B20加電時自動產(chǎn)生。Read Power Supply(讀供電方式)B4H 主機發(fā)起此命令后的每個讀數(shù)據(jù)時隙內(nèi),DS18B20發(fā)信號通知它的供電方式:0為寄生電源方式,1為外部供電方式。4. 數(shù)據(jù)處理DS18B20要求有嚴格的時序來保證數(shù)據(jù)的完整。在單線DQ上,存在復(fù)位脈沖、應(yīng)答脈沖、寫“0”、寫“1”、讀“0”和讀“1”幾種信號類型。其中,除了應(yīng)答脈沖之外,均由主機產(chǎn)生。而數(shù)據(jù)位的讀和寫則是通過使用讀、寫時隙實現(xiàn)的。首先了解寫時隙。當主機將數(shù)據(jù)線從高電平拉至低電平時,產(chǎn)生寫時隙。有2種類型的寫時隙:寫“1”和寫“0”。所有寫時隙必須在60μs以上(即由高拉低后持續(xù)60μs以上),各個寫時隙之間必須保證最短1μs的恢復(fù)時間。DS18B20在DQ線變低后的15~60μs的窗口對DQ進行采樣,如果為高電平,就為寫“1”;如果為低電平,就為寫“0”。對于主機產(chǎn)生寫“1”時隙的情況,數(shù)據(jù)線必須先被拉低,然后釋放,在寫時隙開始后的15μs,允許DQ線拉至高電平。對于主機寫“0”時隙的情況,DQ線必須被拉至低電平且至少保持低電平60μs。再來了解讀時隙。當主機從DS18B20讀數(shù)據(jù)時,把數(shù)據(jù)線從高電平拉至低電平,產(chǎn)生讀時隙。數(shù)據(jù)線DQ必須保持低電平至少1μs,來自DS18B20的輸出數(shù)據(jù)在讀時隙下降沿之后15μs內(nèi)有效。因此,在此15μs內(nèi),主機必須停止將DQ引腳置低。在讀時隙結(jié)束時,DQ引腳將通過外部上拉電阻拉回至高電平。所有的讀時隙最短必須持續(xù)60μs,各個讀時隙之間必須保證最短1μs的恢復(fù)時間。 環(huán)境溫度采集子程序流程圖所有的讀寫時隙至少需要60μs,且每兩個獨立的時隙之間至少需要1μs的恢復(fù)時間。在寫時序中,主機將在拉低總線15μs內(nèi)釋放總線,并向DS18B20寫“1”。若主機拉低總線后能保持60μs的低電平,則向單總線器件寫“0”。DS18B20僅在主機發(fā)出讀時隙時才向主機傳輸數(shù)據(jù),所以,當主機向DS18B20發(fā)出讀數(shù)據(jù)命令后,必須馬上產(chǎn)生讀時隙,以便DS18B20能傳輸數(shù)據(jù)[13]。源程序見附錄A。 顯示子程序設(shè)計用74LS164驅(qū)動LED數(shù)碼管靜態(tài)顯示電路,編程也很容易。只要將需要顯示的數(shù)字編輯成對應(yīng)的BCD碼,逐位送入74LS164的A、B串行輸入端,數(shù)碼管將正常顯示。關(guān)鍵之處是要實現(xiàn)根據(jù)鍵值顯示不同的數(shù)字。為了方便實現(xiàn)按鍵顯示,程序中調(diào)用的都是各個標志位,通過判斷標志位的“真”、“假”來決定顯示的內(nèi)容。源程序見附錄A。 鍵盤掃描子程序單片機對鍵盤掃描的方法有隨機掃描方式、定時掃描方式和中斷掃描方式。在隨機掃描方式中,CPU完成某特定任務(wù)后,即執(zhí)行鍵盤掃描程序,以確定鍵盤有無按鍵輸入,然后根據(jù)按鍵功能轉(zhuǎn)去執(zhí)行相應(yīng)的操作。在執(zhí)行鍵盤按鍵規(guī)定的功能中不理睬鍵盤輸入。定時掃描方式與隨機掃描方式基本相同,只是利用CPU內(nèi)的定時中斷,每隔一定時間掃描有無按鍵被按下,鍵盤反應(yīng)速度較快,在處理按鍵功能過程中,可以通過鍵盤命令進行干預(yù),如取消、暫停等操作。前兩種掃描方式均會占用CPU大量時間。不管有沒有鍵入操作,CPU總要在一定的時間內(nèi)進行掃描,這對于單片機控制系統(tǒng)是很不利的[16]。
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1