課程設(shè)計(jì)報(bào)告---智能照明控制系統(tǒng)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  題目名稱:智能照明控制系統(tǒng)設(shè)計(jì)</p><p>  摘要: 本系統(tǒng)以光敏電阻的光強(qiáng)采集、A/D轉(zhuǎn)換、單片機(jī)AT89C51為核心,組成最小控制系統(tǒng),并和高亮LED顯示電路共同構(gòu)成。外界光強(qiáng)的大小通過(guò)電壓的線性轉(zhuǎn)換,并用延時(shí)來(lái)控制燈亮度來(lái)體現(xiàn)。該系統(tǒng)能夠隨環(huán)境光強(qiáng)的變化或軟件所設(shè)定的時(shí)間自動(dòng)控制燈的亮滅;同時(shí)系統(tǒng)可以根據(jù)光線強(qiáng)度自動(dòng)控制燈的亮度,也可以手動(dòng)調(diào)節(jié)燈的亮度。</p>&

2、lt;p>  關(guān)鍵詞:51學(xué)習(xí)板 ADC0804 光敏電阻 中斷定時(shí) 延時(shí)</p><p><b>  目 錄</b></p><p>  1方案設(shè)計(jì)與論證3</p><p>  1.1整體設(shè)計(jì)方比較和選擇3</p><p><b>  2 系統(tǒng)設(shè)計(jì)4</b><

3、/p><p>  2.1 總體設(shè)計(jì)4</p><p>  2.2各單元模塊功能介紹及電路設(shè)計(jì)5</p><p>  2.2.1光線采集模塊5</p><p>  2.2.2模數(shù)轉(zhuǎn)換模塊6</p><p>  2.2.3 AT89C51單片機(jī)6</p><p>  2.2.4 LED顯示

4、模塊7</p><p>  2.2.5電源模塊7</p><p><b>  3軟件設(shè)計(jì)7</b></p><p><b>  4系統(tǒng)測(cè)試10</b></p><p>  4.1測(cè)試方案10</p><p>  4.2測(cè)試結(jié)果10</p><

5、p>  4.3結(jié)果分析10</p><p><b>  5結(jié)語(yǔ)11</b></p><p><b>  附錄:12</b></p><p>  附1:元器件明細(xì)表12</p><p>  附2:電路圖圖紙及實(shí)物圖13</p><p>  附3:程序清單14&

6、lt;/p><p><b>  1方案設(shè)計(jì)與論證</b></p><p>  整體設(shè)計(jì)方比較和選擇</p><p>  本系統(tǒng)包括智能系統(tǒng)和照明系統(tǒng)。這兩個(gè)部分的具體的設(shè)計(jì)思路如下所示:</p><p>  智能系統(tǒng)是基于學(xué)習(xí)板上的51單片機(jī),理論結(jié)合實(shí)際的應(yīng)用,故主要是軟件程序的編寫(xiě),其次是單片機(jī)的擴(kuò)展口與A/D芯片和高亮

7、發(fā)光二極管的連接。其有4個(gè)并行I/O端口,分別是P0、P1、P2和P3,每個(gè)端口都有雙向I/O功能。P0口在學(xué)習(xí)板上控制數(shù)碼管的顯示,故在設(shè)計(jì)本系統(tǒng)時(shí)暫不考慮,P1口只能做I/O口使用,且其內(nèi)部有上拉電阻,因P1.0-P1.3控制數(shù)碼管、按鍵和學(xué)習(xí)板上的燈的使能端,故只剩P1.4-P1.7口,不妨將P1.5與高亮發(fā)光二極管相連(因?yàn)镻1口有上拉電阻故可直接相連),P1.7控制A/D的使能端;P2口與A/D芯片的數(shù)字輸出端相連,為單片機(jī)輸

