影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

能窗簾控制單片機(jī)畢業(yè)設(shè)計(jì) 51單片機(jī)

上傳人:小**** 文檔編號(hào):55555711 上傳時(shí)間:2022-02-18 格式:DOC 頁(yè)數(shù):49 大?。?.31MB
收藏 版權(quán)申訴 舉報(bào) 下載
能窗簾控制單片機(jī)畢業(yè)設(shè)計(jì) 51單片機(jī)_第1頁(yè)
第1頁(yè) / 共49頁(yè)
能窗簾控制單片機(jī)畢業(yè)設(shè)計(jì) 51單片機(jī)_第2頁(yè)
第2頁(yè) / 共49頁(yè)
能窗簾控制單片機(jī)畢業(yè)設(shè)計(jì) 51單片機(jī)_第3頁(yè)
第3頁(yè) / 共49頁(yè)

下載文檔到電腦,查找使用更方便

16 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《能窗簾控制單片機(jī)畢業(yè)設(shè)計(jì) 51單片機(jī)》由會(huì)員分享,可在線閱讀,更多相關(guān)《能窗簾控制單片機(jī)畢業(yè)設(shè)計(jì) 51單片機(jī)(49頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 畢業(yè)設(shè)計(jì)說(shuō)明書 題 目:智能窗簾控制系統(tǒng)設(shè)計(jì) 學(xué) 號(hào): 姓 名:昶 班 級(jí):2008級(jí)(4)班 專 業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化 指導(dǎo)教師: 學(xué) 院:機(jī)械工程學(xué)院 答辯日期:2012年4 月26 日 畢 業(yè) 設(shè) 計(jì) 說(shuō) 明 書 摘 要 隨著生活水平的提高,智能家居越來(lái)越被人們關(guān)注。智能窗簾也隨著科技發(fā)展悄然興起,它不但具備窗簾優(yōu)雅美觀的特點(diǎn),而且還能提供智能化的服務(wù),使家居生活更加舒適、溫馨與貼心。 本文設(shè)計(jì)的是基于單片機(jī)控制系統(tǒng)的智能窗簾。它具

2、備光感、紅外遙控、溫度顯示、定時(shí)等功能。該窗簾可以根據(jù)外界的光亮程度來(lái)控制窗簾開啟,從而達(dá)到調(diào)節(jié)室內(nèi)光線,同時(shí)還提供按鍵來(lái)控制窗簾的關(guān)合。為了方便用戶使用,增設(shè)定時(shí)模塊,用戶可根據(jù)自身的需要對(duì)某段時(shí)間,設(shè)置窗簾的開啟程度。當(dāng)定時(shí)結(jié)束,窗簾自動(dòng)切換到光感模式實(shí)現(xiàn)對(duì)室內(nèi)光線的控制。同時(shí),還增設(shè)溫度顯示,使用戶可以了解溫度狀況。 關(guān)鍵詞:智能窗簾:紅外遙控;光感控制;單片機(jī) IV Abstract With the improvement of living standards, more and more intelligent household is paid close at

3、tention to people. Intelligent curtain also arisen quickly with science and technology development , it not only has the characteristics of elegant and beautiful , and still can provide intelligence service, make household life more comfortable, warm and sweet. In this paper the design is based o

4、n single chip microcomputer control system of intelligent curtain. It has light feeling, infrared remote control, temperature display, timing, and other functions. The curtain can according to outside of light to control the curtain open , so as to adjust light, while still providing button to contr

5、ol of the curtain close. In order to facilitate the user use, add timing module, the user can the need according to oneself for a period of time, setting of the curtain open degree. When the timing end, the curtain to switch to light sensor model to achieve control of indoor light. At the same time,

6、 it also add temperature display, the user can understand temperature conditions. Key words: Intelligent curtain: infrared remote control; Light sensor control; Single-chip microcomputer 目 錄 摘 要 I Abstract II 第1章 緒論 1 1.1 設(shè)計(jì)的背景和意義 1 1.2 本設(shè)計(jì)的內(nèi)容 1 1.3 存在的主要問(wèn)題 2 第2章 總體方案設(shè)計(jì) 4 2.1 主控制

7、系統(tǒng)CPU 4 2.2 硬件總體方案 5 2.3 窗簾結(jié)構(gòu)安裝及電機(jī)選擇 6 第3章 控制系統(tǒng)電路設(shè)計(jì) 8 3.1 最小系統(tǒng)電路設(shè)計(jì) 8 3.2 端口分配 9 3.3 屏幕顯示模塊 9 3.4 電機(jī)驅(qū)動(dòng)模塊 10 3.5 光感模塊 10 3.6 3×3按鍵模塊 11 3.7 紅外模塊 12 3.8 溫度顯示模塊 12 3.9 蜂鳴器 13 第4章 系統(tǒng)軟件設(shè)計(jì) 14 4.1 主程序設(shè)計(jì) 14 4.2 光感程序設(shè)計(jì) 14 4.3 電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì) 16 4.4 定時(shí)模塊設(shè)計(jì) 16 4.5 倒計(jì)時(shí)程序設(shè)計(jì) 17 4.6 溫度模塊設(shè)計(jì) 18 4.7 外部中斷

8、子程序 19 第5章 制作與調(diào)試 22 5.1 制作 22 5.2 調(diào)試 22 附錄1 電路原理圖 26 附錄2 電路PCB圖 27 附錄3 安裝示意圖 28 附錄4 實(shí)物圖 29 附錄5 元件清單 30 附錄6 源程序 31 致 謝 45 畢 業(yè) 設(shè) 計(jì) 說(shuō) 明 書 第1章 緒論 1.1 設(shè)計(jì)的背景和意義 21世紀(jì)是信息化的世紀(jì),各種電信和互聯(lián)網(wǎng)新技術(shù)推動(dòng)了人類文明的巨大進(jìn)步。利用先進(jìn)的計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)通訊技術(shù)、綜合布線技術(shù)、將與家居生活有關(guān)的各種子系統(tǒng),有機(jī)地結(jié)合在一起,通過(guò)統(tǒng)籌管理,讓家居生活更加舒適、安全、有效。在現(xiàn)代社會(huì),

