基于單片機(jī)STC89C52RC的模擬路燈的控制系統(tǒng)設(shè)計(jì)說(shuō)明_第1頁(yè)
基于單片機(jī)STC89C52RC的模擬路燈的控制系統(tǒng)設(shè)計(jì)說(shuō)明_第2頁(yè)
基于單片機(jī)STC89C52RC的模擬路燈的控制系統(tǒng)設(shè)計(jì)說(shuō)明_第3頁(yè)
基于單片機(jī)STC89C52RC的模擬路燈的控制系統(tǒng)設(shè)計(jì)說(shuō)明_第4頁(yè)
基于單片機(jī)STC89C52RC的模擬路燈的控制系統(tǒng)設(shè)計(jì)說(shuō)明_第5頁(yè)
已閱讀5頁(yè),還剩20頁(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、 . . . 題目名稱:模擬路燈控制系統(tǒng)(I題)摘要: 本系統(tǒng)采用單片機(jī)STC89C52RC作為模擬路燈控制系統(tǒng)的核心。由光耦傳感器電路、光敏反饋電路、鍵盤輸入與數(shù)碼管顯示電路、LED燈電路構(gòu)成、蜂鳴器發(fā)聲與LED指示燈電路、直流穩(wěn)壓電路。時(shí)鐘系統(tǒng)由單片機(jī)構(gòu)成,采用光敏電阻感應(yīng)外部環(huán)境亮暗的變化以與檢測(cè)LED燈的狀態(tài),利用反射式光電傳感器檢測(cè)路上信息??煽康挠布O(shè)計(jì)和優(yōu)化的軟件算法,以與獨(dú)立鍵盤與七段數(shù)碼管使得路燈控制系統(tǒng)的操作簡(jiǎn)單、直觀,系統(tǒng)設(shè)置了故障報(bào)警功能,令本設(shè)計(jì)更加人性化。 關(guān)鍵詞:STC89C52RC單片機(jī) LED指示燈 故障報(bào)警 Abstract:The system USES

2、the monolithic STC89C52RC as the core of the system simulation street lamp control. Infrared sensor by electric circuit, photosensitive feedback circuit, keyboard input and digital pipe display circuit, LED lamp circuit structure, voice and LED indicator light buzzer circuit, constant current source

3、 circuit. The clock by single-chip microcomputer system structure, using photoconductive resistance induction external environment light and dark change and detection of LED lights, using state reflecting photoelectric sensor test the way information. Reliable hardware design and optimization softwa

4、re algorithm, and independent keyboard and seven period of digital tube makes street lamp of the control system of the operation is simple, intuitive, system has set up fault alarm function, make this a design more humane. Keyword:STC89C52RC Singlechip LED Indicator Faultalarm1 方案論證與比較1.1 采樣方法選擇光亮檢測(cè)

5、方案:方案一:采用光敏二極管感受外屆光照變化,無(wú)光照時(shí),有很小的飽和反向漏電流,二極管截止;光照時(shí)反向電流增大,形成光電流。方案二:采用光敏電阻對(duì)光源的感應(yīng)改變自身電阻,由電壓比較器提取之間電壓,考慮到電阻變化的靈敏度,采用兩個(gè)光敏電阻串聯(lián)的方式,通過(guò)改變與光敏電阻串聯(lián)的電位器的值可以調(diào)節(jié)光敏電阻的感光圍??紤]到現(xiàn)實(shí)中聲光控制技術(shù)的運(yùn)用已經(jīng)證明了光敏電阻完全可以達(dá)到要求,且價(jià)格便宜,電路簡(jiǎn)單。綜合考慮以上方案采用光敏電阻。 物體檢測(cè)方案: 方案一、采用攝像頭或探測(cè)頭收集路面上信息。用這種方法,對(duì)路面信息處理準(zhǔn)確,但是成本過(guò)高,數(shù)據(jù)處理量大,對(duì)硬、軟件的要求都非常高,短時(shí)間難以實(shí)現(xiàn)。 方案二:使