8、入轉(zhuǎn)化后的8位二進(jìn)制;P3口實(shí)有特殊功能,直接與A/D芯片的端口相連。</p><p>  照明系統(tǒng)是基于光敏電阻的光線采集電路,光敏電阻器的阻值隨入射光線的強(qiáng)弱變化而變化,在黑暗條件下,它的阻值(暗阻)可達(dá)1~10M歐,在強(qiáng)光條件下,它阻值(亮阻)僅有幾百至數(shù)千歐姆。只要人眼可感受的光,都會(huì)引起光敏電阻的阻值變化。當(dāng)外界光線強(qiáng)度變化時(shí),可以將光敏電阻的電壓值經(jīng)過(guò)模數(shù)轉(zhuǎn)換成8位二進(jìn)制,送入單片機(jī)進(jìn)行處理,再由程序

9、根據(jù)這8位二進(jìn)制數(shù)據(jù)來(lái)處理判斷燈的亮滅或燈的亮度。</p><p><b>  方案1:</b></p><p>  方案的特點(diǎn):該電路采用的是基極分壓式射極偏置電路該電路具有很好的穩(wěn)定性,阻值很大的R1直接接在三極管的基極,起到很強(qiáng)的控制基極電流的作用,可以有效防止由于溫度等原因造成的電阻阻值波動(dòng)對(duì)測(cè)量結(jié)果的影響。三極管將由光強(qiáng)變化引起的電流變化轉(zhuǎn)化為電壓變化輸出,

10、接入ADC0804數(shù)模轉(zhuǎn)換的輸入端口。</p><p><b>  方案2:</b></p><p><b>  方案特點(diǎn):</b></p><p>  該電路簡(jiǎn)單,利用光敏電阻與定值電阻R組成環(huán)境光檢測(cè)電路,通過(guò)測(cè)量R兩端電壓的變化來(lái)體現(xiàn)環(huán)境光強(qiáng)弱的變化。</p><p><b>  方

11、案論證:</b></p><p>  方案1的最大的特點(diǎn)是可以防止溫度等其他原因造成的電阻波動(dòng)對(duì)測(cè)量結(jié)果的影響,而考慮到此次的課程設(shè)計(jì)的目的是了解智能照明控制系統(tǒng)的基本原理,基于51學(xué)習(xí)板,掌握和夯實(shí)單片機(jī)的擴(kuò)展和應(yīng)用,故選擇方案2這一簡(jiǎn)單的環(huán)境光采集電路,同樣可以達(dá)到系統(tǒng)隨時(shí)間和環(huán)境光線強(qiáng)度自動(dòng)控制燈的亮滅。而且,該電路簡(jiǎn)單,不容易被損壞。</p><p><b>

12、  2 系統(tǒng)設(shè)計(jì)</b></p><p>  2.1 總體設(shè)計(jì) </p><p>  本設(shè)計(jì)硬件電路包括電源模塊、光線采集模塊、模數(shù)模塊、AT89C51單片機(jī)模塊和LED顯示電路模塊等5部分組成。各模塊之間的關(guān)系如圖1所示。 </p><p>  圖1系統(tǒng)硬件結(jié)構(gòu)框圖</p><p>  主控系統(tǒng)模塊

13、采用基于51內(nèi)核的AT89C51單片機(jī)及模數(shù)轉(zhuǎn)換電路來(lái)完成信號(hào)采集、控制和通信功能,在本設(shè)計(jì)中AT89C51單片機(jī)模塊擔(dān)當(dāng)了控制核心,首先通過(guò)光線采集電路對(duì)外部的光強(qiáng)參數(shù)進(jìn)行數(shù)據(jù)采集,輸出的電壓值經(jīng)過(guò)8位A/D轉(zhuǎn)換器,將光敏電阻感應(yīng)光強(qiáng)產(chǎn)生的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)采樣,送至單片機(jī)AT89C51進(jìn)行處理,再通過(guò)算法將其與內(nèi)部參考數(shù)據(jù)進(jìn)行分析與比對(duì),實(shí)現(xiàn)當(dāng)外界環(huán)境光強(qiáng)變化時(shí)LED燈能夠隨之變化的功能。</p><p>

