《單片機(jī)技術(shù)與應(yīng)用》 課件 項(xiàng)目一 智能車(chē)間指示系統(tǒng)設(shè)計(jì)與制作任務(wù)3_第1頁(yè)
《單片機(jī)技術(shù)與應(yīng)用》 課件 項(xiàng)目一 智能車(chē)間指示系統(tǒng)設(shè)計(jì)與制作任務(wù)3_第2頁(yè)
《單片機(jī)技術(shù)與應(yīng)用》 課件 項(xiàng)目一 智能車(chē)間指示系統(tǒng)設(shè)計(jì)與制作任務(wù)3_第3頁(yè)
《單片機(jī)技術(shù)與應(yīng)用》 課件 項(xiàng)目一 智能車(chē)間指示系統(tǒng)設(shè)計(jì)與制作任務(wù)3_第4頁(yè)
《單片機(jī)技術(shù)與應(yīng)用》 課件 項(xiàng)目一 智能車(chē)間指示系統(tǒng)設(shè)計(jì)與制作任務(wù)3_第5頁(yè)
已閱讀5頁(yè),還剩41頁(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)介

任務(wù)3

AGV搬運(yùn)車(chē)指示燈設(shè)計(jì)與制作單片機(jī)技術(shù)與應(yīng)用項(xiàng)目一智能車(chē)間指示系統(tǒng)設(shè)計(jì)與制作任務(wù)3

AGV搬運(yùn)車(chē)指示燈設(shè)計(jì)與制作三諾生物傳感有限公司【基礎(chǔ)任務(wù)要求】采用兩個(gè)發(fā)光二極管來(lái)AGV搬運(yùn)車(chē)左轉(zhuǎn)燈和右轉(zhuǎn)燈,用單片機(jī)的P1.0和P1.1引腳控制發(fā)光二極管的亮、滅狀態(tài);用兩個(gè)連接到單片機(jī)P3.0和P3.1引腳的撥動(dòng)開(kāi)關(guān)S0、S1,模擬發(fā)出左轉(zhuǎn)、右轉(zhuǎn)命令。任務(wù)3

AGV搬運(yùn)車(chē)指示燈設(shè)計(jì)與制作任務(wù)實(shí)現(xiàn)四步驟繪制硬件電路圖搭接硬件電路硬件設(shè)計(jì)調(diào)試硬件電路調(diào)試控制程序功能調(diào)試與實(shí)現(xiàn)繪制程序流程圖按鍵控制指示燈編程方法程序設(shè)計(jì)01020304重點(diǎn)、難點(diǎn)難點(diǎn)繪制系統(tǒng)框圖元器件選型分配資源方案設(shè)計(jì)對(duì)接單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)流程STC89C52單片機(jī)時(shí)鐘電路復(fù)位電路電源電路發(fā)光二極管電路系統(tǒng)框圖任務(wù)3

AGV搬運(yùn)車(chē)指示燈設(shè)計(jì)與制作按鍵電路任務(wù)名:AGV搬運(yùn)車(chē)指示燈設(shè)計(jì)與制作元件名稱圖片型號(hào)數(shù)量Proteus中的名稱單片機(jī)芯片AT89C511用AT89C51代替STC89C52晶振12MHZ1CRYSTAL電容22pF2CAP電解電容22μf/16V1CAP-ELEC電阻1KΩ1RES電阻50Ω2RES發(fā)光二極管2LED-RED撥動(dòng)開(kāi)關(guān)2SW-SPDT按鍵1BUTTON元器件選型硬件電路圖任務(wù)3

AGV搬運(yùn)車(chē)指示燈設(shè)計(jì)與制作硬件設(shè)計(jì)-繪電路細(xì)致規(guī)范嚴(yán)謹(jǐn)小錦囊電路繪制規(guī)范:用統(tǒng)一規(guī)定的元件符號(hào)盡量避免導(dǎo)線的交叉導(dǎo)線要求橫平豎直設(shè)置元器件參數(shù)元件放在編輯區(qū)內(nèi)軟件設(shè)計(jì)

