單片機(jī)應(yīng)用技術(shù)項(xiàng)目教程項(xiàng)目6 汽車轉(zhuǎn)向燈_第1頁(yè)
單片機(jī)應(yīng)用技術(shù)項(xiàng)目教程項(xiàng)目6 汽車轉(zhuǎn)向燈_第2頁(yè)
單片機(jī)應(yīng)用技術(shù)項(xiàng)目教程項(xiàng)目6 汽車轉(zhuǎn)向燈_第3頁(yè)
單片機(jī)應(yīng)用技術(shù)項(xiàng)目教程項(xiàng)目6 汽車轉(zhuǎn)向燈_第4頁(yè)
單片機(jī)應(yīng)用技術(shù)項(xiàng)目教程項(xiàng)目6 汽車轉(zhuǎn)向燈_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

工程6:汽車信號(hào)燈知識(shí)目標(biāo):1.掌握獨(dú)立式鍵盤的工作原理與應(yīng)用;2.掌握C語(yǔ)言選擇語(yǔ)句的使用;3.掌握選擇語(yǔ)句if-else、if-elseif-else的語(yǔ)法特點(diǎn);掌握典型分支結(jié)構(gòu)程序設(shè)計(jì)和調(diào)試方法。技能訓(xùn)練目標(biāo):1.熟悉C51對(duì)并行I/O端口作輸入口操作的編程方法;2.熟練使用典型分支結(jié)構(gòu)程序設(shè)計(jì)和調(diào)試方法。汽車信號(hào)燈控制系統(tǒng)設(shè)計(jì)要求:

用4個(gè)I/O端口接4個(gè)按鍵,分別為左轉(zhuǎn)、右轉(zhuǎn)、剎車、緊急鍵,發(fā)光二極管作燈光信號(hào)。駕駛操作輸出信號(hào)儀表板左轉(zhuǎn)燈儀表板右轉(zhuǎn)燈左前燈右前燈左尾燈右尾燈左轉(zhuǎn)彎(合上左轉(zhuǎn)開關(guān))閃爍——閃爍——閃爍——右轉(zhuǎn)彎(合上右轉(zhuǎn)開關(guān))——閃爍——閃爍——閃爍合緊急開關(guān)閃爍閃爍閃爍閃爍閃爍閃爍剎車(合上剎車開關(guān))————————亮亮本系統(tǒng)功能由硬件和軟件兩大部份協(xié)調(diào)完成,硬件局部主要完成信息的顯示;軟件主要完成信號(hào)的處理及控制功能等。汽車信號(hào)燈控制系統(tǒng)以單片機(jī)AT89C52、電源電路、復(fù)位電路及時(shí)鐘電路構(gòu)成的最小系統(tǒng)模塊和外圍接口電路組成,外圍接口電路主要由LED顯示電路、按鍵輸入電路構(gòu)成。系統(tǒng)通過單片機(jī)并行I/O口構(gòu)成鍵盤輸入和LED顯示輸出電路,可實(shí)現(xiàn)汽車轉(zhuǎn)彎燈中各信號(hào)燈的功能操作。汽車信號(hào)燈控制系統(tǒng)框圖如圖6-1所示總體設(shè)計(jì)方案該系統(tǒng)軟件主要由主程序、延時(shí)功能函數(shù)、按鍵掃描模塊等組成,系統(tǒng)軟件結(jié)構(gòu)框圖如圖6-2所示。。LED電路按鍵輸入電路復(fù)位電路時(shí)鐘電路電源電路單片機(jī)圖6-1汽車信號(hào)燈控制系統(tǒng)組成方框圖延時(shí)子程序主程序按鍵掃描程序圖6-2汽車信號(hào)燈系統(tǒng)軟件結(jié)構(gòu)框圖鍵盤知識(shí)1、鍵輸入信號(hào)判斷:通過按鍵的接通與斷開,產(chǎn)生兩種相反的邏輯狀態(tài)低電平“0〞與高電平“1〞。2、鍵功能的實(shí)現(xiàn):對(duì)于一組鍵或一個(gè)鍵盤,需通過接口電路與單片機(jī)相連??刹捎貌樵兓蛑袛喾绞綔y(cè)試有無(wú)鍵按下,再確定是哪一個(gè)鍵按下,轉(zhuǎn)入執(zhí)行該鍵的功能程序,執(zhí)行完后再返回主程序一、鍵盤工作原理二、按鍵結(jié)構(gòu)與特點(diǎn)機(jī)械式按鍵在按下或釋放時(shí),由于機(jī)械彈性作用的影響,通常伴隨有一定時(shí)間的觸點(diǎn)機(jī)械抖動(dòng),然后其觸點(diǎn)才穩(wěn)定下來。其抖動(dòng)過程如右圖所示,抖動(dòng)時(shí)間的長(zhǎng)短與開關(guān)的機(jī)械特性有關(guān),一般為510ms。假設(shè)有抖動(dòng),按鍵按下會(huì)被錯(cuò)誤地認(rèn)為是屢次操作。按鍵觸點(diǎn)的機(jī)械抖動(dòng)三、防抖動(dòng)措施為了克服按鍵觸點(diǎn)機(jī)械抖動(dòng)所致的檢測(cè)誤判,必須采取去抖動(dòng)措施,可從硬件、軟件兩方面予以考慮。鍵數(shù)較少時(shí),采用硬件去抖〔R-S觸發(fā)器構(gòu)成的去抖動(dòng)電路〕鍵數(shù)較多時(shí),采用軟件去抖〔延時(shí)去抖〕軟件上采取的措施是在檢測(cè)到有按鍵按下時(shí),執(zhí)行一個(gè)10ms左右(具體時(shí)間應(yīng)視所使用的按鍵進(jìn)行調(diào)整)的延時(shí)程序,再確認(rèn)該鍵電平是否仍保持閉合狀態(tài)電平,假設(shè)仍保持閉合狀態(tài)電平,那么確認(rèn)該鍵處于閉合狀態(tài),從而消除抖動(dòng)的影響。四、鍵盤與單片機(jī)的連接方式1.獨(dú)立式鍵盤圖6-5獨(dú)立式按鍵2.矩陣式鍵盤圖6-6矩陣式按鍵在單片機(jī)應(yīng)用系統(tǒng)中,鍵盤掃描只是CPU的工作內(nèi)容之一。CPU對(duì)鍵盤的響應(yīng)取決于鍵盤的工作方式,鍵盤的工作方式應(yīng)根據(jù)實(shí)際應(yīng)用系統(tǒng)中CPU的工作狀況而定,其選取的原那么是既要保證CPU能及時(shí)響應(yīng)按鍵操作,又不要過多占用CPU的工作時(shí)間。通常,鍵盤的工作方式有三種,即編程掃描、定時(shí)掃描和中斷掃描。鍵盤掃描程序一般應(yīng)包括以下內(nèi)容:〔1〕判別有無(wú)鍵按下。〔2〕鍵盤掃描取得閉合鍵的行、列值?!?〕用計(jì)算法或查表法得到鍵值?!?〕判斷閉合鍵是否釋放,如沒釋放那么繼續(xù)等待。〔5〕將閉合鍵鍵號(hào)保存,同時(shí)轉(zhuǎn)去執(zhí)行該閉合鍵的功能。五、鍵盤掃描方式1、運(yùn)算符和表達(dá)式2、選擇〔分支〕語(yǔ)句C語(yǔ)言知識(shí)運(yùn)算類型運(yùn)算符優(yōu)先級(jí)結(jié)合性括號(hào)運(yùn)算符()1從左至右邏輯非和按位取反!~2從右至左算術(shù)運(yùn)算*/%3從左至右+-4從左至右左移、右移運(yùn)算<<>>5從左至右關(guān)系運(yùn)算<<=>>=6從左至右==!=7從左至右位運(yùn)算&8從左至右^9從左至右|10從左至右邏輯與&&11從左至右邏輯或||12從左至右賦值運(yùn)算與復(fù)合賦值運(yùn)算

=+=、-=、*=、/=、%=、&=、^=、|=、<<=、>>=14從右至左運(yùn)算符及表達(dá)式選擇〔分支〕語(yǔ)句1、if語(yǔ)句2、if……else語(yǔ)句3、if-elseif-else語(yǔ)句