6、用反射式紅外二極管和接收管組成發(fā)射-接收器。由于紅外光波長(zhǎng)比可見光長(zhǎng),因此受可見光的影響比較小,同時(shí),紅外對(duì)管還具有以下優(yōu)點(diǎn):質(zhì)量輕,靈敏度高,線性好,接口電路比較簡(jiǎn)單,安裝方便,足夠滿足對(duì)本系統(tǒng)中物體檢測(cè)的要求?;谝陨显?,選用了成本較低的方案二。1.2 處理器的選擇 單片機(jī)STC89C52RC作為模擬路燈控制系統(tǒng)的核心。STC89C52RC 具有許多優(yōu)點(diǎn):RAM,ROM空間大、指令周期短、運(yùn)算速度快、低功耗、低電壓、可編程音頻處理,易于編程和調(diào)試。本題要求支路控制器有聲光報(bào)警功能,由此看來(lái)單片機(jī)STC89C52RC更具有優(yōu)越性。2 系統(tǒng)設(shè)計(jì)2.1 總體設(shè)計(jì)系統(tǒng)總框圖如下:2.2 單元電路

7、設(shè)計(jì)2.2.1 光耦傳感電路光耦傳感電路再整個(gè)項(xiàng)目中起著至關(guān)重要的作用,當(dāng)74ALS373給三極管信號(hào)時(shí),三極管處于飽和狀態(tài),此時(shí)光耦傳感電路形成通路。當(dāng)有車輛通過(guò)馬路時(shí)此時(shí)它可感知物體,從而傳給單片機(jī),再由單片機(jī)來(lái)控制LED燈顯示。2.2.2 光敏反饋電路光敏反饋電路是通過(guò)光敏電阻的變化來(lái)調(diào)節(jié)輸出,由于上圖中只有光敏電阻是可變的,所以可以通過(guò)比較器來(lái)調(diào)節(jié)輸出,從而來(lái)控制電路。比較器 當(dāng)去掉運(yùn)放的反饋電阻時(shí),或者說(shuō)反饋電阻趨于無(wú)窮大時(shí)(即開環(huán)狀態(tài)),理論上認(rèn)為運(yùn)放的開環(huán)放大倍數(shù)也為無(wú)窮大(實(shí)際上是很大,如LM324運(yùn)放開環(huán)放大倍數(shù)為100dB,既10萬(wàn)倍)。此時(shí)運(yùn)放便形成一個(gè)電壓比較器,其輸出

8、如不是高電平(V+),就是低電平(V-或接地)。當(dāng)正輸入端電壓高于負(fù)輸入端電壓時(shí),運(yùn)放輸出低電平。當(dāng)光敏電阻有光照射時(shí),它的電阻大概在5K左右,在黑暗情況下時(shí),它的電阻大概在50K左右,它的變化使得比較器的輸入端口電壓變化,通過(guò)比較器體現(xiàn)出來(lái),然后輸出端連接到單片機(jī)控制端。輸出高電平大概在4V左右,低電平是0V。2.2.3 鍵盤輸入與數(shù)碼管顯示電路2.2.4 LED燈電路構(gòu)成 LED的在特征決定了它是最理想的光源去代替?zhèn)鹘y(tǒng)的光源,它有著廣泛的用途。體積小 ,LED基本上是一塊很小的晶片被封裝在環(huán)氧樹脂里面,所以它非常的小,非常的輕。耗電量低,LED耗電非常低,一般來(lái)說(shuō)LED的工作電壓是2-3.

9、6V。工作電流是0.02-0.03A。這就是說(shuō):它消耗的電不超過(guò)0.1W。燈體也沒(méi)有松動(dòng)的部分,這些特點(diǎn)使得LED可以說(shuō)是不易損壞的。2.2.5 蜂鳴器發(fā)生與LED指示燈電路 蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。 ;蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。而我們用的是壓電式蜂鳴器,圖如上所示,當(dāng)我們是pnp三極管工作在飽和狀態(tài)時(shí),三極管輸出低電平,反之三級(jí)管輸出高電平,使得蜂鳴器發(fā)出聲音。2.2.6 故障檢測(cè)電路2.2.7 直流穩(wěn)壓電路三端集成穩(wěn)壓電路,這是一種集成電

10、路的穩(wěn)壓電路,其功能是穩(wěn)定直流輸出電壓。這種集成電路只有三根引腳,使用很方便,在許多場(chǎng)合都有著廣泛應(yīng)用。穩(wěn)壓電路的作用是使得輸出的直流電壓在電網(wǎng)電壓或負(fù)載電流發(fā)生變化時(shí)保持穩(wěn)定。它由電源變壓器、整流電路、濾波電路、穩(wěn)壓電路等4部分組成的。變壓器的作用是將交流市電變換成所需要的交流電壓;整流電路的作用是將交流電變換成單向脈動(dòng)直流電;濾波電路的作用是將脈動(dòng)電壓中的脈動(dòng)成分去掉,輸出比較平滑的直流電壓;穩(wěn)壓電路的作用是使得輸出的直流電壓在電網(wǎng)電壓或負(fù)載電流發(fā)生變化時(shí)保持穩(wěn)定。3 軟件設(shè)計(jì)主控制芯片為STC89C52RC,測(cè)量周期為Atmega16實(shí)現(xiàn),由于處理器速度較快,所以采用c語(yǔ)言編程方便簡(jiǎn)單.

