基于單片機的汽車燈控系統(tǒng)模擬設計_第1頁
基于單片機的汽車燈控系統(tǒng)模擬設計_第2頁
基于單片機的汽車燈控系統(tǒng)模擬設計_第3頁
基于單片機的汽車燈控系統(tǒng)模擬設計_第4頁
基于單片機的汽車燈控系統(tǒng)模擬設計_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、本科畢業(yè)設計論文 題 目 基于單片機的汽車燈控系統(tǒng)模擬設計 專業(yè)名稱 自動化 學生姓名 張文航 指導教師 李雪霞 畢業(yè)時間 2021.6 設計論文畢業(yè) 任務書一、題目:基于單片機的汽車燈控系統(tǒng)模擬設計二、指導思想和目的要求:通過畢業(yè)設計,使學生對所學電子工藝、電路根底知識、模電、數(shù)電、等電子根底課程的根本知識加深理解,掌握單片機的根本指令及根本結(jié)構(gòu),并將其與實際工程應用緊密結(jié)合起來,培養(yǎng)創(chuàng)新意識,增強分析問題解決問題能力,為盡快進入社會角色,熟悉相關(guān)開發(fā)工作流程、工程小組組成、分工、合作方式方法等。增強團隊合作意識,提高根本工作技能,為即將踏入社會奠定理論和實踐根底。內(nèi)容:汽車在行駛時,有左轉(zhuǎn)

2、彎、右轉(zhuǎn)彎、剎車、警示等操作。左轉(zhuǎn)彎時,應使左頭燈、左尾燈、儀表板左轉(zhuǎn)指示燈閃爍。右轉(zhuǎn)彎時,應使右頭燈、右尾燈、儀表板右轉(zhuǎn)指示燈閃爍。剎車時,左右兩個尾燈亮。警示時,頭燈、尾燈、儀表板指示燈等6個燈全閃爍。(1)設計思路:運用所學單片機知識,運用其I/O口設計根本控制電路,并以發(fā)光管、蜂鳴器、按鍵等外部設備做為相應的模擬部件。(2)步驟:l、了解汽車燈控系統(tǒng)的工作原理及要求。2、設計單片機工作的根本電路,如:晶振電路、復位電路。3、根據(jù)系統(tǒng)設計要求選擇發(fā)光二極管、蜂鳴器、按鍵等模擬部件。 4、設計系統(tǒng)根本電路。5、繪制PRTUSE電原理圖并編寫系統(tǒng)控制程序。6、聯(lián)機進行系統(tǒng)仿真調(diào)試。三、進度與

3、要求:1第一周第一周 收集汽車電子相關(guān)資料。2第二周第三周 用PROTUSE設計硬件原理圖并進行器件選型。3第四周第六周 編寫系統(tǒng)各功能模塊控制程序。4第七周第十周 聯(lián)機進行系統(tǒng)調(diào)試。5. 第十一周第十二周 整理并組織論文。6第十三周第十四周 完成修改稿,定稿,打印,交評閱。7第十五周第十六周 評閱與辯論 學生 張文航 指導教師 李雪霞 系主任 史儀凱摘 要隨著單片機的日益開展,其應用也越來越廣泛,通過對“汽車燈控制系統(tǒng)設計,可以對單片機的知識得到穩(wěn)固和擴展。在生活的環(huán)境中,自動控制要求中都會有單片機的控制的一局部;從簡單到復雜,但凡能想象到的地方幾乎都有使用單片機的需求。單片機的應用有利于產(chǎn)

4、品的小型化、多功能化和智能化,能夠提高勞動效率、減輕勞動強度,提升產(chǎn)品質(zhì)量,改善勞動環(huán)境。單片機在汽車電子中的應用非常廣泛,例如汽車中的發(fā)動機控制器,基于CAN總線的汽車發(fā)動機智能電子控制器、GPS導航系統(tǒng)、abs防抱死系統(tǒng)、制動系統(tǒng)、胎壓檢測等。單片機在工商、金融、科研、教育、電力、通信、物流和國防航空航天等領(lǐng)域都有著十分廣泛的用途。近年來開始在汽車前照燈上逐步廣泛應用的一種新型光源,同傳統(tǒng)鹵素燈相比,具有環(huán)保節(jié)能、使用壽命長、反響速度快等特點。汽車前照燈使用的LED 已成為各個汽車燈具研發(fā)機構(gòu)努力開發(fā)的目標,是未來汽車照明領(lǐng)域的重大開展方向之一。本課程內(nèi)容是設計一個單片機控制系統(tǒng),在汽車進

