|
鍵盤掃描程序如下所示:void keyscan(){ uchar j; if(s1==0) { for(j=0; j<60; j++); if(s1==0) { while(!s1); flag++; if(flag>4) flag=0; } } if( s2==0) { for(j=0; j<60; j++); if( s2==0) { while(!s2); if(flag==1) { Lt++; if(Lt>99) Lt=99; } else if(flag==2) { Lh++; if(Lh>99) Lh=99; } elseif( flag==3) { Ht++; if(Ht>99) Ht=99; } elseif( flag==4) { Hh++; if(Hh>99) Hh=99; } } } if( s3==0) { for(j=0; j<60; j++); if( s3==0) { while(!s3); if(flag==1) { Lt--; if(Lt<1) Lt=1; } else if(flag==2) { Lh--; if(Lh<1) Lh=1; } elseif(flag==3) {Ht--; if(Ht<1) Ht=1; } elseif(flag==4) {Hh--; if(Hh<1) Hh=1; } } }} 該程序講述鍵盤掃描函數(shù),鍵盤或按鍵掃描掃描函數(shù),通過調(diào)用該函數(shù)可以判斷有無按鍵按下,if只作一次判斷,在s1等于0時(shí)執(zhí)行if內(nèi)的程序。接下來按鍵檢測(cè),當(dāng)!s1為真時(shí)循環(huán),否則跳出循環(huán)。執(zhí)行完變量flag加1,如果變量flag大于4,則把這個(gè)狀態(tài)設(shè)置為0。第二鍵是否按下鍵盤檢測(cè),當(dāng)!s2為真時(shí)循環(huán),否則跳出循環(huán),第三鍵是否按下鍵盤檢測(cè),當(dāng)!s3為真時(shí)循環(huán),否則跳出循環(huán)。S2為選擇位增加,s3為選擇位減,在他們?cè)O(shè)定內(nèi)flag狀態(tài)1234進(jìn)行設(shè)定。 4.3設(shè)計(jì)的軟件的使用 在剛接觸單片機(jī)的時(shí)候,課本里面使用大量匯編語言來學(xué)習(xí)單片機(jī),匯編語言有一個(gè)好處就是容易上手,方便加深理解單片機(jī)知識(shí),但是有局部性,其移植性很差,而且編寫比較繁瑣。匯編語言屬于低級(jí)語言。之后又學(xué)了C語言,其具有一定的通用性,具有高級(jí)語言的所有優(yōu)點(diǎn),而且書寫方便有條理。C語言屬于高級(jí)語言。本設(shè)計(jì)軟件部分采用C語言來編寫。使用的軟件是KEIL軟件[25]。 Keil是一個(gè)公司的名字,keil軟件是目前最流行的的單片機(jī)開發(fā)軟件,支持c語言、匯編語言。 本次設(shè)計(jì)采用的編程軟件keil4軟件,采用C語言進(jìn)行編寫程序,然后進(jìn)行編譯生成HEX文件然后下載程序傳給單片機(jī)。 下圖4-3-1為本次設(shè)計(jì)編寫程序建立的工程的界面。 [圖片]圖4-3-1程序建立的工程的界面程序在編寫的時(shí)候要不斷的調(diào)試,才能知道程序的錯(cuò)誤所在。寫好的程序,沒有錯(cuò)誤將其生成hex文件。編譯成功的如圖4-3-2所示: |
|