找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2169|回復(fù): 2
收起左側(cè)

基于單片機(jī)的智能窗簾控制程序仿真與文檔

[復(fù)制鏈接]
ID:1123785 發(fā)表于 2024-6-4 22:00 | 顯示全部樓層 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png

電路原理圖如下:
51hei.png

1. 控制系統(tǒng)設(shè)計(jì)
1.1. 系統(tǒng)方案設(shè)計(jì)單片機(jī)應(yīng)用于多種電子產(chǎn)品中所取得的便捷性受到了人們的廣泛喜愛,對(duì)于自動(dòng)窗簾控制系統(tǒng)對(duì)單片機(jī)應(yīng)用的智能化要求,實(shí)現(xiàn)自動(dòng)控制的方案有兩種:
方案 以單片機(jī)為基礎(chǔ)的光照強(qiáng)度及時(shí)鐘模塊的自動(dòng)控制。
方案比較:
相同點(diǎn):都是通過單片機(jī)控制的,利用步進(jìn)電機(jī)控制開關(guān)以及以液晶屏顯示。
不同點(diǎn):檢測(cè)器件的選取不同。
方案 系統(tǒng)框圖如圖圖 1.1。
圖 1.1 方案框圖
方案主要以時(shí)鐘模塊以及光照采集元件,通過設(shè)定光照值來控制窗簾的打開與關(guān)閉從而實(shí)現(xiàn)白天開窗簾,晚上關(guān)窗簾的功能,利用設(shè)定的時(shí)間來控制窗簾的開閉,實(shí)用性更強(qiáng)[1]。綜合考慮以上因素,方案可行。
1.2. 系統(tǒng)工作原理智能窗簾控制系統(tǒng)由光敏傳感器來感應(yīng)外部環(huán)境的光強(qiáng)變化,由光敏傳感器感應(yīng)出來的信號(hào)輸入到A/D轉(zhuǎn)換器,轉(zhuǎn)換后的信號(hào)由單片機(jī)控制步進(jìn)電動(dòng)機(jī),來操作電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)與停止[2]。自動(dòng)窗簾控制器的各種狀態(tài)信息通過顯示模塊顯示。鍵盤控制為輸入設(shè)備,控制單片機(jī)的各種參數(shù)。單片機(jī)所需電壓由電源模塊來提供[3]。
總體結(jié)構(gòu)框圖如圖 1.2。
圖 1.2 總體結(jié)構(gòu)框圖
2. 硬件部分設(shè)計(jì)2.1. 控制模塊設(shè)計(jì)、2.1.1. STC89C51單片機(jī)單片機(jī)作為本系統(tǒng)的主控模塊,應(yīng)滿足要求如下:
(1)8 位的CPU(微處理器);
(2)片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM(128B);
(3)片內(nèi)程序存儲(chǔ)器ROM(4KB);
(4)兩個(gè)定時(shí)器/計(jì)數(shù)器;
(5)四個(gè)8位并行I/O接口P0-P3;
(6)五個(gè)中斷源的中斷控制系統(tǒng);
(7)片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,但石英晶體和微調(diào)電容需要外接;
根據(jù)以上要求本設(shè)計(jì)作品選用的是STC89C51單片機(jī)來控制步進(jìn)電機(jī)正反轉(zhuǎn)實(shí)現(xiàn)窗簾的開關(guān)。自動(dòng)模式下時(shí),光敏電阻檢測(cè)光照強(qiáng)度的變化轉(zhuǎn)化為電壓變化的信號(hào)輸送給單片機(jī),單片機(jī)輸送信號(hào)給電機(jī)驅(qū)動(dòng)模塊控制電機(jī)的正反轉(zhuǎn)實(shí)現(xiàn)窗簾的打開與關(guān)閉;智能遙控模式時(shí),通過遙控發(fā)射和接收模塊,單片機(jī)接收遙控指令控制電機(jī)的正反轉(zhuǎn);手動(dòng)按鍵模式時(shí),由按鍵控制電機(jī)的正反轉(zhuǎn)來實(shí)現(xiàn)窗簾的打開與關(guān)閉。
單片機(jī)相關(guān)引腳如圖 2.1。
圖 2.1單片機(jī)引腳
(1)時(shí)鐘電路引腳XTAL1(19 腳)和XTAL2(18 腳)[4]。
(2)控制信號(hào)引腳RST(9 腳),ALE(30 腳),PSEN (29 腳)和EA(31 腳)。
(3)輸入/輸出端口P0/P1/P2/P3
STC89C51有40個(gè)引腳,4個(gè)8位并行I/O口,1個(gè)全雙工異步串行口,與此同時(shí)內(nèi)部還含有5個(gè)中斷源,2個(gè)優(yōu)先級(jí)和2個(gè)16位的定時(shí)/計(jì)數(shù)器[5]。STC89C51單片機(jī)組成如圖 2.2。
圖 2.2 單片機(jī)組成
2.2. 硬件電路2.2.1. 時(shí)鐘模塊DS1302通過串行的方式與單片機(jī)之間進(jìn)行數(shù)據(jù)轉(zhuǎn)換與傳送,能夠向單片機(jī)提供準(zhǔn)確的實(shí)時(shí)時(shí)間信息,并且也可以對(duì)月末時(shí)間、閏平年的天數(shù)進(jìn)行自動(dòng)的調(diào)整,它還有著雙電源引腳即:主電源和備份電源,盡管在主電源無法供電或關(guān)閉的的狀態(tài)下,也能夠保持時(shí)鐘模塊的不中斷[8]。
DS1302與單片機(jī)系統(tǒng)的數(shù)據(jù)傳送依靠RST,I/O,SCLK三根端線即可完成[9]。結(jié)構(gòu)圖如圖 2.3所示。
圖 2.3 時(shí)鐘模塊連接