14、;  各單元模塊功能介紹及電路設(shè)計(jì)</p><p>  2.2.1光線采集模塊</p><p>  光線采集模塊通過(guò)ADC0804將光敏電阻感應(yīng)光強(qiáng)產(chǎn)生的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)采樣至單片機(jī),實(shí)現(xiàn)對(duì)外界環(huán)境光強(qiáng)數(shù)據(jù)的采集。電路連接如下:</p><p>  由VCC=5V,則光敏電阻兩端的電壓,即VIN(+)=VCCR光敏/(R光敏+R),而</p>&

15、lt;p>  01.V<VIN(+)<4.9V (保證在參考電壓范圍之內(nèi)0—5V)</p><p>  其中,本課程設(shè)計(jì)中R光敏范圍大約是在5k-300k之間,故由上不等式可以得出:</p><p>  <R<,即有6.1k<R<245k</p><p>  所以,我們?cè)陔娐分信c光敏電阻串聯(lián)的電阻選擇為10k,符合上述的范

16、圍要求。</p><p>  2.2.2模數(shù)轉(zhuǎn)換模塊</p><p>  模數(shù)轉(zhuǎn)換電路主要由ADC0804構(gòu)成。當(dāng)溫度值轉(zhuǎn)換為電壓后,還需要將電壓值進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換后的8位二進(jìn)制才能送到單片機(jī)進(jìn)行處理。ADC0804芯片是典型的8位8通道逐次逼近式A/D轉(zhuǎn)換器,可對(duì)8路模擬電壓實(shí)現(xiàn)分時(shí)轉(zhuǎn)換。為了換算方便,設(shè)置基準(zhǔn)電壓為5 V,即模擬量輸入為+5.0時(shí),ADC輸出為0FFH,即255,系

17、統(tǒng)分辨率為5/255=0.02V/LSB。</p><p><b>  其外圍設(shè)計(jì)電路為:</b></p><p>  2.2.3 AT89C51單片機(jī)</p><p>  單片機(jī)主要通過(guò)程序來(lái)控制燈的亮滅或燈的亮度。AT89C51單片機(jī)電路圖如下:</p><p>  2.2.4 LED顯示模塊</p>

18、<p>  LED顯示模塊主要由高亮LED燈構(gòu)成。主要是由單片機(jī)的外部中斷來(lái)控制LED燈的亮度。單片機(jī)每接收到一個(gè)同步信號(hào)后,就啟動(dòng)一個(gè)延時(shí)程序。而延時(shí)的長(zhǎng)短由按鍵或是外界光強(qiáng)來(lái)改變。當(dāng)延時(shí)結(jié)束后,單片機(jī)會(huì)產(chǎn)生一個(gè)觸發(fā)信號(hào),使燈發(fā)光。電路連接如下:</p><p><b>  2.2.5電源模塊</b></p><p>  電源模塊主要是由學(xué)習(xí)板連接電腦所獲

19、得的電壓,再分別連到所需電路中去。</p><p><b>  軟件設(shè)計(jì)</b></p><p>  根據(jù)智能照明系統(tǒng)的思想和原理,本次設(shè)計(jì)制作的電路比較簡(jiǎn)單。系統(tǒng)重點(diǎn)在軟件設(shè)計(jì),硬件設(shè)計(jì)相對(duì)較簡(jiǎn)單。主要和關(guān)鍵的問(wèn)題是根據(jù)光敏電阻、A/D芯片和學(xué)習(xí)板上的51單片的工作原理來(lái)編寫(xiě)程序以達(dá)到所要求實(shí)現(xiàn)的照明系統(tǒng)和智能系統(tǒng)。其流程圖如下所示:</p><

20、p> ?、倩疽螅合到y(tǒng)能夠隨時(shí)間和環(huán)境的光線強(qiáng)度自動(dòng)控制燈的亮滅。(先定時(shí)5s使燈不受外界環(huán)境變化的影響,5s結(jié)束后,燈隨外界光強(qiáng)度變化,25s后,燈一直亮)</p><p>  (a)主程序 (b)中斷程序</p><p> ?、诎l(fā)揮部分:1.燈的亮度由外界光線的變化調(diào)節(jié);</p><p> ?、郯l(fā)揮部分