9、對(duì)室內(nèi)設(shè)計(jì)而言,窗簾不僅具有遮光作用,更有美化功能,它不僅可以協(xié)調(diào)居室的色彩搭配,而且能夠柔化空間造型的線條,營(yíng)造溫馨愜意的環(huán)境。隨著高新技術(shù)及電子器件的發(fā)展,光控、溫控及遙控窗簾應(yīng)運(yùn)而生,給人們的生活帶來(lái)了很多方便。單片機(jī)控制的自動(dòng)窗簾控制系統(tǒng),既能解決每天手動(dòng)拉開和關(guān)上窗簾的不便,又顯示出了生活的檔次,同時(shí)還可以根據(jù)光線的明暗來(lái)自動(dòng)控制窗簾的開關(guān),以調(diào)節(jié)室內(nèi)的光線,更進(jìn)一步地滿足了人們的享受要求。同時(shí),遙控和定時(shí)的組合控制,可以讓人們?cè)谛枰臅r(shí)段內(nèi),方便、快捷使用。 自動(dòng)控制窗簾系統(tǒng)的推廣和應(yīng)用具有重要的現(xiàn)實(shí)意義,它改變了人們的生活方式,單片機(jī)控制的自動(dòng)窗簾控制系統(tǒng)具有豐富的智能化功能,

10、為家庭用戶營(yíng)造一個(gè)高效、舒適、便利的居住環(huán)境,給人們?nèi)粘I顜?lái)了極大地方便。自動(dòng)控制窗簾系統(tǒng)又牽扯一大批產(chǎn)業(yè),單片機(jī)控制的自動(dòng)控制窗簾產(chǎn)品面向家庭用戶,其應(yīng)用市場(chǎng)是龐大的,發(fā)展前景也是廣闊的,必將吸引大批各類企業(yè)介入,從而牽動(dòng)一大批產(chǎn)業(yè)的發(fā)展。 1.2 本設(shè)計(jì)的內(nèi)容 主要設(shè)計(jì)內(nèi)容:窗簾結(jié)構(gòu)設(shè)計(jì)、窗簾安裝布局的設(shè)計(jì)、控制系統(tǒng)軟件的設(shè)計(jì)和硬件的選擇。 窗簾結(jié)構(gòu)設(shè)計(jì):在現(xiàn)代的審美觀念中,人們往往追求的整體美觀,同時(shí)窗簾作為整體家居環(huán)境的一部分,它的結(jié)構(gòu)和尺寸大小有一定的限制。為了滿足人們對(duì)美的追求,在設(shè)計(jì)過(guò)程中采用硬度高、質(zhì)量輕的鋁合金材料來(lái)制作窗簾的整體框架。 窗簾安裝布局的設(shè)計(jì):窗簾光

11、感模塊依靠?jī)蓚€(gè)光感模塊和三個(gè)限位開關(guān)來(lái)實(shí)現(xiàn)。對(duì)于不同尺寸的窗簾,可根據(jù)實(shí)際情況改變限位開關(guān)的距離來(lái)實(shí)現(xiàn)控制。 控制系統(tǒng)軟件的設(shè)計(jì):智能窗簾的智能化體現(xiàn)在其自身光控部分,當(dāng)人們?cè)谑覂?nèi)休息、工作的時(shí)候,由于外界光線強(qiáng)度的改變,可能給在室內(nèi)的人們?cè)斐刹贿m,而光控剛好解決了這一缺陷。只要事先設(shè)置好光感的強(qiáng)度,程序就可根據(jù)這個(gè)光線改變而實(shí)現(xiàn)窗簾的開合,從而改變室內(nèi)光線強(qiáng)度,給人們一個(gè)舒適、溫馨的環(huán)境。系統(tǒng)的定時(shí)部分可提供任何狀態(tài)下12個(gè)小時(shí)的定時(shí)功能,在定時(shí)結(jié)束后,系統(tǒng)自動(dòng)恢復(fù)到光感模式,同時(shí)用戶也可在未到時(shí)間的情況下重新開啟光感模式。本系統(tǒng)還可提供溫度時(shí)時(shí)檢測(cè),時(shí)刻提醒用戶注意溫度變化。 1.3

12、存在的主要問(wèn)題 1.3.1 光感功能的實(shí)現(xiàn) 光感部分主要可分成光感檢測(cè)和光感執(zhí)行兩部分。光感檢測(cè)依靠的是光敏電阻的使用。光敏電阻可分成暗電流和亮電流兩部分。暗電流:光敏電阻在室溫條件下,全暗(無(wú)光照射)后經(jīng)過(guò)一定時(shí)間測(cè)量的電阻值,稱為暗電阻,此時(shí)在給定電壓下流過(guò)的電流。亮電流:光敏電阻在某一光照下的阻值,稱為該光照下的亮電阻,此時(shí)流過(guò)的電流。光敏電阻的暗電阻越大,而亮電阻越小則性能越好。也就是說(shuō),暗電流越小,光電流越大,這樣的光敏電阻的靈敏度越高。實(shí)用的光敏電阻的暗電阻往往超過(guò)1MΩ,甚至高達(dá)100MΩ,而亮電阻則在幾kΩ以下,暗電阻與亮電阻之比在102~106之間,可見光敏電阻的靈敏度很

13、高。而本設(shè)計(jì)中在光感電路加入一個(gè)滑動(dòng)電阻,用戶可根據(jù)當(dāng)?shù)毓饩€的實(shí)際情況來(lái)改變光感元件對(duì)光線的敏感程度,從而達(dá)到完美的控制目的。 光感執(zhí)行部分主要包括一個(gè)直流電機(jī)和三個(gè)限位開關(guān)來(lái)實(shí)現(xiàn)。當(dāng)光敏電阻判斷光線強(qiáng)度改變時(shí),電機(jī)按相應(yīng)方向轉(zhuǎn)動(dòng)。以光線程度變強(qiáng)為例,電機(jī)向窗簾關(guān)合的方向運(yùn)動(dòng),當(dāng)繞繩碰到某一限位開關(guān)時(shí),電機(jī)停止轉(zhuǎn)動(dòng)。再進(jìn)入另一光敏電阻的判斷,如果還是超過(guò)設(shè)定的位置,電機(jī)繼續(xù)以同方向轉(zhuǎn)動(dòng),碰到行程開關(guān)停止。 1.3.2 遙控功能的實(shí)現(xiàn) 遙控器使用方便,功能多。目前已廣泛應(yīng)用在電視機(jī)、VCD、DVD、空調(diào)等各種家用電器中,且價(jià)格便宜,市場(chǎng)上非常容易買到。如果能將遙控器上許多的按鍵解碼出來(lái),