5、行左轉(zhuǎn)彎、右轉(zhuǎn)彎、近光燈、遠光燈、剎車、合緊急報警開關(guān)等操作時,實現(xiàn)對各種信號指示燈的控制。本設計主要是對單片機的并行輸入/輸出口電路的應用,通過I/O口控制發(fā)光二極管的亮滅閃爍,加上一些復位電路按鍵電路晶振模塊、燈光模塊來模擬汽車尾燈的功能。 關(guān)鍵字:單片機,LED燈,汽車燈控系統(tǒng)ABSTRACT With the increasing development of the microcontroller, its applications are increasingly being used by "auto light control system" design,

6、 the microcontroller can be consolidated and expanded knowledge. In the living environment, automatic control requirements will have a part of the control of the microcontroller; from simple to complex, who can imagine the place is almost always use the microcontroller needs. SCM applications conduc

7、ive to miniaturization, versatile and intelligent, able to improve labor efficiency, reduce labor intensity, improve product quality, improve the working environment. SCM applications in automotive electronics is very wide, such as automobile engine controllers, automobile engine based on CAN bus in

8、telligent electronic controller, GPS navigation system, abs anti-lock system, brake system, tire pressure detection. SCM in industrial, commercial, financial, scientific research, education, electricity, LED headlamp used in various automotive lighting has become a research and development instituti

9、ons working to develop goals, is one of the major developments in the future direction of the automotive lighting sector. This course is to design a microcomputer control system, the car carried a left turn, right turn, beam lights, high beam, brake, when combined emergency (alarm) switching and oth

10、er operations, to achieve control of the various signal lights. This design is a single-chip parallel input / output port circuit applications, the I / O port control of light-emitting diode off, flicker, plus some key circuit reset circuit crystal module, light module to simulate automobile taillig

11、hts function.KEY WORDS: microcontroller,LED lights,Car light control system目 錄摘 要IIIABSTRACTIV第一章 緒 論7778第二章 系統(tǒng)硬件設計92.1 總體硬件方案9系統(tǒng)結(jié)構(gòu)圖9元器件9設計原理10系統(tǒng)總體模塊圖112.2 各功能模塊原理11單片機模塊11按鍵模塊15指示燈模塊16復位電路模塊17晶振電路模塊18第三章 系統(tǒng)軟件設計20203近光燈流程圖21遠光燈流程圖22左轉(zhuǎn)向流程圖23右轉(zhuǎn)向流程圖24剎車流程圖25緊急報警流程圖263.2 編程軟件263.3 程序29第四章 仿真結(jié)果323232遠光燈仿

12、真圖33左轉(zhuǎn)向仿真圖33右轉(zhuǎn)向仿真圖34剎車仿真圖35緊急報警仿真圖364.2 仿真工具Proteus介紹3739參考文獻41致 謝42畢業(yè)設計小結(jié)43 第一章 緒 論隨著單片機的日益開展,其應用也越來越廣泛,利用單片機控制汽車信號燈可以對單片機的知識得到穩(wěn)固和擴展。本課程內(nèi)容是設計一個單片機控制系統(tǒng),在汽車進行左轉(zhuǎn)彎、右轉(zhuǎn)彎、剎車、合緊急開關(guān)等操作時,實現(xiàn)對各種信號指示燈的控制。通過所學知識進行軟硬件設計,提高各方面技能,穩(wěn)固對理論知識的掌握,把理論知識應用到實際中,使生活更方便、平安。現(xiàn)在雖然單片機的應用很普遍,但仍有許多工程未實現(xiàn),所以單片機的開展有很大的空間。汽車作為現(xiàn)代最重要的交通工

13、具之一,在當今社會得到了飛速的開展。在我國汽車快速的進入了普通家庭,已成為事實。由于汽車交通所引發(fā)的事故呈現(xiàn)出上升的趨勢。特別是汽車在夜間行駛,汽車前大燈遠近燈光的控制不當也會帶來一些不平安的因素。本文介紹了一種由AT89C51型單片機控制,光敏傳感器采集信號,繼電器執(zhí)行動作的夜間汽車前大燈遠近燈光轉(zhuǎn)換的自動控制系統(tǒng)。該系統(tǒng)安裝在汽車上,使汽車在夜間行駛時,根據(jù)對頭車駛近駛離的情況,能夠自動調(diào)節(jié)前大燈遠近燈光轉(zhuǎn)換。該系統(tǒng)穩(wěn)定可靠,本錢低廉。有一定的推廣和使用價值。本文中汽車轉(zhuǎn)向燈設計是用單片機來實現(xiàn)的,單片機控制系統(tǒng)可防止傳統(tǒng)的缺點,因為單片機功能強、使用靈活、可靠性高、本錢低、體積小、面向控

