51單片機(jī),實(shí)現(xiàn)秒表功能._第1頁
51單片機(jī),實(shí)現(xiàn)秒表功能._第2頁
51單片機(jī),實(shí)現(xiàn)秒表功能._第3頁
51單片機(jī),實(shí)現(xiàn)秒表功能._第4頁
51單片機(jī),實(shí)現(xiàn)秒表功能._第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、精選文檔/*實(shí)現(xiàn)秒表功能說明:用鍵控制啟動(dòng)停止暫停繼續(xù)清零按啟動(dòng)只有在清零或沒有開始的情況下才有效按停止只有在啟動(dòng)的情況下才有效按暫停只有在啟動(dòng)的情況下才有效按繼續(xù)只有在暫停的情況下才有效按清零只有在停止的情況下才有效采用中斷控制方式*/#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned intchar cent=0;char second=0;char minite=0;bit s2=0; bit s3=0; bit s4=0; bit s5=0; b

2、it s6=0; /*共陽數(shù)碼管字型碼*/*0,1,2,3,4,5,6,7,8,9,p.,滅*/ char code dis_code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x0c,0xff,0xbf; /*P點(diǎn)顯示代碼序號(hào)*/ char data find_code=0,0,12,0,0,12,0,0;/*/函數(shù)名: void Delay1ms(uint count)/功能: 延時(shí)時(shí)間為1ms/輸入?yún)?shù):count,1ms計(jì)數(shù)/說明:總共延時(shí)時(shí)間為1ms乘以count,crystal=12Mhz/*/* 延遲函數(shù) */void

3、Delay1ms(uint count) uint j; while(count-!=0) for(j=0;j<80;j+); /*/*顯示函數(shù)*/*/void disp()char i,j=0xfe; char k; for(i=0;i<8;i+) P2=j; k=find_codei; P0=dis_codek; Delay1ms(1); j=_crol_(j,1); P0=0xff;/* 函數(shù)原型:keychuli();* 功 能:處理與鍵盤相連的P1口的內(nèi)容,作為鍵值。*/uchar keychuli() uchar k; k=P1; /P1口內(nèi)容送K k=k; /取反 r

4、eturn(k); /返回鍵值 /* 函數(shù)原型:key();* 功 能:鍵盤掃描函數(shù),函數(shù)返回值即鍵值。*/uchar key() uchar keyzhi,keyzhii; /電子鐘鍵盤按鍵鍵值臨時(shí)存放 keyzhi=keychuli(); /調(diào)P1口處理函數(shù) if(keyzhi!=0) /有鍵動(dòng)作延時(shí)去抖動(dòng),否則函數(shù)返回 disp(); disp(); keyzhi=keychuli(); /再次調(diào)P1口處理函數(shù) if(keyzhi!=0) /真正有鍵按下,取鍵值并暫存 keyzhii=keyzhi; while(keyzhi!=0) /判按鍵是否釋放,沒有釋放延時(shí)去抖動(dòng)等待釋放 disp

5、(); disp(); keyzhi=keychuli(); keyzhi=keyzhii; /按鍵釋放后恢復(fù)按鍵鍵值 return(keyzhi); /返回按鍵鍵值 void zxxq() /*更新顯示區(qū)*/ find_code0=cent%10; find_code1=cent/10; find_code2=12; find_code3=second%10; find_code4=second/10; find_code5=12; find_code6=minite%10; find_code7=minite/10;/*中斷函數(shù)*/ TTCO () interrupt 1 using 1

6、TH0=(65536-7000)/256; /賦初值TL0=(65536-7000)%256;cent+; if(cent=100) cent=0;second+;if(second=60) second=0; minite+; if(minite=60)minite=0;zxxq(); /*主函數(shù)*/void main() char kz; EA=1; ET0=1; TMOD=0X01; TH0=(65536-7000)/256; TL0=(65536-7000)%256; find_code0=11; find_code1=11; find_code2=11; find_code3=11;

7、 find_code4=11; find_code5=11; find_code6=11; find_code7=10; disp(); while(1) kz=key(); switch(kz) case 0x00:disp();break; /*判斷鍵值后直接調(diào)用循環(huán)顯示函數(shù)*/ case 0x01: / 啟動(dòng) 在開始或清零下 if(s3=0&&s4=0) TR0=1; zxxq(); disp(); break ; case 0x02: /停止在啟動(dòng)下 if(s4=0) s3=1; TR0=0; zxxq(); disp(); break; case 0x04: /暫停在啟動(dòng)下 if(s3=0) s4=1; TR0=0; zxxq(); disp(); break; case 0x08:/ 繼續(xù)在暫停下 if(s4&&s3=0) s4=0; TR0=1; zxxq(); disp(); b

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論