14、用作單片機(jī)系統(tǒng)的輸入,則解決了常規(guī)矩陣鍵盤線路板過(guò)大、布線復(fù)雜、占用I/O口過(guò)多的弊病。而且通過(guò)使用遙控器,操作時(shí)可實(shí)現(xiàn)人與設(shè)備的分離,從而更加方便使用。 紅外線的是一種波長(zhǎng)為950nm的光,超出人類的可視光譜范圍,因此是不可見的。這也是我們用它來(lái)做遙控的原因之一,另一個(gè)原因就是紅外線很容易人工生成,成本低廉。雖然人眼不能直接看到紅外線,但是通過(guò)攝像機(jī)或者數(shù)碼相機(jī),我們就能在圖片里看到它們。不幸的是我們周圍有很多紅外源。太陽(yáng)是最大的紅外源,其它的比如燈泡,蠟燭,中央加熱系統(tǒng),甚至是我們的身體都是紅外源。事實(shí)上,只要是發(fā)熱的物體,就會(huì)發(fā)射紅外線。所以我們必須采取一些措施來(lái)防止我們的控制信號(hào)受到

15、干擾,采用調(diào)制可以使我們的控制信號(hào)免受干擾。通過(guò)調(diào)制,我們把紅外線以特殊的頻率發(fā)射,然后紅外接收設(shè)施以相同的頻率來(lái)接收,從而避免干擾。 第2章 總體方案設(shè)計(jì) 2.1 主控制系統(tǒng)CPU 方案一:STC單片機(jī) STC公司的單片機(jī)主要是基于8051內(nèi)核,是新一代增強(qiáng)型單片機(jī),指令代碼完全兼容傳統(tǒng)8051,速度快8~12倍,帶ADC,4路PWM,雙串口,有全球唯一ID號(hào),加密性好,抗干擾強(qiáng). 其中,STC公司推出了了STC89系列單片機(jī),增加了大量的新功能,提高了51的性能,是MCS51家族中的佼佼者。STC89系列單片機(jī)是MCS-51系列單片機(jī)的派生產(chǎn)品。它們?cè)谥噶钕到y(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源

16、上與標(biāo)準(zhǔn)8052單片機(jī)完全兼容,DIP40封裝系列與8051為pin-to-pin兼容。STC89系列單片機(jī)高速(最高時(shí)鐘頻率90MHz),低功耗,在系統(tǒng)/在應(yīng)用可編程(ISP,IAP),不占用戶資源。 方案二:MOTOROLA單片機(jī) MOTOROLA是世界上最大的單片機(jī)廠商。品種全、選擇余地大、新產(chǎn)品多是其特點(diǎn),在8位機(jī)方面有68HC05和生級(jí)產(chǎn)品68HC08,68HC05有30多個(gè)系列,200多個(gè)品種,產(chǎn)量已超過(guò)20億片。8位增強(qiáng)型單片機(jī)68HC11也有30多個(gè)品種,年產(chǎn)量在1億片以上。生級(jí)產(chǎn)品有68HC12。16位機(jī)68HC16也有十多個(gè)品種。32位單片機(jī)的683XX系列

17、也有幾十個(gè)品種。近年來(lái),以PowerPC、Coldfire、M.CORE等為CPU,將DSP未為輔助模塊集成的單片機(jī)也紛紛推出,目前仍是單片機(jī)的首選牌品。MOTOROLA單片機(jī)特點(diǎn)之一是在同樣速度下所用的時(shí)鐘頻率較Intel類單片機(jī)低得多,因而使得高頻噪聲低、抗干擾能力強(qiáng),更適合用于工控領(lǐng)域及惡劣的環(huán)境。MOTOROLA8位單片機(jī)過(guò)去的策略是以掩膜為主,最近推出OTP計(jì)劃以適應(yīng)單片機(jī)發(fā)展趨勢(shì),在32位機(jī)上,M.CORE在性能和功耗方面都勝過(guò)ARM7。 方案三:Scenix單片機(jī) Scenix單片機(jī)的I/O模塊有新意。I/O模塊的集成與組合技術(shù)是單片機(jī)技術(shù)不可缺少的重要方面。除傳

18、統(tǒng)的I/O功能模塊如并行I/O、URT、SPI、I2C、A/D、PWM、PLL、DTMF等,新的I/O模塊不斷出現(xiàn),如USB,CAN、J1850,最具代表性的是MOTOROLA32位單片機(jī),它集成了包括各種通信協(xié)議在內(nèi)的I/O模塊,而Scenix單片機(jī)在I/O模塊的處理上引入虛擬I/O的新概念。Scenix采用了RISC結(jié)構(gòu)的CPU,使CPU最高工作頻率達(dá)50MHz。運(yùn)算速度接近50MIPS。有了強(qiáng)有力的CPU,各種I/O功能便可以用軟件的辦法模擬。單片機(jī)的封裝采用20/28引腳。公司提供各種I/O的庫(kù)函數(shù),用于實(shí)現(xiàn)各種I/O模塊的功能。這些用軟件完成的模塊包括多路UART、多種A/D、PWM

19、、SPI、DTMF、FSK、LCD驅(qū)動(dòng)等,這些都是通常用硬件實(shí)現(xiàn)起來(lái)也相當(dāng)復(fù)雜的模塊。 綜合比較三個(gè)方案,方案一工具好用,DEMO易搞,成本偏低,所以此次選用的是AT89C52單片機(jī)。這是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C52 產(chǎn)品指令和引腳完全兼容。同時(shí)具有8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持

20、2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。 圖2.1 80C52圖 2.2 硬件總體方案 硬件設(shè)計(jì)的好壞決定整個(gè)方案的成功與否,所以在硬件設(shè)計(jì)時(shí),在實(shí)現(xiàn)功能的情況下電路設(shè)計(jì)越簡(jiǎn)單越好,這樣才能保證這個(gè)系統(tǒng)的穩(wěn)定運(yùn)行。本系統(tǒng)硬件原理如圖2.2所示。 圖2.2 硬件設(shè)計(jì)圖 2.3 窗簾結(jié)構(gòu)安裝及電機(jī)選擇 2.3.1 窗簾結(jié)構(gòu)安裝 家居窗簾不僅要美觀,而且得低噪音,高穩(wěn)定性。因此采用

21、在滑線上縛有一或二只永磁體,與之相對(duì)應(yīng)有一或二只吊環(huán)是磁性材料制成,滑線上縛有永磁體,在封閉的簾桿內(nèi)腔運(yùn)行,而吊環(huán)全部套在簾桿外周或嵌進(jìn)下部開的縫內(nèi),永磁體用磁力透過(guò)簾桿牽引吊環(huán),這種新型電動(dòng)窗簾滑線不外露,不會(huì)蒙塵和纏繞,可以電動(dòng)手拉兼容。 圖2.3 窗簾結(jié)構(gòu)示意圖 2.3.2 電機(jī)選擇 表2.1 直流電機(jī)參數(shù) 型號(hào) 峰值堵轉(zhuǎn) 最大空載轉(zhuǎn)數(shù)(r/min) 轉(zhuǎn)矩(N.m) 電流( A) 電 壓 (V) 功率(W) GW31ZY-63 7.5 1.5 12 18 63 本設(shè)計(jì)采用的

22、是12V的來(lái)直流電機(jī)驅(qū)動(dòng),計(jì)算轉(zhuǎn)數(shù)與扭矩如下: 按上表參數(shù)計(jì)算電機(jī)在9V下的扭矩, N=最大空載轉(zhuǎn)數(shù)×(運(yùn)行電壓÷峰值電壓)=63×(9÷12)=47.25r/min M=峰值堵轉(zhuǎn)扭矩×(運(yùn)行電壓÷峰值電壓)=7.5×(9÷12)=5.625N.m 在9V的狀態(tài)下,電機(jī)產(chǎn)生5.625的扭矩足以帶動(dòng)繞繩的轉(zhuǎn)動(dòng)。 圖2.4 GW31ZY-63直流電機(jī)圖 第3章 控制系統(tǒng)電路設(shè)計(jì) 根據(jù)上述設(shè)計(jì)方案,完成的硬件設(shè)計(jì)電路包括:屏幕顯示電路,電機(jī)驅(qū)動(dòng)電路,紅外接收電路,光感

23、采集電路,溫度采集電路,3×3的矩陣按鍵電路,蜂鳴器電路和定位開關(guān)電路。 3.1 最小系統(tǒng)電路設(shè)計(jì) 最小系統(tǒng)包括單片機(jī)電源接入,復(fù)位按鍵與晶振電路。單片機(jī)工作時(shí),是一條一條地從ROM中取指令,然后一步一步地執(zhí)行。單片機(jī)訪問(wèn)一次存儲(chǔ)器的時(shí)間,稱之為一個(gè)機(jī)器周期,這是一個(gè)時(shí)間基準(zhǔn)。機(jī)器周期不僅對(duì)于指令執(zhí)打有著重要的意義,而且機(jī)器周期也是單片機(jī)定時(shí)器和計(jì)數(shù)器的時(shí)間基準(zhǔn)。復(fù)位電路對(duì)單片機(jī)系統(tǒng)意義非凡,單片機(jī)在啟動(dòng)時(shí)都需要復(fù)位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。89系列單片機(jī)的復(fù)位信號(hào)是從RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時(shí),且振蕩器穩(wěn)定后,如

24、果RST引腳上有一個(gè)高電平并維持2個(gè)機(jī)器周期(24個(gè)振蕩周期)以上,則CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。最小電路如圖3.1所示。 圖3.1 最小系統(tǒng)圖 3.2 端口分配 89C52芯片同時(shí)具有8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。合理安排端口如表3.1 表3.1 端口分配圖 單片機(jī)端口 外圍電路 P0.0-P0.7,P2.0-P2.2 屏幕顯示模塊 P2.5-P2.7 電機(jī)驅(qū)動(dòng)模塊 P2.3-P2.4 光感模塊 P1

25、.0-P1.2,P1.3-P1.5 3×3矩陣按鍵模塊 P1.6-P1.7,P3.0 定位開關(guān)模塊 P3.2 紅外線 P3.3 溫度模塊 P3.7 蜂鳴器 3.3 屏幕顯示模塊 1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼。屏幕上主要顯示定時(shí)時(shí)間和時(shí)時(shí)溫度。定時(shí)模塊的時(shí)間顯示小時(shí)和分鐘,采用倒計(jì)時(shí)模式。液晶模塊電路圖如圖3.2 圖3.2 液晶模塊圖 3.4 電機(jī)驅(qū)動(dòng)模塊 本次設(shè)計(jì)采用的是12V直流電

26、機(jī)提供動(dòng)力,所以設(shè)計(jì)使用3個(gè)繼電器組合成電機(jī)控制模塊控制。1號(hào)繼電器打開時(shí),電動(dòng)機(jī)正轉(zhuǎn):1號(hào)、2號(hào)、3號(hào)三個(gè)繼電器同時(shí)打開時(shí),電動(dòng)機(jī)反轉(zhuǎn):1號(hào)、2號(hào)、3號(hào)三個(gè)繼電器同時(shí)關(guān)閉,電機(jī)停止轉(zhuǎn)動(dòng)。電機(jī)驅(qū)動(dòng)電路如下圖3.3 圖3.3 電機(jī)驅(qū)動(dòng)模塊圖 3.5 光感模塊 光感模塊采用光敏電阻和滑動(dòng)變組組合,通過(guò)改變滑動(dòng)變阻組值的大小可以改變光感模塊對(duì)光線的感應(yīng)敏感度。本設(shè)計(jì)采用兩個(gè)光感模塊,這樣用戶就可以設(shè)定兩個(gè)光線值,當(dāng)1號(hào)光感模塊檢測(cè)到光線強(qiáng)度達(dá)到設(shè)定值時(shí),LED燈點(diǎn)亮,同時(shí)反饋主電路產(chǎn)生窗簾關(guān)合的動(dòng)作。當(dāng)光線強(qiáng)度再次加強(qiáng),達(dá)到2號(hào)模塊設(shè)定值,模塊再次反饋給主電路產(chǎn)生關(guān)合窗簾的動(dòng)作。光線減弱

27、則相反。光感模塊電路如圖3.4 圖3.4 光感模塊圖 3.6 3×3按鍵模塊 本設(shè)計(jì)需要按鍵較多,為了減少端口的使用,所以采用了3X3的矩陣鍵盤設(shè)計(jì)。鍵盤功能如下: 1號(hào)鍵:定時(shí)模式開啟,溫度顯示關(guān)閉,光感模式關(guān)閉。 2號(hào)鍵:每按一下,分鐘加一。 3號(hào)鍵:每按一下,小時(shí)加以。 4號(hào)鍵:定時(shí)模式關(guān)閉,溫度顯示開啟,光控模式開啟。 5號(hào)鍵:定時(shí)時(shí)間清零。 6號(hào)鍵:定時(shí)時(shí)間分鐘部分顯示30. 7號(hào)鍵:電動(dòng)機(jī)停止轉(zhuǎn)動(dòng)。 8號(hào)鍵:電動(dòng)機(jī)正轉(zhuǎn),窗簾開啟。 9號(hào)鍵:電動(dòng)機(jī)反轉(zhuǎn),窗簾閉合。 3×3鍵盤模塊電路如圖3.5 圖3.5 3×3按鍵模塊

28、圖 3.7 紅外模塊 為了方便用戶使用,本設(shè)計(jì)還提供紅外線遙控功能,采用的VS1838紅外接頭。其中的九個(gè)按鍵和3×3的矩陣按鍵功能相同。紅外模塊電路圖如圖3.6 圖3.6 紅外模塊圖 3.8 溫度顯示模塊 為了時(shí)刻提醒用戶注意溫度變化,本設(shè)計(jì)特別增加了溫度顯示模塊。采用18B20單線數(shù)字式溫度計(jì),時(shí)時(shí)檢測(cè)室內(nèi)溫度,液晶屏幕上同步顯示。溫度模塊電路如圖3.7 圖3.7 溫度模塊圖 3.9 蜂鳴

29、器 為了提醒用戶定時(shí)結(jié)束,使用蜂鳴器發(fā)出警報(bào)音,同時(shí)在使用紅外遙控解碼時(shí),蜂鳴器發(fā)出嘀的一聲,提醒用戶解碼成功。本設(shè)計(jì)采用的是無(wú)緣蜂鳴器。蜂鳴器電路圖如圖3.8 圖3.8 蜂鳴器模塊圖 第4章 系統(tǒng)軟件設(shè)計(jì) 4.1 主程序設(shè)計(jì) 此次程序設(shè)計(jì)包括,溫度、時(shí)間顯示,鍵盤和紅外遙控設(shè)計(jì),光感模式設(shè)計(jì)。當(dāng)單片機(jī)上電,程序完成初始化,調(diào)用溫度、時(shí)間顯示程序,調(diào)用光感子程序并開啟,同時(shí)鍵盤和紅外被按檢測(cè)開啟。當(dāng)有按鍵被按下,執(zhí)行按鍵相對(duì)應(yīng)程序。系統(tǒng)軟件設(shè)計(jì)如下圖4.1 圖4.1 主程序流程圖 4.2 光感程序設(shè)計(jì) 利用硬件滑動(dòng)變阻

30、器設(shè)定光敏電阻的光感值,使用三個(gè)行程快關(guān)控制電機(jī)的停止,同時(shí)為了更好的控制電機(jī)轉(zhuǎn)動(dòng)引入了多個(gè)虛擬開關(guān)。設(shè)定光感2號(hào)的光感值高于1號(hào)。當(dāng)光線達(dá)到1號(hào)設(shè)定值時(shí),電動(dòng)機(jī)正轉(zhuǎn),窗簾逐步閉合,同時(shí)碰到行程開關(guān)停止。當(dāng)光線達(dá)到光感2號(hào)光感值時(shí),電動(dòng)機(jī)再次正轉(zhuǎn),窗簾全部閉合。反之,窗簾開啟。流程圖如下: 圖4.2 光感模式流程圖 4.3 電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì) 本次電機(jī)驅(qū)動(dòng)模塊采用的是三個(gè)繼電器控制電機(jī)的正反轉(zhuǎn),編號(hào)為1號(hào),2號(hào),3號(hào)。當(dāng)三個(gè)繼電器同時(shí)關(guān)閉時(shí),直流電機(jī)停止轉(zhuǎn)動(dòng);當(dāng)1號(hào)繼電器開啟,2號(hào)、3號(hào)繼電器關(guān)閉,直流電機(jī)正轉(zhuǎn);當(dāng)三個(gè)繼電器同時(shí)開啟時(shí),直流電機(jī)反轉(zhuǎn)。電機(jī)驅(qū)動(dòng)模塊流程圖如下:

31、 圖4.3 電機(jī)驅(qū)動(dòng)流程圖 4.4 定時(shí)模塊設(shè)計(jì) 為了方便用戶使用,特別增加了定時(shí)模塊。待鍵盤或者遙控按鍵時(shí)間設(shè)定以后,開啟定時(shí)功能鍵,溫度顯示隱藏,光感功能暫停,利用遙控或者鍵盤設(shè)置窗簾開合狀態(tài)。在定時(shí)過(guò)程中,用戶可隨時(shí)改變窗簾開啟的大小,也可在定時(shí)未結(jié)束時(shí)暫停定時(shí)功能重新開啟光感模塊。等到定時(shí)時(shí)間結(jié)束,溫度顯示,光感功能自動(dòng)開啟。 圖4.4 定時(shí)模塊流程圖 4.5 倒計(jì)時(shí)程序設(shè)計(jì) 為了使用戶知道定時(shí)時(shí)間,本設(shè)計(jì)采用倒計(jì)時(shí)模式顯示定時(shí)時(shí)間。秒表累計(jì)到60,分鐘減一;當(dāng)分鐘為0時(shí),判斷小時(shí)是否為0;小時(shí)為0,倒計(jì)時(shí)結(jié)束;小時(shí)不為0,分鐘變?yōu)?0,小