14、制、具有智能化功能等很多優(yōu)點。轉(zhuǎn)向燈使用要求:轉(zhuǎn)向控制時,撥打相應側(cè)的轉(zhuǎn)向開關(guān),相應側(cè)的轉(zhuǎn)向燈低頻閃爍,同時駕駛室里相應側(cè)LED轉(zhuǎn)向指示燈或也以同樣低的頻率閃爍;左右兩側(cè)轉(zhuǎn)向燈有故障時,駕駛室里LED轉(zhuǎn)向指示燈或高頻閃爍;汽車緊急報警時四個轉(zhuǎn)向燈同時高頻率閃爍,駕駛室里左右LED轉(zhuǎn)向指示燈和同頻率閃爍。由此看來,利用單片機控制汽車燈光系統(tǒng)有良好的開展前景。 本系統(tǒng)中要求設計汽車信號燈控制系統(tǒng),在駕駛汽車時有左轉(zhuǎn)彎、右轉(zhuǎn)彎、近光燈、遠光燈、剎車、合緊急開關(guān)六個操作;所以可以用6個開關(guān)來模擬這幾個操作,當單片機檢測到相關(guān)操作后,然后判斷屬于那一類操作,再通過軟件來驅(qū)動控制相應的信號燈閃爍。以此來實

15、現(xiàn)對汽車信號燈的控制。當合上左轉(zhuǎn)彎開關(guān)后,左前燈、左尾燈閃爍;當合上右轉(zhuǎn)彎開關(guān)后,右前燈、右尾燈閃爍。合上近光燈開關(guān),兩近光燈亮。合上遠光燈開關(guān),四個遠光燈亮。當剎車開關(guān)合上時,兩側(cè)尾燈閃爍;在緊急開關(guān)合上后,所有燈都閃爍。針對上述問題,我們用AT89C51單片機設計了一套汽車信號燈控制系統(tǒng)。 第二章 系統(tǒng)硬件設計2.1 總體硬件方案該課設是基于單片機利用開關(guān)控制二極管亮暗來實現(xiàn)。是一個典型的控制系統(tǒng). 單 片 機 電源電路指示燈模塊模塊按鍵模塊復位電路晶振電路 圖 2.1 結(jié)構(gòu)示意圖汽車信號燈控制硬件電路元器件如表2-1。表2-1 汽車信號燈控制硬件電路元器件表名稱代號數(shù)量單片機U11晶振B

16、1發(fā)光二極管RR、RH、LH、LR、DB、HB8按鈕SB0SB67電阻R1R8、R9、R1010電阻R11R16 6 電容C31電容C1、C22單片機電源VCC1利用單片機控制汽車信號燈,硬件電路比擬簡單,并可以通過軟件完成所需要的控制功能。以下是利用單片機控制的8個汽車信號燈,它們分別為左尾燈LR、左前燈LH、右前等RH、右尾燈RR、遠光燈HB、近光燈DB。6個按鍵SB1、SB2、SB3、SB4、SB5、SB6,它們分別是左拐彎鍵、右拐彎鍵、近光燈鍵、遠光燈鍵、剎車鍵、緊急信號鍵報警。汽車信號燈控制功能見表2-2。表2-2 汽車信號燈控制功能表按 鍵鍵 名動 作SB1左轉(zhuǎn)向左前燈LH、左后燈

17、LR閃爍SB5剎車左后燈LR、右后燈RR閃爍SB6緊急報警信號所有燈閃爍SB2右轉(zhuǎn)向右前燈RH、右后燈RR閃爍SB3近光燈2個DB燈亮SB4遠光燈 4個HB燈亮圖2.2 系統(tǒng)模塊總圖2.2 各功能模塊原理AT89C51是ATMEL公司生產(chǎn)的低電壓,高性能的CMOS 8位單片機,片內(nèi)含4K bytes的可反復擦寫和只讀程序存儲器PEROM和128 bytes的隨機存取數(shù)據(jù)存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和FLASH存儲單元。其引腳圖如圖3-1所示。其主要性能參數(shù)為:與MCS-51產(chǎn)品指令系統(tǒng)完全兼容;4k字節(jié)可重擦寫

18、Flash閃速存儲器;1000次擦寫周期;全靜態(tài)操作:0Hz-24MHz;三級加密程序存儲器;128 X 8字節(jié)內(nèi)部RAM;32個可編程I/O口線;2個16位定時/計數(shù)器;6個中斷源;可編程串行UART通道;低功耗空閑和掉電模式。圖2.3 AT89C51引腳圖AT89C51提供以下標準功能:4K字節(jié)Flash閃速存儲器,128字節(jié)內(nèi)部RAM,32個I/O口線,兩個16位定時/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路。同時,AT89C51可隆至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口

