單片機計費系統(tǒng)課程設計_第1頁
單片機計費系統(tǒng)課程設計_第2頁
單片機計費系統(tǒng)課程設計_第3頁
單片機計費系統(tǒng)課程設計_第4頁
單片機計費系統(tǒng)課程設計_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

四川師范大學成都學院電子工程學院課程設計報告PAGE31前言汽車工業(yè)是國民經濟發(fā)展的支柱產業(yè)之一,現(xiàn)代汽車正從一種單純的交通工具朝著滿足人們需求、安全、節(jié)能和環(huán)保的方向發(fā)展。為了滿足人們對汽車日益提高的要求,汽車研發(fā)及生產機構必然要將越來越多的電子產品引入到汽車上,智能控制系統(tǒng)也成為汽車革新的主要內容。雨刮器屬汽車附件,是汽車安全行駛的重要部件,用于消除擋風玻璃、后窗玻璃及大燈玻璃上的雨雪、灰塵和水泥等,以保證玻璃透明清晰。第一個發(fā)明電動刮水器的是德國博世公司,博世將它作為“博世最年幼的產品”加入到博世的產品家族。自那以后,這個嬰兒逐漸成長,從單純的刮片發(fā)展到二十一世紀初的風窗玻璃之星——無支架的刮水器。在汽車的駕駛史上,對風窗玻璃的清潔問題解決開始得比較晚。汽車從只有平添駕駛發(fā)展到成為全天候的駕駛。技術變化最大是在二戰(zhàn)以后伴隨著大規(guī)模機械的出現(xiàn)。風窗玻璃洗滌器、間歇開關、后窗刮水器和可加熱噴水器保證了駕駛時的視野清晰與行車安全。伴隨著其他一些技術革新,比如雨滴傳感器、可變位刮水臂、刮水器的出現(xiàn),就更擴大了刮拭的范圍,刮水器成為了一個復雜的系統(tǒng)。目前傳感器在汽車上的應用已經相當廣泛,汽車傳感器作為汽車電子控制系統(tǒng)的信息源,是汽車電子控制系統(tǒng)的關鍵部件,也是汽車電子技術領域研究的核心內容之一。在對于汽車雨刮器的研究上,智能雨滴傳感器自然成了智能刮水器系統(tǒng)的重要組成部分。智能化傳感器是具有智能功能的高檔傳感器,它具有檢測、信息處理功能、自動進行各種誤差補償、精度高、量程覆蓋范圍大、穩(wěn)定性好、輸出信號大、信噪比高、傳輸中抗干擾性能好,可遠距離輸送信號,有的還帶有自檢功能。在汽車智能雨刮系統(tǒng)中由于兩個雨刮電機的轉速不可能完全一樣,就存在兩個雨刮擺動不同步的問題。本文在分析了模糊控制理論及雨刮同步擺動規(guī)則的基礎上,提出了一種基于模糊控制的汽車智能雨刮系統(tǒng)。該系統(tǒng)將轉速偏差和轉速偏差變化量模糊化為模糊控制器的輸入語言變量,根據所制定的一套模糊控制規(guī)則來選擇控制PWM的輸出語言變量,并以此通過脈寬調制技術來驅動直流電機,使兩個雨刮同步擺動。光源發(fā)射器將紅外光以固定角度投射到擋風玻璃上,經由擋風玻璃棱鏡反射回到紅外線接收器;在擋風玻璃清晰的情況下,紅外接收器收到的紅外線總量與紅外線發(fā)射器發(fā)出的紅外線總量基本相等。當有雨滴落在擋風玻璃上時,部分紅外線會因雨滴的折射而分散到外部,導致紅外接收器接收到的紅外線總量小于發(fā)射器發(fā)出的紅外線總量。通過對紅外線總量的檢測,判斷雨量的大小,進而發(fā)出刮水請求到雨刷控制器,完成不同檔位的刮水行為。1.總體設計方案1.1雨刮器要求雨量檢測利用單片機檢測雨刷故障(檢測電流等)噴水電機、雨刮器電機轉速PWM控制(實現(xiàn)間歇、快速1、快速2、點動等控制)通過檢測雨量構成自適應控制刮水器關閉,刮片自動返回初始位置刮片要具有耐久性雨滴檢測雨刮器,將雨滴傳感器檢出的雨量變成電信號,根據電信號的大小,控制刮雨器動作。1.2雨刮器方案本設計中的雨滴傳感器選用紅外雨滴傳感器,屬于光量變化原理雨滴傳感器的一種由光(本設計中選用紅外線)發(fā)射元件發(fā)射出的紅外光以全反射角度在擋風玻璃的外表面反射,其角度必須在42°(玻璃-水)和63°(玻璃-空氣)之間。如果在擋風玻璃上有雨雨量越大,反射回來的光越多。從發(fā)射元件發(fā)出的光反射到接收裝置的擋風玻璃區(qū)域被稱之為傳感器的“敏感區(qū)域”,僅當雨水滴到這個區(qū)域時,才可以被探測出來。為使系統(tǒng)靈敏可靠,擋風玻璃區(qū)域和靈敏區(qū)域之間必須要有一個較好的比例[1]。雨滴傳感器的原理圖[6],如圖1所示。圖1雨滴傳感器原理圖2.系統(tǒng)功能本雨刮器可以實現(xiàn)以下的具體功能具有高速和低速兩個檔位的雨刮電機來同時控制兩個雨刮,雨刮器不工作時,兩個雨刮都停在風擋玻璃的左側位置,即雨刮電機復位位置。兩電極復位端的時間偏差E及偏差變化為輸入變量,PWM脈寬調制信號占空比增量U為輸出量。消除系統(tǒng)穩(wěn)態(tài)誤差的性能比較差,尤其在變量分級不夠多的情況下,還可能會在平衡點附件產生小幅震蕩??梢栽诳刂七^程中采用改變量化因子和比例因子的方法,來調整整個控制過程中不同階段上的控制特性,使其對復雜過程控制收到良好的控制效果。這種形式的控制器稱為自調整比例因子模糊控制器能夠測出雨刮器的耐久性求系統(tǒng)給定值與反饋值的誤差e。微機通過采樣獲得系統(tǒng)被控量的精確值,然后將其與給定值比較,得到系統(tǒng)的誤差。3.系統(tǒng)設計3.1原理圖設計根據要求,雨刮控制電路設計可分為幾個模塊:故障檢測電路、雨量檢測電路、電機驅動電路、雨刮工作模式顯示電路以及電路設計中的復位電路和時鐘電路兩個基本模塊下面,具體介紹各模塊電路的設計原理。3.1.1復位電路設計單片機在啟動時都需要復位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作。ST89C52單片機的復位信號是從RST引腳輸入到芯片內的施密特觸發(fā)器中的。當系統(tǒng)處于正常工作狀態(tài)時,且振蕩器穩(wěn)定后,如果RST引腳上有一個高電平并維持2個機器周期(24個振蕩周期)以上,則CPU就可以響應并將系統(tǒng)復位。單片機系統(tǒng)的復位方式有:手動按鈕復位和上電復位。本設計中復位電路采用手動按鈕復位方式。手動按鈕復位需要人為在復位輸入端RST上加入高電平(圖一)。一般采用的辦法是在RST端和正電源Vcc之間接一個按鈕。當人為按下按鈕時,則Vcc的+5V電平就會直接加到RST端。手動按鈕復位的電路如所示。由于人的動作再快也會使按鈕保持接通達數十毫秒,所以,完全能夠滿足復位的時間要求。單片機在啟動時都需要復位,以使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開始工作[12]。圖2單片機復位電路3.2雨刷故障檢測電路在雨刷工作狀態(tài)中,最常見的故障便是雨刷電機堵轉。當電機出現(xiàn)堵轉現(xiàn)象時,流過電機線圈電流會急劇上升,如果堵轉現(xiàn)象不能得到及時解決可能會導致電機線圈燒毀。具體解決方法如下:在電機與接地之間連接一個小電阻,將比較器的正端給定略大于電機正常運行時小電阻兩端的電壓值,而比較器負端則接在小電阻的高電位上。電機正常運行情況下,電阻的端電壓較小,比較器正端電壓會大于或等于負端電壓而當電機堵轉時,由于電流急劇上升,所接小電阻端電壓急劇變大,從而導致比較器正端電壓小于負端電壓的現(xiàn)象出現(xiàn)。我們利用比較器的特性,通過比較器的正負端電壓來判斷電機是否出現(xiàn)堵轉故障:若在一定時間內,比較器正端電壓與負端電壓相差不大,則表明電機正常運轉;若在一定時間內,比較器正端電壓低于負端電壓[3],見下圖。圖3雨刷故障檢測電路3.2.1雨量檢測電路在自動雨刷系統(tǒng)中,控制器通過雨量檢測裝置檢測降雨量大小,進而控制雨刷器擺動速度。此次設計采用紅外式雨量檢測裝置。3.2.2紅外雨量監(jiān)測裝置工作原理雨量檢測裝置由玻璃棱鏡、紅外線光源發(fā)射器和紅外線光源接收器等部件組成。紅外線光源發(fā)射器將紅外光以固定角度投射到擋風玻璃上,經由擋風玻璃、棱鏡反射回到紅外線接收器;在擋風玻璃清晰的情況下,紅外接收器收到的紅外線總量與紅外線發(fā)射器發(fā)出的紅外線總量基本相等。當有雨滴落在擋風玻璃上時,部分紅外線會因雨滴的折射而分散到外部,導致紅外接收器接收到的紅外線總量小于發(fā)射器發(fā)出的紅外線總量。通過對紅外線總量的檢測,判斷雨量的大小,進而發(fā)出刮水請求到雨刷控制器,完成不同檔位的刮水行為[20]。原理圖見圖4。圖4雨量檢測原理圖3.2.3紅外發(fā)送電路雨量檢測的發(fā)送裝置采用的是紅外發(fā)射二極管(TSAL6200),它將周期的電信號轉變成一定頻率的紅外信號。如果給紅外發(fā)射端提供頻率為38KHZ的方波信號,那么發(fā)射端就會發(fā)射出相應頻率的紅外信號。3.2.4紅外接收電路HS0038B是一種能夠接收紅外信號的小型接收器件,不需要加紅外過濾裝置。當HS0038B在沒有接收到紅外光時,輸出端處于高電平;當接收端有紅外光輸入時,輸出端為低電平。實際應用中,由于雨量大小的不同,實際應用中,由于雨量大小的不同,玻璃的反射率就會有所不同,紅外光的反射數量也就不同,紅外光接收器輸出地脈沖頻率也會有相應的變化。通過單片機的P2.6管腳的捕捉功能,連續(xù)捕捉脈沖的兩個上升沿,算出脈沖頻率值,通過處理就能得到雨量大小變化。玻璃的反射率就會有所不同,紅外光的反射數量也就不同,紅外光接收器輸出地脈沖頻率也會有相應的變化。通過單片機的P2.6管腳的捕捉功能,連續(xù)捕捉脈沖的兩個上升沿,算出脈沖頻率值,通過處理就能得到雨量大小變化。3.2.5電機驅動電路電機驅動電路中,由單片機輸出一定頻率的脈沖,通過三極管驅動繼電器工作,當繼電器閉合時,直流電機兩端承受正向電壓,電機啟動。為了保護繼電器,我們在繼電器兩端并聯(lián)一個反向二極管,起到續(xù)流的作用[13],電路圖如下。圖5電機驅動電路3.3雨刮器工作模式顯示雨刮工作模式顯示由單片機和數碼管共同完成,雨刮工作時,單片機將判斷雨刮出于何種工作模式,并有由單片機P0口各引腳和P1口的低四位輸出對應的高低電平,控制數碼管顯示[12],電路連接如下。圖6工作模式顯示3.4雨刮控制電路原理圖圖7雨刮控制電路原理圖3.5仿真圖設計仿真圖如下圖。圖8雨刮控制仿真圖3.6制程序編寫3.6.1程序流程圖圖9程序流程圖4.設計總結在汽車智能雨刮系統(tǒng)中由于兩個雨刮電機的轉速不可能完全一樣,就存在兩個雨刮擺動不同步的問題。本文在分析了模糊控制理論及雨刮同步擺動規(guī)則的基礎上,提出了一種基于模糊控制的汽車智能雨刮系統(tǒng)。該系統(tǒng)將轉速偏差和轉速偏差變化量模糊化為模糊控制器的輸入語言變量,根據所制定的一套模糊控制規(guī)則來選擇控制PWM的輸出語言變量并以此通過脈寬調制技術來驅動直流電機,使兩個雨刮同步擺動。本文在查閱了大量文獻的基礎上,結合實際應用問題,對智能雨刮系統(tǒng)進行了研究目前的雨刮系統(tǒng)大多是機械連桿結構的,采用雨滴感應式的智能雨刮系統(tǒng)只是在少數高級轎車上有應用,因為目前使用的光電雨滴傳感器大都是由國外廠商一統(tǒng)天下,因而,價格比較昂貴,很難普及。本文所研究的紅外雨滴傳感器及智能雨刮系統(tǒng),由于成本低廉,性能穩(wěn)定,可靠性高,易于在大客車和低檔轎車上普及應用,有廣泛的市場應用前景。關于紅外雨滴傳感器及模糊控制器的設計,還有一些特殊情況未在本文所研究之內,仍有待進一步研究。課程設計是對我們大學三年學習生活的實踐和總結。讓我們把學會把理論運用到實際中。整個設計中都傾注了蘇老師大量的心血,對我的設計思路,設計方案的決定、構思都給予了重要的指導,使得我少走了不少彎路,我的課程設計才能按時、順利的完成。同時還要感謝幫助過我的同學們,謝謝你們在設計中給我的支持與動力。課程設計中用到了軟件來分別設計原理圖和仿真圖,同時也用到了軟件來編寫運行控制程序。在解決設計過程中所遇到的各種問題的過程中,在一定程度上加深了對以上軟件的認識與理解,也加強了對這些軟件的運用和掌握。此次課程設計中運用到了模擬電子技術、單片機技術、自動控制原理等專業(yè)基礎課程中的內容,是對我們在大學里面所學習的知識的一個考察與檢測,同時,也是在為即將參加工作的同學們提供一次整體知識回顧與運用的機會。緊張的課程設計即將結束了,這期間讓我學到了許多知識,讓我懂得了對待科學要嚴謹、認真的道理。這將是我在今后工作學習中的一筆寶貴財富。綜合設計題目來源于生活,讓我們在大學期間學習的理論知識顯得并不是那么空洞得到了很好的實踐,也使得對自己的發(fā)展方向更加明確。參考文獻:[1]秦前清,楊宗凱.實用小波分析[M].西安:西安電子科技大學出版社,1994.4p125-p133[2]趙巖.汽車智能雨刮系統(tǒng)的研究〔D〕.北京:哈爾濱理工大學,2007.6p110-p121[3]鄒壽彬.電子技術基礎[M].北京:高等教育出版社,1987.8p347-p373[4]孫在信.環(huán)境對555紅外線發(fā)射系統(tǒng)的影響[J].大連交通大學學報,2007.11p94-p96[5]張國雄.測控電路[M].北京:機械工業(yè)出版社,2006.2p91-p118[6]趙巖,訾鴻.汽車雨滴傳感器的設計[J].佳木斯大學學報,2007.2p801-p803[7]程國鋼.單片機keilcx51應用開發(fā)技術[M].北京:人民郵電出版社,2007.4p115-p131[8]潘新民,王燕芳.微型計算機控制技術[M].北京:電子工業(yè)出版社,2003.6p135-p142[9]鄒慶超.多速雨刮器的控制電路[J].北京汽車,1994.2p42-p43[10]李全福.模糊PID控制算法在電動舵機控制中的應用[J].微電機,2007.5p28-p47[11]劉曙光,魏俊民.模糊控制技術[M].北京:中國紡織出版社出版,2001.12p59-p84[12]賈玉英.基于單片機控制的PWM直流調速系統(tǒng)[J].包頭鋼鐵學院報,2005.8p334-p337[13]李勇.基于模糊控制的直流電機PWM調速系統(tǒng)[J].大電機技術,2006.2p66-p68[14]岑木峰.汽車雨刮器的改進[J].湖北汽車工業(yè)學院報,2007.3p74-p78[15]謝飛.基于微分平坦的雙電機雨刮控制器研究〔D〕.吉林:吉林大學,2007.11p111-p123[16]郭立書,鄭殿旺.雨滴感知型間接刮水控制系統(tǒng)[J].汽車電器,1996.2p8-p9[17]吳勇.汽車智能化技術[J].上海汽車,2004.4p37-p39[18]李東生.Protel99SE電路設計教程[M].北京:電子工業(yè)出版社,2007.2p19-p125[19]廉小親.模糊控制技術[M].北京:中國電力出版社,2003.6p10-p50[20]戎月莉.計算機控制原理及應用[M].北京:北京大學出版社,1998.3p123-p150[21]陳杰,黃鴻.傳感器與檢測技術[M].北京:高等教育出版社,2002.1p132-p140[22]唐鈺,葛龍.紅外光電散射式感煙探測器的研制[J].四川大學學報,2004.2p117-p120[23]臧英杰.電氣傳動的脈寬調制控制技術[M].北京:機械工業(yè)出版社,1997.1p87-p112附錄1源程序#include<reg51.h>#define_MHZ_12/設置單片機使用的晶振頻率unsignedintcount=0,precount,Maichong;voidt1(void);/t1定時子函數voidint1(void)interrupt1;/中斷服務子函數voidYudi(void);/判斷雨量多少子函數sbitQ7=p3^3;sbitint1=p3^3;main(){t1();/調用定時子程序while(precount!=0){Yudi();P0=Maichong;/調用雨量多少子程序t1();}}voidt1(void);{TMOD=0x10;/定時器1工作在方式1,即為16位計數器TH1=0X01;/設置60ms定時時間的初值TL1=0XA0;TR1=1;/啟動T1IT1=1;/設置INTR1中斷方式為邊沿觸發(fā)方式,負跳變時產生中斷EA=1;ET1=1;/允許定時器1中斷EX1=1;/允許外部中斷1中斷EA=1;/CPU開放中斷count=0;}voidint1(void)interrupt1;/外部中斷1處理函數TR1=0;TH1=0X15;TL1=0XA0;while(int1==0);count++;precount=count;TR1=1;}voidYudi(void);/雨滴傳感器子程序{if(precount>=3&&precount<12){Maichong=04H;elseif(precount>=12&&precount<20){Maichong=0FH;}elseMaichong=00HMaichong=P0;}第二片用于電機控制的單片機程序:#include<reg51.h>#include<absacc.h>floatpwmcycle,pwmcycle1,pwmcycle2;charE(k)[8],Ec(k)[8];sbitpwm1=P0.0;sbitpwm1=P0.1;sbitpwm2=P0.3;sbitpwm2=P0.4;voiddelay(unitm);/聲明延時函數voiddianji(void);voidtimer1(void)interrupt0using1;voidtimer2(void)interrupt1using1;voidshijiancha(void);voidTongbu(void);voidgengxin(void);main{P1=P0;dianji();shijiancha();tongbu();dengxin();if(timer1!=timer2){dianji();}}voiddelay(unitm)/延時1ms子程序{uchari;while(m--)for(i=125;i>0;i--)}voiddianji(void)/電機雙向子程序{while(Maichong==4){if(SA1==1orSA3==1){P0=09H;}elseif(SA0==1orSA2==1){P0=12H;}pwmcycle=40%delay(20);P0=00H;delay(30);while(Maichong==16){if(SA1==1orSA3==1){P0=09H;}elseif(SA0==1orSA2==1){P0=12H;}pwmcycle=60%delay(30);P0=00H;delay(20);}voidshijiancha(void){TMOD=0x11;/定時方式,工作在方式1TH0=0xff;TL0=0xff;TH1=0xff;TL1=0xff;IT0=1;IT1=1;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;}voidtimer1(void)interrupt0using1{unsignedchartmp1,tmp2;do{tmp1=TH0;tmp2=TL0;timer1=256*tmp1+tmp2;TH0=0;TL0=0;}voidtimer2(void)interrupt1using1{unsignedchartmp3,tmp4;do{tmp3=TH1;tmp4=TL1;timer2=256*tmp3+tmp4;}TH0=0;TL0=0;}voidTongbu(void)/兩電機同步子程序{inte(k),ec(k);for(k=0;;k++){e(k)=timer1(k)-timer2(k);ec(k)=E(k)-E(k-1);}if(e(k)>25ms){e(k)=25ms;}elseif(e(k)<-25ms){e(k)=-25ms;}if(ec(k)>50ms){ec(k)=50ms;)elseif(ec(k)<-50ms){ec(k)=-50ms;}if(e(k)>15ms)/時間誤差置位規(guī)律{E(k)[0]=1;}elseif(e(k)>8ms&&e(k)<=15ms){E(k)[1]=1;}elseif(e(k)>0&&e(k)<=8ms){E(k)[2]=1;}elseif(e(k)==0){E(k)[3]=1;}elseif(e(k)>-8ms&&e(k)>0){E(k)[4]=1;}elseif(e(k)>=-15ms&&e(k)<-8ms){E(k)[5]=1;}elseif(e(k)<-15ms){E(k)[6]=1;}if(ec(k)>16&&ec(k)<=30)/時間誤差變化置位規(guī)則{Ec(k)[0]=1;}elseif(ec(k)>0&&ec(k)<=16){Ec(k)[1]=1;}elseif(ec(k)==0){Ec(k)[2]=1;}elseif(ec(k)>-16&&ec(k)<0){Ec(k)[3]=1;}elseif(ec(k)>=-30&&ec(k)<=-16){Ec(k)[4]=1;}while(E(k)[6]=1)/查表{if(Ec(4)=1){U=-3;}elseif(Ec(3)=1){U=-2;}elseif(Ec(2)=1){U=-2;}elseif(Ec(1)=1){U=-1;}elseif(Ec(0)=1){U=0;}}while(E(k)[5]=1){if(Ec(4)=1){U=-3;}elseif(Ec(3)=1){U=-2;}elseif(Ec(2)=1){U=-2;}elseif(Ec(1)=1){U=-1;}elseif(Ec(0)=1){U=0;}}while(E(k)[4]=1){if(Ec(4)=1){U=-3;}elseif(Ec(3)=1){U=-2;}elseif(Ec(2)=1){U=-1;}elseif(Ec(1)=1){U=0;}elseif(Ec(0)=1){U=2;}}while(E(k)[3]=1){if(Ec(4)=1){U=-3;}elseif(Ec(3)=1){U=-2;}elseif(Ec(2)=1){U=0;}elseif(Ec(1)=1){U=2;}elseif(Ec(0)=1){U=3;}}while(E(k)[2]=1)sbitFl=P1^0;//噴水電機控制位sbitOff=P1^1;//停止電機控制位sbitInt=P1^5;//間歇轉sbitHi1=P1^3;//電機高速1sbitHi2=P1^4;//電機高速2sbitdiankong=P1^2;sbitHi_motor=P3^0; //雨刷電機sbitFl_motor=P3^1; //噴水電機sbitWE1=P3^4;sbitWE2=P3^5;sbitWE3=P3^6;sbitWE4=P3^7; //數碼管位選sbitled=P3^3;uintnum=0,k=0,delta=5,time=0,temp;uintk1,k2,k3,k4;uintflag=0;ucharcodedtable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc8};//共陽數碼管碼表ucharcodelable[]={0xbf,0xc0,0x8e,0xf9,0xab,0x87,0xc7,0x89,0xa4};//"-OFIntLH"字符編碼voiddelay(uintz){uintx,y;for(x=15;x>0;x--)for(y=z;y>0;y--);}/**********電機、IO口函數************/voidinit(void){Hi_motor=0;Fl_motor=0;P1=0xef;WE1=0;WE2=0;WE3=0;WE4=0;P0=0x00;}/**********定時器0初始化函數************/voidInit_timer0(){TMOD=0x01;//工作模式1 TH0=(65536-100)/256; TL0=(65536-100)%256;//定時器0賦初值 0.1ms EA=1;//開 ET0=1;//打開定時器0中斷 TR0=1;//啟動定時器0}/**********外部中斷0初始化函數********/voidX0_init(){if(Ec(4)=1){U=-2;}elseif(Ec(3)=1){U=0;}elseif(Ec(2)=1){U=1;}elseif(Ec(1)=1){U=2;}elseif(Ec(0)=1){U=3;}}while(E(k)[1]=1){if(Ec(4)=1){U=0;}elseif(Ec(3)=1){U=1;}elseif(Ec(2)=1){U=2;}elseif(Ec(1)=1){U=2;}elseif(Ec(0)=1){U=3;}}while(E(k)[0]=1){if(Ec(4)=1){U=0;}elseif(Ec(3)=1){U=1;}elseif(Ec(2)=1){U=2;}elseif(Ec(1)=1){U=2;}elseif(Ec(0)=1){U=3;}}voidgengxin(void){{pwm1=pwmcycle+U*3.5;pwm2=pwmcycle;}if(SA1==1orSA3==1){P0=09H;delay(pwm1*50);P0=08H;delay((1-pwm1)*50);}elseif(SA0==1orSA2==1){P0=12H;delay(pwm1*50);P0=10H;delay((1-pwm1)*50);sbitFl_motor=P3^1; //噴水電機sbitWE1=P3^4;sbitWE2=P3^5;sbitWE3=P3^6;sbitWE4=P3^7; //數碼管位選sbitled=P3^3;uintnum=0,k=0,delta=5,time=0,temp;uintk1,k2,k3,k4;uintflag=0;ucharcodedtable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc8};//共陽數碼管碼表ucharcodelable[]={0xbf,0xc0,0x8e,0xf9,0xab,0x87,0xc7,0x89,0xa4};//"-OFIntLH"字符編碼voiddelay(uintz){uintx,y;for(x=15;x>0;x--)for(y=z;y>0;y--);}/**********電機、IO口函數************/voidinit(void){Hi_motor=0;Fl_motor=0;P1=0xef;WE1=0;WE2=0;WE3=0;WE4=0;P0=0x00;}/**********定時器0初始化函數************/voidInit_timer0(){TMOD=0x01;//工作模式1 TH0=(65536-100)/256; TL0=(65536-100)%256;//定時器0賦初值 0.1ms EA=1;//開 ET0=1;//打開定時器0中斷 TR0=1;//啟動定時器0}/**********外部中斷0初始化函數********/voidX0_init(){EX0=1;//允許外部中斷0中斷IT0=1;//跳沿式觸}/**********數碼管函數************/voiddisplay1(uintk1,uintk2,uintk3){ WE1=1; P0=lable[k1]; delay(1); WE1=0; WE2=1; P0=lable[k2]; delay(1); WE2=0; WE4=1; P0=dtable[k3%10]; delay(1); WE4=0; WE3=1; P0=dtable[k3/10]; delay(1); WE3=0;}/**********雨量檢測函數************/uintcheck_date()//雨量檢測{ uintk;temp=P2;temp=temp&0x0f; switch(temp) { case0x00:returnk=0;break; case0x01:returnk=1;break; case0x02:returnk=2;break; case0x03:returnk=3;break; case0x04:returnk=4;break; case0x05:returnk=5;break; case0x06:returnk=6;break; case0x07:returnk=7;break; case0x08:returnk=8;break; case0x09:returnk=9;break; case0x0a:returnk=10;break; case0x0b:returnk=11;break; case0x0c:returnk=12;break; case0x0d:returnk=13;break; case0x0e:returnk=14;break; case0x0f:returnk=15;break; default:break;}}/**********main函數************/voidmain(){init(); //電機初始化X0_init();//外部中斷0初始化Init_timer0();//定時器0初始化while(1){ /*if(flag) display1(0,0,check_date()); elseif(!Fl) { display1(2,6,check_date()); Fl_motor=1; }else Fl_motor=0;}*/ if(!Fl) { display1(2,6,check_date()); Fl_motor=1; }else Fl_motor=0;}}/**********定時器0中斷函數************/voidtimer0_IRQ()interrupt1//控制電機各種轉動{TH0=(65536-100)/256;TL0=(65536-100)%256; //定時器0賦初值 0.1msif(!Off) //判斷是否按下“Off”鍵{while(!Off){display1(1,2,check_date());Hi_motor=0;//電機停止if(Off)break; //退出循環(huán) }}elseif(!Int) //判斷是否按下“Int”鍵 { num++; //計數值增加 while(!Int) { display1(3,4,check_date()); if(num<250) { led=1; Hi_motor=1; //電機轉2.5s } if(num>=2500&&num<5000) { led=0;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論