32、時(shí)減一。倒計(jì)時(shí)程序流程圖如下: 圖4.5 倒計(jì)時(shí)流程圖 4.6 溫度模塊設(shè)計(jì) 根據(jù)DS18B20的通訊協(xié)議,主機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過(guò)三個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位,復(fù)位成功后發(fā)送一條ROM指令,最后發(fā)送RAM指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作。復(fù)位要求主CPU將數(shù)據(jù)線下拉500微秒,然后釋放,DS18B20收到信號(hào)后等待16~60微秒左右,后發(fā)出60~240微秒的存在低脈沖,主CPU收到此信號(hào)表示復(fù)位成功。溫度模塊流程圖如下: 圖4.6 溫度流程圖 4.7 外部中斷子程序 紅

33、外線外部中斷,采用萬(wàn)能遙控器和VS1608紅外接受。9個(gè)按鍵實(shí)現(xiàn)矩陣鍵盤對(duì)應(yīng)的功能。紅外線中斷流程圖: 圖4.7 紅外中斷流程圖 定時(shí)中斷程序主要功能是對(duì)窗簾定時(shí)使用,單片機(jī)通過(guò)定時(shí)器單片機(jī)輸入的時(shí)鐘脈沖是由晶體振蕩器的輸出經(jīng)12 分頻后得到的,所以定時(shí)器也可看作是對(duì)計(jì)算機(jī)機(jī)器周期的計(jì)數(shù)器,本次采用的是11.0592M 的晶振,故每接收一個(gè)輸入脈沖的時(shí)間約為1.085μs,設(shè)定脈沖溢出的個(gè)數(shù)來(lái)確定1S的時(shí)間值。定時(shí)中斷程序流程圖如下: 圖4.8 定時(shí)中斷流程圖   第5章 制