19、及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一硬件復位。引腳功能說明:Vcc:電源電壓GND:地P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總路線復用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8個TTL邏輯門電路,對端口寫“1可作為高阻抗輸入端用。中斷控制片內(nèi)Flash存儲器片內(nèi)RAMETC定時器1定時器0 CPU振蕩器總線控制I/O接口串行接口P0 P2 P1 P3外部中斷TXD RXD計數(shù)器輸出在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線從那時起轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復用,在訪問期間激活內(nèi)部上拉電圖2.4 AT89C

20、51內(nèi)部結(jié)構(gòu)圖P1口:P1是一個內(nèi)部帶上拉電阻的8位雙向I/O口,P1的輸出緩沖級可“1,通過內(nèi)部的上拉電阻把端口拉到高電平,些時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。Flash編程和程序校驗期間,P1接收低8位地址。“1,通過內(nèi)部的上拉電阻把端口拉到高電平,些時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX RI指令)時,P2口線上的內(nèi)容(也

21、即特殊功能存放器(SFR)區(qū)中R2存放器的內(nèi)容),在整個訪問期間不改變。Flash編程或校驗時,P2亦接收高位地址和其它控制信號。P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫1,通過內(nèi)部的上拉電阻把端口拉到高電平,些時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如下所示:表2-3 P3口功能I/O口線專用功能RxD(串行數(shù)據(jù)接收)TxD(串行數(shù)據(jù)發(fā)送)INT0(外部中斷0請求輸入)INT1(外部中斷1請求輸

22、入)T0(定時器0外部計數(shù)脈沖輸入)T1(定時器1外部計數(shù)脈沖輸入)WR(外部數(shù)據(jù)存儲器寫信號)RD(外部數(shù)據(jù)存儲器讀信號)P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。RST:復位輸入。當振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。ALE/PROG:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存許器)。輸出脈沖用于鎖存地址的低8位字節(jié).即使不訪問外部存儲器,ALE仍以時鐘振蕩頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入

23、編程脈沖(PROG)??赏ㄟ^對特殊功能存放器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令ALE才會被除數(shù)激活。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應設置ALE無效。PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當訪問外部數(shù)據(jù)存儲器,這兩次有效的PSEN信號不出現(xiàn)。EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果

24、加密位LB1被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU那么執(zhí)行內(nèi)部程序存儲器中的指令。Flash存儲器編程時,該引腳加上+12V的編程允許電源Vcc,當然這必須是該器件是使用12V編程電壓Vcc。根據(jù)設計的要求,本設計選用獨立式鍵盤。其工作原理為,單片機引腳作為輸入使用,首先置“1。當鍵沒有被按下時,單片機引腳上為高電平;而當鍵被按下去后,引腳接地,單片機引腳上為低電平。SB1控制左轉(zhuǎn)、SB2控制右轉(zhuǎn)、SB3控制近光、SB4控制遠光、SB5控制剎車、SB6控制報警。 圖 2.5 按鍵模塊LED具有二極管的特性,但在導通之后會發(fā)光,稱之為發(fā)光二極管。與普通的燈泡一

25、樣,LED導通后,隨著其倆端電壓的增加,電流急劇增加,所以,必須給LED串聯(lián)一個限流電阻,否那么一旦通電,LED會被燒壞。要用89c51單片機來控制LED,顯然這個LED必須要與89c51單片機的某個腳相連。當AT89c51單片機的第1腳是高電平時,LED不亮,當?shù)?腳是低電平時,LED亮。但是在汽車轉(zhuǎn)彎燈里要根據(jù)汽車方向來控制信號燈,而實現(xiàn)LED的亮與滅。 圖2.6 指示燈模塊 下列圖為單片機的復位電路,輸入端出現(xiàn)高電平時實現(xiàn)復位何必和初始化.在振蕩器運行的情況下,要實現(xiàn)復位操作,必須使RST引腳至少保持機器周期(24個振蕩周期)的高電平.CPU在第二個機器周期內(nèi)執(zhí)行內(nèi)部復位操作,以后每個機

26、器周期重復一次,直至RST端電平降低。電平復位將復位端通過電阻與Vcc相連,按鍵脈沖復位是利用RC分電路產(chǎn)生正脈沖來到達復位的。在按鍵電平復位和按鍵脈沖復位兩種簡單的復位電路中,干擾易串入復位端,在大多數(shù)情況下,不會造成單片機的錯誤復位,但會引起內(nèi)部存放器錯誤復位,這里可在復位端引腳上接一個去藕電容。 圖 2.7 復位電路模塊時鐘電路可由內(nèi)部和外部方式產(chǎn)生。接上定時元件,內(nèi)部震蕩電路就產(chǎn)生自激震蕩。定時元件通常采用石英晶體和電容組成的并聯(lián)諧振電路。采用單片機內(nèi)部晶振。在MCS-51系列單片機內(nèi)部有一個高增益反向放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。而在芯片外部XTAL1

