0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用單片機實現(xiàn)秒表的設(shè)計

Wildesbeast ? 來源:單片機教程網(wǎng) ? 作者:h1654155169.2086 ? 2020-05-05 16:16 ? 次閱讀

1. 實驗任務(wù)

(1. 開始時,顯示“00”,第1次按下SP1后單片機秒表就開始計時。

(2. 第2次按SP1后,計時停止。

(3. 第3次按SP1后,計時歸零。

2. 電路原理

圖4.17.1

3. 系統(tǒng)板上硬件連線

(1. 把“單片機系統(tǒng)”區(qū)域中的P0.0/AD0-P0.7/AD7端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個a-h(huán)端口上;要求:P0.0/AD0對應(yīng)著a,P0.1/AD1對應(yīng)著b,……,P0.7/AD7對應(yīng)著h。

(2. 把“單片機系統(tǒng)”區(qū)域中的P2.0/A8-P2.7/A15端口用8芯排線連接到“四路靜態(tài)數(shù)碼顯示模塊”區(qū)域中的任一個a-h(huán)端口上;要求:P2.0/A8對應(yīng)著a,P2.1/A9對應(yīng)著b,……,P2.7/A15對應(yīng)著h。

(3. 把“單片機系統(tǒng)“區(qū)域中的P3.5/T1用導線連接到”獨立式鍵盤“區(qū)域中的SP1端口上;

4. 程序框

T0中斷服務(wù)程序框

圖4.17.2

5. 匯編源程序

TCNTA EQU 30H

TCNTB EQU 31H

SEC EQU 32H

KEYCNT EQU 33H

SP1 BIT P3.5

ORG 00H

LJMP START

ORG 0BH

LJMP INT_T0

START: MOV KEYCNT,#00H

MOV SEC,#00H

MOV A,SEC

MOV B,#10

DIV AB

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,B

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P2,A

MOV TMOD,#02H

SETB ET0

SETB EA

WT: JB SP1,WT

LCALL DELY10MS

JB SP1,WT

INC KEYCNT

MOV A,KEYCNT

CJNE A,#01H,KN1

SETB TR0

MOV TH0,#06H

MOV TL0,#06H

MOV TCNTA,#00H

MOV TCNTB,#00H

LJMP DKN

KN1: CJNE A,#02H,KN2

CLR TR0

LJMP DKN

KN2: CJNE A,#03H,DKN

MOV SEC,#00H

MOV A,SEC

MOV B,#10

DIV AB

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,B

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P2,A

MOV KEYCNT,#00H

DKN: JNB SP1,$

LJMP WT

DELY10MS:

MOV R6,#20

D1: MOV R7,#248

DJNZ R7,$

DJNZ R6,D1

RET

INT_T0:

INC TCNTA

MOV A,TCNTA

CJNE A,#100,NEXT

MOV TCNTA,#00H

INC TCNTB

MOV A,TCNTB

CJNE A,#4,NEXT

MOV TCNTB,#00H

INC SEC

MOV A,SEC

CJNE A,#100,DONE

MOV SEC,#00H

DONE: MOV A,SEC

MOV B,#10

DIV AB

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,B

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P2,A

NEXT: RETI

TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

6. C語言源程序

#include 《AT89X51.H》

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,0x00};

unsigned char second;

unsigned char keycnt;

unsigned int tcnt;

void main(void)

{

unsigned char i,j;

TMOD=0x02;

ET0=1;

EA=1;

second=0;

P0=dispcode[second/10];

P2=dispcode[second];

while(1)

{

if(P3_5==0)

{

for(i=20;i》0;i--)

for(j=248;j》0;j--);

if(P3_5==0)

{

keycnt++;

switch(keycnt)

{

case 1:

TH0=0x06;

TL0=0x06;

TR0=1;

break;

case 2:

TR0=0;

break;

case 3:

keycnt=0;

second=0;

P0=dispcode[second/10];

P2=dispcode[second];

break;

}

while(P3_5==0);

}

}

}

}

void t0(void) interrupt 1 using 0

{

tcnt++;

if(tcnt==400)

{

tcnt=0;

second++;

if(second==100)

{

second=0;

}

P0=dispcode[second/10];

P2=dispcode[second];

}

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628297
  • 鍵盤
    +關(guān)注

    關(guān)注

    4

    文章

    854

    瀏覽量

    39362
  • 秒表
    +關(guān)注

    關(guān)注

    3

    文章

    77

    瀏覽量

    21954
收藏 人收藏

    評論

    相關(guān)推薦

    求高手為下面的仿真圖設(shè)計一個51單片機實現(xiàn)秒表的程序

    用STC89C51設(shè)計一個2位的LED數(shù)碼顯示作為“秒表”:顯示時間為00—99秒,每秒自動加1,另設(shè)計一個“開始”鍵和一個“復位”鍵。同時設(shè)計一個記錄按鍵,能夠?qū)⒂涗浀拿耄凑枕樞虼鎯υ?b class='flag-5'>單片機的EEPROM中,實現(xiàn)斷電仍然能夠
    發(fā)表于 10-21 14:25

    單片機實現(xiàn)秒表倒數(shù)計數(shù)器 精選資料分享

    單片機實現(xiàn)秒表計數(shù)器最近博主在學習單片機的課程,這快到期末考試了,老師讓做個簡單的課設(shè),我看了看老師給的課題,感覺這個比較容易實現(xiàn),今天下午
    發(fā)表于 07-15 07:50

    怎么實現(xiàn)51單片機簡易秒表的設(shè)計?

    怎么實現(xiàn)51單片機簡易秒表的設(shè)計?
    發(fā)表于 10-27 07:01

    單片機實現(xiàn)秒表顯示程序

    發(fā)表于 12-15 18:13 ?12次下載

    秒表protues仿真 51單片機秒表仿真程序設(shè)計 protue

    秒表protues仿真 51單片機秒表仿真程序設(shè)計 protues秒表仿真設(shè)計
    發(fā)表于 01-14 22:32 ?112次下載

    基于8051單片機秒表系統(tǒng)設(shè)計

    基于51單片機控制的簡易秒表,采用數(shù)碼管顯示,用定時器定時,秒表的分標率1%秒。
    發(fā)表于 05-02 17:04 ?23次下載
    基于8051<b class='flag-5'>單片機</b>的<b class='flag-5'>秒表</b>系統(tǒng)設(shè)計

    使用51單片機實現(xiàn)秒表的代碼和資料免費下載

    本例子為用匯編在普中單片機實現(xiàn)一個簡單的秒表功能,加一個清零按鍵。新建keil工程,新建.asm文件并加入工程,不添加startup.a51文件在寫代碼之前,講一些后面寫51匯編必要的基礎(chǔ)知識,因為匯編與硬件息息相關(guān),這些不知
    發(fā)表于 09-11 17:24 ?1次下載
    使用51<b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>秒表</b>的代碼和資料免費下載

    使用單片機實現(xiàn)秒表的程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用單片機實現(xiàn)秒表的程序免費下載。
    發(fā)表于 09-10 17:26 ?7次下載
    使用<b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>秒表</b>的程序免費下載

    使用51單片機實現(xiàn)秒表的程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機實現(xiàn)秒表的程序免費下載。實現(xiàn)簡單秒表,按鍵控制秒表的開
    發(fā)表于 08-21 17:31 ?50次下載
    使用51<b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>秒表</b>的程序免費下載

    使用單片機實現(xiàn)秒表計數(shù)的C語言程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用單片機實現(xiàn)秒表計數(shù)按鍵開始,結(jié)束,重置的C語言程序免費下載
    發(fā)表于 07-26 17:36 ?9次下載
    使用<b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>秒表</b>計數(shù)的C語言程序免費下載

    使用51單片機實現(xiàn)秒表的源代碼和工程文件免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用51單片機實現(xiàn)秒表的源代碼和工程文件免費下載。
    發(fā)表于 12-10 08:00 ?10次下載
    使用51<b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>秒表</b>的源代碼和工程文件免費下載

    使用單片機實現(xiàn)秒表的程序和工程文件免費下載

    本文檔的主要內(nèi)容詳細介紹的是使用單片機實現(xiàn)秒表的程序免費下載。
    發(fā)表于 06-08 17:20 ?27次下載
    使用<b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>秒表</b>的程序和工程文件免費下載

    單片機實現(xiàn)秒表倒數(shù)計數(shù)器

    單片機實現(xiàn)秒表計數(shù)器最近博主在學習單片機的課程,這快到期末考試了,老師讓做個簡單的課設(shè),我看了看老師給的課題,感覺這個比較容易實現(xiàn),今天下午
    發(fā)表于 11-04 14:06 ?7次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>秒表</b>倒數(shù)計數(shù)器

    基于單片機的數(shù)字秒表

    設(shè)計簡介:本設(shè)計是基于單片機的數(shù)字秒表的設(shè)計,主要實現(xiàn)以下功能:可實現(xiàn)LCD12864顯示時間以及倒計時、順計時等信息; 可實現(xiàn)通過按鍵調(diào)節(jié)
    發(fā)表于 11-25 17:06 ?39次下載
    基于<b class='flag-5'>單片機</b>的數(shù)字<b class='flag-5'>秒表</b>

    單片機秒表實驗文件分享

    51單片機秒表實驗文件分享
    發(fā)表于 10-08 09:33 ?4次下載