21、:2.燈的亮度由學(xué)習(xí)板上的按鍵手動(dòng)調(diào)節(jié);</p><p> ?。╝)手動(dòng)調(diào)節(jié)的主程序</p><p>  (b)數(shù)碼管顯示芯片</p><p><b>  4系統(tǒng)測(cè)試</b></p><p><b>  4.1測(cè)試方案</b></p><p>  步驟1:基于proteus和

22、keil軟件,根據(jù)基本要求實(shí)現(xiàn)仿真;</p><p>  步驟2:先安上元件后,焊接電路,用萬(wàn)用表測(cè)試電路是否正確連通,以確定無(wú)虛焊、漏焊和焊接錯(cuò)誤等問(wèn)題,然后將集成芯片安上。以此可以防止集成芯片由于電壓過(guò)大而燒壞;</p><p>  步驟3:將焊接好的電路與學(xué)習(xí)板上的51單片機(jī)相連,檢查連接無(wú)誤后,裝載程序,調(diào)試,運(yùn)行;</p><p>  步驟4:觀察硬件反映

23、情況,檢查錯(cuò)誤,調(diào)整程序,以達(dá)到實(shí)現(xiàn)所要求的功能和現(xiàn)象的目的。</p><p><b>  4.2測(cè)試結(jié)果</b></p><p>  當(dāng)裝載基本要求的程序后,數(shù)碼管由5--0倒計(jì)時(shí),在此期間高亮發(fā)光二極管燈滅,且當(dāng)外界變暗或是變亮,都對(duì)燈沒(méi)有影響;當(dāng)數(shù)碼管為0時(shí),在接下來(lái)的25秒內(nèi),外界的變化會(huì)影響燈的亮滅;</p><p>  當(dāng)裝載自動(dòng)調(diào)

24、節(jié)燈的亮滅的程序后,光線逐漸變強(qiáng)的時(shí)候,燈的亮度也會(huì)逐漸增加。</p><p>  當(dāng)裝載手動(dòng)調(diào)節(jié)燈的亮度的程序,隨著按鍵的變化,可以發(fā)現(xiàn)燈隨著按鍵K0,數(shù)碼管顯示的占空比增加,燈變亮;若按K1鍵,數(shù)碼管顯示的占空比減小,燈變暗;若按K3鍵占空比清零。</p><p><b>  4.3結(jié)果分析</b></p><p>  在實(shí)現(xiàn)基本要求時(shí),光

25、敏電阻對(duì)光線比較敏感,外界光線變化會(huì)使燈亮滅明顯,不足的是數(shù)碼管顯示系統(tǒng)控制燈的時(shí)間(t1)和外界控制燈的時(shí)間(t2)是同步的,限制了t2>t1;</p><p>  在手動(dòng)調(diào)節(jié)燈的亮滅的時(shí)候,數(shù)碼管可以正確顯示占空比的值,不足是燈的亮度改變等級(jí)不明顯。</p><p>  經(jīng)過(guò)各項(xiàng)性能的測(cè)試,系統(tǒng)的指標(biāo)和電路基本達(dá)到預(yù)期的效果,如果能考慮到實(shí)際的光敏電阻的感光性和燈的亮滅區(qū)間,系統(tǒng)

26、將更加完善。</p><p><b>  5結(jié)語(yǔ)</b></p><p>  本報(bào)告詳細(xì)講述了系統(tǒng)設(shè)計(jì)方案,并給出了相關(guān)程序流程。由于系統(tǒng)架構(gòu)設(shè)計(jì)合理,功能電路實(shí)現(xiàn)較好,系統(tǒng)性能優(yōu)良、穩(wěn)定,較好地達(dá)到了題目要求的各項(xiàng)指標(biāo)。基于學(xué)習(xí)板系統(tǒng)進(jìn)行軟件調(diào)試很容易。在自動(dòng)調(diào)節(jié)燈的亮度時(shí),通過(guò)延時(shí)用數(shù)碼管顯示燈的亮的占空比,從而改變了燈的亮度。</p><p&

