一 課程設(shè)計(jì)任務(wù)
1.1 設(shè)計(jì)內(nèi)容及功能要求1.用步進(jìn)電機(jī)控制窗簾(L298N);
- 用光敏傳感器實(shí)現(xiàn)自動(dòng)控制;
- 實(shí)現(xiàn)窗簾全開(kāi),全關(guān),部分開(kāi);
- 用三個(gè)獨(dú)立按鍵設(shè)置打開(kāi),關(guān)閉,停止方式。
本組設(shè)計(jì)的自動(dòng)光控窗簾可以通過(guò)周?chē)h(huán)境的光照變化來(lái)控制電壓變化,從而控制直流電機(jī)的正轉(zhuǎn)和反轉(zhuǎn)。當(dāng)周?chē)庹战档偷侥骋粩?shù)值時(shí),電機(jī)開(kāi)始正轉(zhuǎn),數(shù)秒后停止。此時(shí)電機(jī)處于停止?fàn)顟B(tài)。當(dāng)周?chē)庹丈仙侥骋粩?shù)值時(shí),電機(jī)開(kāi)始反轉(zhuǎn),數(shù)秒后停止。這一個(gè)來(lái)回的過(guò)程就達(dá)到了自動(dòng)光控窗簾的效果了。
1.2 元器件清單元器件 數(shù)量
光敏電阻 1
普通電阻 1
PCF8591 1
MCS-8051 1
L298N 1
二極管 9
直流電機(jī) 1
運(yùn)算放大器 1
其他元件 若干
二 整體設(shè)計(jì)方案
2.1 設(shè)計(jì)思路本課題的設(shè)計(jì)思路是由光敏電阻與一個(gè)電阻串聯(lián)構(gòu)成分壓電路,當(dāng)光照強(qiáng)度改變時(shí),光敏電阻電阻值改變,電壓也會(huì)改變,由此構(gòu)成了變化的輸入電壓信號(hào)。信號(hào)經(jīng)PCF8591進(jìn)行A/D轉(zhuǎn)換,將信號(hào)送入單片機(jī)MCS-8051中,用來(lái)控制2個(gè)輸出端的電平高低,這2個(gè)輸出端與芯片L298N的輸入相連,用于控制電機(jī)的正反轉(zhuǎn),這就實(shí)現(xiàn)了自動(dòng)光控窗簾的效果了
2.2 整體框圖2.3 各模塊簡(jiǎn)介- 光照采集模塊:由光敏電阻阻值的改變來(lái)實(shí)現(xiàn)輸入電壓的變化。
光敏電阻器又稱(chēng)光導(dǎo)管。
結(jié)構(gòu):通常由光敏層、玻璃基片和電極等組成的。
特性:無(wú)光照射時(shí)呈高阻狀態(tài);有光照射時(shí)其阻值迅速減小。
- A/D轉(zhuǎn)換模塊:將光敏電阻與普通電阻分壓進(jìn)來(lái)的電壓轉(zhuǎn)換成單片機(jī)需要的信號(hào)。本設(shè)計(jì)中采用PCF8591,是單片、單電源低功耗8位CMOS數(shù)據(jù)采集器,具有四個(gè)模擬輸入、一個(gè)輸出和一個(gè)串行I^2C總線接口。3個(gè)地址引腳A0、A1、和A2用于編程硬件地址,允許將最多8個(gè)器件連接至I^2C總接線而不需要額外硬件。器件地址、控制和數(shù)據(jù)通道通過(guò)兩線雙向I^2C總線傳輸。