34、作與調(diào)試 5.1 制作 制作電路板最重要的并且最難的一塊便是最小系統(tǒng)的焊接,因?yàn)檫@是核心的部分,之后焊接的電路都得和它連接,它的好壞直接決定著整個(gè)設(shè)計(jì)的成敗。在焊接電路前,得先準(zhǔn)備好焊接所需要的電器元件,電阻,三極管,電容等都有很多的規(guī)格,所以得找到本次設(shè)計(jì)電路所需的。根據(jù)以設(shè)計(jì)的好的原理圖,逐步焊接晶振電路,復(fù)位電路,紅外電路,屏幕顯示電路和蜂鳴器電路。調(diào)用單片機(jī)程序,測(cè)試這些局部功能,馬上就發(fā)現(xiàn)了問(wèn)題,紅外遙控經(jīng)常失效,解碼失敗。仔細(xì)比較原理圖的元器件的連接電路,發(fā)現(xiàn)在焊接晶振時(shí),自己使用了12M的晶振,所以導(dǎo)致了遙控的失效問(wèn)題。發(fā)現(xiàn)問(wèn)題后,直接將晶振換成了11.0592的晶振,再次測(cè)

35、試遙控功能,遙控馬上成功。在焊接完屏幕顯示電路后,發(fā)現(xiàn)屏幕白屏,不顯示任何數(shù)據(jù),用萬(wàn)用表檢測(cè)電路,但是沒有發(fā)現(xiàn)任何問(wèn)題,后來(lái)還是王老師說(shuō)的,原來(lái)是滑動(dòng)變阻器調(diào)節(jié)的幅度不夠,重新調(diào)整了滑動(dòng)變組后,屏幕顯示的功能馬上也解決了。在制作好最小系統(tǒng)后,開始了外圍電路的焊接,在電機(jī)驅(qū)動(dòng)電路焊接的時(shí)候,問(wèn)題又出現(xiàn)了。利用繼電器來(lái)控制直流電機(jī)正反轉(zhuǎn),需要的是改變接入電流正負(fù),通過(guò)三個(gè)繼電器的組合,一個(gè)起到電流總開關(guān)的作用,另外兩個(gè)實(shí)現(xiàn)電流的變相。焊接好電路后,接下來(lái)的就是程序的調(diào)試了。 5.2 調(diào)試 等到全部的硬件焊接完成后,確認(rèn)電路沒有短路,虛焊后就進(jìn)入了程序調(diào)試階段。程序的調(diào)試也是按部就班,所以按照

36、能功能實(shí)現(xiàn)顯性來(lái)安排。從電機(jī)驅(qū)動(dòng)模塊開始,在電機(jī)驅(qū)動(dòng)效果出現(xiàn)后,在增加按鍵功能,實(shí)現(xiàn)定時(shí)功能。調(diào)試到這里,就到了本設(shè)計(jì)核心程序,光感模塊程序了。光感模塊實(shí)際上就在電機(jī)驅(qū)動(dòng)模塊的基礎(chǔ)上增加光感開關(guān),虛擬開關(guān),組合而成,在這個(gè)模塊里,最重要的就是虛擬開關(guān)的設(shè)置了,因?yàn)槊總€(gè)步驟都有好幾個(gè)開關(guān)的需要設(shè)置。所以需要一個(gè)一個(gè)慢慢的調(diào)試。最后的就是遙控功能,實(shí)現(xiàn)按鍵功能復(fù)制到遙控鍵盤上。遙控功能采用的是外部中斷,老是出現(xiàn)遙控按鍵緩慢,要重復(fù)按好幾下才能實(shí)現(xiàn),所以就直接把遙控功能鍵部分放到中斷里面,問(wèn)題馬上就解決了。 圖5.1 調(diào)試過(guò)程圖 參考文獻(xiàn) [1]

37、邱麗芳,彭志剛,胡漢輝. 單片機(jī)原理與應(yīng)用[M]. 重慶:重慶大學(xué)出版社,2011. [2]李學(xué)海. 標(biāo)準(zhǔn)80C51單片機(jī)基礎(chǔ)教程—原理篇[M]. 北京:北京航空航天大學(xué)出版社,2006. [3]彭偉. 單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例[M]. 電子工業(yè)出版社,2009. [4]童詩(shī)白,華成英. 模擬電子技術(shù)(第四版)[M]. 高等教育出版社,2006. [5]閻石. 數(shù)字電子技術(shù)(第五版)[M]. 高等教育出版社,2005. [6]康華光. 電子技術(shù)基礎(chǔ)—模擬部分[M]. 高等教育出版社,2005. [7]劉葉冰,董欣,張家維. 智能園區(qū)系統(tǒng)集成技術(shù)[J]. 工程設(shè)計(jì)CAD與智能

38、建筑,1999,33(3):29-31. [8]騰飛. 智能家居就在眼前[J]. 中國(guó)計(jì)算機(jī)用戶,2001,11(3):25-27. [9]丁元杰. 單片微機(jī)原理及應(yīng)用[M]. 機(jī)械工業(yè)出版社,2003. [10]王明順,吳省. 可涓流充電的串行實(shí)時(shí)時(shí)鐘芯片DS1302及其應(yīng)用[J]. 電子技術(shù)應(yīng)用,1996,10(3):49-51. [11]崔惠柳. 串行實(shí)時(shí)時(shí)鐘芯片DS1302及其應(yīng)用[J]. 廣西工業(yè)學(xué)院,1998,9(2):30-34. [12]徐發(fā)榮. DS1302、HT1380時(shí)鐘芯片與8031單片機(jī)的接口技術(shù)[J]. 國(guó)外電子原器件,1999,1(3):25-27.

