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

正文內(nèi)容

基于單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)畢業(yè)論文-資料下載頁(yè)

2025-06-22 02:01本頁(yè)面
  

【正文】 6個(gè)按鍵的鍵盤(pán),顯然,在按鍵數(shù)量較多時(shí),矩陣式鍵盤(pán)較之獨(dú)立式按鍵鍵盤(pán)要節(jié)省很多I/O口。矩陣式鍵盤(pán)中,行、列線分別連接到按鍵開(kāi)關(guān)的兩端,在進(jìn)行鍵盤(pán)掃描時(shí),首先把矩陣鍵盤(pán)列線的第一根線置高,然后分別再檢測(cè)矩陣鍵盤(pán)行線是否有高電平的信號(hào),如果有信號(hào),那么就證明這根行線與第一根列線相交處的按鍵被按下了,單片機(jī)就讀入這個(gè)鍵值。如果所有的四根行線都沒(méi)有信號(hào),那么就把第一根列線置低,把第二根列線置高,再一次檢測(cè)行線有沒(méi)有信號(hào),然后依次類(lèi)推。由于鍵盤(pán)掃描的速度很快,而人按鍵總會(huì)持續(xù)一定的時(shí)間,因此只要單片機(jī)處在等待輸入的狀態(tài),這個(gè)鍵盤(pán)掃描程序基本上不會(huì)錯(cuò)過(guò)任何一個(gè)按鍵信號(hào)。由于一般人按鍵會(huì)有抖動(dòng),抖動(dòng)信號(hào)造成鍵盤(pán)掃描時(shí)會(huì)出現(xiàn)一些錯(cuò)誤的信號(hào),要不就是掃描不進(jìn)數(shù)據(jù),要不就是重復(fù)輸入很多次數(shù)據(jù),因此需要有一個(gè)消除抖動(dòng)的程序。讓單片機(jī)不響應(yīng)一些相關(guān)的抖動(dòng)信號(hào),而只響應(yīng)一次確實(shí)存在的按鍵信號(hào)。消抖動(dòng)程序是這樣實(shí)現(xiàn)的,當(dāng)檢測(cè)到一個(gè)脈沖信號(hào)時(shí),并不立即認(rèn)為是一次按鍵,而是延時(shí)一段時(shí)間以后再進(jìn)行檢測(cè),如果三次檢測(cè)都有信號(hào),那么就認(rèn)為有一次按鍵動(dòng)作發(fā)生了。延時(shí)的選擇非常重要,太快了,起不到消除抖動(dòng)的效果,太慢了又讓鍵盤(pán)太不靈活,錯(cuò)過(guò)較多的按鍵信號(hào)。鍵盤(pán)掃描程序的流程圖如圖32所示。系統(tǒng)的按鍵定義除了基本的數(shù)字鍵(0~9)外,將其它的鍵依次定義為開(kāi)、關(guān)、增值、減值、定時(shí)、確認(rèn)六個(gè)命令鍵,其控制的基本功能是:(1) 通過(guò)數(shù)字鍵、確認(rèn)鍵輸入分控制器的地址以及定時(shí)功能的時(shí)間設(shè)置。(2) 利用開(kāi)、關(guān)鍵控制照明燈具的啟停。(3) 利用增值、減值鍵控制照明燈具的亮度。(4) 通過(guò)定時(shí)鍵來(lái)對(duì)照明燈具進(jìn)行定時(shí)控制的設(shè)置。系統(tǒng)通過(guò)軟件方法實(shí)現(xiàn)該功能,即定義開(kāi)、關(guān)、增值、減值、定時(shí)、確認(rèn)等命令鍵,利用鍵盤(pán)掃描程序獲取對(duì)應(yīng)命令鍵的鍵值,然后執(zhí)行相應(yīng)的子程序,實(shí)現(xiàn)所要求的控制功能。圖32 鍵盤(pán)掃描程序流程圖 LED數(shù)碼顯示程序設(shè)計(jì)本系統(tǒng)采用了四位共陽(yáng)極七段數(shù)碼管,共陽(yáng)極數(shù)碼管的8個(gè)發(fā)光二極管的陽(yáng)極(二極管正端)連接在一起,通常,公共陽(yáng)極接高電平(一般接電源),其它管腳接段驅(qū)動(dòng)電路輸出端。當(dāng)某段驅(qū)動(dòng)電路的輸出端為低電平時(shí),則該端所連接的字段導(dǎo)通并點(diǎn)亮,根據(jù)發(fā)光字段的不同組合可顯示出各種數(shù)字或字符。此時(shí),要求段驅(qū)動(dòng)電路能吸收額定的段導(dǎo)通電流,還需根據(jù)外接電源及額定段導(dǎo)通電流來(lái)確定相應(yīng)的限流電阻,這里的限流電阻選為100Ω。這里選用的7447芯片是從BCD碼到SEG7段碼的轉(zhuǎn)換器,而74LS138是一個(gè)地址譯碼器,通過(guò)74LS138選通某個(gè)數(shù)碼管,然后根據(jù)7447傳送過(guò)來(lái)的SEG7段碼的數(shù)據(jù)進(jìn)行顯示,而在非選通的時(shí)候,數(shù)碼管能夠保持原有的顯示數(shù)據(jù)。LED數(shù)碼顯示程序的流程圖如圖33所示圖33 LED數(shù)碼顯示程序流程圖 照明啟??刂瞥绦蛟O(shè)計(jì)照明的啟??刂浦饕怯芍骺刂破靼l(fā)出指令,通過(guò)RS485通信方式或無(wú)線數(shù)傳方式控制全部或部分分控制器所控制照明燈具的啟停,因此照明啟??刂瞥绦蛴蓛刹糠纸M成,即全部啟停控制與單獨(dú)啟??刂苾刹糠?。 全部啟??刂瞥绦蛟O(shè)計(jì) 全部照明啟停控制系統(tǒng)是利用主控制器上的開(kāi)、關(guān)按鍵來(lái)控制全部照明燈的啟停,控制命令是通過(guò)串口通信方式傳達(dá)到分控制器,來(lái)達(dá)到控制燈泡亮和滅的目的。在這個(gè)多機(jī)系統(tǒng)中采用的是主從式通信方式,主機(jī)即主控制器處于主導(dǎo)和支配地位,從機(jī)即分控制器一般以中斷方式來(lái)接收和發(fā)送數(shù)據(jù)。在主從式多機(jī)系統(tǒng)中主機(jī)發(fā)送的信息可以傳送到所有的從機(jī)或指定的從機(jī),在這里是要發(fā)送給所有的從機(jī),來(lái)控制照明燈的啟停。在本系統(tǒng)中采用廣播式命令,不需要從機(jī)返回信息,從機(jī)之間也不能直接通信。主機(jī)由AT89C51單片機(jī)充當(dāng),從機(jī)為AT89c51單片機(jī)。主機(jī)與從機(jī)的數(shù)據(jù)通信波特率定為9600波特,每個(gè)從機(jī)都有唯一的地址號(hào),用來(lái)區(qū)分各從機(jī)。單片機(jī)的數(shù)據(jù)通信由串口完成,定時(shí)器T1為波特發(fā)生器,數(shù)據(jù)傳送格式為1位起始位,8位數(shù)據(jù)位,1位停止位,1位可編程位(TB8)。工作方式:定時(shí)器T1設(shè)置為方式2,串口設(shè)置為工作方式3。本系統(tǒng)的通信原理為:從機(jī)在建立與主機(jī)通信之前所有分機(jī)的SM2都置1,即隨時(shí)處于對(duì)通信線路監(jiān)聽(tīng)的狀態(tài),只能收到主機(jī)發(fā)送來(lái)的機(jī)號(hào)信息。主機(jī)向從機(jī)發(fā)送廣播地址信息時(shí),廣播地址為00H,所有分機(jī)都接收到廣播地址信息,然后進(jìn)入正常通信狀態(tài),清除SM2位,開(kāi)始接收主機(jī)發(fā)送來(lái)的命令。從機(jī)收到的命令是開(kāi)燈時(shí),打開(kāi)MOC3021驅(qū)動(dòng)雙向可控硅,從而就點(diǎn)亮了燈泡;同理,如果收到的命令是關(guān)燈時(shí),封閉MOC3021使雙向可控硅截止,也就達(dá)到了關(guān)閉燈泡的目的。該系統(tǒng)的主機(jī)和從機(jī)的控制程序流程圖如圖34和圖35所示。圖34 全部啟??刂浦鳈C(jī)程序流程圖圖35 全部啟??刂茝臋C(jī)程序流程圖 單獨(dú)啟??刂瞥绦蛟O(shè)計(jì) 單獨(dú)照明啟停控制系統(tǒng)是通過(guò)主機(jī)發(fā)送給指定的從機(jī)命令信息,來(lái)實(shí)現(xiàn)照明燈的啟??刂?。主機(jī)首先發(fā)送從機(jī)地址,被叫到的從機(jī)向主機(jī)發(fā)送本機(jī)地址,然后主機(jī)向從機(jī)傳送數(shù)據(jù),從機(jī)根據(jù)接收的數(shù)據(jù)信息執(zhí)行相應(yīng)的命令。單片機(jī)的工作方式同全部照明啟停控制系統(tǒng)。其具體的工作過(guò)程是:所有的從機(jī)在通信之前都把SM2位置1,隨時(shí)處于偵聽(tīng)狀態(tài)。當(dāng)主機(jī)發(fā)送從機(jī)的地址信息時(shí),每幀數(shù)據(jù)的第9位都為1,所有從機(jī)都接收到地址信息,然后判斷主機(jī)是否呼叫本機(jī)。如果呼叫本機(jī)則進(jìn)入正式通信狀態(tài),清除SM2,并把本機(jī)地址號(hào)發(fā)送給主機(jī)作為應(yīng)答,然后才開(kāi)始接收主機(jī)發(fā)送來(lái)的信息。而其它從機(jī)由于地址號(hào)不符,他們的SM2位仍然為1,仍處于偵聽(tīng)狀態(tài),無(wú)法接收主機(jī)發(fā)送來(lái)的數(shù)據(jù)信息。主機(jī)收到從機(jī)發(fā)送來(lái)的回應(yīng)信息后,比較主機(jī)已發(fā)送的地址號(hào)與剛接收的地址號(hào)是否相符,如果不符,則發(fā)出錯(cuò)誤信息;如果相符,則正式發(fā)送數(shù)據(jù)信息,這時(shí)發(fā)送的每幀的第9位都為0。只有SM2=0的從機(jī)才能接收到主機(jī)發(fā)送的信息。從機(jī)根據(jù)命令執(zhí)行相應(yīng)的動(dòng)作,如果為打開(kāi)命令,則輸出高電平驅(qū)動(dòng)可控硅動(dòng)作,開(kāi)啟照明燈;如果為關(guān)閉命令,則輸出低電平使可控硅截止,停掉照明燈。該系統(tǒng)的主機(jī)和從機(jī)控制程序流程圖分別如圖36與37所示。圖36 單獨(dú)啟停控制主機(jī)程序流程圖圖37 單獨(dú)啟??刂茝臋C(jī)程序流程圖 照明控制程序設(shè)計(jì)照明控制系統(tǒng)是利用從機(jī)即單片機(jī)AT89c51和時(shí)鐘芯片DS12887進(jìn)行數(shù)據(jù)通信,讀取和寫(xiě)入實(shí)時(shí)數(shù)據(jù),主機(jī)采用串口通信方式對(duì)從機(jī)進(jìn)行定時(shí)時(shí)間的設(shè)置,從機(jī)然后根據(jù)設(shè)定的時(shí)間進(jìn)行照明燈的啟??刂?。 全部定時(shí)控制程序設(shè)計(jì)在全部定時(shí)控制系統(tǒng)中是通過(guò)主控制器向所有的分控制器發(fā)送廣播地址,分控制器在收到廣播地址后,使自己處于接收數(shù)據(jù)狀態(tài),然后主控制器向網(wǎng)絡(luò)中發(fā)送時(shí)間數(shù)據(jù)信息,分控制器在收到時(shí)間數(shù)據(jù)后寫(xiě)入DS12887芯片,等到設(shè)定時(shí)間到達(dá)后,單片機(jī)發(fā)出命令關(guān)閉照明燈。該系統(tǒng)的主機(jī)控制流程圖同圖34所示,從機(jī)的控制流程圖如圖38所示。圖38 全部定時(shí)控制從機(jī)程序流程圖 單獨(dú)定時(shí)控制程序設(shè)計(jì) 主控制器使用鍵盤(pán)輸入被呼叫分控制器的地址,并通過(guò)網(wǎng)絡(luò)向所有分控制器傳送,在分控制器將該地址與本機(jī)地址進(jìn)行比較后,判斷是否是呼叫自己,如果是呼叫本機(jī),就將本機(jī)地址傳送給主控制器,進(jìn)一步接收傳送的數(shù)據(jù),然后分控制器就將數(shù)據(jù)寫(xiě)入DS12887芯片,等到設(shè)定的時(shí)間到達(dá)時(shí)就執(zhí)行關(guān)閉照明燈的命令。單獨(dú)定時(shí)控制的主機(jī)程序流程圖同圖36所示,從機(jī)程序流程圖如圖39所示。圖39 單獨(dú)定時(shí)控制從機(jī)控制程序流程 RS485通信程序設(shè)計(jì)由于RS485總線是異步半雙工的通信總線,在某一個(gè)時(shí)刻總線只可能呈現(xiàn)一種狀態(tài),所以這種方式一般適用于主機(jī)對(duì)從機(jī)的查詢方式通信。在通信中,主機(jī)與各個(gè)從機(jī)進(jìn)行通信,必須能對(duì)各個(gè)從機(jī)進(jìn)行識(shí)別,這一識(shí)別功能是利用串口控制寄存器SCON的SM2位實(shí)現(xiàn)的。當(dāng)串口以方式3工作時(shí),發(fā)送和接收的每一幀信息都是11位,其中第9位數(shù)據(jù)位是可編程的,通過(guò)對(duì)SCON寄存器的TB8位置1或置0,以區(qū)別發(fā)送的是地址幀還是數(shù)據(jù)幀(規(guī)定地址幀的第9位為1,數(shù)據(jù)幀的第9位為0)。若從機(jī)的控制位SM2被設(shè)為1,則當(dāng)接收的是地址幀時(shí),數(shù)據(jù)裝入SBUF,并置RI=1,向CPU發(fā)出中斷申請(qǐng),若接收的是數(shù)據(jù)幀,則不產(chǎn)生中斷,信息被拋棄。若SM2被設(shè)為0,則無(wú)論是地址幀還是數(shù)據(jù)幀都將產(chǎn)生RI=1中斷標(biāo)志,數(shù)據(jù)裝入SBUF。利用這一功能,可以按照如下步驟進(jìn)行數(shù)據(jù)通信:(1) 將所有SM2位置1,使其處于只接收地址幀的狀態(tài)。(2) 主機(jī)發(fā)送一幀地址信息,其中前8位數(shù)據(jù)位表示通信的從機(jī)地址,第9位為1,表示當(dāng)前幀為地址幀。(3) 從機(jī)接收到地址幀后,如果是廣播地址幀,則所有從機(jī)都將其SM2位置0,準(zhǔn)備接收主機(jī)發(fā)送的數(shù)據(jù)或命令;如果不是廣播地址幀,則將本機(jī)地址與幀中地址進(jìn)行比較。如果地址相同,則將其SM2位置0,并發(fā)送本機(jī)地址幀,然后準(zhǔn)備接收數(shù)據(jù)。如果地址不同,則丟棄當(dāng)前數(shù)據(jù),SM2位不變。(4) 主機(jī)發(fā)送數(shù)據(jù)幀,相應(yīng)的從機(jī)接收,其他從機(jī)則不受影響。(5) 當(dāng)主機(jī)需要與其他從機(jī)通信時(shí),可以再次發(fā)出地址幀尋呼從機(jī),重復(fù)這一過(guò)程。主機(jī)在發(fā)送數(shù)據(jù)時(shí),按照表31的數(shù)據(jù)格式進(jìn)行傳輸。表31在程序中,第9位發(fā)送數(shù)據(jù)位SCON中的TB8位,第9位接收數(shù)據(jù)位為SCON的RB8位,因此,發(fā)送數(shù)據(jù)前,可以通過(guò)對(duì)TB8位置1或0來(lái)確定要發(fā)送的是地址幀還是數(shù)據(jù)幀。而接收數(shù)據(jù)時(shí),對(duì)地址幀的判斷則是通過(guò)讀取RB8位來(lái)獲得的,RB8=1,當(dāng)前幀為地址幀,RB8=0,當(dāng)前幀為數(shù)據(jù)幀。單片機(jī)的串口工作在方式3下,其波特率由定時(shí)器1(T1)的溢出率決定,計(jì)算公式為: 定時(shí)器T1的溢出率的計(jì)算公式為:則波特率的公式變?yōu)椋?,T1工作在模式3下,波特率=9600b/s。 主機(jī)部分通信程序設(shè)計(jì) 系統(tǒng)中的主機(jī)通信程序分為4個(gè)部分,分別為預(yù)定義及全局變量部分、程序初始化部分、數(shù)據(jù)通信流程和發(fā)送數(shù)據(jù)部分。主機(jī)的數(shù)據(jù)通信的基本流程如下:(1) 主機(jī)首先向所有從機(jī)發(fā)送地址幀對(duì)要通信的從機(jī)進(jìn)行呼叫,發(fā)送地址幀時(shí)需將TB8位置1。(2) 發(fā)送地址幀后,如果發(fā)送的是廣播地址幀,則不需要從機(jī)應(yīng)答,待延遲一段時(shí)間后,調(diào)用發(fā)送函數(shù)發(fā)送數(shù)據(jù);如果發(fā)送的是非廣播地址幀,主機(jī)則要接收應(yīng)答,若應(yīng)答信號(hào)中的地址與前面發(fā)送的地址并不相同,主機(jī)將重新發(fā)送地址幀呼叫,否則調(diào)用發(fā)送函數(shù)發(fā)送數(shù)據(jù)。(3) 發(fā)送完數(shù)據(jù)后,主機(jī)等待從機(jī)的校驗(yàn)信號(hào),如果接收到0X0F數(shù)據(jù),表示發(fā)送成功,通信結(jié)束,否則主機(jī)將重新發(fā)送數(shù)據(jù),直至發(fā)送成功。該部分程序?qū)?yīng)的流程圖如圖310所示。圖310 主機(jī)數(shù)據(jù)通信流程圖 從機(jī)部分通信程序設(shè)計(jì)從機(jī)通信程序也被分為預(yù)定義及全局變量部分、程序初始化部分、數(shù)據(jù)通信流程和接收數(shù)據(jù)部分4個(gè)部分。從機(jī)部分的數(shù)據(jù)通信過(guò)程受主機(jī)控制,其基本的流程如下:(1) 初始化完成后,從機(jī)設(shè)置SM2位為1,串口只接收第9位數(shù)據(jù)位為1的地址幀,數(shù)據(jù)幀將被直接拋棄。(2) 如果串口有數(shù)據(jù)接收(收到地址幀),則從機(jī)會(huì)將該幀中的地址信息先與廣播地址進(jìn)行比較,如果是廣播地址,則做好接收數(shù)據(jù)的準(zhǔn)備,如果是其它地址,則與本機(jī)地址比較,如果相同,則發(fā)送應(yīng)答信息,應(yīng)答信息內(nèi)容應(yīng)為本機(jī)地址,否則丟棄當(dāng)前數(shù)據(jù),從機(jī)繼續(xù)處于等待呼叫狀態(tài)。(3) 程序調(diào)用接收函數(shù)接收主機(jī)發(fā)送的數(shù)據(jù)部分并作出應(yīng)答,接收到的數(shù)據(jù)保存至Buf指向的緩沖區(qū)中。如果接收函數(shù)返回0xff,表示數(shù)據(jù)校驗(yàn)失敗,程序等待主機(jī)重新發(fā)送數(shù)據(jù)。如果函數(shù)返回值為0xfe,表示從機(jī)在數(shù)據(jù)接收過(guò)程中發(fā)現(xiàn)主機(jī)發(fā)送地址幀,程序?qū)⒎艞壆?dāng)前接收過(guò)程,將SM2位重新置1,開(kāi)始下一通信過(guò)程。如果函數(shù)返回0,表示數(shù)據(jù)被成功接收,向主機(jī)發(fā)送成功信號(hào),隨后,程序?qū)M2位置1,重新開(kāi)始圖311 從機(jī)數(shù)據(jù)通信流程圖4 系統(tǒng)可靠性設(shè)計(jì)在實(shí)驗(yàn)室里設(shè)計(jì)的控制系統(tǒng),在安裝、調(diào)試后完全符合設(shè)計(jì)要求,但把系統(tǒng)置入現(xiàn)場(chǎng)后,系統(tǒng)常常不能正常穩(wěn)定地工作。產(chǎn)生這種情況的原因主要是現(xiàn)場(chǎng)環(huán)境復(fù)雜和各種各樣的電磁干擾,所以單片機(jī)應(yīng)用系統(tǒng)的可靠性設(shè)計(jì)、抗干擾技術(shù)變得越來(lái)越重要了。工業(yè)現(xiàn)場(chǎng)環(huán)境中干擾是以脈沖產(chǎn)的形式進(jìn)人單片機(jī)系統(tǒng)的,其主要的渠道有三條,即空干擾多發(fā)生在高電壓、大電流、高頻電磁場(chǎng)附近,并通過(guò)靜電感應(yīng),電磁感應(yīng)等方式侵入系統(tǒng)內(nèi)部;供電系統(tǒng)干擾是由電源的噪聲干擾引起的;過(guò)程通道干擾是干擾通過(guò)前向通道和后向通道進(jìn)入系統(tǒng)的。干擾一般沿各種線路侵入系統(tǒng)。系統(tǒng)接地裝置不可靠,也是產(chǎn)生干擾的重要原因;各類(lèi)傳感器,輸人/輸出線路的絕緣損壞均有可能引入干撫。 干擾產(chǎn)生的后果(1)數(shù)據(jù)采集誤差的加大。當(dāng)干擾侵入單片機(jī)系統(tǒng)的前向通道疊加在信號(hào)上,會(huì)使數(shù)據(jù)采集誤差增大,特別是前向通道的傳感器接口是小電壓輸入時(shí),此現(xiàn)象會(huì)更加嚴(yán)重。(2)程序運(yùn)行失常:①控制狀態(tài)失靈。在單片機(jī)系統(tǒng)中,由于干擾的加人使輸出誤差加大,造成邏輯狀態(tài)改變,最終導(dǎo)致控制失常。②死機(jī)。在單片機(jī)系統(tǒng)受強(qiáng)干擾后,造成程序計(jì)數(shù)器(PC)值的
點(diǎn)擊復(fù)制文檔內(nèi)容
語(yǔ)文相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1