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

正文內(nèi)容

智能用電管理器畢業(yè)設(shè)計畢業(yè)設(shè)計論文-資料下載頁

2025-06-22 07:36本頁面
  

【正文】 ,蜂鳴器的工作原理,當(dāng)電流、電壓、溫度高于設(shè)置的上限或是低于設(shè)置的下限時。而當(dāng)電流、電壓被控制在一個范圍內(nèi)時,單片機的P口就發(fā)停止發(fā)出信號,而使蜂鳴器停止報警。發(fā)光二極管的工作原理,當(dāng)電流、電壓、溫度高于設(shè)置的上限或是低于設(shè)置的下限時,使發(fā)光二極管發(fā)光。圖18 聲光報警電路 顯示模塊的設(shè)計 LCD顯示屏概述日常生活中,我們對液晶顯示器并不陌生。液晶顯示模塊已作為很多電子產(chǎn)品的通用器件,如在計算器、萬用表、電子表及很多家用電子產(chǎn)品中都可以看到,顯示的主要數(shù)字是數(shù)字、專用符號和圖形。在單片機的人機交流界面中,一般的輸出顯示方式有以下幾種:發(fā)光管、LED數(shù)碼管、液晶顯示器。發(fā)光管和LED數(shù)碼管比較常用,軟硬件都比較簡單。在單片機系統(tǒng)中應(yīng)用液晶顯示器作為輸出器件有以下幾個優(yōu)點:顯示質(zhì)量高:液晶顯示器每一個點在收到信號后就一直保持那種色彩和亮度,恒定發(fā)光,而不像陰極射線管顯示器(CRT)那樣需要不斷刷新亮點。因此,液晶顯示器畫質(zhì)高且不會閃爍。數(shù)字式接口:液晶顯示器都是數(shù)字式的,和單片機系統(tǒng)的接口更加簡單可靠,操作更加方面。體積小、質(zhì)量輕:液晶顯示器通過顯示屏上的電極控制液晶分子狀態(tài)來達到顯示的目的,在重量上比相同顯示面積的傳統(tǒng)顯示器輕得多。功耗低:相對而言,液晶顯示器的功耗主要消耗在其內(nèi)部的電極和驅(qū)動IC上,因而耗電量比其他顯示器少的多。 LCD顯示屏的工作過程如圖19,此次需要顯示年月日、時分秒、星期、溫度、電流值、電壓值、功率、工作狀況、開關(guān)定時時間等。顯示內(nèi)容繁多,所以經(jīng)計算,采用型號為LM6029的液晶顯示屏。液晶顯示器的工作原理是利用液晶的物理特性,在通電時導(dǎo)通,使液晶排列變得有秩序,使光線容易通過;不通電時,排列則變得混亂,阻止光線通過。 2012年01月02周一 12:00:+001℃有人開00:00 關(guān)00:00 圖19顯示內(nèi)容 圖20 液晶接口 鍵盤電路的設(shè)計鍵盤是單片機不可缺少的輸入設(shè)備,在單片機應(yīng)用系統(tǒng)中,常使用按鍵或鍵盤來控制系統(tǒng)的工作狀態(tài)或向系統(tǒng)內(nèi)部輸入數(shù)據(jù)。矩陣式鍵盤的按鍵設(shè)置在行、列焦點上,行、列線分別連接到按鍵開關(guān)的兩端,行線通過上拉電阻接+3V電源,無按鍵動作時,行線處于高電平,代表沒有鍵按下。當(dāng)有鍵按下時,行線電平狀態(tài)將由與此行線相連的列線電平?jīng)Q定。列線電平為低,則行線電平為低,反之亦然。這樣通過讀入輸入線的狀態(tài),就可以得知是否有鍵按下了。由于矩陣式鍵盤中行、列線為多鍵共用,各按鍵彼此將發(fā)生相互影響,所以必須將行、列線信號配合起來并作適當(dāng)處理才能確定按下鍵的位置。圖21 鍵盤電路 鍵盤的工作方式單片機應(yīng)用系統(tǒng)中,鍵盤掃描只是單片機的工作內(nèi)容之一。單片機在忙于各項工作任務(wù)時,如何兼顧鍵盤的輸入,取決于鍵盤的工作方式。鍵盤工作方式的選取應(yīng)根據(jù)實際應(yīng)用系統(tǒng)中單片機的忙、閑情況而定。其原則是,既要保證及時響應(yīng)按鍵操作,又不要過多占用單片機的工作時間。通常,鍵盤的工作方式有三種,即編程掃描、定時掃描和中斷掃描。 硬件消除抖動采用RS觸發(fā)器組成的去抖電路如圖22所示。鍵未按下時輸出為1,當(dāng)鍵按下時,與非門2的輸入端接低電平,輸出高電平,這時與非門1兩輸入端同時為高電平,輸出端的0封鎖了與非門2的輸入,所以即使按鍵振動脫離低電平(當(dāng)然不能返回到原始狀態(tài)),也不能改變與非門2的輸出狀態(tài),從而穩(wěn)定了觸發(fā)器的輸出,克服了振動的不穩(wěn)定輸入對輸出的影響。當(dāng)按鍵起來返回原始狀態(tài)時,就會使觸發(fā)器的輸出為1,輸出的0、1一個脈沖變化就準確反映了按鍵一次動作。 圖22 硬件去抖電路圖VccGND4 軟件設(shè)計 軟件設(shè)計流程圖開始單片機、液晶、鍵盤等初始化鍵盤掃描調(diào)整液晶顯示的對比度修改時間、讀取時間并顯示開機時間設(shè)定、定時時間設(shè)定啟動A/D并進行電壓電流、溫度采集、人體檢測、采樣狀態(tài)正常?報警并關(guān)斷電源不正常正常無線收發(fā)執(zhí)行正常開啟命令顯示信息圖23 主流程圖首先將系統(tǒng)初始化,包括單片機初始化,液晶顯示器初始化和鍵盤初始化等。之后進行鍵盤掃描,執(zhí)行鍵盤命令:調(diào)整液晶顯示的對比度,使顯示面清晰正常;讀取時間,并依照實際時間修改所顯示的時間并顯示出來;設(shè)定開機時間與關(guān)機時間,即定時;啟動A/D,進行電壓電流、溫度檢測、人體檢測采樣,并將采樣結(jié)果送至單片機進行處理;依據(jù)設(shè)定范圍計算并判斷各狀態(tài)是否正常。若正常,則執(zhí)行正常開啟命令。否則進行聲光報警并關(guān)斷電源;一切正常后,進行無線收發(fā)等工作,并在液晶顯示屏上顯示所測的信息。 A/D轉(zhuǎn)換模塊的編程說明在MSP430的實時控制和智能儀表等應(yīng)用系統(tǒng)中,控制或測量對象的有關(guān)變量,往往是一些連續(xù)變化的模擬量,如溫度、壓力、流量、速度等物理量。利用傳感器把各種物理量測量出來,轉(zhuǎn)換為電信號,經(jīng)過模數(shù)轉(zhuǎn)換(ADC)變換成數(shù)字量,這樣模擬量才能被MSP430處理和控制。 ADC模塊對于MSP430很重要,ADC模塊的常用性能指標有以下幾個:分辨率表示輸出數(shù)字量變化一個相鄰數(shù)碼所需輸入模擬電壓的變化量,它定義為 轉(zhuǎn)換器的滿刻度電壓與2n的比值,其中n為ADC的位數(shù),因而分辨率與ADC的位數(shù)有關(guān)。量化誤差和分辨率是統(tǒng)一的,量化誤差是由于有限數(shù)字對模擬數(shù)值進行離散取值(量化)而引起的誤差。因此,量化誤差理論上為一個單位分辨率,提高分辨率可以減少量化誤差。轉(zhuǎn)換精度:ADC模塊的轉(zhuǎn)換精度反映了一個實際ADC模塊在量化上與一個理想ADC模塊進行模/數(shù)轉(zhuǎn)換的差值,可表示成絕對誤差或相對誤差。轉(zhuǎn)換時間指ADC模塊完成一次模擬數(shù)字轉(zhuǎn)換所需的時間,轉(zhuǎn)換時間越短越能適應(yīng)輸入信號的變化。轉(zhuǎn)換時間與ADC模塊的結(jié)構(gòu)、位數(shù)有關(guān)。此次ADC采用轉(zhuǎn)換精度為12位的,ADC12提供4種轉(zhuǎn)換模式:單通道單次轉(zhuǎn)換;序列通道單次轉(zhuǎn)換;單通道多次轉(zhuǎn)換;序列通道多次轉(zhuǎn)換。不論用戶使用何種轉(zhuǎn)換模式,都要處理以下問題:設(shè)置具體模式;輸入模擬信號;選擇啟動信號;關(guān)注轉(zhuǎn)換結(jié)束信號;存放轉(zhuǎn)換數(shù)據(jù)以及采用查詢或者中斷方式讀取數(shù)據(jù)。 鍵盤模塊的編程說明首先,對端口進行定義,~,~,~ 。然后進行4次掃描并通過計算去確定按鍵的位置。確定按鍵位置的方法如下:如圖21,~,~,處于輸入狀態(tài),~。鍵盤上沒有按鍵閉合時,~。當(dāng)鍵盤上某個鍵閉合時,則對應(yīng)的行線和列線短接。對于矩陣掃描式鍵盤常使用掃描的方法識別按鍵。首先看輸入的行線,假設(shè)4條列線都輸出低電平,4條行線都是弱上拉至Vcc的,在沒有任何按鍵按下時輸入都是“1”。但當(dāng)與某一條行線相連的4個按鍵中的任何一個被按下時,這條行線將輸入低電平。如果4條列線沒有輸出低電平,則盡管按鍵被按下,仍然不能從行線讀到“0”。利用這一原理,分時掃描在不同列線上輸出的低電平,則當(dāng)在某一條行線上讀取到“0”時,就可以唯一的確定是與哪一條列線相連的按鍵按下了。此次鍵盤各鍵的功能定義如圖24:時設(shè)確定關(guān)聲報D+開設(shè)確定D關(guān)設(shè)確定N+←N→圖24 鍵盤按鍵功能圖為了防止按鍵抖動影響判斷,可以采用硬件防抖電路防抖(如圖25)和軟件防抖。軟件防抖的流程圖如下:開始有鍵閉合?調(diào)用子程序延時6ms調(diào)用子程序延時12ms有鍵閉合?判斷閉合鍵鍵號閉合鍵釋放否?輸入鍵號→A返回NYNYNY圖25 軟件防抖的流程圖 液晶模塊的編程說明此次需要顯示年月日、時分秒、星期、溫度、電流值、電壓值、功率、工作狀況、開關(guān)定時時間等,如下圖。所以,先要建立字庫,包括漢字庫、數(shù)字庫、字符庫等。之后定義端口,P5口為DB0~DB7, 。2012年01月02周一 12:00:+001℃有人開00:00 關(guān)00:00圖26 液晶屏顯示內(nèi)容 日歷時鐘模塊的編程說明單片機控制DS1302時鐘芯片的程序主要包括兩個方面的關(guān)鍵內(nèi)容,一是單片機對DS1302寄存器的地址定義和控制字的寫入,二是數(shù)據(jù)的讀取。DS1302與單片機的連接僅需要3條線,即SCLK、I/O、RST。,此引腳為高電平時,選中該芯片,可對其進行操作。串行數(shù)據(jù)線I/,所有的單片機地址、命令及數(shù)據(jù)均通過這兩條線傳輸。單片機控制的DS1302時鐘數(shù)據(jù)通信程序流程如圖27。開始初始化DS1302時鐘電平是否完成?讀/取8位數(shù)據(jù)設(shè)置三端口狀態(tài)Return(0)返回NY圖27 單片機控制的DS1302時鐘數(shù)據(jù)通信程序流程圖 程序清單 鍵盤程序如下: include /******定義全局變量*************************************/unsigned char QKeyCom。 /*鍵盤命令*//*********I/O端口宏定義*********/define SetKOut3 {P1DIR |=BIT7。P1SEL amp。=~BIT7。}define KOut3SetB {P1OUT |=BIT7。} define KOut3Clr {P1OUT amp。=~BIT7。} define SetKOut2 {P1DIR |=BIT6。P1SEL amp。=~BIT6。} define KOut2SetB {P1OUT |=BIT6。} define KOut2Clr {P1OUT amp。=~BIT6。} define SetKOut1 {P1DIR |=BIT5。P1SEL amp。=~BIT5。} define KOut1SetB {P1OUT |=BIT5。} define KOut1Clr {P1OUT amp。=~BIT5。} define SetKOut0 {P1DIR |=BIT4。P1SEL amp。=~BIT4。}define KOut0SetB {P1OUT |=BIT4。} define KOut0Clr {P1OUT amp。=~BIT4。} define SetKin3 {P1DIR amp。=~BIT3。P1SEL amp。=~BIT3。} define ReadKin3 ((P1IN amp。 BIT3)==BIT3)? BIT3:0 define SetKin2 {P1DIR amp。=~BIT2。P1SEL amp。=~BIT2。}define ReadKin2 ((P1IN amp。 BIT2)==BIT2)? BIT2:0 define SetKin1 {P1DIR amp。=~BIT1。P1SEL amp。=~BIT1。} define ReadKin1 ((P1IN amp。 BIT1)==BIT1)? BIT1:0 define SetKin0 {P1DIR amp。=~BIT0。P1SEL amp。=~BIT0。}define ReadKin0 ((P1IN amp。 BIT0)==BIT0)? BIT0:0 void JianPan(){static unsigned int Ka,Kb,Kc,Kd。 unsigned int Ky。 unsigned char KN。 /*端口設(shè)定*/ SetKOut3。SetKOut2。SetKOut1。SetKOut0。 SetKin3。SetKin2。SetKin1。SetKin0。 /*變量轉(zhuǎn)存*/ Ka=Kb。 Kb=Kc。 Kc=Kd。 Kd=0。 /*掃描3*/ KOut3Clr。KOut2SetB。KOut1SetB。KOut0SetB。 _NOP()。_NOP()。 Kd=Kd+(ReadKin3)。 Kd=Kd+(ReadKin2)。 Kd=Kd+(ReadKin1)。 Kd=Kd+(ReadKin0)。 Kd=Kd4。 /*掃描2*/ KOut3SetB。KOut2Clr。KOut1SetB。KOut0SetB。 _NOP()。_NOP()。 Kd=Kd+(ReadKin3)。 Kd=Kd+(ReadKin2)。 Kd=Kd+(ReadKin1)。 Kd=Kd+(ReadKin0)。 Kd=Kd4。 /*掃描1*/ KOut3SetB。KOut2SetB。KOut1Clr。KOut0SetB。 _NOP()。_NOP()。 Kd=Kd+(ReadKin3)。 Kd=Kd+(ReadKin2)。 Kd=Kd+(ReadKin1)。 Kd=Kd+(ReadKin0)。 Kd=Kd4。 /*掃描0*/ KOut3SetB。KOut2SetB。KOut1SetB。KOut0Clr。 _NOP()。_NOP()。 Kd=Kd+(ReadKin3)。 Kd=Kd+(ReadKin2)。 Kd=Kd+(ReadKin1)。 Kd=Kd+(ReadKin0)。 KOut3SetB。KOut2SetB。KOut1SetB。KOut0SetB。 Ky=(Kaamp。Kb)amp。(~(Kc|Kd))。 /*計算四次掃描的位值*/ /*計算鍵值*/ if((Kyamp。BITF)==BITF) {KN=16。} else if((Kyamp。BITE)==BITE) {KN=15。} else if((Kyamp。BITD)==BITD) {KN=14。} else if((Kyamp。BITC)==BITC) {KN=13。} else if((Kyamp。BITB)==BITB) {KN=12。} else if((Kyamp。BITA)==BITA)
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1