4、switch/case語(yǔ)句。if選擇語(yǔ)句根本if語(yǔ)句的格式如下:if(表達(dá)式){ 語(yǔ)句組; }if語(yǔ)句執(zhí)行過程:當(dāng)“表達(dá)式〞的結(jié)果為“真〞時(shí),執(zhí)行其后的“語(yǔ)句組〞,否那么跳過該語(yǔ)句組,繼續(xù)執(zhí)行下面的語(yǔ)句。if語(yǔ)句中的“表達(dá)式〞通常為邏輯表達(dá)式或關(guān)系表達(dá)式,在if語(yǔ)句中,“表達(dá)式〞必須用括號(hào)括起來。在if語(yǔ)句中,花括號(hào)“{}〞里面的語(yǔ)句組如果只有一條語(yǔ)句,可以省略花括號(hào)。如“if(P3_0==0)P1_0=0;〞語(yǔ)句,但是為了提高程序的可讀性和防止程序書寫錯(cuò)誤,建議讀者在任何情況下,都加上花括號(hào)。if-else選擇語(yǔ)句if-else語(yǔ)句的一般格式如下:if(表達(dá)式) { 語(yǔ)句組A; } else{ 語(yǔ)句組B; }if-else語(yǔ)句執(zhí)行過程:當(dāng)“表達(dá)式〞的結(jié)果為“真〞時(shí),執(zhí)行其后的“語(yǔ)句組1〞,否那么執(zhí)行“語(yǔ)句組2〞圖6-if-else語(yǔ)句執(zhí)行流程if……elseif……else語(yǔ)句

if-elseif-else是ifelse語(yǔ)句組成的嵌套,用于實(shí)現(xiàn)多個(gè)條件分支的選擇其一般格式如下:if(表達(dá)式){語(yǔ)句1;}elseif(表達(dá)式){語(yǔ)句2;}elseif(表達(dá)式){語(yǔ)句3;}elseif(表達(dá)式){語(yǔ)句4;}else{語(yǔ)句N;}

if-elseif-else語(yǔ)句執(zhí)行流程switch選擇語(yǔ)句多分支選擇的switch語(yǔ)句,其一般形式如下:

switch(表達(dá)式){case常量表達(dá)式1:語(yǔ)句組1;break;case常量表達(dá)式2:語(yǔ)句組2;break; …… case常量表達(dá)式n:語(yǔ)句組n;break;default:語(yǔ)句組n+1;}switchcase判斷語(yǔ)句【活動(dòng)一】硬件電路設(shè)計(jì)【活動(dòng)二】軟件設(shè)計(jì)1、算法分析與流程圖開始初始化:LED全滅,正常行駛;輸入端口初始化;鍵盤掃描程序Y有鍵按下N主程序設(shè)計(jì)流程圖