1.如何編程實(shí)現(xiàn)發(fā)光二極管的亮滅?1

2.如何編程實(shí)現(xiàn)判斷撥動(dòng)開(kāi)關(guān)的狀態(tài)?2重點(diǎn)、難點(diǎn)控制程序設(shè)計(jì)控制左轉(zhuǎn)向燈按鍵P3.0左轉(zhuǎn)向燈P1.0控制右轉(zhuǎn)向燈按鍵P3.1右轉(zhuǎn)向燈P1.1閉合

0亮0閉合0

亮0斷開(kāi)1滅1斷開(kāi)1滅1開(kāi)始右轉(zhuǎn)按鍵是否按下?點(diǎn)亮左轉(zhuǎn)向燈左轉(zhuǎn)按鍵是否按下?點(diǎn)亮右轉(zhuǎn)向燈延時(shí)熄滅左、右轉(zhuǎn)向燈延時(shí)結(jié)束NY程序流程圖YN知識(shí)鏈接-選擇結(jié)構(gòu)選擇程序單分支if雙分支if-else多分支重點(diǎn)、難點(diǎn)一、選擇結(jié)構(gòu)程序選擇結(jié)構(gòu)程序-對(duì)給定條件進(jìn)行判斷,并根據(jù)判斷結(jié)果選擇應(yīng)執(zhí)行的操作的程序。選擇程序單分支雙分支多分支1、單分支語(yǔ)句-if語(yǔ)句if(表達(dá)式){語(yǔ)句組;}后續(xù)語(yǔ)句;一、選擇結(jié)構(gòu)程序1、單分支語(yǔ)句-if語(yǔ)句表達(dá)式的值什么時(shí)候?yàn)檎?,什么時(shí)候?yàn)榧倌??只有表達(dá)式的值為0,表示假;非0,表示真。if(表達(dá)式){語(yǔ)句組;}后續(xù)語(yǔ)句;一、選擇結(jié)構(gòu)程序開(kāi)始右轉(zhuǎn)按鍵是否按下?點(diǎn)亮左轉(zhuǎn)向燈左轉(zhuǎn)按鍵是否按下?點(diǎn)亮右轉(zhuǎn)向燈延時(shí)熄滅左、右轉(zhuǎn)向燈延時(shí)結(jié)束NY程序流程圖YN關(guān)系運(yùn)算(比較運(yùn)算)是將兩個(gè)數(shù)據(jù)進(jìn)行比較,判定是否符合給定的關(guān)系。關(guān)系運(yùn)算符是比較兩個(gè)數(shù)據(jù)量的運(yùn)算符。2.關(guān)系運(yùn)算符

關(guān)系表達(dá)式是用關(guān)系運(yùn)算符將兩個(gè)表達(dá)式連接起來(lái)的式子。

關(guān)系表達(dá)式的一般形式為:表達(dá)式關(guān)系運(yùn)算符表達(dá)式

關(guān)系表達(dá)式的值只有兩種可能,即真和假。如果運(yùn)算的結(jié)果是真,用”1”表示;如果運(yùn)算的結(jié)果是假,則用”0”表示。假定a=5;b=3;a>b的結(jié)果是什么呢?a==b假0a!=b真1真1實(shí)例關(guān)系運(yùn)算符的優(yōu)先級(jí)a==b>ca==(b>c)>,<,>=,<=優(yōu)先于==,!=#include<reg51.h>sbitleft_led=P1^0;sbitright_led=P1^1;sbitleft_sw=P3^0;sbitright_sw=P3^1;voiddelay(unsignedchari);voidmain(){

while(1){if(left_sw==0){left_led=0;}if(right_sw==0){right_led=0;}delay(200);left_led=1;right_led=1;delay(200);}}voiddelay(unsignedchari){unsignedcharj,k;for(k=0;k<i;k++)for(j=0;j<255;j++);}控制程序設(shè)計(jì)程序代碼編寫(xiě)規(guī)范:字母大小寫(xiě)一致標(biāo)點(diǎn)符號(hào)必須在英文狀態(tài)下輸入