27、gt;  本系統(tǒng)的智能控制是以51學(xué)習(xí)板上的AT89C51單片機(jī)控制單元為核心,通過(guò)電腦的驅(qū)動(dòng),完成對(duì)系統(tǒng)燈的控制,采用一個(gè)高亮發(fā)光二級(jí)管的亮滅來(lái)顯示整個(gè)系統(tǒng)的效果。系統(tǒng)設(shè)計(jì)智能化控制的同時(shí),還設(shè)計(jì)了手動(dòng)按鍵的控制,達(dá)到了簡(jiǎn)單的智能照明。</p><p><b>  附錄:</b></p><p><b>  附1:元器件明細(xì)表</b></

28、p><p><b>  附2:電路圖圖紙</b></p><p><b>  實(shí)物圖</b></p><p><b>  附3:程序清單</b></p><p><b>  基本要求的程序:</b></p><p>  #include

29、 <REGX51.H></p><p>  #define uint unsigned int</p><p>  #define uchar unsigned char</p><p>  sbit adcs=P1^7;</p><p>  sbit adrd=P3^7;</p><p>  sbit a

30、dwr=P3^6;</p><p>  sbit led=P1^5;</p><p>  sbit Seg_ce=P1^0;</p><p>  sbit Dig_ce=P1^1;</p><p>  uchar tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//0到9&

31、lt;/p><p>  uint ad_data,m=0,n=0,t1=5,t2=25; //ad_data表示AD輸出8位2進(jìn)制,t1為定時(shí)5秒后啟動(dòng)光采集電路,t2為定時(shí)25秒后關(guān)閉光采集電路</p><p>  void delay(uint i)</p><p><b>  {</b></p><p>

32、<b>  uint j;</b></p><p>  for(i;i>0;i--)</p><p>  for(j=124;j>0;j--);</p><p><b>  }</b></p><p>  void keyscan(uint num) //顯示5秒<