39、 [13]徐福成,趙會(huì)成. 電子制作,2004年合訂本上,自己動(dòng)手搭建單片機(jī)學(xué)習(xí)開發(fā)系統(tǒng)[J]. 2004,3(4):25-28. [14]李光飛,樓然苗,胡佳文等. 單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)[M]. 北京:北京航空航天大學(xué)出版社,2004. [15]覃韋玲. 利用單片機(jī)進(jìn)行紅外線編、解碼遙控[J]. 電子世界,2002(2):30-31. [16]侯勇,王泊林,顧燕. 一體化紅外線接收模塊及其在紅外秒表通訊中的應(yīng)用[J]. 儀器儀表與裝置,2001.5. [17]鄒書文,黃光桂. 紅外遙控單片機(jī)[J]. 電腦與信息技術(shù),1995,2(3):21-23. [18]李學(xué)軍. 如何用MCS

40、-51單片機(jī)擴(kuò)展串口進(jìn)行通訊[J]. 寧夏機(jī)械,2003,2(2):31-32. [19]李海濤. 關(guān)于如何提高單片機(jī)系統(tǒng)可靠性的探討[J]. 寧夏機(jī)械,2005,3(3):26-28. [20]高彥波,李巖,畢曉燕. PC與單片機(jī)之間的遠(yuǎn)距離并行通訊卡[J]. 電站設(shè)備自動(dòng)化,2001,3(3):29-31. [21]李艷紅. 單片機(jī)I/O口不宜用作直接驅(qū)動(dòng)出口[J]. 電站設(shè)備自動(dòng)化,2003,2(2):29-30. [22]方建軍,劉仕良. 機(jī)械動(dòng)態(tài)仿真與工程分析[M]. 北京:化學(xué)工業(yè)出版社,,2004. [23]單泉,狄長(zhǎng)春,吳高陽(yáng)等. Pro/Engineer Wild

41、fire 3.0中文版標(biāo)準(zhǔn)實(shí)例教程[M]. 北京:機(jī)械工業(yè)出版社,,2006. [24]劉瑞新,朱維克,于梅. AutoCAD2005中文版應(yīng)用教程[M]. 北京:機(jī)械工業(yè)出版社,,2005. [25]杜文豐. AutoCAD2005中文版機(jī)械制圖[M]. 北京:北京大學(xué)出版社,2003. [26]張世昌. 機(jī)械制造技術(shù)基礎(chǔ)[M]. 天津:天津大學(xué)出版社,2002. [27] 張秀艷. 畫法幾何及機(jī)械制圖[M]. 北京:高等教育出版社,,2004. [28]李朝青. 單片機(jī)原理及接口技術(shù)[M]. 北京:北京航空航天大學(xué)出版社,1998. [29]何立民. 單片機(jī)應(yīng)用技術(shù)選編[M].

42、 北京:北京航空航天大學(xué)出版社,1997. [30]譚浩強(qiáng). C語(yǔ)言程序設(shè)計(jì)[M]. 北京:清華大學(xué)出版社,2005. 44 附錄1 電路原理圖 附錄2 電路PCB圖 附錄3 安裝示意圖 附錄4 實(shí)物圖 附錄5 元件清單 器件名稱 型號(hào) 數(shù)量 器件名稱 型號(hào) 數(shù)量 芯片 STC89C52 1 紅外遙控接頭 VS1838 1 光感集成塊 LM2

43、93 2 溫度集成塊 18B20 1 液晶顯示器 LCD1602 1 排阻 10K 3 電容 30pf 2 電阻 1K 1 10pf 2 2K 2 滑動(dòng)變阻器 10K 1 10K 1 電解電容 10uf 1 100Ω 8 晶振 11.0592 1 開關(guān) 按鍵開關(guān) 10 繼電器 JQC-3F 3 行程開關(guān) 4 蜂鳴器 普通 1 接線柱 300V10A 2

44、 直流電機(jī) 12V 1 三極管PNP S8550 3 附錄6 源程序 #include //包含單片機(jī)寄存器的頭文件 #include //包含_nop_()函數(shù)定義的頭文件 sbit IR=P3^2; //將IR位定義為P3.2引腳 sbit RS=P2^0; //寄存器選擇位,將RS位定義為P2.0引腳 sbit RW=P2^1; //讀寫選擇位,將RW位定義為P2.1引腳 sbit E=P2^2; //使能信號(hào)位,將E位定義為P2.2引腳 sbit BF=P

45、0^7; //忙碌標(biāo)志位,,將BF位定義為P0.7引腳 sbit BEEP = P3^7; //蜂鳴器控制端口P36 unsigned char flag; #define uint unsigned int #define uchar unsigned char int i; unsigned char second; unsigned char min; unsigned char hour; unsigned char code digit[11]={"0123456789-"}; //定義字符數(shù)組顯示數(shù)字 char code w_d[]={

46、"dsz"}; unsigned char code Temp[]={"W"}; //說(shuō)明顯示的是溫度 unsigned char code Cent[]={"C"}; //溫度單位 unsigned char flag1,tltemp; //負(fù)溫度標(biāo)志 和臨時(shí)暫存變 /************************************************************************ 以下是DS18B20的操作程序 **************************************

47、**********************************/ sbit DQ=P3^3; unsigned char time; //設(shè)置全局變量,專門用于嚴(yán)格延時(shí) unsigned char a[4]; //儲(chǔ)存用戶碼、用戶反碼與鍵數(shù)據(jù)碼、鍵數(shù)據(jù)反碼 unsigned int LowTime,HighTime; //儲(chǔ)存高、低電平的寬度 sbit f1=P2^5; sbit f2=P2^6; sbit f3=P2^7; sbit k1=P2^3; sbit k2=P2^4; sbit k3=P3^6; sbit k4=P1^6;

