51單片機實驗 秒表設計_第1頁
51單片機實驗 秒表設計_第2頁
51單片機實驗 秒表設計_第3頁
51單片機實驗 秒表設計_第4頁
51單片機實驗 秒表設計_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實驗報告一、實驗名稱10秒計時的秒表設計二、實驗內容精確到0.1秒的秒表三、相關模塊led數(shù)碼管、usb、獨立鍵盤四、實驗代碼#include reg52.h typedef unsigned int u16; /對數(shù)據(jù)類型進行聲明定義typedef unsigned char u8;sbit lsa=p22;sbit lsb=p23;sbit lsc=p24;sbit k1=p31;sbit k2=p30;sbit k3=p32;sbit k4=p33;u8 code smgduan17=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x

2、77,0x7c,0x39,0x5e,0x79,0x71;u16 s,sec;unsigned int i;unsigned int j;unsigned int a,b,c,d;u8 mb2;void timer0init()tmod|=0x01;/選擇為定時器0模式,工作方式1,僅用tr0打開啟動。th0=0xfc;/給定時器賦初值,定時1mstl0=0x18;tr0=0;/打開定時器void delay(u16 n)while(n-);void digdisplay1(u16 i)switch(i) case(0):lsa=0;lsb=0;lsc=0; break;case(1):lsa=

3、1;lsb=0;lsc=0; break; case(2):lsa=0;lsb=1;lsc=0; break;case(3):lsa=1;lsb=1;lsc=0; break;case(4):lsa=0;lsb=0;lsc=1; break;case(5):lsa=1;lsb=0;lsc=1; break;case(6):lsa=0;lsb=1;lsc=1; break;case(7):lsa=1;lsb=1;lsc=1; break;if (i=1)p0=smgduanmbi+0x80;/發(fā)送段碼elsep0=smgduanmbi; delay(1); /間隔一段時間掃描p0=0x00;/消

4、隱void digdisplay2(u16 i) i=i+3;switch(i) case(0):lsa=0;lsb=0;lsc=0; break;case(1):lsa=1;lsb=0;lsc=0; break; case(2):lsa=0;lsb=1;lsc=0; break;case(3):lsa=1;lsb=1;lsc=0; break;case(4):lsa=0;lsb=0;lsc=1; break;case(5):lsa=1;lsb=0;lsc=1; break;case(6):lsa=0;lsb=1;lsc=1; break;case(7):lsa=1;lsb=1;lsc=1;

5、break;if (i=4)p0=smgduana+0x80;elsep0=smgduanb; delay(1); p0=0x00;void digdisplay3(u16 i) i=i+6; switch(i) case(0):lsa=0;lsb=0;lsc=0; break;case(1):lsa=1;lsb=0;lsc=0; break; case(2):lsa=0;lsb=1;lsc=0; break;case(3):lsa=1;lsb=1;lsc=0; break;case(4):lsa=0;lsb=0;lsc=1; break;case(5):lsa=1;lsb=0;lsc=1;

6、break;case(6):lsa=0;lsb=1;lsc=1; break;case(7):lsa=1;lsb=1;lsc=1; break;if (i=7)p0=smgduanc+0x80;elsep0=smgduand; delay(1); p0=0x00;void key1() delay(10); if(k1=0)tr0=!tr0;while(!k1); void key2() delay(10); if(k2=0) s=0; sec=0;while(!k2); void key3() delay(10); if(k3=0) if (j=0) j=1; else j=0; if (j

7、=1) a=mb1; b=mb0; if (j=0)c=mb1;d=mb0;while(!k3);void key4() delay(10); if(k4=0) s=0; sec=0;a=0;b=0;c=0;d=0;while(!k2);void main()timer0init();i=0;j=0;while(1) delay(10); key1(); if(tf0=1)tf0=0;th0=0xfc;/給定時器賦初值,定時1mstl0=0x18;s+;if(s=60) s=0;sec+;if(sec=100)sec=100; key2(); mb0=sec%10; mb1=(sec/10)%10; key3(); digdisplay1(i); digdisplay2(i); digdisplay3(i); i+; i=i%2; key4();5、 實驗效果k1作用:啟動、開始或暫停計時k2作用:計數(shù)位清零k3作用:記錄當前時間并顯示k4作用:清零所有的數(shù)碼管六、實驗遇到的問題經過前幾次的實驗,0到10秒的計數(shù)已經不成問題,本次實驗的難點主要在幾個按鍵

溫馨提示

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

評論

0/150

提交評論