11、軟件流程圖如下: 4 系統(tǒng)測(cè)試4.1 總功率測(cè)量(室溫條件下) 輸入信號(hào) 頻率 幅度 測(cè)量時(shí)域總功率(w)測(cè)量頻域總功率(w) 理論值估算誤差 正弦波 100Hz 1 Vpp0.127 0.129 0.125 1.2% 1KH 1 Vpp 0.1260.129 0.125 1.3%音頻信號(hào) 20Hz-10KHz20mVpp-5Vpp 0.783 0.761 X 5% 1.803 1.777 X 5% 結(jié)果分析: 由于實(shí)驗(yàn)室提供的能夠模仿音頻信號(hào)的且能方便測(cè)量的信號(hào)只有正弦信號(hào),所以我們用一款比較差點(diǎn)的信號(hào)發(fā)生器產(chǎn)生信號(hào),然后進(jìn)行測(cè)量,發(fā)現(xiàn)誤差不達(dá),在+-5%以。我們以音頻信號(hào)進(jìn)行測(cè)量,由于其實(shí)

12、際值無(wú)法測(cè)量,所以我們只能根據(jù)時(shí)域和頻域以與估計(jì)其誤差,都在5%以。4.2 單個(gè)頻率分量測(cè)量(室溫條件下) 輸入信號(hào)頻率幅度最大功率頻點(diǎn)最大功率頻點(diǎn)功率次大功率頻點(diǎn)次大功率頻點(diǎn)功率正弦波500Hz100mVpp 500Hz1.20mw 520Hz0.04mW正弦波5KHz1Vpp 5KHz 120mw 5.02KHz3.56mw音頻信號(hào)20Hz-10K X 880Hz 23mw 600Hz 4.3mw結(jié)果分析:我們首先以理論上單一頻率的正弦波為輸入信號(hào),在理想狀況下,其頻譜只在正弦波頻率上有值,而由于有干擾,所以在其他頻點(diǎn)也有很小的功率。音頻信號(hào)由于有多個(gè)頻點(diǎn),所以沒(méi)有一定的規(guī)律性。由于音頻信

13、號(hào)波動(dòng)較大,沒(méi)有一定的規(guī)律,且實(shí)驗(yàn)室沒(méi)有專門配置測(cè)量?jī)x器,所以我們只好以正弦波和三角波作為信號(hào)進(jìn)行定量分析測(cè)量,以與對(duì)音頻信號(hào)進(jìn)行定性的分析和測(cè)量。我們發(fā)現(xiàn)其數(shù)字和用電腦模擬的結(jié)果符合得很近。5 結(jié)論本設(shè)計(jì)以單片機(jī)STC89C52RC系統(tǒng)為核心部件,采用光電檢測(cè)技術(shù),通過(guò)軟件分時(shí)復(fù)用控制算法對(duì)系統(tǒng)進(jìn)行優(yōu)化,分模塊實(shí)現(xiàn)賽題要求。在系統(tǒng)設(shè)計(jì)過(guò)程中,充分利用單片機(jī)的強(qiáng)大功能,力求以方便靈活的軟件編程簡(jiǎn)化復(fù)雜難調(diào)的硬件電路,滿足系統(tǒng)設(shè)計(jì)要求。堅(jiān)持“人性化”理念,在具體設(shè)計(jì)中,使用鍵盤輸入、七段數(shù)碼管顯示形成較為友好的人機(jī)交互界面。整機(jī)操作簡(jiǎn)單,使用方便,并很好的完成競(jìng)賽的全部要求。本設(shè)計(jì)主要特色:l