27、和 XTAL2之間跨接晶體振蕩器和微調(diào)電容,形成反響電路,就構(gòu)成了一個穩(wěn)定的自激振蕩器。外接晶體石英或陶瓷,陶瓷的精度不高,但價格廉價振蕩器以及電容C1和C2構(gòu)成并聯(lián)諧振電路,接在放大器的反響回路中, C1和C2的大小會對振蕩器頻率的上下、振蕩器的穩(wěn)定性、起振的快速性和溫度特性有一定的影響。因此建議在采用石英晶體振蕩器時C=10pF,陶瓷振蕩器時,C=40pF,典型值為40pF。在設計電路板時,振蕩器和電容應盡量安裝得與單片機靠近,以減小寄生電容的存在更好的保障振蕩器穩(wěn)定、可靠的工作。 圖2.8 晶振電路模塊 第三章 系統(tǒng)軟件設計 初始化LED指示燈P1端口控制P1口指示燈的亮滅判斷P3口開關(guān)

28、是否閉合?結(jié)束 開始YN 圖3.1 程序流程總圖Y口指示燈的亮滅判斷P3.2口開關(guān)SB3是否閉合?結(jié)束N 圖3.2 近光燈流程圖通過開關(guān)SB3來控制近光燈2個DB燈亮來實現(xiàn)開啟近光燈 控制P1.6、P1.7、P1.4、P1.5 端口指示燈的亮滅判斷P3.3口開關(guān)SB4是否閉合?結(jié)束NY 圖3.3 遠光燈流程圖 通過開關(guān)SB4來控制遠光燈4個HB燈亮實現(xiàn)開啟遠光燈口指示燈的亮滅判斷P3.0口開關(guān)SB1是否閉合?結(jié)束NY 圖 3.4 左轉(zhuǎn)向流程圖 通過開關(guān)SB1來控制左前燈LH、左后燈LR閃爍實現(xiàn)左轉(zhuǎn)向口指示燈的亮滅判斷P3.1口開關(guān)SB2是否閉合?結(jié)束NY 圖3.5 右轉(zhuǎn)向流程圖 通過開關(guān)SB2

29、來控制右前燈RH、右后燈RR閃爍來實現(xiàn)右轉(zhuǎn)向口指示燈的亮滅判斷P3.4口開關(guān)SB5是否閉合?結(jié)束NY 圖 3.6 剎車流程圖通過開關(guān)SB5來控制左后燈LR、右后燈RR閃爍實現(xiàn)剎車3.1.6緊急報警流程圖 初始化LED指示燈P1.6、P1.4、P1.7、P1.5、P1.2、P1.1、P1.3、P1.0 端口口 P1.2、P1.1、P1.3、P1.0 端口 P1.2、P1.1、P1.3、P1.0 端口指示燈的亮滅判斷P3.5口開關(guān)SB6是否閉合?結(jié)束NY圖 3.7 緊急報警流程圖通過開關(guān)SB6來控制所有燈閃爍實現(xiàn)緊急(報警)3.2 編程軟件C語言是1972年由美國貝爾實驗室的D.M.Rotchie

30、所開發(fā),采用結(jié)構(gòu)化編程方法,遵從自頂向下的原那么。在操作系統(tǒng)和系統(tǒng)使用程序以及需要對硬件進行操作的場合,用C語言明顯優(yōu)于其它高級語言,但在編寫大型程序時,C語言仍面臨著挑戰(zhàn)。1983年,在C語言根底上貝爾實驗室的Bjarne Stroustrup推出了C+。C+進一步擴充和完善了C語言,是一種面向?qū)ο蟮某绦蛟O計語言,目前流行的C語言版本。 數(shù)據(jù)是程序處理的對象,數(shù)據(jù)可以依其本身的特點進行分類。我們知道在數(shù)學中有整數(shù)、實數(shù)的概念,在日常生活中需要用字符串來表示人的姓名和地址,有些問題的答復只能是“是或“否即邏輯“真或“假。不同類型的數(shù)據(jù)有不同的處理方法,例如:整數(shù)和實數(shù)可以參加算術(shù)運算,但實數(shù)的

31、表示又不同于整數(shù),要保存一定的小數(shù)位;字符串可以拼接;邏輯數(shù)據(jù)可以參加“與、“或、“非等邏輯運算。我們編寫計算機程序,目的就是為了解決客觀世界中的現(xiàn)實問題。所以,高級語言中也為我們提供了豐富的數(shù)據(jù)類型和運算。C+中的數(shù)據(jù)類型分為根本類型和自定義類型。根本類型是C+編譯系統(tǒng)內(nèi)置的。在C語言中,兩個函數(shù)的名稱不能相同,否那么會導致編譯錯誤。而在C+中,函數(shù)名相同而參數(shù)數(shù)據(jù)類型不同或參數(shù)個數(shù)不同或二者皆不同的兩個函數(shù)被解釋為重載。使用函數(shù)重載可以幫助程序員處理更多的復雜問題,防止了使用諸如intabs()、fabs()、dabs()等繁雜的函數(shù)名稱;同時在大型程序中,使函數(shù)名易于管理和使用,而不必絞

