基于單片機與VB汽車尾燈設計報告樣本_第1頁
基于單片機與VB汽車尾燈設計報告樣本_第2頁
基于單片機與VB汽車尾燈設計報告樣本_第3頁
基于單片機與VB汽車尾燈設計報告樣本_第4頁
基于單片機與VB汽車尾燈設計報告樣本_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

課程設計(論文)設計課題:基于單片機汽車尾燈控制學校院系:海南師范大學物電學院專業(yè):10電子一班學生姓名:學號:指引教師:摘要本次課題是基于單片機汽車尾燈控制器,該設計課題重要由STC89C52RC單片機為核心展開汽車尾燈控制電路設計辦法,用發(fā)光二極管模仿汽車尾燈,可以用VB上位機界面和按鍵開關作為轉彎等控制信號,,并且把信息顯示在LCD1602上。在VB6.0環(huán)境下,上位機運用MSCOMM通信控件與單片機之間串口通信實現上位機控制汽車尾燈。設計電路能較好綜合運用咱們所學習到單片機、C語言、VB上位機編程,熟悉電子電路設計基本辦法。核心詞:STC89C52RC;發(fā)光二極管;單片機;C語言;VB上位機;MSCOMM控件引言 3一·設計任務 31.1任務闡明 31.2任務分析 3二·設計方案選取及論證 42.1方案一:采用555定期器等構成汽車尾燈電路 42.2方案二:由STC89C52RC及其外圍電路構成汽車尾燈控制器 42.3方案比較和選取 42.4系統(tǒng)框圖 5三·系統(tǒng)硬件原理簡介 73.1單片機STC89C52RC簡介 73.2LCD1602液晶屏簡介 83.3 系統(tǒng)構造原理圖、器件選取 93.4硬件電路總原理圖 143.5硬件設計原理及狀態(tài)圖 14四.程序流程 154.1下位機軟件程序 154.1.1鍵盤掃程序設計流程圖 154.2.1顯示程序設計流程圖 174.2VB上位機界面設計 184.2.1設計方案原理與設計特點分析 18五·仿真圖實物調試 205.1仿真圖 205.2實物圖 21六·課設總結 21參照文獻 22附錄一 23引言汽車作為當代交通工具已經大量進入人們生活,隨著電子技術發(fā)展,對于汽車控制電路也已經從過去全人工開關控制發(fā)展到了智能化控制。汽車尾燈控制器是隨著汽車智能化技術發(fā)展而迅速發(fā)展起來,汽車尾燈普通基于微解決器硬件電路構造構成,而正由于硬件電路局限性,不能隨意更改電路功能和性能,且可靠性得不到保證,因而對汽車尾燈控制系統(tǒng)發(fā)展帶來局限性,難以滿足當代智能化規(guī)定。本次設計是基于單片機汽車尾燈控制器,用發(fā)光二極管模仿汽車尾燈,用VB上位機和按鍵開關作為汽車轉彎等控制信號,實現汽車尾燈智能化控制。一·設計任務1.1任務闡明本次課題重要是以STC89C52RC為核心單片機控制電路,它重要模仿了汽車尾燈系統(tǒng)正常行駛、轉彎、剎車、倒車、夜間行駛等狀態(tài)下發(fā)光狀況,實現了汽車尾燈控制智能化。1.2任務分析設計一種基于單片機汽車尾燈控制器,其詳細設計規(guī)定如下:1)汽車白天正常行駛時批示燈全滅;

2)汽車右(左)轉彎時,先后最右(左)邊和右(左)側那個批示燈亮并閃爍;3)汽車暫時剎車時車尾燈所有亮;

4)汽車倒車時尾燈中間4個批示燈亮;

