單片機(jī)試驗(yàn)——秒表詳細(xì)步驟_第1頁
單片機(jī)試驗(yàn)——秒表詳細(xì)步驟_第2頁
單片機(jī)試驗(yàn)——秒表詳細(xì)步驟_第3頁
單片機(jī)試驗(yàn)——秒表詳細(xì)步驟_第4頁
單片機(jī)試驗(yàn)——秒表詳細(xì)步驟_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、簡易秒表制作1 子情境容:制作簡易秒表,利用按鍵構(gòu)成鍵盤實(shí)現(xiàn)秒表的啟動、停止與復(fù) 位,利用 LED 數(shù)碼管顯示時間。2 子情境目標(biāo):(1)通過簡易秒表的制作,進(jìn)一步熟悉 LED 數(shù)碼管與單片機(jī)的接口電路(2)學(xué)習(xí)定時 /計(jì)數(shù)器、中斷技術(shù)的綜合運(yùn)用并會使用簡易鍵盤3 知識點(diǎn)獨(dú)立式按鍵的使用:圖 549 為按鍵與單片機(jī)的連接圖。機(jī)械式按鍵再按下或釋放時,由于機(jī)械彈性作用的影響,通常伴隨有 一定時間的觸點(diǎn)機(jī)械抖動,然后其觸點(diǎn)才穩(wěn)定下來。其抖動過程如圖 5-50 所示,抖動時間的長短與開關(guān)的機(jī)械特性有關(guān),一般為510ms。在觸點(diǎn)抖動期間檢測按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯。即按鍵 一次按下或釋放被錯

2、誤地認(rèn)為是多次操作,這種情況是不允許出現(xiàn)的。為 了克服按鍵觸點(diǎn)機(jī)械抖動所致的檢測誤判,必須采取去抖動措施,可從硬 件、軟件兩方面予以考慮。本子情境中采用軟件去抖。圖按鍵與單片機(jī)連接圖4 任務(wù)步驟41 步驟一: PROTEUS電路設(shè)計(jì),簡易秒表的原理圖如圖 5 51所示。 1、選取元器件 單片機(jī): AT89C51 兩位共陰極藍(lán)色數(shù)碼管: 7SEG-MPX2-CC-BLUE 排阻: RESPACK-8 按鈕: BUTTON2、放置元器件、放置電源和地、連線、元器件屬性設(shè)置簡易秒表的原理圖如圖 551 所示,整個電路設(shè)計(jì)操作都在 ISIS 平臺中進(jìn)行。與子情景 3 相似,故不詳述圖簡易秒表的原理圖4

3、2 步驟二:源程序設(shè)計(jì)與目標(biāo)代碼文件生成(1)程序流程圖主程序圖 5 52 秒表流程圖2)源程序設(shè)計(jì) #include#define uint unsigned int#define uchar unsigned charsbit key1=P30;/定義啟動按鈕sbit key2=P31;/定義停止按鈕sbit key3=P32;/定義復(fù)位按鈕uchar temp,aa,shi,ge; uchar code table= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/共陰極數(shù)

4、碼管編碼void display(uchar shi,uchar ge); /聲明顯示子函數(shù)void delay(uint z);/聲明延時子函數(shù)void init();/聲明初始化函數(shù)void main()init();/調(diào)用初始化子程序while(1)if(key1=0)/檢測啟動按鈕是否按下delay(10);/延時去抖動if(key1=0)/再次檢測 啟動 按鈕是否按下while(!key1);/ 松手檢測,若按鍵沒有釋放, key1 始終為0,那么 !key1 始終為 1,程序就一直停在此while 語句處TR0=1;/啟動定時器開始工作if(key2=0)/檢測停止 按鈕是否按下d

5、elay(10);/ 延時去抖動if(key2=0)/再次檢測 停止按鈕是否按下while(!key2); /松手檢測TR0=0;/關(guān)閉定時器if(key3=0)/檢測 復(fù)位按鈕是否按下delay(10);/延時去抖動if(key3=0)/再次檢測 復(fù)位按鈕是否按下while(!key3); /松手檢測temp=0;/將變量 temp 的值清零shi=0;/將十位清零ge=0;/將個位清零TR0=0;/關(guān)閉定時器display(shi,ge); / 調(diào)用顯示子函數(shù)void delay(uint z) / 延時子函數(shù)uint x,y; for(x=z;x0;x-)for(y=110;y0;y-)

6、;void display(uchar shi,uchar ge) /顯示子程序P2=0xbf;P0=tableshi;delay(10);P2=0x7f;P0=tablege;delay(10);/使用動態(tài)掃描的方法實(shí)現(xiàn)數(shù)碼管顯示void init()/初始化子程序temp=0;TMOD=0x01;/使用定時器 T0 的方式 1TH0=(65536-50000)/256;TL0=(65536-50000)%256; /定時 50ms 中斷一次EA=1; / 中斷總允許ET0=1;/允許定時器 T0 中斷void timer0() interrupt 1 TH0=(65536-50000)/2

7、56;/重新賦初值 TL0=(65536-50000)%256;aa+;/中斷一次變量 aa 的值加 1if(aa=20)/中斷 20 次后,定時時間為 20*50ms=1000ms=1s,將變量 temp 的值加 1aa=0;temp+;if(temp=60) /秒表到達(dá) 60s 后回零temp=0;shi=temp%100/10;ge=temp%10;/分離個位和十位43 步驟三: PROTEUS 仿真加載目標(biāo)代碼文件,雙擊編輯窗口的 AT89C51 器件,在彈出屬性編輯對話 框 Program File 一欄中單擊打開按鈕,出現(xiàn)文件瀏覽對話框,找到 miaobiao.hex 文件,單擊“打開”按鈕,完成添加文件。單擊按鈕,啟動仿真,仿真運(yùn)行片段 如圖所示。按下“啟動”按鈕后,秒表開始計(jì)時,如圖所示。 按下“停止”按鈕,秒表停止計(jì)時。 按下“復(fù)位”按鈕,秒表回到最初始的狀態(tài),如圖所示。圖按下“

溫馨提示

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

評論

0/150

提交評論