a、內(nèi)部結(jié)構(gòu)編輯:
如圖所示:
- AIN0~AIN3:模擬信號(hào)輸入量。
- A0~A2:引腳地址端。
- VDD、VSS:電源端。(2.5~6V)
- SDA、SCL:I2C總線的數(shù)據(jù)線、時(shí)鐘線。
- OSC:外部時(shí)鐘輸入端,內(nèi)部時(shí)鐘輸出端。
- EXT:內(nèi)部、外部時(shí)鐘選擇線,使用內(nèi)部時(shí)鐘時(shí)EXT接地。
- AGND:模擬信號(hào)地。
- AOUT:D/A轉(zhuǎn)換輸出端。
- VREF:基準(zhǔn)電源端。
b、工作過(guò)程編輯首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經(jīng)譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復(fù)位。下降沿啟動(dòng) A/D轉(zhuǎn)換,之后EOC輸出信號(hào)變低,指示轉(zhuǎn)換正在進(jìn)行。直到A/D轉(zhuǎn)換完成,EOC變?yōu)楦唠娖,指示A/D轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個(gè)信號(hào)可用作中斷申請(qǐng)。當(dāng)OE輸入高電平 時(shí),輸出三態(tài)門(mén)打開(kāi),轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。轉(zhuǎn)換數(shù)據(jù)的傳送A/D轉(zhuǎn)換后得到的數(shù)據(jù)應(yīng)及時(shí)傳送給單片機(jī)進(jìn)行處理。數(shù)據(jù)傳送的關(guān)鍵問(wèn)題是如何確認(rèn)A/D轉(zhuǎn)換的完成,因?yàn)橹挥写_認(rèn)完成后,才能進(jìn)行傳送。為此可采用下述三種方式。
(1)定時(shí)傳送方式
對(duì)于一種A/D轉(zhuǎn)換器來(lái)說(shuō),轉(zhuǎn)換時(shí)間作為一項(xiàng)技術(shù)指標(biāo)是已知的和固定的。?蓳(jù)此設(shè)計(jì)一個(gè)延時(shí)子程序,A/D轉(zhuǎn)換啟動(dòng)后即調(diào)用此子程序,延遲時(shí)間一到,轉(zhuǎn)換肯定已經(jīng)完成了,接著就可進(jìn)行數(shù)據(jù)傳送。
(2)查詢方式
A/D轉(zhuǎn)換芯片有表明轉(zhuǎn)換完成的狀態(tài)信號(hào),因此可以用查詢方式,測(cè)試EOC的狀態(tài),即可確認(rèn)轉(zhuǎn)換是否完成,并接著進(jìn)行數(shù)據(jù)傳送。
(3)中斷方式
把表明轉(zhuǎn)換完成的狀態(tài)信號(hào)(EOC)作為中斷請(qǐng)求信號(hào),以中斷方式進(jìn)行數(shù)據(jù)傳送。
不管使用上述哪種方式,只要一旦確定轉(zhuǎn)換完成,即可通過(guò)指令進(jìn)行數(shù)據(jù)傳送。首先送出口地址并以信號(hào)有效時(shí),OE信號(hào)即有效,把轉(zhuǎn)換數(shù)據(jù)送上數(shù)據(jù)總線,供單片機(jī)接受。
單片微型計(jì)算機(jī)簡(jiǎn)稱(chēng)為單片機(jī),是一種超大規(guī)模集成電路芯片,是集成CPU、RAM、ROM、I/O接口和中斷系統(tǒng)于同一硅片上的器件。
MCS-51是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片:
單片機(jī)口線分布:
P0:作為輸入口,接收PCF8591送出的信號(hào)
P1:控制ADC0809的ALE、OE、START、OEC端口
P2:作為輸出口,發(fā)送控制信號(hào)給L298N,從而控制直流電機(jī)正反轉(zhuǎn)
其余Vcc、Gnd、Rst、XTAL等端口與經(jīng)典電路接法相同。
l P0.0~P0.7 P0口8位雙向口線(在引腳的39~32號(hào)端子)。
l P1.0~P1.7 P1口8位雙向口線(在引腳的1~8號(hào)端子)。
l P2.0~P2.7 P2口8位雙向口線(在引腳的21~28號(hào)端子)。
l P3.0~P3.7 P3口8位雙向口線(在引腳的10~17號(hào)端子
- 電機(jī)正反轉(zhuǎn)控制模塊:由輸入信號(hào)控制直流電機(jī)的正轉(zhuǎn)和反轉(zhuǎn)。
恒壓恒流橋式2A驅(qū)動(dòng)芯片L298N 是15 腳 Multiwatt 封裝的 L298N,內(nèi)部包含4信道邏輯驅(qū)動(dòng)電路,是一種二相和四相步進(jìn)電機(jī)的專(zhuān)用驅(qū)動(dòng)器,可同時(shí)驅(qū)動(dòng)2個(gè)二相或1個(gè)四相步進(jìn)電機(jī). 內(nèi)含二個(gè)H-Bridge 的高電壓、大電流雙全橋式驅(qū)動(dòng)器,接收標(biāo)準(zhǔn)TTL邏輯準(zhǔn)位信號(hào),可驅(qū)動(dòng)46V、2A以下的步進(jìn)電機(jī),可以直接透過(guò)電源來(lái)調(diào)節(jié)輸出電壓;此芯片可直接由單片機(jī)的IO端口來(lái)提供模擬時(shí)序信號(hào),L298N 之接腳如圖所示:
L298N可接受的標(biāo)準(zhǔn)TTL邏輯電平信號(hào)Vss,Vss可接4.5~7V電壓。4腳VS可接電源電壓。VS電壓范圍VIH為+2.5~46V。輸出電流可達(dá)2.5A,可驅(qū)動(dòng)電感性負(fù)載。1腳和15腳下管的發(fā)射極分別單獨(dú)引出以便接入電流采樣電阻,形成電流傳感信號(hào)。L298N可驅(qū)動(dòng)兩個(gè)電動(dòng)機(jī),out1,out2和out3,out4之間可分別接電動(dòng)機(jī)。5,7,10,12腳接輸入控制電平,控制電機(jī)的正反轉(zhuǎn)。
三 硬件電路設(shè)計(jì)3.1 光照采集模塊硬件電路a、電路圖:
b、設(shè)計(jì)原理:由光敏電阻和一個(gè)普通電阻串聯(lián)構(gòu)成分壓電路,當(dāng)周?chē)h(huán)境的光照強(qiáng)度改變時(shí)光敏電阻阻值改變,從而改變了輸入電壓
3.2 A/D轉(zhuǎn)換模塊硬件電路
a、電路圖:
b、設(shè)計(jì)原理:將采集的電壓信號(hào)送入芯片PCF8591中,由芯片內(nèi)部對(duì)數(shù)據(jù)進(jìn)行鎖存、譯碼、轉(zhuǎn)換、比較等步驟,從而得到單片機(jī)MCS-8051所需要的信號(hào)。
3.3 電機(jī)正反轉(zhuǎn)控制模塊硬件電路a、電路圖:
b、設(shè)計(jì)原理:
單片機(jī)2個(gè)輸出端口連接L298N的2個(gè)輸入控制端,IN1和IN2。單片機(jī)收到ADC0809的輸入信號(hào)后判斷此時(shí)的電壓值,如果小于某一數(shù)值,輸出端P2.1和P2.2此時(shí)為1和0,信號(hào)送到正反轉(zhuǎn)控制芯片L298N后控制端IN1和IN2控制電機(jī)正轉(zhuǎn),數(shù)秒后停止;如果大于某一數(shù)值,輸出端變?yōu)?和1,經(jīng)L298N控制電機(jī)反轉(zhuǎn)。
四 控制軟件設(shè)計(jì)4.1 光照采集模塊軟件設(shè)計(jì)a、功能:用光敏電阻和一個(gè)普通電阻構(gòu)成分壓電路,當(dāng)光照強(qiáng)度改變時(shí)光敏電阻阻值改變,電壓改變,從而改變輸入電壓的大小。
b、流程圖