48、uchar k5=0; bit k6=0; bit k7=1; bit k8=0; bit k9=1; bit k10=0; bit k11=0; sbit hang1=P1^0; sbit hang2=P1^1; sbit hang3=P1^2; sbit lie1=P1^3; sbit lie2=P1^4; sbit lie3=P1^5; sbit g1=P1^6; sbit g2=P1^7; /***************************************************** 函數(shù)功能:延時(shí)1ms **

49、*************************************************/ void delay1ms() { unsigned char i,j; for(i=0;i<10;i++) for(j=0;j<33;j++) ; } /***************************************************** 函數(shù)功能:延時(shí)若干毫秒 入口參數(shù):n ***************************************************/ void delay(uns

50、igned char n) { unsigned char i; for(i=0;i

51、/關(guān)閉蜂鳴器 delay(250); //延時(shí) } /***************************************************** 函數(shù)功能:判斷液晶模塊的忙碌狀態(tài) 返回值:result。result=1,忙碌;result=0,不忙 ***************************************************/ unsigned char BusyTest(void) { bit result; RS=0; //根據(jù)規(guī)定,RS為低電平,RW為

52、高電平時(shí),可以讀狀態(tài) RW=1; E=1; //E=1,才允許讀寫 _nop_(); //空操作 _nop_(); _nop_(); _nop_(); //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 result=BF; //將忙碌標(biāo)志電平賦給result E=0; return result; } /***************************************************** 函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊 入口參數(shù):dictate

53、 ***************************************************/ void WriteInstruction (unsigned char dictate) { while(BusyTest()==1); //如果忙就等待 RS=0; //根據(jù)規(guī)定,RS和R/W同時(shí)為低電平時(shí),可以寫入指令 RW=0; E=0; //E置低電平(根據(jù)表8-6,寫指令時(shí),E為高脈沖, // 就是讓E

54、從0到1發(fā)生正跳變,所以應(yīng)先置"0" _nop_(); _nop_(); //空操作兩個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 P0=dictate; //將數(shù)據(jù)送入P0口,即寫入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 E=1; //E置高電平 _nop_(); _nop_(); _nop_(); _nop_(); /

55、/空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 E=0; //當(dāng)E由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令 } /***************************************************** 函數(shù)功能:指定字符顯示的實(shí)際地址 入口參數(shù):x ***************************************************/ void WriteAddress(unsigned char x) { WriteInstruction(x|0x80); //顯示位置的確定方法規(guī)定為"

56、80H+地址碼x" } /***************************************************** 函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ASCII碼)寫入液晶模塊 入口參數(shù):y(為字符常量) ***************************************************/ void WriteData(unsigned char y) { while(BusyTest()==1); RS=1; //RS為高電平,RW為低電平時(shí),可以寫入數(shù)據(jù) RW=0; E=0;

57、 //E置低電平(根據(jù)表8-6,寫指令時(shí),E為高脈沖, // 就是讓E從0到1發(fā)生正跳變,所以應(yīng)先置"0" P0=y; //將數(shù)據(jù)送入P0口,即將數(shù)據(jù)寫入液晶模塊 _nop_(); _nop_(); _nop_(); _nop_(); //空操作四個(gè)機(jī)器周期,給硬件反應(yīng)時(shí)間 E=1; //E置高電平 _nop_(); _nop_(); _nop_(); _nop_(); //空操作四個(gè)

58、機(jī)器周期,給硬件反應(yīng)時(shí)間 E=0; //當(dāng)E由高電平跳變成低電平時(shí),液晶模塊開始執(zhí)行命令 } /***************************************************** 函數(shù)功能:對(duì)LCD的顯示模式進(jìn)行初始化設(shè)置 ***************************************************/ void LcdInitiate(void) { delay(15); //延時(shí)15ms,首次寫指令時(shí)應(yīng)給LCD一段較長(zhǎng)的反應(yīng)時(shí)間 WriteInstruction

59、(0x38); //顯示模式設(shè)置:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口 delay(5); //延時(shí)5ms  WriteInstruction(0x38); delay(5); WriteInstruction(0x38); delay(5); WriteInstruction(0x0C); //顯示模式設(shè)置:顯示開,有光標(biāo),光標(biāo)閃爍 delay(5); WriteInstruction(0x06); //顯示模式設(shè)置:光標(biāo)右移,字符不移 delay(5); WriteInstruction(0x01); //清屏幕指令,將以前的顯示內(nèi)容清

60、除 delay(5); } /************************************************************ 函數(shù)功能:對(duì)4個(gè)字節(jié)的用戶碼和鍵數(shù)據(jù)碼進(jìn)行解碼 說(shuō)明:解碼正確,返回1,否則返回0 出口參數(shù):dat *************************************************************/ bit DeCode(void) { unsigned char i,j; unsigned char temp; //儲(chǔ)存解碼出的數(shù)據(jù) for(

61、i=0;i<4;i++) //連續(xù)讀取4個(gè)用戶碼和鍵數(shù)據(jù)碼 { for(j=0;j<8;j++) //每個(gè)碼有8位數(shù)字 { temp=temp>>1; //temp中的各數(shù)據(jù)位右移一位,因?yàn)橄茸x出的是高位數(shù)據(jù) TH0=0; //定時(shí)器清0 TL0=0; //定時(shí)器清0 TR0=1; //開啟定時(shí)器T0 while(IR==0) //如果是低電平就等待 ; //

62、低電平計(jì)時(shí) TR0=0; //關(guān)閉定時(shí)器T0 LowTime=TH0*256+TL0; //保存低電平寬度 TH0=0; //定時(shí)器清0 TL0=0; //定時(shí)器清0 TR0=1; //開啟定時(shí)器T0 while(IR==1) //如果是高電平就等待 ; TR0=0; //關(guān)閉定時(shí)器T0 HighTime=TH0*256+TL0; //保存高電平寬度

63、 if((LowTime<370)||(LowTime>640)) return 0; //如果低電平長(zhǎng)度不在合理范圍,則認(rèn)為出錯(cuò),停止解碼 if((HighTime>420)&&(HighTime<620)) //如果高電平時(shí)間在560微秒左右,即計(jì)數(shù)560/1.085=516次 temp=temp&0x7f; //(520-100=420, 520+100=620),則該位是0 if((HighTime>1300)&&(HighTime<1800)) //如果高電平

64、時(shí)間在1680微秒左右,即計(jì)數(shù)1680/1.085=1548次 temp=temp|0x80; //(1550-250=1300,1550+250=1800),則該位是1 } a[i]=temp; //將解碼出的字節(jié)值儲(chǔ)存在a[i] } if(a[2]=~a[3]) //驗(yàn)證鍵數(shù)據(jù)碼和其反碼是否相等,一般情況下不必驗(yàn)證用戶碼 return 1; //解碼正確,返回1 } /*--------

65、----------二進(jìn)制碼轉(zhuǎn)換為壓縮型BCD碼,并顯示---------------*/ void two_2_bcd(unsigned char date) { unsigned char temp; temp=date; date&=0xf0; date>>=4; //右移四位得到高四位碼 date&=0x0f; //與0x0f想與確保高四位為0 if(date<=0x09) { WriteData(0x

66、30+date); //lcd顯示鍵值高四位 } else { date=date-0x09; WriteData(0x40+date); } date=temp; date&=0x0f; if(date<=0x09) { WriteData(0x30+date); //lcd顯示低四位值 } else { date=date-0x09; WriteData(0x40+date); } WriteData(0x48); //顯示字符'H' } /************************************************************ 函數(shù)功能:1602LCD顯示 *************************************************************/ void Disp(void)

展開閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!