14、采用全集成混合信號(hào)在線系統(tǒng)單片機(jī)STC89C52RC主控系統(tǒng),提高系統(tǒng)運(yùn)行速度、簡(jiǎn)化硬件設(shè)計(jì);l 優(yōu)化的軟件算法,智能化的自動(dòng)控制;l 傳感器檢測(cè)系統(tǒng),采用光敏電阻與光耦傳感器;l 信號(hào)通過(guò)光電耦合器傳遞,實(shí)現(xiàn)控制電路與供電驅(qū)動(dòng)電路隔離;l 聲光告警指示電路;在本次設(shè)計(jì)過(guò)程中,我們?nèi)送献?,排除萬(wàn)難,終于按時(shí)完成了賽題設(shè)計(jì)任務(wù)。在這短短的四天三夜比賽過(guò)程中我們不僅提高了自己解決問(wèn)題的能力,而且深深體會(huì)到團(tuán)隊(duì)協(xié)作精神的重要性。參考文獻(xiàn):信號(hào)與系統(tǒng),ALAN V.OPPENHEIM著,:交通大學(xué),1997年;數(shù)字圖像處理學(xué),元秋奇著,:電子工業(yè),2000年;模擬電子線路基礎(chǔ),吳運(yùn)昌著,:華南理

15、工大學(xué),2004年;數(shù)字電子技術(shù)基礎(chǔ),閻石著,:高等教育,1997年;數(shù)據(jù)結(jié)構(gòu)與算法,曉麗等著,:機(jī)械工業(yè),2002年;ARM&Linux嵌入式系統(tǒng)教程,馬忠梅等著,:航空航天大學(xué),2004年;單片機(jī)原理與應(yīng)用,建忠著,:電子科技大學(xué),2002年;附錄:附1:元器件明細(xì)表:1、 D8255AC2、 STC89C523、 DAC08324、 ADC08095、 74LS2456、 液晶320*240附2:儀器設(shè)備清單1、 數(shù)字示波器2、 數(shù)字萬(wàn)用表 3、 信號(hào)發(fā)生器4、 穩(wěn)壓電源附3:電路圖圖紙附4:程序清單 /* * 模擬路燈程序*/#include #include #include #de

16、fine uchar unsigned char#define uint unsigned int #define ulong unsigned long#define com8255 XBYTE0xff7f/8255端口定義#define pa8255 XBYTE0xff7c#define pb8255 XBYTE0xff7d#define pc8255 XBYTE0xff7e bit counta, countb; uchar bdata currentp1; /p1實(shí)時(shí)信號(hào)sbit sunshine=currentp10;sbit sensor1=currentp11;sbit sens

17、or2=currentp12;sbit sensor3=currentp13;sbit trouble1=currentp14;sbit trouble2=currentp15;uchar bdata sensorvalue; /信號(hào)標(biāo)志位sbit sensor1value=sensorvalue0;sbit sensor2value=sensorvalue1;sbit sensor3value=sensorvalue2; sbit led1en= sensorvalue3;/ 到達(dá)顯示時(shí)間sbit led2en=sensorvalue4; /到達(dá)顯示時(shí)間sbit alarmen=sensor

18、value5; /關(guān)閉報(bào)警uchar bdata outnum;/輸出信號(hào)sbit sensorswitch=outnum1; /傳感器總開關(guān)sbit ledswitch=outnum2;sbit led1switch=outnum3;sbit led2switch=outnum4;sbit alarmled1=outnum6;sbit alarmled2=outnum7;sbit alarmspeaker=outnum5;sbit lock=P31;sbit dir2=P30;sbit dir1=P20; /是否全局變量待定uchar ms/*毫秒*/,msd,ms500, second,m

19、inute,hour,/時(shí)鐘a1hour,a1minute,a1second,/a燈開燈時(shí)間a2hour,a2minute,a2second, /a燈關(guān)閉時(shí)間a3hour,a3minute,a3second, /a燈燈亮?xí)r長(zhǎng)aihour,aiminute,aisecond, /a燈定時(shí)時(shí)間b1hour,b1minute,b1second, /b燈開燈時(shí)間b2hour,b2minute,b2second, /b燈關(guān)燈時(shí)間b3hour,b3minute,b3second, /b燈燈亮?xí)r長(zhǎng)bihour,biminute,bisecond, /b燈定時(shí)時(shí)間k2num,/ 調(diào)時(shí)開關(guān)k3num,/切換顯示

20、開關(guān)k6num;/高峰期開關(guān)uint year; /年月日uchar date,month;uchar code table=/數(shù)碼管編碼0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e;/*/void init() /初始化 a1hour=16, /默認(rèn)值16點(diǎn)開a燈a2hour=7, /默認(rèn)值7點(diǎn)關(guān)b燈a3second=30, /默認(rèn)a燈亮三十秒b1hour=16, /默認(rèn)16點(diǎn)開b燈b2hour=7, /默認(rèn)7點(diǎn)關(guān)b燈b3second=30, /默認(rèn)b燈亮三十秒 com8255=

21、0x80; pc8255 =0xff; com8255=0x89;/8255 ab出c入 ms=0; second=0; minute=0; hour=0; date=27; month=7; year=2011; P1=0xff; dir1=1; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TMOD=0x11; EA=1; ET0=1; TR0=1; TH1=(65536-50000)/256; TL1=(65536-50000)%256; ET1=1;/*/void delayms(uint z)/延時(shí)一毫秒 uint x=0; uchar