4.2 A/D轉(zhuǎn)換模塊軟件設(shè)計(jì)a、功能:電壓輸入信號(hào)送入芯片PCF8591后進(jìn)行轉(zhuǎn)換,將采集信號(hào)轉(zhuǎn)換成單片機(jī)89C51所需要的信號(hào)。
b、流程圖:
4.3 電機(jī)正反轉(zhuǎn)控制模塊軟件設(shè)計(jì)a、功能:由單片機(jī)2個(gè)輸出端口控制L298N的2個(gè)輸入控制端,IN1和IN2。當(dāng)IN1=1且IN2=0時(shí)控制電機(jī)正轉(zhuǎn);當(dāng)IN1=0且IN2=1時(shí)控制電機(jī)反轉(zhuǎn)。
b、流程圖:
五 PCB圖和3D效果圖
總結(jié)
為期一個(gè)月的單片機(jī)課程設(shè)計(jì)結(jié)束了,在這一個(gè)月的時(shí)間里,我們?yōu)檎n程設(shè)計(jì)規(guī)劃好了思路和流程,研究這些東西是如何結(jié)合在一起實(shí)現(xiàn)一個(gè)功能的,然后畫(huà)好了一張完整的電路圖。在做好了資料的準(zhǔn)備后,我們就開(kāi)始了忙碌的設(shè)計(jì)過(guò)程。
整個(gè)的課程設(shè)計(jì)過(guò)程是充滿艱辛的,有很多能困擾我們的問(wèn)題,更有些是絞盡腦汁也沒(méi)有克服的,但樂(lè)趣和意義就在這之中。我發(fā)現(xiàn)遇到了問(wèn)題要不斷地想問(wèn)題是從何而來(lái)的,要想的廣泛,而且要多關(guān)心別人做的同類(lèi)型的東西,因?yàn)榭赡苤恍枰c(diǎn)撥一下,只要一個(gè)靈感就能聯(lián)想到很多東西,問(wèn)題的答案也許就在其中。
我們不僅學(xué)習(xí)到了很多單片機(jī)的知識(shí),并且了解了AD,異步電機(jī)等程序的錄入和運(yùn)行,而且還暴露出來(lái)很多學(xué)習(xí)上的問(wèn)題,這些問(wèn)題的發(fā)現(xiàn)將為我們以后的學(xué)習(xí)和工作找明道路,查漏補(bǔ)缺為進(jìn)一步學(xué)習(xí)作好準(zhǔn)備!本次實(shí)驗(yàn)我們組做的課題是《智能窗簾控制系統(tǒng)設(shè)計(jì)》,這是一個(gè)實(shí)用性質(zhì)非常強(qiáng)的題目。首先,它非常聯(lián)系我們?nèi)粘I,每個(gè)人家里都有窗簾,有的人喜歡屋里偏暗,如果他裝上了光控窗簾,則能通過(guò)光照強(qiáng)度來(lái)實(shí)現(xiàn)窗簾的自動(dòng)收放功能 其次,光控窗簾是涉及到單片機(jī)、電路、信號(hào)、數(shù)學(xué)數(shù)字運(yùn)算等多學(xué)科的一門(mén)綜合性應(yīng)用非常強(qiáng)的課題,這個(gè)課題的成功實(shí)踐必將在一定程度上極大地激發(fā)我們?cè)谶@些相關(guān)學(xué)科的學(xué)習(xí)興趣,也會(huì)促使我們?nèi)ハ蚨鄬W(xué)科綜合應(yīng)用的方面發(fā)展,這也是當(dāng)今科學(xué)科技領(lǐng)域一個(gè)顯著的特點(diǎn)。從這一點(diǎn)上來(lái)說(shuō)這個(gè)課題的選取對(duì)所有參加這個(gè)課題研究的同學(xué)們來(lái)說(shuō)都是一個(gè)非常好的鍛煉。 其次也培養(yǎng)了我們每個(gè)人在對(duì)待科學(xué)問(wèn)題上孜孜不倦、嚴(yán)謹(jǐn)求實(shí)的科學(xué)作風(fēng),這對(duì)我們每個(gè)人來(lái)說(shuō)都是相當(dāng)有益的!當(dāng)然,通過(guò)做這個(gè)課題,也暴露出來(lái)了很多問(wèn)題值得我們?nèi)ヌ接懡鉀Q和克服:第一,時(shí)間利用問(wèn)題。由于課題難度較大,再一個(gè)有關(guān)時(shí)間的問(wèn)題就是時(shí)間利用率太低。第二,課題研究不夠深刻。課題研究總是浮于表面文章,對(duì)程序?qū)ψ詈蠼Y(jié)果研究不夠造成雖然某一塊地方做的比較好但是在大腦中沒(méi)有一個(gè)總體的印象,無(wú)法理論聯(lián)系實(shí)際,研究成果的應(yīng)用嚴(yán)重背離實(shí)際現(xiàn)實(shí),影響使用。
我且先總結(jié)到這里。這些問(wèn)題的發(fā)現(xiàn),有助于提高我們?cè)谝院蟮墓ぷ骱蛯W(xué)習(xí)中對(duì)此類(lèi)問(wèn)題的認(rèn)識(shí),確保不在同一問(wèn)題上再次犯錯(cuò)。 最后,衷心感謝黃老師給我們提供了這次難得的實(shí)訓(xùn)機(jī)會(huì),給了我們這么深刻的人生體會(huì),這對(duì)我們來(lái)說(shuō)是受益終身的!
單片機(jī)源程序如下:
- #include<reg51.h>
- #define uchar unsigned char
- unsigned char flag ;
- unsigned int count;
- sbit start=P1^5;
- sbit oe=P1^6;
- sbit eoc=P1^7;
- sbit in1=P1^1;
- sbit in2=P2^2;
- int rx;
- int i;
- float v;
- uchar d;
- int abc();
- void display();
- main()
- {
- in1=0;
- in2=0;0;
- start =0;
- oe =0;
- IE=0; //關(guān)閉所有中斷
- while(1)
- {
- d=adc(); //調(diào)用A/D轉(zhuǎn)換函數(shù)
- display(); //控制輸出信號(hào)
- }
- }
- int adc()
- {
- start =1;
- for(i=0;i<200;i++)
- start=0;
- while(eoc==0) //等待轉(zhuǎn)換結(jié)束
- oe=1; //轉(zhuǎn)換結(jié)束,設(shè)置讀允許
- d=P0; //讀采集信號(hào)值
- oe=0; //關(guān)閉讀允許
- return d; //返回電壓值
- }
- void display()
- {
- if(d<105) //輸入電阻小于2V
- {
- in1=1;
- in2=0; //直流電機(jī)正轉(zhuǎn)
- if(d<240) //輸入電壓大于4.6V
- {in1=0;in2=1;} //直流電機(jī)反轉(zhuǎn)
- }
- else
- {in1=0;
- in2=0;} //正常狀態(tài)直流電機(jī)停止
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
0.png (47.43 KB, 下載次數(shù): 39)
下載附件
2018-7-1 04:08 上傳
所有資料51hei提供下載:
單片機(jī)智能窗簾.rar
(1.78 MB, 下載次數(shù): 184)
2018-7-1 04:11 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5