仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png (261.58 KB, 下載次數: 26)
下載附件
2024-6-4 22:51 上傳
電路原理圖如下:
51hei.png (132.75 KB, 下載次數: 29)
下載附件
2024-6-4 22:53 上傳
1. 控制系統設計
1.1. 系統方案設計單片機應用于多種電子產品中所取得的便捷性受到了人們的廣泛喜愛,對于自動窗簾控制系統對單片機應用的智能化要求,實現自動控制的方案有兩種:
方案 以單片機為基礎的光照強度及時鐘模塊的自動控制。
方案比較:
相同點:都是通過單片機控制的,利用步進電機控制開關以及以液晶屏顯示。
不同點:檢測器件的選取不同。
方案 系統框圖如圖圖 1.1。
圖 1.1 方案框圖
方案主要以時鐘模塊以及光照采集元件,通過設定光照值來控制窗簾的打開與關閉從而實現白天開窗簾,晚上關窗簾的功能,利用設定的時間來控制窗簾的開閉,實用性更強[1]。綜合考慮以上因素,方案可行。
1.2. 系統工作原理智能窗簾控制系統由光敏傳感器來感應外部環境的光強變化,由光敏傳感器感應出來的信號輸入到A/D轉換器,轉換后的信號由單片機控制步進電動機,來操作電機的正轉、反轉與停止[2]。自動窗簾控制器的各種狀態信息通過顯示模塊顯示。鍵盤控制為輸入設備,控制單片機的各種參數。單片機所需電壓由電源模塊來提供[3]。
總體結構框圖如圖 1.2。
圖 1.2 總體結構框圖
2. 硬件部分設計2.1. 控制模塊設計、2.1.1. STC89C51單片機單片機作為本系統的主控模塊,應滿足要求如下:
(1)8 位的CPU(微處理器);
(2)片內數據存儲器RAM(128B);
(3)片內程序存儲器ROM(4KB);
(4)兩個定時器/計數器;
(5)四個8位并行I/O接口P0-P3;
(6)五個中斷源的中斷控制系統;
(7)片內振蕩器和時鐘產生電路,但石英晶體和微調電容需要外接;
根據以上要求本設計作品選用的是STC89C51單片機來控制步進電機正反轉實現窗簾的開關。自動模式下時,光敏電阻檢測光照強度的變化轉化為電壓變化的信號輸送給單片機,單片機輸送信號給電機驅動模塊控制電機的正反轉實現窗簾的打開與關閉;智能遙控模式時,通過遙控發射和接收模塊,單片機接收遙控指令控制電機的正反轉;手動按鍵模式時,由按鍵控制電機的正反轉來實現窗簾的打開與關閉。
單片機相關引腳如圖 2.1。
圖 2.1單片機引腳
(1)時鐘電路引腳XTAL1(19 腳)和XTAL2(18 腳)[4]。
(2)控制信號引腳RST(9 腳),ALE(30 腳),PSEN (29 腳)和EA(31 腳)。
(3)輸入/輸出端口P0/P1/P2/P3
STC89C51有40個引腳,4個8位并行I/O口,1個全雙工異步串行口,與此同時內部還含有5個中斷源,2個優先級和2個16位的定時/計數器[5]。STC89C51單片機組成如圖 2.2。
圖 2.2 單片機組成
2.2. 硬件電路2.2.1. 時鐘模塊DS1302通過串行的方式與單片機之間進行數據轉換與傳送,能夠向單片機提供準確的實時時間信息,并且也可以對月末時間、閏平年的天數進行自動的調整,它還有著雙電源引腳即:主電源和備份電源,盡管在主電源無法供電或關閉的的狀態下,也能夠保持時鐘模塊的不中斷[8]。
DS1302與單片機系統的數據傳送依靠RST,I/O,SCLK三根端線即可完成[9]。結構圖如圖 2.3所示。
圖 2.3 時鐘模塊連接
2.2.2. 光敏檢測模塊根據外面環境的光照強度值變化來控制電動機合理的打開或者是關閉窗簾,而光敏電阻主要負責感應光強從而完成此部分要實現的功能。在此次焊接設計中用到的是光敏電阻。光敏電阻,意思也就是外部光照強度值的變化會直接影響電阻值的改變,對此感應十分敏感。光照強度增加電阻值減少;反之則電阻增大[11] ,如圖 2.4所示。
圖 2.4光強檢測原理圖
光敏電阻系統接收外部光照,在光照達到一定強度時窗簾會關閉,在光照弱時會自動打開。光敏電阻收集到的是動態的模擬信號[12],我們需要將這些信號轉換成數字信號并輸出到單片機使其驅動電機正反方向轉動。根據這一方面就要用到數模轉換電路,在本作品中選用的是ADC0832芯片。
2.2.3. 步進電動機控制電路步進電機利用電磁感應原理,其角位移是通過控制電脈沖的數量來實現的[13]。步進電機主要涉及相數、拍數、步距角、啟動轉矩以及電機正反轉控制等[14]。電動機連接圖與ULN2003芯片結構如圖 2.5電動機管腳連接圖所示。
圖 2.5電動機管腳連接圖
ULN2003芯片概述與特點:
ULN2003具有抗高壓和超高電流的達林頓系列,它的每一對達林頓管都有一個2.7K的基極電阻被串聯,在5V工作電壓下工作時,才與TTL和CMOS電路直接相連。組成主要為七個NPN型達林頓管。
步進電機驅動電路的工作過程是:通過P2.0-P3.0口將單片機與ULN2003連接,從P2口輸出00000001B,ULN2003連接的四個管腳中每次只有一個管腳導通,其他的管腳則斷開[15]。
2.2.4. 液晶模塊液晶顯示器主要優點是功耗小、大小適宜輕便、顯示內容多種多樣、顯示屏很薄等優點,被各種系統廣泛的應用。本作品中應用的是液晶顯示模塊LCD1602。圖 2.6為本作品的顯示器的連接圖。
圖 2.6 LCD1602連接圖
2.2.5. 電源模塊智能窗口供電電路輸出5V電壓給所有模塊供電,如圖 2.7所示。
圖 2.7 電源模塊
2.2.6. 按鍵模塊五個按鈕,分別為S1,S2,S3,S4,S5。其中S1為切換模式,S2為時間設置,S3是設置閾值,S4和S5為手動模式的開/關,自動模式的加/減。連接方式如圖 2.8。
圖 2.8 時間模塊
3. 系統原理圖本次設計作品智能窗簾系統主要有兩種控制模式。當系統處于手動模式的時候可以通過按鍵實現一鍵開關窗簾;當系統處在自動模式下通過光敏檢測元件檢測光強從而實現窗簾的自動開關。DS1302芯片是本設計的時鐘芯片,可以設置時間開啟和關閉窗簾,還可以實時的檢測當前時間。液晶顯示模塊顯示當前時間、光照強度系數和工作模式等信息。原理圖如圖3.1所示。
圖 3.1系統設計原理圖
4. 軟件設計4.1. 系統主程序設計本設計系統的主程序需要完成的功能有:單片機各個模塊的初始化操作,定時器初值設置以及開啟,按鍵的掃描,電機運轉,顯示時間光照數字量等[16]。如圖 4.1所示。
圖 4.1程序框圖
4.2. 1602液晶程序設計液晶開始顯示之前,必須先確定一個位置,表示要在哪個地方顯示,比如第1行第5列的位置。在完成坐標定位之后就可以開始顯示內容了。液晶在顯示的時候,是一位一位完成的。比如數字“123”,就會先顯示百位的“1”,然后是十位的“2”,最后是個位的“3”。顯示字符串的話,也是一樣的道理,比如顯示“hello”,也是從最開始的字母“h”開始顯示,一位一位的完成,直到顯示完字母“o”,才完成一次顯示任務。要說明的是,每次顯示一串字符或一個數字的時候,只需在最開始的時候完成一次定位,之后每顯示完一個字符,液晶會自動跳到下一個位置的,無需每個字符都定位一次。
圖 4.2 液晶顯示流程圖
4.3. 按鍵子程序設計液晶上面的時間會不斷的走時刷新,就是靠單片機不斷去讀取時鐘芯片DS1302的時間信息并發到液晶顯示更新的。讀取時鐘芯片的時間信息主要流程是,寫入年份寄存器地址0x8D,接著就讀取的年份的數據。然后用同樣的方式,依次寫入寄存器地址0x89、0x87、0x8B、0x85、0x83、0x81,分別讀取到月份、日期、星期、小時、分鐘、秒鐘。讀取的流程圖如圖 4.3所示。
圖 4.3 讀取DS1302時間信息流程圖
5. 仿真所謂仿真就是模擬運行,就是在實驗的條件下模擬環境時間變化,檢查系統能否正常工作,并驗證其運行的可靠性。仿真如圖 5-1。
Proteus8.17版本的仿真和Keil代碼及word文檔3個文件下載(僅供參考):
智能窗簾設計.7z
(515.69 KB, 下載次數: 31)
2024-6-4 22:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|