22、y=0; for( x=z;x0;x-) for( y=120;y0;y- ); /*顯示函數(shù)*/ void display(uchar h,uchar m,uchar s)/顯示 uchar n,j,temp =0x80/*選管最高位*/; ulong num=s+m*1000+h*1000000; for( j=0;j8;j+) pb8255 = temp; temp = _cror_(temp,1); n=num%10 ; if(j=2|j=5) pa8255=0x90; else pa8255 = tablen; num=num/10; delayms(5); pa8255=0x00;

23、 void disdead(uchar h,uchar m,uchar s) /熄滅顯示 uchar n,j,temp=0x80; ulong num=s+m*1000+h*1000000; for( j=0;j8;j+) pb8255 = temp; n=num%10 ; if(j=2|j=5) pa8255=0x00; else pa8255 = tablen; num=num/10; delayms(5); pa8255 = 0x00; temp = _cror_(temp,1); void disdead1(uchar h,uchar m,uchar s,uchar wei1,ucha

24、r wei2) /調(diào)時(shí)熄滅顯示 uchar n,j,temp=0x80; ulong num=s+m*1000+h*1000000; for( j=0;j8;j+) pb8255 = temp; n=num%10 ; if(j=wei1|j=wei2) /試驗(yàn) pa8255=0x00; else if(j=2|j=5) pa8255=0x90; else pa8255 = tablen; num=num/10; delayms(5); pa8255 = 0x00; temp = _cror_(temp,1); void dispdate(ulong y, uchar m, uchar d)/顯