5)汽車夜間行駛時,車前燈全亮,尾燈兩邊各中間燈亮;6)可通過串口連接PC控制車尾燈(自己發(fā)揮某些);二·設計方案選取及論證2.1方案一:采用555定期器等構成汽車尾燈電路采用譯碼器74LS138、計數器74LS161、脈沖產生器555、開光控制電路、顯示驅動電路、發(fā)光二極管以及各種邏輯元件等構成汽車尾燈控制電路。由于汽車左右轉彎時,四個批示燈循環(huán)點亮,因此用四進制計數器控制譯碼器電路順序輸出低電平,從而控制尾燈按規(guī)定點亮,達到模仿汽車轉彎、剎車、正常行駛等狀態(tài)。由于行車時都是開關控制,因此每一種開關都應當有一種消除機械振動裝置,可以用基本SR觸發(fā)器來實現。2.2方案二:由STC89C52RC及其外圍電路構成汽車尾燈控制器 STC89C52RC是一種低功耗、高性能CMOS8位微控制器,具備8K在系統(tǒng)可編程Flash存儲器。 本次單片機控制系統(tǒng)以STC89C52RC為控制器,鍵盤為輸入信號,由于STC89C52RC自身功能強大,汽車轉彎燈驅動用單片機驅動功能來完畢。使得單片機功能得到了充分運用;并且顯示電路從并行I/O口輸出,由限流電阻和發(fā)光二極管構成,低電平使發(fā)光二極管導通,顯示出相應信號燈亮滅狀況,實現了左轉、右轉、剎車、應急燈各種狀態(tài)下控制效果。2.3方案比較和選取方案一中,要使用各種控制電路,實現辦法繁雜且不靈活,成本高,搭建好電路后調試起來不以便,不可以任意定義各種狀態(tài),電路可靠性以及可擴展性不高,且與本次課題所規(guī)定運用知識相悖,因而不適當使用此方案。方案二中,以單片機為核心,而單片機編程比較直接,且可重復擦除修改,硬件電路搭建以便簡樸。搭建好電路后通過STC89C52RC來編寫程序,控制LED亮滅,大大簡化了系統(tǒng)構造,減少材料成本,提高系統(tǒng)先進性和可靠性,能實現控制器智能化。由于采用此種辦法開發(fā)系統(tǒng)其升級和改進較為以便,因而本次課題選用方案二。采用串口連接筆記本電腦,通過VB上位機控制LED亮滅,實現真正意義上智能化控制。發(fā)光二極管顯示電路STC89C52RC2.4系統(tǒng)框圖發(fā)光二極管顯示電路STC89C52RC時鐘電路時鐘電路1602液晶屏顯示電路1602液晶屏顯示電路復位電路復位電路PC電腦上位機按鍵電路串口電路MAX232PC電腦上位機按鍵電路串口電路MAX232圖2.4.1系統(tǒng)構造框圖 整個系統(tǒng)涉及電源電路、時鐘電路、復位電路、按鍵電路、發(fā)光二極管顯示電路、液晶屏顯示電路、串口電路、單片機、PC上位機等。其中重要由按鍵電路和PC上位機發(fā)出控制信號,由顯示電路顯示信號詳細狀態(tài)。三·系統(tǒng)硬件原理簡介3.1單片機STC89C52RC簡介圖3.1.1STC89C52RC引腳圖(1)STC89C52RC某些引腳功能簡介:1、VCC:STC89C52RC電源正端輸入,接+5V。2、VSS:電源地端。3、XTAL1:單芯片系統(tǒng)時鐘反相放大器輸入端。4、XTAL2:系統(tǒng)時鐘反相放大器輸出端,普通在設計上只要在XTAL1和XTAL2上接上一只石英振蕩晶體系統(tǒng)就可以動作了,此外可以在兩引腳與地之間加入一20PF小電容,可以使系統(tǒng)更穩(wěn)定,避免噪聲干擾而死機。5、RESET:STC89C52RC重置引腳,高電平動作,當要對晶片重置時,只要對此引腳電平提高至高電平并保持兩個機器周期以上時間,AT89S51便能完畢系統(tǒng)重置各項動作,使得內部特殊功能寄存器之內容均被設成已知狀態(tài),并且至地址0000H處開始讀入程序代碼而執(zhí)行程序。3.2LCD1602液晶屏簡介1602LCD重要技術參數:顯示容量:16×2個字符芯片工作電壓:4.5—5.5V工作電流:2.0mA(5.0V)模塊最佳工作電壓:5.0V字符尺寸:2.95×4.35(W×H)mm引腳功能闡明:1602LCD采用原則14腳(無背光)或16腳(帶背光)接口,各引腳接口闡明如表10-13所示:編號符號引腳闡明編號符號引腳闡明1VSS電源地9D2數據2VDD電源正極10D3數據3VL液晶顯示偏壓11D4數據4RS數據/命令選取12D5數據5R/W讀/寫選取13D6數據6E使能信號14D7數據7D0數據15BLA背光源正極8D1數據16BLK背光源負極表10-13:引腳接口闡明表第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示屏對比度調節(jié)端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一種10K電位器調節(jié)對比度。第4腳:RS為寄存器選取,高電平時選取數據寄存器、低電平時選取指令寄存器。第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數據。第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數據線。第15腳:背光源正極。第16腳:背光源負極。系統(tǒng)構造原理圖、器件選?。?)電源電路圖3.3 電源電路可以給單片機提供工作所需電源,有批示燈提示,燈亮時表達提供正常工作電壓。(2)時鐘電路 圖3.3.2 時鐘電路中使用12M晶振,為單片機提供系統(tǒng)時鐘。(3)復位電路圖3.3 復位電路是單片機能上電復位,當程序混亂跑飛時可以通過按鍵手動復位。(4)按鍵電路圖3.3 按鍵電路可以通過按鍵來模仿汽車轉彎、剎車、應急等各種狀態(tài),控制LED和液晶屏顯示。(5)發(fā)光二極管顯示電路圖3.3 發(fā)光二極管可以模仿汽車車燈,顯示各種控制信號效果。(6)液晶屏顯示電路圖3.3液晶屏顯示電路可以直觀顯示出汽車行進狀態(tài),增長尾燈系統(tǒng)可視性。(7)串口電路為了使單片機內電平與計算機電平同樣需要運用電平轉換,MAX232芯片是專為RS232原則串口設計單電源點平轉換芯片。其特點如下:1)符合所有RS232技術原則;2)只需要單一+5V電源供電;3)片載電荷泵具備升壓、電壓極性反轉能力,可以產生+10V和-10V電壓;4)功耗低,典型供電電流5mA;5)內部集成2個RS-232C驅動器;6)高集成度,片外最低只需4個電容即可工作;7)連接方式如圖5所示。圖5串口連接3.4硬件電路總原理圖圖3.4.1總原理圖 硬件總原理分解如3.3.1~3.3.6各圖所示,完整實現了汽車尾燈控制,用按鍵模仿控制信號,用發(fā)光二極管和液晶屏顯示狀態(tài),達到所有指標。3.5硬件設計原理及狀態(tài)圖本次由按鍵作為控制信號,發(fā)光二極管模仿汽車尾燈,狀態(tài)表如下所示:駕駛操作輸出信號LED1LED2LED3LED4LED5LED6LED7LED8左轉滅滅閃爍滅滅滅滅滅右轉滅滅滅閃爍滅滅滅滅剎車亮亮亮亮亮亮亮亮正常行駛亮亮滅滅亮亮滅滅夜間行駛亮亮滅滅滅滅亮亮倒車行駛滅滅滅滅亮亮亮亮 本次課題重要以STC89C52RC為核心展開汽車尾燈控制器,通過原理仿真以及實物制作,完整實現了汽車尾燈智能化控制效果,相比此前用數字邏輯電路原理打成汽車尾燈更以便、更簡樸。制作出實物板有6個控制狀態(tài)按鍵,可以搭配起來控制6種汽車行駛狀態(tài),完美模仿了汽車尾燈控制系統(tǒng),完畢本次課題所有指標。四.程序流程4.1下位機軟件程序4.1.1鍵盤掃程序設計流程圖鍵掃程序過程為:開始時,先判斷與否有鍵閉合,無鍵閉合時,返回繼續(xù)判斷,有鍵閉合時,先去抖動,然后擬定與否有鍵按下,若無鍵按下,則返回繼續(xù)判斷與否有鍵閉合,若有鍵按下,則判斷鍵號,然后釋放,若釋放按鍵完畢,則返回,若沒有釋放按鍵,則返回繼續(xù)釋放。其流程圖如圖所示。軟件設計思路,程序開始后進入初始化,然后掃描鍵盤等待有鍵按下。如果沒有鍵按下則始終掃描,如果有鍵按下,則判斷是哪個鍵,如果為1鍵,則正常行駛;為2鍵,則右轉;為3鍵,則左車;為4鍵,則應急狀態(tài);為5鍵,則倒車行駛;為6鍵,則夜間行駛。YYN開始有鍵閉合否?去抖動確有鍵按下判斷按鍵釋放LED狀態(tài)返回YNYN圖4.3.1軟件流程圖4.2.1顯示程序設計流程圖NNYN與否返回LCD初始化顯示漢ACSII碼顯示開始顯示字符相應功能設立送地址送數據NN相應功能設立送行地址和列地址送數據與否YY圖4.2.1顯示程序流程圖顯示程序過程為:顯示開始時,先進行LCD初始化,判斷與否顯示中文或ACSII碼或圖形,若不顯示,則返回,若顯示是中文或ACSII碼,則進行相應功能設立,然后送地址和數據,再判斷與否顯示完,顯示完則返回,沒有顯示完則繼續(xù)送地址,若顯示是圖形,則先進行相應功能設立,再送行地址和列地址,然后送數據,最后判斷與否顯示完,顯示完則返回,沒有顯示完則繼續(xù)送行地址和列地址。其流程圖如圖7所示。(1)在編寫液晶屏顯示程序時,發(fā)現液晶屏只能瞬間顯示狀態(tài),而不能保持,因而在液晶顯示程序后要加上一種延時,使液晶屏可以保持狀態(tài); (2)要使發(fā)光二極管閃爍可以通過指令讓其取反,但是在編寫程序時,只能取反一次,一次可以使用一種while函數,當沒有按鍵時候發(fā)光二極管始終取反,且在程序里加上恰當延時; (3)在使發(fā)光二極管閃爍時,如果前一種狀態(tài)中正在使用改二極管,則切換狀態(tài)后,每個燈管閃爍時間不同步,因而在讓其閃爍之前先令所有二極管保持同一種狀態(tài);4.2VB上位機界面設計4.2.1設計方案原理與設計特點分析(1)IO控制系統(tǒng)原理框圖:單片機上位機控制軟件單片機上位機控制軟件 發(fā)送數據將PC機和單片機通過RS232連接,通過上位機軟件可以向單片機發(fā)送數據來測試兩者通訊狀態(tài),同步單片機也可以向上位機軟件返回數據,以顯示當前通信狀態(tài)與否正常。以及用上位機軟件控制單片機上批示燈工作。從而實現簡樸IO控制系統(tǒng)。(2)上位機軟件(3)通信合同本通信系統(tǒng)使用了一種簡樸通信合同,就是每當向單片機發(fā)送一種特定字符串時,單片機在接受到字符串時會向上位機軟件反饋一條信息,來表白上位機軟件和硬件與否正常通信,制定通信合同時需要指定端標語,核心代碼如下:MSComm1.CommPort=“”MSComm1.InputMode=“”MSComm1.RThreshold=“”MSComm1.SThreshold=“”MSComm1.Settings=""MSComm1.PortOpen=“”VB上位機界面通過合同控制車燈智能開關。五·仿真圖實物調試5.1仿真圖5.2實物圖6課設總結本次課設作品重要元件為STC89C52RC,在其控制下保證了系統(tǒng)正常工作,達到模仿汽車尾燈控制效果,實現汽車尾燈智能化控制。兩周課程設計,相較于之前所選修各種實驗課程,本次更增長了自己動手實踐能力。理論與實踐還是有一定差距,在理論上不論多精準數據,一旦用于實際中,就不得不考慮其儀器,器件誤差,以及自己操作上能力。并且,在課設過程中添加了自己思考,該選取如何電阻、電容,想要修改最后輸出,應當在什么地方做變化。雖然是某些很基本東西,但僅僅是書上理論學習,會讓人對知識遺忘得比較快,相反,通過自己動手實踐過東西,會更加記憶深刻??粗约撼晒χ谱鞒鰜黼娐钒逵X得很有成就感。通過這次課設教我還學會諸多關于電子產品知識。進一步結識了咱們現實生活電子產品,理解和掌握了某些簡樸電子元件運用,大大擴展了咱們知識面。提高了自己后來在學習生活中自己動手能力。給咱們很大啟發(fā),很有助于咱們將來學習生活和工作。在查閱資料中,獲得了許多額外知識,開拓視野。在原理圖設計、使用proteus仿真、使用Altium繪制、實物制作、板子調試等整個過程中加強了咱們分析問題和解決問題能力,深刻體味到實踐是檢查真理唯一原則這一道理。綜上所述,這次課設,讓咱們受益匪淺。參照文獻[1]李廣弟,朱月秀,王秀山.單片機基本[M].北京:航空航天大學出版社,.[2]康華光,陳大欽.電子技術基本模仿某些[M].武漢:高等教誨出版社,1998.[3]謝自美.電子線路設計·實驗·測試(第二版).武漢:華中理工出版社,.[4]戴佳.51單片機C語言應用程序設計實例精講[M].電子工業(yè)出版社,.[5]徐愛鈞,彭秀華。KeilCx51V7.0單片機高檔語言編程與μVision2應用實踐[M].北京:電子工業(yè)出版社,.附錄一單片機源程序:#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineunitunsignedintsbitKEY1=P1^0;sbitKEY2=P1^1;sbitKEY3=P1^2;sbitKEY4=P1^3;sbitKEY5=P1^4;sbitKEY6=P1^5;sbitLED1=P2^0;sbitLED2=P2^1;sbitLED3=P2^2;sbitLED4=P2^3;sbitLED5=P2^4;sbitLED6=P2^5;sbitLED7=P2^6;sbitLED8=P2^7; sbitLCD_RS=P3^4;sbitLCD_RW=P3^5;sbitLCD_EN=P3^6;voiddelay(unitt);voiddelay1(intms);#definedelayNOP();{_nop_();_nop_();_nop_();_nop_();};voiddelay(unitt) //延時程序; {uniti,j;for(i=0;i<t;i++)for(j=0;j<120;j++);}/**********************************************************/voiddelay1(intms){unsignedchary;while(ms--){for(y=0;y<250;y++){_nop_();_nop_();_nop_();_nop_();}}}ucharcodecdis1[]={"Daytime"};ucharcodecdis2[]={"stop"};ucharcodecdis3[]={"left"};ucharcodecdis4[]={"right"};ucharcodecdis5[]={"Astern"};ucharcodecdis6[]={"night"};ucharcodecdis7[]={"happyeveryday"};//ucharcodecdis11[]={"Daytime"};//ucharcodecdis21[]={"stop"};//ucharcodecdis31[]={"left"};//ucharcodecdis41[]={"right"};//ucharcodecdis51[]={"Astern"};//ucharcodecdis61[]={"night"};ucharcodecdis71[]={"MyControl"};/*******************************************************************//**//*檢查LCD忙狀態(tài)*//*lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數據。*//**//*******************************************************************/bitlcd_busy(){bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=1;delayNOP();result=(bit)(P0&0x80);LCD_EN=0;return(result);}/*******************************************************************//**//*寫指令數據到LCD*//*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。*//**//*******************************************************************/voidlcd_wcmd(ucharcmd){while(lcd_busy());LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_();P0=cmd;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}/*******************************************************************//**//*寫顯示數據到LCD*//*RS=H,RW=L,E=高脈沖,D0-D7=數據。*//**//*******************************************************************/voidlcd_wdat(uchardat){while(lcd_busy());LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}/*******************************************************************//**//*LCD初始化設定*//**//*******************************************************************/voidlcd_init(){delay1(15);lcd_wcmd(0x38);//16*2顯示,5*7點陣,8位數據delay1(5);lcd_wcmd(0x38);delay1(5);lcd_wcmd(0x38);delay1(5);lcd_wcmd(0x0c);//顯示開,關光標delay1(5);lcd_wcmd(0x06);//移動光標delay1(5);lcd_wcmd(0x01);//清除LCD顯示內容delay1(5);}/*******************************************************************//**//*設定顯示位置*//**//*******************************************************************/voidlcd_pos(ucharpos){lcd_wcmd(pos|0x80);//數據指針=80+地址變量}/*******************************************************************/voidinitUART(void)//串口必要作如下初始化,才干正常工作。{TMOD=0x20;//M1=1,M0=0定期器1工作方式2(定期常數重裝,8位)SCON=0x50;//SM0=0,SM1=1,REN=1串口工作方式1,容許接受TH1=0xfd;//晶振11.0592時,波特率9600TL1=0xfd;//TL1計數,溢出后,TH1值送入TL1EA=1;//開總中斷ES=1;//容許串口中斷TR1=1;//啟動定期器1}voidmain(void){ucharm;P1=0x00;P2=0xff;P0=0;delay1(10);//延時lcd_init();//初始化LCDlcd_pos(0);//設立顯示位置為第一行第1個字符for(m=0;m<16;m++)lcd_wdat(cdis7[m]); initUART();//lcd_pos(0x40);//設立顯示位置為第二行第1個字符//for(m=0;m<16;m++)//lcd_wdat(cdis2[m]);while(1){lcd_pos(0);//設立顯示位置為第一行第1個字符for(m=0;m<16;m++)lcd_wdat(cdis7[m]);//白天正常行駛批示燈全滅if(KEY1==1){delay(10);if(KEY1==1){P2=0xff;lcd_pos(0x40);for(m=0;m<16;m++)lcd_wdat(cdis1[m]);}}//汽車右轉;亮并且閃if(KEY2==1){delay(10);if(KEY2==1){ P2=0xff;while(1){LED3=~LED3;delay(100);lcd_pos(0x40);for(m=0;m<16;m++)lcd_wdat(cdis4[m]);if(KEY4==1||KEY3==1||KEY1==1||KEY5==1||KEY6==1)break;} }}//汽車左轉;亮并且閃if(KEY3==1){delay(10);if(KEY3==1){P2=0xff;while(1){LED4=~LED4;delay(100);lcd_pos(0x40);for(m=0;m<16;m++)lcd_wdat(cdis3[m]);if(KEY4==1||KEY2==1||KEY1==1||KEY5==1||KEY6==1) break;} }}//汽車暫時剎車所有亮if(KEY4==1){delay(10);if(KEY4==1){P2=0x00;lcd_pos(0x40);for(m=0;m<16;m++)lcd_wdat(cdis2[m]);}}//汽車倒車;中間四個燈亮if(KEY5==1){delay(10);if(KEY5==1){P2=0xff;delay(1);LED5=0;LED6=0;LED7=0;LED8=0; LED1=0; LED2=0;lcd_pos(0x40);for(m=0;m<16;m++)lcd_wdat(cdis5[m]);}}//汽車夜間行駛車前燈全亮。尾燈兩邊中間燈亮if(KEY6==1){delay(10);if(KEY6==1){P2=0xff;delay(1);LED1=0;LED2=0;LED5=0;LED6=0;lcd_pos(0x40);for(m=0;m<16;m++)lcd_wdat(cdis6[m]); } }}}voidUARTinterrupt(void)interrupt4{ucharm;lcd_pos(0);//設立顯示位置為第一行第1個字符for(m=0;m<16;m++)lcd_wdat(cdis71[m]);if(RI){RI=0;while(1){if(SBUF=='1') //單引號內表達ASCII碼//白天正常行駛批示燈全滅{P2=0xff;lcd_pos(0x40);for(m=0;m<16;m++)lcd_wdat(cdis1[m]);if(SBUF=='2'||SBUF=='3'||SBUF=='4'||SBUF=='5'||SBUF=='6'||KEY4==1||KEY3==1||KEY1==1||KEY5==1||KEY6==1||KEY2==1)break;}elseif(SBUF=='2')//汽車右轉;亮并且閃 {if(SBUF=='1'||SBUF=='3'||SBUF=='4'||SBUF=='5'||SBUF=='6'||KEY4==1||KEY3==1||KEY1==1||KEY5==1||KEY6==1||KEY2==1) while(1);{P2=0xff;delay(100); P2=0xfb; delay(100); lcd_pos(0x40);for(m=0;m<16;m++)lcd_wdat(cdis4[m]);// break; } break;}elseif(SBUF=='3')//汽車左轉;亮并且閃 {if(SBUF=='1'||SBUF=='2'||SBUF=='4'||SBUF=='5'||SBUF=='6'||KEY4==1||KEY3==1||KEY1==1||KEY5==1||KEY6==1||KEY2==1) while(1);{P2=0xff;delay(100); P2=0xf7; delay(100); lcd_pos(0x40);for(m=0;m<16;m++)lcd_wdat(cdis3[m]);// break; } break;}elseif(SBUF=='4') //汽車暫時剎車所有亮{P2=0x00; lcd_pos(0x40);for(m=0;m<16;m++) lcd_wdat(cdis2[m]); if(SBUF=='1'||SBUF=='3'||SBUF=='2'||SBUF=='5'||SBUF=='6'||KEY4==1||KEY3==1||KEY1==1||KEY5==1||KEY6==1||KEY2==1) break;} elseif(SBUF=='5') //汽車倒車;中間四個燈亮{P2=0xff; delay(1);LED5=0;LED6=0;LED7=0;LED8=0; LED1=0; LED2=0;lcd_pos(0x40);for(m=0;m<16;m++) lcd_wdat(cdis5[m]);if(SBUF=='1'||SBUF=='3'||SBUF=='4'||SBUF=='2'||SBUF=='6'||KEY4==1||KEY3==1||KEY1==1||KEY5==1||KEY6==1||KEY2==1) break;} elseif(SBUF=='6') //汽車夜間行駛車前燈全亮。尾燈兩邊中間燈亮{P2=0xff;delay(1);LED1=0;LED2=0;LED5=0;LED6=0;lcd_pos(0x40);for(m=0;m<16;m++)lcd_wdat(cdis6[m]);if(SBUF=='1'||SBUF=='3'||SBUF=='4'||SBUF=='5'||SBUF=='2'||KEY4==1||KEY3==1||KEY1==1||KEY5==1||KEY6==1||KEY2==1) break;} elseTI=0;}} }Vb上位機程序PrivateSubCheck3_Click()IfMSComm1.PortOpen=TrueThenIfCheck3.Value=1ThenCheck1.Caption="尾燈控制"ElseCheck3.Caption="按鍵控制"EndIfElseMsgBox"請打開串口"""EndIfEndSubPrivateSubCommand1_Click()MSComm1.Output="1"Check1.Value=0Check2.Value=0Shape2.FillColor=vbRedShape3.FillColor=vbBlackShape4.FillColor=vbBlackShape5.FillColor=vbBlackShape6.FillColor=vbBlackShape7.FillColor=vbBlackEndSubPrivateSubCommand10_Click()EndEndSubPrivateSubCommand2_Click()MSComm1.Output="6"Check1.Value=0Check2.Value=0Shape7.FillColor=vbRedShape3.FillColor=vbBlackShape4.FillColor=vbBlackShape5.FillColor=vbBlackShape6.FillColor=vbBlackShape2.FillColor=vbBlackEndSubPrivateSubCommand3_Click()Check1.Value=1Check2.Value=0Shape3.FillColor=vbRedShape2.FillColor=vbBlackShape4.FillColor=vbBlackShape5.FillColor=vbBlackShape6.FillColor=vbBlackShape7.FillColor=vbBlackE

溫馨提示

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

評論

0/150

提交評論