主程序主要完成硬件初始化、鍵盤掃描與鍵位功能處理程序、延時(shí)功能函數(shù)調(diào)用等功能。〔1〕判別有無(wú)鍵按下〔延時(shí)去抖〕。方法:實(shí)時(shí)讀取I/O口狀態(tài),取反后測(cè)試,假設(shè)有鍵閉合,那么x≠0;假設(shè)無(wú)鍵閉合,那么x=0。當(dāng)測(cè)試有鍵閉合時(shí),需要進(jìn)行延時(shí)去抖動(dòng)處理,按鍵消除抖動(dòng)仍采用延時(shí)函數(shù)。即在發(fā)現(xiàn)有鍵盤按下后,延時(shí)10ms再進(jìn)行逐行掃描。因?yàn)殒I被按下時(shí)的閉合時(shí)間遠(yuǎn)遠(yuǎn)大于10ms,所以延時(shí)后再掃描再判斷。假設(shè)某鍵閉合那么相應(yīng)單片機(jī)引腳輸入低電平。if(x==0)continue;//如果無(wú)鍵按下那么認(rèn)為是按鍵抖動(dòng),重新掃描鍵盤?!?〕采用查詢方式確定鍵位,根據(jù)鍵值轉(zhuǎn)去執(zhí)行該閉合鍵的功能。方法:如果有鍵按下,那么根據(jù)按鍵的不同執(zhí)行相應(yīng)的按鍵操作。鍵值處理程序?yàn)檫x擇〔分支〕結(jié)構(gòu),使用了if-elseif-else語(yǔ)句。2、鍵盤掃描程序分析鍵盤掃描子程序設(shè)計(jì)開始左轉(zhuǎn)信號(hào)讀取鍵值是否有鍵按下?P1.0按下YYP1.4按下P1.2按下P1.6按下YYNNN右轉(zhuǎn)信號(hào)剎車信號(hào)緊急信號(hào)N鍵盤掃描函數(shù)流程N(yùn)Ywhile(1) {/**************鍵盤掃描*************************************************/P1=0xff; //鍵盤初始化x=P1;//讀鍵盤狀態(tài)x=~x;//鍵盤狀態(tài)取反if(x==0)continue;//如果無(wú)鍵按下那么認(rèn)為是按鍵抖動(dòng),重新掃描鍵盤delay(250);//延時(shí)去抖動(dòng)if(x==0)continue;//如果無(wú)鍵按下那么認(rèn)為是按鍵抖動(dòng),重新掃描鍵盤/*****************根據(jù)鍵值相應(yīng)執(zhí)行功能*******************************************/if(K1==0)//K1鍵:左轉(zhuǎn){P0=tab[0];delay(100);P0=0x00;delay(100);}elseif(K2==0) //K2鍵:右轉(zhuǎn){P0=tab[1];delay(100);P0=0x00;delay(100);}elseif(K3==0) //K3鍵:剎車{P0=tab[2];delay(100);P0=0x00;delay(100);}elseif(K4==0) //K4鍵:緊急{P0=tab[3];delay(100);P0=0x00;delay(100);}elseP0=0x00;//正常}參考程序1.啟動(dòng)KeiluVision4軟件,創(chuàng)立新工程:CH6.UVPROJ,CPU選擇Atmel89C52。2.對(duì)工程的屬性進(jìn)行設(shè)置:目標(biāo)屬性中選擇“生成HEX文件〞。3.編寫參考源程序ch6.c,以C為擴(kuò)展名保存在工程文件夾中。4.將參考源程序參加程序組:鼠標(biāo)右鍵單擊程序組圖標(biāo),參加文件組。5.調(diào)試:進(jìn)入調(diào)試狀態(tài),期間可能需要修改參考源程序,直到?jīng)]有語(yǔ)法錯(cuò)誤為止。翻開相應(yīng)窗口,運(yùn)行程序,觀察運(yùn)行結(jié)果。【活動(dòng)三】程序仿真與調(diào)試

【活動(dòng)四】實(shí)物制作汽車信號(hào)燈控制系統(tǒng)實(shí)物圖考核項(xiàng)目考核內(nèi)容技術(shù)要求評(píng)分標(biāo)準(zhǔn)得分備注總體設(shè)計(jì)①任務(wù)分析②方案設(shè)計(jì)③軟件和硬件功能劃分①任務(wù)明確(5分);②方案設(shè)計(jì)合理、有新意(10分);③軟件和硬件功能劃分合理(5分);20分硬件設(shè)計(jì)①片內(nèi)器件分配;②電路原理圖設(shè)計(jì);③電路板制作;①片內(nèi)器件分配正確、合理(5分);②電路原理圖設(shè)計(jì)正確(10分);③電路板制作:布線正確、整齊、合理(5分);20分軟件設(shè)計(jì)①算法和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);②流程圖設(shè)計(jì);③編程;①算法和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)正確、合理(5分);②流程圖設(shè)計(jì)正確、簡(jiǎn)明;(5分);③編程正確、有新意(10分);20分系統(tǒng)仿真與調(diào)試①調(diào)試順序;②錯(cuò)誤排除;③調(diào)試結(jié)果;①調(diào)試順序正確(5分);②能熟練排除錯(cuò)誤(10分);③調(diào)試后運(yùn)行正確(5分);20分實(shí)訓(xùn)報(bào)告①書寫;②內(nèi)容;③圖形繪制;④結(jié)果分析①書寫規(guī)范整齊(5分);②內(nèi)容翔實(shí)具體(5分);③圖形繪制正確、完整、全面(5分);④能正確分析實(shí)驗(yàn)結(jié)構(gòu)(5分);20分合計(jì)100分1.獨(dú)立式按鍵采用每個(gè)按鍵單獨(dú)占用一根I/O口線結(jié)構(gòu)。當(dāng)按下和釋放按鍵時(shí),輸入到單片機(jī)I/O端口的電平是不一樣的,因此可以根據(jù)不同端口電平的變化判斷是否有按鍵按下以及是哪一個(gè)按鍵按下。獨(dú)立式按鍵電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵必須占用一根I/O口線,因此,在按鍵較多時(shí),I/O口線浪費(fèi)較大。2.C

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論