變量命名規(guī)則勤勉創(chuàng)新堅(jiān)持2、雙分支語(yǔ)句-if-else語(yǔ)句一、選擇結(jié)構(gòu)程序2.雙分支語(yǔ)句-if-else語(yǔ)句一、選擇結(jié)構(gòu)程序#include<reg51.h>sbitleft_led=P1^0;sbitright_led=P1^1;sbitleft_sw=P3^0;sbitright_sw=P3^1;voiddelay(unsignedchari);voidmain(){

while(1){if(left_sw==0){left_led=0;}else{left_led=1;}delay(200);left_led=1;right_led=1;delay(200);}}voiddelay(unsignedchari){unsignedcharj,k;for(k=0;k<i;k++)for(j=0;j<255;j++);}控制程序設(shè)計(jì)if(right_sw==0){right_led=0;}else{right_led=1;}3、多分支語(yǔ)句-ifelseif語(yǔ)句一、選擇結(jié)構(gòu)程序3、多分支語(yǔ)句-ifelseif語(yǔ)句一、選擇結(jié)構(gòu)程序#include<reg51.h>sbitleft_led=P1^0;sbitright_led=P1^1;sbitleft_sw=P3^0;sbitright_sw=P3^1;voiddelay(unsignedchari);voidmain(){while(1){

if(left_sw==0&&right_sw==0){

left_led=0;

right_led=0;delay(200);

left_led=1;

right_led=1;delay(200);

}elseif(left_sw==0){

left_led=0;delay(200);

left_led=1;delay(200);}elseif(right_sw==0){

right_led=0;delay(200);

right_led=1;delay(200);}voiddelay(unsignedchari){unsignedcharj,k;for(k=0;k<i;k++)for(j=0;j<255;j++);}else{;}}}if語(yǔ)句的嵌套匹配原則

(1)if語(yǔ)句的嵌套在“語(yǔ)句組1”或(和)“語(yǔ)句組2”中,又包含有if語(yǔ)句的情況。(2)else子句與if的匹配原則:與在它上面、距它最近、且尚未匹配的if配對(duì)。一、選擇結(jié)構(gòu)程序4、多分支語(yǔ)句-switch語(yǔ)句switch(變量)//變量只能是整型或字符型。{case

變量可能值1:分支1語(yǔ)句;break;case

變量可能值2:分支2語(yǔ)句;break;……case

變量可能值n:分支n語(yǔ)句;break;default:最后分支語(yǔ)句;

//default也可以省略。}#include<reg51.h>sbitleft_led=P1^0;sbitright_led=P1^1;sbitleft_sw=P3^0;sbitright_sw=P3^1;voiddelay(unsignedchari);voidmain(){unsignedcharsw;P3=0xff;while(1){

sw=P3;switch(sw){case0xfc:left_led=0;right_led=0;break;

case0xfe:left_led=0;break;case0xfd:right_led=0;break;default:;}delay(200);

left_led=1;

right_led=1;delay(200);}}voiddelay(unsignedchari){unsignedcharj,k;for(k=0;k<i;k++)for(j=0;j<255;j++);}注:(1)switch后面的“表達(dá)式”的類型:int、char和枚舉型中的一種。(2)每個(gè)case后面“常量表達(dá)式”的值,必須各不相同,否則會(huì)出現(xiàn)相互矛盾的現(xiàn)象。(3)各case及default子句次序,不影響執(zhí)行結(jié)果。(4)多個(gè)case子句,可共用同一語(yǔ)句(組)。(1)if后面的“表達(dá)式”:除關(guān)系(邏輯)表達(dá)式外,也允許是整型、實(shí)型、字符型等其它類型的數(shù)據(jù)。(2)在語(yǔ)句組1和語(yǔ)句組2中,每個(gè)語(yǔ)句后面的分號(hào)不可少!例如:if(num1>num2)max=num1;elsemax=num2;