33、;/p><p><b>  {</b></p><p>  uint ge,shi;</p><p>  ge=num%10;</p><p>  shi=num/10;</p><p>  P0=0; Seg_ce=1;Seg_ce=0; //清段選 </p

34、><p>  P0=0xff; Dig_ce=1;Dig_ce=0; //清位選 </p><p>  P0=tab[ge]; Seg_ce=1;Seg_ce=0; </p><p>  P0=0xfe; Dig_ce=1;Dig_ce=0; //顯示5秒 </p><p><b

35、>  } </b></p><p>  void read_ad()</p><p><b>  {</b></p><p><b>  adcs=0;</b></p><p>  adwr=0;delay(1);adwr=1;delay(1); //啟動(dòng)AD

36、,開(kāi)始采樣(/wr低電平保持的最短時(shí)間為100ns啟動(dòng)轉(zhuǎn)換后必須加入一個(gè)延時(shí)以等待AD采樣結(jié)束</p><p>  adrd = 0;delay(1);ad_data =P2;delay(1);adrd=1; //讀數(shù)據(jù)讀取轉(zhuǎn)換結(jié)果(/rd>200ns)</p><p><b>  adcs=1;</b></p><p><b

37、>  }</b></p><p>  void main()</p><p><b>  { P0=0;</b></p><p>  P1=0x2c;//初始化P1_5為低(燈一開(kāi)始是滅的)</p><p>  TMOD=0x01; //方式1,16位定

38、時(shí)器</p><p>  TH0=(65536-50000)/256;</p><p>  TL0=(65536-50000)%256; //設(shè)置定時(shí)器初值</p><p>  IE=0x82; //設(shè)置中斷允許</p><p>  TR0=1; //啟動(dòng)定時(shí)器

39、 </p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  if(m==0)keyscan(t1);</p><p>  if(t1==0)//5秒已完,啟動(dòng)光采集電路</p><p>&

40、lt;b>  { </b></p><p><b>  while(t2)</b></p><p>  {</p><p>  read_ad();</p><p>  if(ad_data<125) //當(dāng)外界很亮的時(shí)候關(guān)燈</p><p

41、><b>  {</b></p><p><b>  led=1;</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p>&l

42、t;p>  led=0; //亮燈</p><p>  delay(1);</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(t2==0) led=0; //25秒已完 ,foreve

43、r亮</p><p>  } </p><p><b>  } </b></p><p><b>  }</b></p><p>  void T0_timer()interrupt 1 //定時(shí)器T0中斷函數(shù)</p><

44、p><b>  {</b></p><p>  TH0=(65536-50000)/256; </p><p>  TL0=(65536-50000)%256;</p><p>  if(t1!=0)m++; //不為0說(shuō)明光采集電路還未啟動(dòng),還在5秒之內(nèi)</p><p>  i

45、f(m==20) //1秒 時(shí)間</p><p><b>  {</b></p><p><b>  m=0; </b></p><p><b>  t1--;</b></p><p><b>  }</b></p&g

46、t;<p>  if(t2!=0)n++; //不為0說(shuō)明還在25秒之內(nèi)</p><p>  if(n==20) //1秒 時(shí)間</p><p><b>  {</b></p><p><b>  n=0;</b></p><p>

47、;<b>  t2--;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  #include <REGX51.H></p><p>  #define uint unsigned int<

48、;/p><p>  #define uchar unsigned char</p><p>  sbit Dig_ce = P1^1; </p><p>  sbit Seg_ce = P1^0;</p><p>  sbit Key_ce = P1^3;</p><p>  sbit led= P1^

49、5;</p><p>  uint z; </p><p>  uchar tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //0-9</p><p>  void delay(uint i)</p><p><b>  {</b><

50、/p><p><b>  uint j;</b></p><p>  for(i;i>0;i--)</p><p>  for(j=19;j>0;j--);</p><p><b>  }</b></p><p>  void keyscan()</p>

51、<p><b>  {</b></p><p>  uchar Temp1,Temp2;</p><p>  P0=0;Seg_ce=1;Seg_ce=0;</p><p>  P0=0xfe;Dig_ce=1;Dig_ce=0;delay(1); //掃描第一行,將第一行置低電平<

52、/p><p>  Key_ce=0; //將P1_3口拉低,74LS244使能</p><p>  Temp1=P0; //讀P0口數(shù)據(jù)</p><p>  Temp1=Temp1&0x0f;

53、 //提取按鍵相關(guān)數(shù)據(jù)-P0口的低四位</p><p>  if(Temp1!=0x0f) //判斷是否有按鍵按下</p><p><b>  {</b></p><p>  de

54、lay(10); //延時(shí)消抖</p><p>  Temp2=P0;Temp2=Temp2&0x0f; //再讀P0口,并提取P0口低四位數(shù)據(jù)</p><p>  if(Temp1==Temp2)</p><p><

55、;b>  {</b></p><p>  switch(Temp2)</p><p><b>  {</b></p><p>  case 0x0e:z=z+10; break; // 按K0鍵每按一次鍵就增加10%的亮度,從而逐漸變亮,若低四位的值與0x0e相等,就執(zhí)行其后的語(yǔ)句</p><p> 

56、 case 0x0d:z=z-10;break; // 按K1鍵每按一次鍵就減少10%的亮度,從而逐漸變暗</p><p>  case 0x07:z=0; break; //按K3鍵清零</p><p>  default:break;</p><p>  }//等待按鍵釋放</p><p>  

57、while(Temp2!=0x0f)</p><p><b>  {</b></p><p>  //不斷地讀取P0口數(shù)據(jù),只要結(jié)果不等于0x0f,說(shuō)明有按鍵沒(méi)有被釋放,直到釋放,才退出</p><p><b>  Temp2=P0;</b></p><p>  Temp2=Temp2&0x

58、0f;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  Key_ce=1; //關(guān)使能端</p><p>

59、  if(z<=100) </p><p>  { P0=0xff; Dig_ce=1;Dig_ce=0; //清段選</p><p>  P0=tab[z%10]; Seg_ce=1;Seg_ce=0;delay(5); // 個(gè)位</p><p>  P

60、0=0xfe; Dig_ce=1;Dig_ce=0;delay(5);</p><p>  P0=0xff;Dig_ce=1;Dig_ce=0;</p><p>  P0=tab[(z/10)%10];Seg_ce=1;Seg_ce=0;delay(5);// 十位</p><p>  P0=0

61、xfd; Dig_ce=1;Dig_ce=0;delay(5);</p><p>  P0=0xff; Dig_ce=1;Dig_ce=0;</p><p>  P0=tab[z/100]|0x80;Seg_ce=1;Seg_ce=0;delay(5); // 百位<

62、/p><p>  P0=0xfb; Dig_ce=1;Dig_ce=0;delay(5);</p><p><b>  }</b></p><p>  else z=0; </p><p><b>  } </b></p><p

63、>  void main()</p><p><b>  {</b></p><p><b>  P0=0;</b></p><p><b>  P1=0x2c;</b></p><p>  z=0;

64、 // 100為100%的占空比 // 機(jī)器周期</p><p><b>  led=1;</b></p><p><b>  while(1)</b></p>&l

65、t;p><b>  {</b></p><p>  keyscan();</p><p><b>  led=0;</b></p><p><b>  delay(z);</b></p><p><b>  led=1;</b></p>

66、<p>  delay(100-z); </p><p><b>  } </b></p><p><b>  }</b></p><p>  拓展2(自動(dòng)控制燈的亮滅)</p><p>  #include <REGX51.H></p><p>  

67、#define uchar unsigned char</p><p>  #define uint unsigned int </p><p>  sbit adcs=P1^7; </p><p><b>  //A/D使能端</b></p><p>  sbit adrd=P3^7;

68、</p><p>  sbit adwr=P3^6;</p><p>  sbit led=P1^5;</p><p>  uint ad_data,num;</p><p>  void delay(uint z) //50微</p><p><b>  {</b>

69、;</p><p><b>  uint x,y;</b></p><p>  for(x=z;x>0;x--)</p><p>  for(y=10;y>0;y--);</p><p><b>  }</b></p><p>  void read_ad()

70、</p><p><b>  {</b></p><p><b>  adcs=0;</b></p><p>  adwr=0;delay(10);adwr=1;delay(10); //啟動(dòng)AD,開(kāi)始</p><p>  adrd = 0;delay(10);ad_data =P

71、2;delay(10);adrd=1; //讀數(shù)據(jù)讀取轉(zhuǎn)換結(jié)果(/rd>200ns)</p><p><b>  adcs=1;</b></p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b><

72、;/p><p>  uint z[]={0,10,20,30,40,50,60,70,80,90};</p><p>  P0=0xff; //初始化</p><p><b>  while(1)</b></p><p><b>  { </b></p><p>  read_

73、ad();</p><p>  if(ad_data<=50)</p><p>  num=0; </p><p>  //判斷外界光的強(qiáng)弱從而判斷燈應(yīng)該亮的等級(jí)</p><p>  else if(ad_data>50&&ad_data<=60)</p><p&g

74、t;<b>  num=1;</b></p><p>  else if(ad_data>60&&ad_data<=73)</p><p><b>  num=2;</b></p><p>  else if(ad_data>73&&ad_data<=87)</

75、p><p><b>  num=3;</b></p><p>  else if(ad_data>87&&ad_data<=120)</p><p><b>  num=4;</b></p><p>  else if(ad_data>120&&ad_d

76、ata<=140)</p><p><b>  num=5;</b></p><p>  else if(ad_data>140&&ad_data<=160)</p><p><b>  num=6;</b></p><p>  else if(ad_data>

77、;160&&ad_data<=180)</p><p><b>  num=7;</b></p><p>  else if(ad_data>180&&ad_data<=215)</p><p><b>  num=8;</b></p><p>  

78、else if(ad_data>215&&ad_data<=255)</p><p><b>  num=9;</b></p><p>  led=0;delay(z[num]); </p><p>  led=1;delay(100-z[num]); </p><p>&l

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論