25、示年月日 uchar n,j,temp =0x80/*選管最高位*/; ulong num=d+m*100+y*10000; for( j=0;j8;j+) pb8255 = temp; temp = _cror_(temp,1); n=num%10 ; pa8255 = tablen; num=num/10; delayms(5); pa8255 = 0x00; /*/uchar keyscan () /鍵盤掃描 uchar temp,temp1; temp=pc8255; temp=temp&0xfe; if(0xfe!=temp ) delayms(10); temp=pc8255; t

26、emp=temp&0xfe; if (temp!=0xfe) temp1=pc8255; temp1=temp1&0xfe; while(temp1!=0xfe) if(temp1=0x7e) /狀 dispdate(year,month,date); else if (k3num=0) display(hour,minute,second);/可改變else if(k3num=1) display(a1hour,a1minute,a1second);else if(k3num=2) display(a2hour,a2minute,a2second);else if(k3num=3) disp

27、lay(a3hour,a3minute,a3second);else if (k3num=4) display(b1hour,b1minute,b1second);else if (k3num=5) display(b2hour,b2minute,b2second);else if (k3num=6) display(b3hour,b3minute,b3second); / 態(tài) / 機(jī) /display(num1); / second+;/ display (second+minute*100+hour*1000); temp1=pc8255; temp1=temp1&0xfe; return

28、 temp; void decrease(uchar *h,uchar *m,uchar *s) /減少數(shù)值 switch (k2num) case 1: (*s)-; if (*s=-1) *s=59;break; case 2: (*m)-; if (*m=-1) *m=59; break; case 3: (*h)-; if(*h=-1) *h=23; break; void increase (uchar *h,uchar *m,uchar *s) /數(shù)值增加 switch (k2num) case 1: (*s)+; if (*s=60) *s=0;break; case 2: (*

29、m)+; if (*m=60) *m=0; break; case 3: (*h)+; if(*h=24) *h=0; break; uchar keydeal()/鍵值處理 uchar temp, circle; temp=keyscan(); if (temp!=0xfe) switch(temp) case 0xfc: / decreasekey1 switch(k3num) case 0:decrease(&second,&minute,&hour); break; case 1: decrease(&a1hour,&a1minute,&a1second);break;case 2:d

30、ecrease(&a2hour,&a2minute,&a2second); break; case 3:decrease(&a3hour,&a3minute,&a3second);break;case 4:decrease(&b1hour,&b1minute,&b1second); break; case 5:decrease(&b2hour,&b2minute,&b2second);break;case 6: decrease(&b3hour,&b3minute,&b3second); break; break; case 0xfa: /set-time key2 k2num+; if(k3

31、num=0) ms=0;if(TR0!=0)TR0=0; if (k2num=4) k2num=0; if (k3num=0) TR0=1; break; case 0xf6:/ 顯示切換 key3 k3num+; if(k3num=7) k3num=0; break; case 0xee: / increase key4 switch(k3num) case 0:increase(&second,&minute,&hour); break; case 1: increase(&a1hour,&a1minute,&a1second);break;case 2:increase(&a2hour,

32、&a2minute,&a2second); break; case 3: increase(&a3hour,&a3minute,&a3second);break;case 4:increase(&b1hour,&b1minute,&b1second); break; case 5:increase(&b2hour,&b2minute,&b2second);break;case 6: increase(&b3hour,&b3minute,&b3second); break; break; case 0xde: /alarm關(guān)閉 key5if(alarmen=0) alarmen=1; else

33、alarmen=0; break;case 0xbe: / 高峰期兩燈全開 k6 if(k6num=0)k6num=1; /開燈ledswitch=0; led1switch=0; led2switch=0; elsek6num=0; /關(guān) ledswitch=1; led1switch=1; led2switch=1; signal_act (); break; case 0x7e:/DISPLAY-DATE k7 for( circle=0;circle=50;circle+) dispdate(year,month,date); break; default: break; return

34、 temp; tkdisplay( uchar h,uchar m,uchar s,uchar wei1,uchar wei2) /閃爍顯示設(shè)置位 uchar temp,circle; for(circle=0;circle20;circle+)display(h,m,s);temp = keydeal();if(temp!=0xfe) if( !( temp= 0xfc| temp=0xee|temp=0xfa) k2num=0; TR0=1; goto out1; for(circle=0;circle20;circle+)disdead1(h,m,s,wei1,wei2);temp =

35、keydeal(); if(temp!=0xfe) if( !( temp= 0xfc| temp=0xee|temp=0xfa) k2num=0; TR0=1; goto out1; out1: ; void timer0 () interrupt 1 /時(shí)鐘中斷TH0=(65536-50000)/256; TL0=(65536-50000)%256; ms+; if (ms=10) ms500=1; if( ms=20 ) ms500=0;ms=0; second+; if(second=60) second=0;minute +;if(minute=60) minute=0;hour+;

36、if(hour=24)hour=0;date+; void ledtime ()interrupt 3 TH1=(65536-50000)/256; TL1=(65536-50000)%256; msd+; if( msd=20 ) msd=0; if(counta=1) aisecond+; if(aisecond=60) aisecond=0;aiminute +;if(aiminute=60) aiminute=0;aihour+;if(aihour=24)aihour=0; if(a3second=aisecond&a3minute=aiminute&a3hour=aihour)led

37、1switch=1; aisecond=0; aiminute=0; aihour=0; if(countb=1) bisecond+; if(bisecond=60) bisecond=0;biminute +;if(biminute=60) biminute=0;bihour+;if(bihour=24)bihour=0; if(b3second=bisecond&b3minute=biminute&b3hour=bihour)led2switch=1; bisecond=0; biminute=0; bihour=0; void dispswitch(uchar h,uchar m,uc

38、har s) /顯示切換 if(k2num=0) if(k3num=0) if(ms500=0) display(hour,minute,second); else disdead(hour,minute,second); else display( h, m, s); keydeal();else if(k2num=1) tkdisplay( h, m, s,0,1) ; else if(k2num=2) tkdisplay( h, m, s,3,4);else if(k2num=3) tkdisplay( h, m, s,6,7); void signal_act () /路燈控制 dir

39、1=1; /使245輸入; 在2。0口 currentp1=P1;if(currentp1!=0xfe)/0xfe是光信號(hào) if(!trouble1)&counta=1)/若有故障信號(hào)且在規(guī)定時(shí)間 if(alarmen=0)alarmled1=0; alarmspeaker=0; if(!trouble2)&countb=1) if(alarmen=0)alarmled2=0;alarmspeaker=0; if(k6num=1) if(!sensor1) switch (sensorvalue&0x07) case 0: sensor1value=1; counta=1; /開計(jì)時(shí)1 if(led1en=1) led1switch=0;/led1亮 break; case 2: sensor1value=0;counta=0; /關(guān)計(jì)時(shí)1 led1switc

溫馨提示

  • 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論