32、盡腦汁地去處理函數(shù)名。同時必須注意,參數(shù)數(shù)據(jù)類型相同,但是函數(shù)返回類型不同的兩個函數(shù)不能重載。在C語言中,如果一個函數(shù)需要修改用作參數(shù)的變量值的時候 ,參數(shù)應該聲明為指針類型;當參數(shù)的大小超過一個機器字長時,通過傳值方式來傳遞參數(shù)的效率較低,也需要用指針。C語言是1972年由美國的Dennis Ritchie設計創(chuàng)造的,并首次在UNIX操作系統(tǒng)的DEC PDP-11計算機上使用。它由早期的編程語言BCPL(Basic Combined Programming Language)開展演變而來,在1970年,AT&T貝爾實驗室的Ken Thompson根據(jù)BCPL語言設計出較先進的并取名為

33、B的語言,最后導致了C語言的問世。 而B語言之前還有A語言,取名自世界上第一位女程序員Ada艾達。C語言,是一種通用的、過程式的編程語言,廣泛用于系統(tǒng)與應用軟件的開發(fā)。具有高效、靈活、功能豐富、表達力強和較高的可移植性等特點,在程序員中備受青睞。最近25年是使用最為廣泛的編程語言。C語言是由丹尼斯·里奇于1969年至1973年以B語言為根底,在貝爾實驗室開發(fā)完成。目前,C語言編譯器普遍存在于各種不同的操作系統(tǒng)中,例如UNIX、MS-DOS、Microsoft Windows及Linux等。C語言的設計影響了許多后來的編程語言,例如C+、Objective-C、Java、C#等。C是高

34、級語言:它是把高級語言的根本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來的工作單元。C是結(jié)構(gòu)式語言:結(jié)構(gòu)式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個局部除了必要的信息交流外彼此獨立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護以及調(diào)試。C 語言是以函數(shù)形式提供應用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。C語言功能齊全:具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比擬強大,可以實現(xiàn)決策目的的游戲。C語言適用范圍大:適合于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機型。C語言對編寫需

35、要硬件進行操作的場合,優(yōu)于其它高級語言,有一些大型應用軟件也是用C語言編寫的。C語言應用指針:可以直接進行靠近硬件的操作,但是C的指針操作不做保護,也給它帶來了很多不平安的因素。C+在這方面做了改良,在保存了指針操作的同時又增強了平安性,受到了一些用戶的支持,但是,由于這些改良增加語言的復雜度,也為另一局部所詬病。Java那么吸取了C+的教訓,取消了指針操作,也取消了C+改良中一些備受爭議的地方,在平安性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低于C+/C。一般而言,C,C+,java被視為同一系的語言,它們長期占據(jù)著程序使用榜的前三名。C語言文件由數(shù)據(jù)序列組成:可以

36、構(gòu)成二進制文件或文本文件。常用的C語言IDE集成開發(fā)環(huán)境有Microsoft Visual C+、Dev-C+、Code:Blocks、Borland C+ Builder、Watcom C+、GNU DJGPP C+、Lccwin32 C Compiler 3.1、High C,Turbo C、C-Free、Win-TC、Xcode等。C程序是由一組變量或是函數(shù)的外部對象組成的。 函數(shù)是一個自我包含的完成一定相關(guān)功能的執(zhí)行代碼段。我們可以把函數(shù)看成一個“黑盒子,你只要將數(shù)據(jù)送進去就能得到結(jié)果,而函數(shù)內(nèi)部究竟是如何工作的的,外部程序是不知道的。外部程序所知道的僅限于輸入給函數(shù)什么以及函數(shù)輸出什

37、么。函數(shù)提供了編制程序的手段,使之容易讀、寫、理解、排除錯誤、修改和維護。C程序中函數(shù)的數(shù)目實際上是不限的,如果說有什么限制的話,那就是,一個C程序中必須至少有一個函數(shù),而且其中必須有一個并且僅有一個以main為名,這個函數(shù)稱為主函數(shù),整個程序從這個主函數(shù)開始執(zhí)行。C 語言程序鼓勵和提倡人們把一個大問題劃分成一個個子問題,對應于解決一個子問題編制一個函數(shù),因此,C 語言程序一般是由大量的小函數(shù)而不是由少量大函數(shù)構(gòu)成的,即所謂“小函數(shù)構(gòu)成大程序。這樣的好處是讓各局部相互充分獨立,并且任務單一。因而這些充分獨立的小模塊也可以作為一種固定規(guī)格的小“構(gòu)件, 用來構(gòu)成新的大程序。C語言的一個主要特點是可

