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

正文內(nèi)容

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

2025-06-22 07:36本頁(yè)面
  

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