關(guān)系表達(dá)式只能描述單一條件。如果需要同時(shí)描述多個(gè)條件時(shí),就要借助于邏輯表達(dá)式。

①邏輯運(yùn)算符C語(yǔ)言中提供了三種邏輯運(yùn)算符:邏輯與(&&)、邏輯或(||)和邏輯非(!)。邏輯表達(dá)式的一般形式為

邏輯與:表達(dá)式1&&表達(dá)式2邏輯或:表達(dá)式1||表達(dá)式2

邏輯非:!條件式5.邏輯運(yùn)算符②邏輯表達(dá)式真真真邏輯與:&&表達(dá)式1&&表達(dá)式2&&=真&&=假假真&&=假假&&=假假假邏輯或:||表達(dá)式1||表達(dá)式2真真真||=真||=假真=假=假假假|(zhì)|||真真邏輯非:!!表達(dá)式真!=假!=假真邏輯與:&&邏輯或:

||邏輯非:!表達(dá)式1&&

表達(dá)式2表達(dá)式1||表達(dá)式2!表達(dá)式16<=age<18age>=6age<18&&5.邏輯運(yùn)算符邏輯與:&&邏輯或:

||邏輯非:!表達(dá)式1&&表達(dá)式2表達(dá)式1||表達(dá)式2!表達(dá)式1例如:假定有兩個(gè)開(kāi)關(guān)K1和K2,開(kāi)關(guān)閉合時(shí)連接的I/O引腳為低電平,否則為高電平,請(qǐng)問(wèn)判斷K1和K2同時(shí)閉合的表達(dá)式應(yīng)該怎么寫(xiě)?K1==0&&K2==0能正確表示邏輯關(guān)系:“a≥10或a≤0”的C語(yǔ)言表達(dá)式a>=10||a<=05.邏輯運(yùn)算符邏輯與:&&邏輯或:

||邏輯非:!表達(dá)式1&&表達(dá)式2表達(dá)式1

||表達(dá)式2!表達(dá)式1!優(yōu)先級(jí)別最高,其次是&&,最低是||!>算術(shù)運(yùn)算符>關(guān)系運(yùn)算符>&&>||5.邏輯運(yùn)算符

調(diào)試運(yùn)行1.看故障現(xiàn)象2.析故障原因3.查硬件故障4.查軟件故障5.驗(yàn)功能效果故障排查步驟嚴(yán)謹(jǐn)規(guī)范精益求精進(jìn)階任務(wù)-鍵控多種花樣LED燈顯示設(shè)計(jì)要求:通過(guò)4個(gè)按鍵控制8個(gè)LED燈在4種顯示模式之間切換。4種顯示模式如下。第1種顯示模式:全亮。第2種顯示模式:交叉亮滅。第3種顯示模式:高四位亮,低四位滅。第4種顯示模式:低四位亮,高四位滅。知識(shí)點(diǎn)獨(dú)立按鍵編程原理軟件去抖編程思路:在檢測(cè)到有鍵按下時(shí),先執(zhí)行10ms左右的延時(shí)程序,然后再重新檢測(cè)該鍵是否仍然按下,以確認(rèn)該鍵按下不是因?yàn)槎秳?dòng)引起的。同理,在檢測(cè)到該鍵釋放時(shí),也采用先延時(shí)再判斷的方法消除抖動(dòng)的影響。軟件去抖程序段如下:if(s1==0)//第一次檢測(cè)到按鍵s1按下{

delay(1200);//延時(shí)10ms左右去抖if(s1==0)//再次檢測(cè)到s1按下{

…//按鍵功能實(shí)現(xiàn)

while(!s1);//有鍵釋放,跳出while循環(huán)

delay(1200);//延時(shí)10ms左右去抖while(!s1);//再次判斷是否有鍵釋放}}voiddelay(unsignedinti)//延時(shí)函數(shù){

unsignedintk;for(k=0;k<i;k++);}#include<reg51.h>voiddelay10ms(unsignedintc);voidmain(){ unsignedcharkeyvalue; w

溫馨提示

  • 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)論