38、以建立庫函數(shù)。Turbo C 2.0 提供的運行程序庫有400多個函數(shù), 每個函數(shù)都完成一定的功能, 可由用戶隨意調(diào)用。這些函數(shù)總的分為輸入輸出函數(shù)、數(shù)學函數(shù)、字符串和內(nèi)存函數(shù)、與BIOS和DOS有關(guān)的函數(shù)、 字符屏幕和圖形功能函數(shù)、過程控制函數(shù)、目錄函數(shù)等。對這些庫函數(shù)應熟悉其功能, 只有這樣才可省去很多不必要的工作。3.3 程序#include<reg52.h>#define uint unsigned intsbit SB1=P30; / 控制開關(guān)I/O分配sbit SB2=P31;sbit SB3=P32;sbit SB4=P33;sbit SB5=P34;sbit SB6

39、=P35;void delay(uint z) / 延時子程序uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void main() / 主程序 while(1) if(SB1=0) delay(5); if(SB1=0) / 左轉(zhuǎn)開關(guān)被按下 P1=0xf3; / 通過開關(guān)SB1來控制左前燈LH、左 delay(500); 后燈LR閃爍實現(xiàn)左轉(zhuǎn)向 P1=0xff; delay(500); if(SB2=0) delay(5); if(SB2=0) / 右轉(zhuǎn)開關(guān)被按下 P1=0xfc; / 通過開關(guān)SB2來控制右前燈 delay(500); RH

40、、右后燈RR閃爍來實現(xiàn)右轉(zhuǎn)向 P1=0xff; delay(500); if(SB3=0) P1=0x3f; / 近光開關(guān)被按下 delay(500); / 通過開關(guān)SB3來控制近光燈2個DB燈 P1=0xff; 亮來實現(xiàn)開啟近光燈 if(SB4=0) / 遠光開關(guān)被按下 P1=0x0f; / 通過開關(guān)SB4來控制遠光燈4個HB delay(500); 燈亮實現(xiàn)開啟遠光燈 P1=0xff; if(SB5=0) / 剎車開關(guān)被按下 delay(5); / 通過開關(guān)SB5來控制左后燈LR、右后 if(SB5=0) 燈RR閃爍實現(xiàn)剎車 P1=0xf6; delay(500); P1=0xff; de

41、lay(500); if(SB6=0) / 緊急剎車開關(guān)被按下 / 通過開關(guān)SB6來控制所有燈閃爍實現(xiàn)delay(5); 緊急(報警) if(SB6=0) P1=0x00; delay(500); P1=0xff; delay(500); 第四章 仿真結(jié)果按下SB3按鈕, 2個DB燈亮,來實現(xiàn)開啟近光燈。圖 4.1 近光燈仿真圖按下SB4按鈕 ,4個HB燈亮,來實現(xiàn)開啟遠光燈。圖 4.2 遠光燈仿真圖按下SB1按鈕, 左前燈LH、左后燈LR閃爍,來實現(xiàn)左轉(zhuǎn)向。圖 4.3 左轉(zhuǎn)向仿真圖按下SB2, 右前燈RH、右后燈RR閃爍,來實現(xiàn)右轉(zhuǎn)向。圖 4.4 右轉(zhuǎn)向仿真圖按下SB5按鈕, 左后燈LR、右

42、后燈RR閃爍,來實現(xiàn)剎車。圖 4.5 剎車仿真圖4.1.6緊急報警仿真圖按下SB6按鈕, 所有燈閃爍,來實現(xiàn)緊急報警。圖4.6 緊急報警仿真圖4.2 仿真工具Proteus介紹 Proteus軟件不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前比擬好的仿真單片機及外圍器件的工具。雖然目前國內(nèi)推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。 支持主流的CPU類型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,

43、CPU類型隨著版本升級還在繼續(xù)增加,如即將支持CORTEX、DSP處理器;支持通用外設模型:如字符LCD模塊、圖形LCD模塊、LED點陣、LED七段顯示模塊、鍵盤/按鍵、直流/步進/伺服電機、RS232虛擬終端、電子溫度計等等,其COMPIMCOM口物理接口模型還可以使仿真電路通過PC機串口和外部電路實現(xiàn)雙向異步串行通信;實時仿真:支持UART/USART/EUSARTs仿真、中斷仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真;編譯及調(diào)試:支持單片機匯編語言的編輯/編譯/源碼級仿真,內(nèi)帶8051、AVR、PIC的匯編編譯器,也可以與第三方集成編