2.2.2. 光敏檢測(cè)模塊根據(jù)外面環(huán)境的光照強(qiáng)度值變化來控制電動(dòng)機(jī)合理的打開或者是關(guān)閉窗簾,而光敏電阻主要負(fù)責(zé)感應(yīng)光強(qiáng)從而完成此部分要實(shí)現(xiàn)的功能。在此次焊接設(shè)計(jì)中用到的是光敏電阻。光敏電阻,意思也就是外部光照強(qiáng)度值的變化會(huì)直接影響電阻值的改變,對(duì)此感應(yīng)十分敏感。光照強(qiáng)度增加電阻值減少;反之則電阻增大[11] ,如圖 2.4所示。
圖 2.4光強(qiáng)檢測(cè)原理圖
光敏電阻系統(tǒng)接收外部光照,在光照達(dá)到一定強(qiáng)度時(shí)窗簾會(huì)關(guān)閉,在光照弱時(shí)會(huì)自動(dòng)打開。光敏電阻收集到的是動(dòng)態(tài)的模擬信號(hào)[12],我們需要將這些信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)并輸出到單片機(jī)使其驅(qū)動(dòng)電機(jī)正反方向轉(zhuǎn)動(dòng)。根據(jù)這一方面就要用到數(shù)模轉(zhuǎn)換電路,在本作品中選用的是ADC0832芯片。
2.2.3. 步進(jìn)電動(dòng)機(jī)控制電路步進(jìn)電機(jī)利用電磁感應(yīng)原理,其角位移是通過控制電脈沖的數(shù)量來實(shí)現(xiàn)的[13]。步進(jìn)電機(jī)主要涉及相數(shù)、拍數(shù)、步距角、啟動(dòng)轉(zhuǎn)矩以及電機(jī)正反轉(zhuǎn)控制等[14]。電動(dòng)機(jī)連接圖與ULN2003芯片結(jié)構(gòu)如圖 2.5電動(dòng)機(jī)管腳連接圖所示。
圖 2.5電動(dòng)機(jī)管腳連接圖
ULN2003芯片概述與特點(diǎn):
ULN2003具有抗高壓和超高電流的達(dá)林頓系列,它的每一對(duì)達(dá)林頓管都有一個(gè)2.7K的基極電阻被串聯(lián),在5V工作電壓下工作時(shí),才與TTL和CMOS電路直接相連。組成主要為七個(gè)NPN型達(dá)林頓管。
步進(jìn)電機(jī)驅(qū)動(dòng)電路的工作過程是:通過P2.0-P3.0口將單片機(jī)與ULN2003連接,從P2口輸出00000001B,ULN2003連接的四個(gè)管腳中每次只有一個(gè)管腳導(dǎo)通,其他的管腳則斷開[15]。
2.2.4. 液晶模塊液晶顯示器主要優(yōu)點(diǎn)是功耗小、大小適宜輕便、顯示內(nèi)容多種多樣、顯示屏很薄等優(yōu)點(diǎn),被各種系統(tǒng)廣泛的應(yīng)用。本作品中應(yīng)用的是液晶顯示模塊LCD1602。圖 2.6為本作品的顯示器的連接圖。
圖 2.6 LCD1602連接圖
2.2.5. 電源模塊智能窗口供電電路輸出5V電壓給所有模塊供電,如圖 2.7所示。
圖 2.7 電源模塊
2.2.6. 按鍵模塊五個(gè)按鈕,分別為S1,S2,S3,S4,S5。其中S1為切換模式,S2為時(shí)間設(shè)置,S3是設(shè)置閾值,S4和S5為手動(dòng)模式的開/關(guān),自動(dòng)模式的加/減。連接方式如圖 2.8。
圖 2.8 時(shí)間模塊
3. 系統(tǒng)原理圖本次設(shè)計(jì)作品智能窗簾系統(tǒng)主要有兩種控制模式。當(dāng)系統(tǒng)處于手動(dòng)模式的時(shí)候可以通過按鍵實(shí)現(xiàn)一鍵開關(guān)窗簾;當(dāng)系統(tǒng)處在自動(dòng)模式下通過光敏檢測(cè)元件檢測(cè)光強(qiáng)從而實(shí)現(xiàn)窗簾的自動(dòng)開關(guān)。DS1302芯片是本設(shè)計(jì)的時(shí)鐘芯片,可以設(shè)置時(shí)間開啟和關(guān)閉窗簾,還可以實(shí)時(shí)的檢測(cè)當(dāng)前時(shí)間。液晶顯示模塊顯示當(dāng)前時(shí)間、光照強(qiáng)度系數(shù)和工作模式等信息。原理圖如圖3.1所示。
圖 3.1系統(tǒng)設(shè)計(jì)原理圖
4. 軟件設(shè)計(jì)4.1. 系統(tǒng)主程序設(shè)計(jì)本設(shè)計(jì)系統(tǒng)的主程序需要完成的功能有:?jiǎn)纹瑱C(jī)各個(gè)模塊的初始化操作,定時(shí)器初值設(shè)置以及開啟,按鍵的掃描,電機(jī)運(yùn)轉(zhuǎn),顯示時(shí)間光照數(shù)字量等[16]。如圖 4.1所示。

