《單片機(jī)技術(shù)與應(yīng)用》教案7項(xiàng)目2任務(wù)4-手動(dòng)計(jì)數(shù)器實(shí)現(xiàn)_第1頁(yè)
《單片機(jī)技術(shù)與應(yīng)用》教案7項(xiàng)目2任務(wù)4-手動(dòng)計(jì)數(shù)器實(shí)現(xiàn)_第2頁(yè)
《單片機(jī)技術(shù)與應(yīng)用》教案7項(xiàng)目2任務(wù)4-手動(dòng)計(jì)數(shù)器實(shí)現(xiàn)_第3頁(yè)
《單片機(jī)技術(shù)與應(yīng)用》教案7項(xiàng)目2任務(wù)4-手動(dòng)計(jì)數(shù)器實(shí)現(xiàn)_第4頁(yè)
《單片機(jī)技術(shù)與應(yīng)用》教案7項(xiàng)目2任務(wù)4-手動(dòng)計(jì)數(shù)器實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGEPAGE1教案學(xué)習(xí)領(lǐng)域項(xiàng)目2簡(jiǎn)易搶答器設(shè)計(jì)學(xué)習(xí)情境任務(wù)4手動(dòng)計(jì)數(shù)器實(shí)現(xiàn)序號(hào)7課型理實(shí)一體化課時(shí)4教具學(xué)具電教設(shè)施pc機(jī);keil以及proteus軟件;任務(wù)書(供學(xué)生用);課件教學(xué)目標(biāo)知識(shí)目標(biāo)①掌握單片機(jī)驅(qū)動(dòng)數(shù)碼管動(dòng)態(tài)顯示方法②掌握數(shù)碼管待顯示數(shù)百位、十位、個(gè)位數(shù)分離方法③掌握狀態(tài)機(jī)程序編制的一般方法能力目標(biāo)①能夠通過Keil和Proteus軟件的初步使用,提高觀察和分析能力②能夠通過任意待顯示數(shù),分離出百位、十位、個(gè)位數(shù)方法,培養(yǎng)邏輯思維能力③能夠編制按鍵狀態(tài)機(jī)程序,提高分析和解決問題的能力情感目標(biāo)①能夠透過實(shí)驗(yàn)現(xiàn)象歸納事物本質(zhì)②培養(yǎng)學(xué)生對(duì)本專業(yè)的職業(yè)認(rèn)同感③培養(yǎng)學(xué)生科學(xué)探索的興趣、嚴(yán)謹(jǐn)扎實(shí)的工作作風(fēng)和團(tuán)結(jié)協(xié)作精神教學(xué)重難點(diǎn)重點(diǎn)①掌握單片機(jī)驅(qū)動(dòng)數(shù)碼管動(dòng)態(tài)顯示方法②掌握數(shù)碼管待顯示數(shù)百位、十位、個(gè)位數(shù)分離方法難點(diǎn)①掌握數(shù)碼管待顯示數(shù)百位、十位、個(gè)位數(shù)分離方法②單片機(jī)驅(qū)動(dòng)數(shù)碼管動(dòng)態(tài)顯示方法學(xué)法教法實(shí)驗(yàn)探究、任務(wù)引領(lǐng)法、討論法、張貼法、頭腦風(fēng)暴法、演示法教學(xué)內(nèi)容更新、補(bǔ)充、刪節(jié)參考資料課后體會(huì)學(xué)生在任務(wù)的驅(qū)動(dòng)下,利用仿真電路自主探究電路規(guī)律,結(jié)合教師對(duì)相關(guān)知識(shí)點(diǎn)的講授,達(dá)到對(duì)所學(xué)知識(shí)的掌握。這個(gè)思路帶來了很好的教學(xué)效果,但增加的實(shí)驗(yàn)部分會(huì)使得教學(xué)時(shí)數(shù)稍顯緊張,這一點(diǎn)還需日后改進(jìn)。教與學(xué)互動(dòng)設(shè)計(jì)教師活動(dòng)內(nèi)容學(xué)生活動(dòng)內(nèi)容一、組織教學(xué)(2分鐘)1.首先清點(diǎn)學(xué)生出勤情況,填寫考勤記錄。2.檢查學(xué)生工作服、帽、鞋等是否符合安全要求。3.宣布今天的實(shí)習(xí)內(nèi)容、技術(shù)要求、工時(shí)、勞動(dòng)紀(jì)律等。4.強(qiáng)調(diào)生產(chǎn)實(shí)習(xí)安全注意事項(xiàng)。5.學(xué)生分組分上機(jī)、實(shí)習(xí)工位。6.發(fā)放任務(wù)書、自評(píng)和互評(píng)表以及白紙到每組的學(xué)生手中。二、布置任務(wù)(3分鐘)下達(dá)任務(wù),單片機(jī)P3.2引腳接一按鍵,最開始顯示全0,按下一次按鍵加1,把加的和用8位數(shù)碼管顯示出來。三、資訊計(jì)劃(25分鐘)實(shí)際上按鍵識(shí)別檢測(cè)也可以用狀態(tài)機(jī)來編程實(shí)現(xiàn),使用狀態(tài)機(jī)最節(jié)約系統(tǒng)資源,如:進(jìn)行按鍵檢測(cè),只需要定時(shí)執(zhí)行按鍵狀態(tài)機(jī)程序即可。下面來看看狀態(tài)機(jī)的基本概念。狀態(tài)機(jī)是軟件編程中的一個(gè)重要概念。比這個(gè)概念更重要的是對(duì)它的靈活應(yīng)用。在一個(gè)思路清晰而且高效的程序中,必然有狀態(tài)機(jī)的身影浮現(xiàn)。比如說一個(gè)按鍵命令解析程序,就可以被看做狀態(tài)機(jī):本來在A狀態(tài)下,觸發(fā)一個(gè)按鍵后切換到了B狀態(tài);再觸發(fā)另一個(gè)鍵后切換到C狀態(tài),或者返回到A狀態(tài)。這就是最簡(jiǎn)單的按鍵狀態(tài)機(jī)例子。實(shí)際的按鍵解析程序會(huì)比這更復(fù)雜些,但這不影響我們對(duì)狀態(tài)機(jī)的認(rèn)識(shí)。進(jìn)一步看,擊鍵動(dòng)作本身也可以看做一個(gè)狀態(tài)機(jī)。一個(gè)細(xì)小的擊鍵動(dòng)作包含了:釋放、抖動(dòng)、閉合、抖動(dòng)和重新釋放等狀態(tài)。顯示掃描程序也是狀態(tài)機(jī);通信命令解析程序也是狀態(tài)機(jī);甚至連繼電器的吸合/釋放控制、發(fā)光管(LED)的亮/滅控制又何嘗不是個(gè)狀態(tài)機(jī)。當(dāng)我們打開思路,把狀態(tài)機(jī)作為一種思想導(dǎo)入到程序中去時(shí),就會(huì)找到解決問題的一條有效的捷徑。有時(shí)候用狀態(tài)機(jī)的思維去思考程序該干什么,比用控制流程的思維去思考,可能會(huì)更有效。這樣一來狀態(tài)機(jī)便有了更實(shí)際的功用。程序其實(shí)就是狀態(tài)機(jī)。也許你還不理解上面這句話。請(qǐng)想想看,計(jì)算機(jī)的大廈不就是建立在“0”和“1”兩個(gè)基本狀態(tài)的地基之上么?1.狀態(tài)機(jī)的要素狀態(tài)機(jī)可歸納為4個(gè)要素,即現(xiàn)態(tài)、條件、動(dòng)作、次態(tài)。這樣的歸納,主要是出于對(duì)狀態(tài)機(jī)的內(nèi)在因果關(guān)系的考慮。“現(xiàn)態(tài)”和“條件”是因,“動(dòng)作”和“次態(tài)”是果。詳解如下:(1)現(xiàn)態(tài):是指當(dāng)前所處的狀態(tài)。(2)條件:又稱為“事件”。當(dāng)一個(gè)條件被滿足,將會(huì)觸發(fā)一個(gè)動(dòng)作,或者執(zhí)行一次狀態(tài)的遷移。(3)動(dòng)作:條件滿足后執(zhí)行的動(dòng)作。動(dòng)作執(zhí)行完畢后,可以遷移到新的狀態(tài),也可以仍舊保持原狀態(tài)。動(dòng)作不是必需的,當(dāng)條件滿足后,也可以不執(zhí)行任何動(dòng)作,直接遷移到新狀態(tài)。(4)次態(tài):條件滿足后要遷往的新狀態(tài)。“次態(tài)”是相對(duì)于“現(xiàn)態(tài)”而言的,“次態(tài)”一旦被激活,就轉(zhuǎn)變成新的“現(xiàn)態(tài)”了。如果我們進(jìn)一步歸納,把“現(xiàn)態(tài)”和“次態(tài)”統(tǒng)一起來,而把“動(dòng)作”忽略(降格處理),則只剩下兩個(gè)最關(guān)鍵的要素,即:狀態(tài)、遷移條件。2.狀態(tài)遷移圖(STD)狀態(tài)遷移圖(STD),是一種描述系統(tǒng)的狀態(tài)、以及相互轉(zhuǎn)化關(guān)系的圖形方式。狀態(tài)遷移圖的畫法有許多種,不過一般都大同小異。我們結(jié)合一個(gè)例子來說明一下它的畫法,如圖2-18所示。圖2-18狀態(tài)遷移圖(1)狀態(tài)框:用方框表示狀態(tài),包括所謂的“現(xiàn)態(tài)”和“次態(tài)”。(2)條件及遷移箭頭:用箭頭表示狀態(tài)遷移的方向,并在該箭頭上標(biāo)注觸發(fā)條件。(3)節(jié)點(diǎn)圓圈:當(dāng)多個(gè)箭頭指向一個(gè)狀態(tài)時(shí),可以用節(jié)點(diǎn)符號(hào)(小圓圈)連接匯總。(4)動(dòng)作框:用橢圓框表示。(5)附加條件判斷框:用六角菱形框表示。狀態(tài)遷移圖和我們常見的流程圖相比有著本質(zhì)的區(qū)別,具體體現(xiàn)為:在流程圖中,箭頭代表了程序PC指針的跳轉(zhuǎn);而在狀態(tài)遷移圖中,箭頭代表的是狀態(tài)的改變。我們會(huì)發(fā)現(xiàn),這種狀態(tài)遷移圖比普通程序流程圖更簡(jiǎn)練、直觀、易懂。這正是我們需要達(dá)到的目的。四、計(jì)劃實(shí)施(50分鐘)在proteus中繪制如下電路圖:然后在keil中新建工程,錄入下面程序,并生成.hex文件。手動(dòng)計(jì)數(shù)器任務(wù)對(duì)應(yīng)的程序代碼如下:#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintsbitkeyport=P3^2;#definekeystate00 //按鍵第一次按下狀態(tài)#definekeystate11 //按鍵按下確認(rèn)狀態(tài)#definekeystate22charkeystate=2; //按鍵狀態(tài)初始化為按鍵無動(dòng)作狀態(tài)uintnum1=0,num2=0;ucharweixuan[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//位選代碼uchartemp[8]=0; //從高位到低位對(duì)應(yīng)數(shù)碼管從左到右voiddelayms(uintx) //1ms{ uinty,z; for(y=x;y>0;y--) for(z=111;z>0;z--);}ucharcodetable[]={ //共陽(yáng)數(shù)碼管0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};voidsmg(){uchari;for(i=0;i<8;i++){P2=weixuan[i];P1=table[temp[i]];delayms(1);P2=0xff;}}voidproc()//分離出萬位、千位、百位、十位以及個(gè)位等待顯示{ temp[0]=num1%10; temp[1]=num1%100/10; temp[2]=num1%1000/100; temp[3]=num1/1000; temp[4]=num2%10; temp[5]=num2%100/10; temp[6]=num2%1000/100; temp[7]=num2/1000;}charkeyscan(){ switch(keystate) { casekeystate0: //keystate0,第一次檢測(cè)到按鍵按下狀態(tài),下一狀態(tài)為keystate1(按鍵按下確認(rèn)狀態(tài)) keystate=keystate1; return0; casekeystate1: //keystate1,按鍵按下確認(rèn)狀態(tài),下一狀態(tài)為keystate2(按鍵無動(dòng)作狀態(tài)) if(!keyport) { keystate=keystate2; while(!keyport); return1; } else keystate=keystate2; return0; casekeystate2: //keystate2,按鍵無動(dòng)作狀態(tài),下一狀態(tài)為keystate0(第一次檢測(cè)到按鍵按下狀態(tài)) if(!keyport) { keystate=keystate0; } else keystate=keystate2; return0; }}voidmain(){ while(1) { if(keyscan()) { num1++; if(num1>=10000) { num1=0; num2++; if(num2>=10000) { num2=0; } } proc(); } smg(); }}進(jìn)階提高:?jiǎn)纹瑱C(jī)P3.2引腳接一按鍵,功能為加1按鍵,點(diǎn)一下加1;單片機(jī)P3.3引腳接一按鍵,功能為減一按鍵,點(diǎn)一下減1,在前面任務(wù)基礎(chǔ)上,請(qǐng)用狀態(tài)機(jī)編程的方法實(shí)現(xiàn)點(diǎn)加1按鍵實(shí)現(xiàn)加1,點(diǎn)減1按鈕實(shí)現(xiàn)減1。狀態(tài)機(jī)實(shí)現(xiàn)手動(dòng)計(jì)數(shù)器電路對(duì)應(yīng)的程序代碼如下:#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint#defineKEYP3#definekeystate00 //按鍵無動(dòng)作狀態(tài) #definekeystate11 //按鍵按下狀態(tài) #definekeystate22 //按鍵釋放狀態(tài)charucKeyStatus=0; //按鍵狀態(tài)初始化為按鍵無動(dòng)作狀態(tài)unsignedcharkeyvalue;uintnum1=0,num2=0;ucharweixuan[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};uchartemp[8]=0; //從高位到低位對(duì)應(yīng)數(shù)碼管從左到右voiddelayms(uintx) //1ms{ uinty,z; for(y=x;y>0;y--) for(z=111;z>0;z--);}ucharcodetable[]={ //共陽(yáng)數(shù)碼管0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};voidsmg(){uchari;for(i=0;i<8;i++){P2=weixuan[i]; //位選 P1=table[temp[i]]; //送段碼delayms(1);P2=0xff;//消隱}}voidproc()//待顯示數(shù)據(jù)的分離{ temp[0]=num1%10; temp[1]=num1%100/10; temp[2]=num1%1000/100; temp[3]=num1/1000; temp[4]=num2%10; temp[5]=num2%100/10; temp[6]=num2%1000/100; temp[7]=num2/1000;}ucharkeyscan() //按鍵掃描程序{switch(ucKeyStatus)//檢測(cè)當(dāng)前狀態(tài){casekeystate0://無按鍵按下狀態(tài),有鍵按下則轉(zhuǎn)keystate1if(KEY!=0xff)ucKeyStatus=keystate1;break;casekeystate1://當(dāng)確定按鍵按下后,列舉所有的按鍵情況if(KEY!=0xff){ keyvalue=1; if(KEY==0xfb){//是加1鍵,則加1 num1++; }else{ if(KEY==0xf7&&num1>0)//是減1鍵,則減1,同時(shí)注意只能減到0 num1--; } ucKeyStatus=keystate2;//進(jìn)入按鍵釋放狀態(tài) }else{ucKeyStatus=keystate0;}break;casekeystate2: //按鍵釋放狀態(tài),if(KEY==0xff)ucKeyStatus=keystate0;//確認(rèn)按鍵釋放狀態(tài),則回到keystate0break;default:break;}returnkeyvalue;}voidmain(){ ucharkey; while(1) { key=keyscan(); //調(diào)用按鍵掃描程序,實(shí)際中可以設(shè)置定時(shí)器定時(shí)10ms,在10ms定時(shí)時(shí)間到才調(diào)用keyscan() if(key) { if(num1>=10000) { num1=0; num2++; if(num2>=10000) { num2=0; } } proc(); //待顯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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)論