44、譯環(huán)境如IAR、Keil和Hitech結(jié)合,進行高級語言的源碼級仿真和調(diào)試;原理圖到PCB的快速通道: 原理圖設計完成后,一鍵便可進入ARES的PCB設計環(huán)境,實現(xiàn)從概念到產(chǎn)品的完整設計;先進的自動布局/布線功能:支持器件的自動/人工布局;支持無網(wǎng)格自動布線或人工布線;支持引腳交換/門交換功能使PCB設計更為合理;完整的PCB設計功能:最多可設計16個銅箔層,2個絲印層,4個機械層含板邊,靈活的布線策略供用戶設置,自動設計規(guī)那么檢查,3D 可視化預覽;多種輸出格式的支持:可以輸出多種格式文件,包括Gerber文件的導入或?qū)С?,便利與其它PCB設計工具的互轉(zhuǎn)如protel和PCB板的設

45、計和加工。Proteus可提供的仿真元器件資源:仿真數(shù)字和模擬、交流和直流等數(shù)千種元器件,有30多個元件庫。Proteus可提供的仿真儀表資源 :示波器、邏輯分析儀、虛擬終端、SPI調(diào)試器、I2C調(diào)試器、信號發(fā)生器、模式發(fā)生器、交直流電壓表、交直流電流表。理論上同一種儀器可以在一個電路中隨意的調(diào)用。除了現(xiàn)實存在的儀器外,Proteus還提供了一個圖形顯示功能,可以將線路上變化的信號,以圖形的方式實時地顯示出來,其作用與示波器相似,但功能更多。這些虛擬儀器儀表具有理想的參數(shù)指標,例如極高的輸入阻抗、極低的輸出阻抗。這些都盡可能減少了儀器對測量結(jié)果的影響。Proteus可提供的調(diào)試手段 Prote

46、us提供了比擬豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數(shù)字信號。在PROTEUS繪制好原理圖后,調(diào)入已編譯好的目標代碼文件:*.HEX,可以在PROTEUS的原理圖中看到模擬的實物運行狀態(tài)和過程。PROTEUS 是單片機課堂教學的先進助手。PROTEUS不僅可將許多單片機實例功能形象化,也可將許多單片機實例運行過程形象化。前者可在相當程度上得到實物演示實驗的效果,后者那么是實物演示實驗難以到達的效果。它的元器件、連接線路等卻和傳統(tǒng)的單片機實驗硬件高度對應。這在相當程度上替代了傳統(tǒng)的單片機實驗教學的功能,例:元器件選擇、電路連接、電路檢測、電路修改、軟件調(diào)試、運行結(jié)果等。課程設計

47、、畢業(yè)設計是學生走向就業(yè)的重要實踐環(huán)節(jié)。由于PROTEUS提供了實驗室無法相比的大量的元器件庫,提供了修改電路設計的靈活性、提供了實驗室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了培養(yǎng)學生實踐精神、創(chuàng)造精神的平臺。 Proteus Design Suite集成了原理圖捕獲、SPICE電路仿真和PCB設計,形成一個完整的電子設計系統(tǒng)。對于通用微處理器,還可以運行實際固件程序進行仿真。與傳統(tǒng)的嵌入式設計過程相比,這個軟件包能極大地縮短開發(fā)時間。從產(chǎn)品概念到設計完成的完整仿真與開發(fā)平臺;預研設計與工程評估,減少開發(fā)風險;ODM的虛擬樣機;強大的分析與調(diào)試功能克服新手的經(jīng)驗缺乏;軟硬件的交互仿

48、真與測試大大減少后期測試工作量;便利工程管理與團隊開發(fā)。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,在此期間我也失落過,也曾一度熱情高漲。從開始時滿富激情到最后汗水背后的復雜心情,點點滴滴無不令我回味無長。生活就是這樣,汗水預示了結(jié)果也見證了收獲。同時在設計的過程中發(fā)現(xiàn)了自己的缺乏之處,剛拿到任務書時,思路不是很清晰,導致在構(gòu)建單片機原理圖和選取元器件上花費太多的時間和精力,落下了進度。在編程上花的時間太多,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。編寫流程圖的過程中遇見的問題較多,通過老師的指導,反復修改,實現(xiàn)了說明各個開關(guān)控制燈光的效果。在實現(xiàn)仿真時,燈光閃爍不穩(wěn)定,通過改變圖中電阻,電容值來實現(xiàn)燈光的穩(wěn)定閃爍與常亮。在編寫論文時,字體修改花費大量時間,字數(shù)開始時太少,論文顯得太空曠,后來經(jīng)過查詢相關(guān)知識來填補完成了本次論文。后期論文完成進度還可以,預期的完成了老師布置的任務,完成了本次的畢業(yè)設計,此論文算是自己大學四年來所學知識的成果吧!通過這次畢業(yè)設計使我懂得了理論與實際相結(jié)合是很重要的,只

溫馨提示

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

評論

0/150

提交評論