圖 4.1程序框圖
4.2. 1602液晶程序設(shè)計(jì)液晶開始顯示之前,必須先確定一個(gè)位置,表示要在哪個(gè)地方顯示,比如第1行第5列的位置。在完成坐標(biāo)定位之后就可以開始顯示內(nèi)容了。液晶在顯示的時(shí)候,是一位一位完成的。比如數(shù)字“123”,就會(huì)先顯示百位的“1”,然后是十位的“2”,最后是個(gè)位的“3”。顯示字符串的話,也是一樣的道理,比如顯示“hello”,也是從最開始的字母“h”開始顯示,一位一位的完成,直到顯示完字母“o”,才完成一次顯示任務(wù)。要說明的是,每次顯示一串字符或一個(gè)數(shù)字的時(shí)候,只需在最開始的時(shí)候完成一次定位,之后每顯示完一個(gè)字符,液晶會(huì)自動(dòng)跳到下一個(gè)位置的,無需每個(gè)字符都定位一次。
圖 4.2 液晶顯示流程圖
4.3. 按鍵子程序設(shè)計(jì)液晶上面的時(shí)間會(huì)不斷的走時(shí)刷新,就是靠單片機(jī)不斷去讀取時(shí)鐘芯片DS1302的時(shí)間信息并發(fā)到液晶顯示更新的。讀取時(shí)鐘芯片的時(shí)間信息主要流程是,寫入年份寄存器地址0x8D,接著就讀取的年份的數(shù)據(jù)。然后用同樣的方式,依次寫入寄存器地址0x89、0x87、0x8B、0x85、0x83、0x81,分別讀取到月份、日期、星期、小時(shí)、分鐘、秒鐘。讀取的流程圖如圖 4.3所示。
圖 4.3 讀取DS1302時(shí)間信息流程圖

5. 仿真所謂仿真就是模擬運(yùn)行,就是在實(shí)驗(yàn)的條件下模擬環(huán)境時(shí)間變化,檢查系統(tǒng)能否正常工作,并驗(yàn)證其運(yùn)行的可靠性。仿真如圖 5-1。


Proteus8.17版本的仿真和Keil代碼及word文檔3個(gè)文件下載(僅供參考): 智能窗簾設(shè)計(jì).7z (515.69 KB, 下載次數(shù): 31)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:513213 發(fā)表于 2024-6-5 10:20 | 顯示全部樓層
不錯(cuò),很有創(chuàng)意
回復(fù)

使用道具 舉報(bào)

ID:641483 發(fā)表于 2024-6-5 10:46 | 顯示全部樓層
感謝分享 先收藏學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表