標(biāo)題: STC89C52RC單片機(jī)設(shè)計(jì)精度0.01秒秒表有啟動(dòng)暫停清零 每到一秒蜂鳴器響 哪位大神會(huì)! [打印本頁(yè)]

作者: akm666    時(shí)間: 2018-6-19 15:32
標(biāo)題: STC89C52RC單片機(jī)設(shè)計(jì)精度0.01秒秒表有啟動(dòng)暫停清零 每到一秒蜂鳴器響 哪位大神會(huì)!
這是之前寫(xiě)的一個(gè),不夠完善,也沒(méi)有蜂鳴器。 僅夠參考



#include <reg52.h>

code unsigned char tab[]=

   {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

   //共陽(yáng)數(shù)碼管 0-9

unsigned char Dis_Shiwei;//定義十位

unsigned char Dis_Gewei; //定義個(gè)位

unsigned char S_Dis_Shiwei;//定義秒十位

unsigned char S_Dis_Gewei; //定義秒個(gè)位

unsigned char second,msecond;

void CLR(void);

void delay(unsigned int cnt)

{

while(--cnt);

}

main()

{

EX0=1;//外部中斷0設(shè)置

IT0=1;

EX1=1;//外部中斷1設(shè)置

IT1=1;

TMOD |=0x01;//定時(shí)器設(shè)置 10ms in 12M crystal

TH0=0xd8;

TL0=0xf0;

ET0=1;  //打開(kāi)中斷

TR0=0;

EA=1;

CLR();

while(1)

  {

  P0=S_Dis_Shiwei;//顯示秒十位

  P2=0xEF;

  delay(300);//短暫延時(shí)

  P0=S_Dis_Gewei; //顯示秒個(gè)位

  P2=0xF7;

  delay(300);

  P0=0xBF; //顯示秒個(gè)位

  P2=0xFB;

  delay(300);

  P0=Dis_Shiwei;//顯示十位

  P2=0xFD;

  delay(300);//短暫延時(shí)

  P0=Dis_Gewei; //顯示個(gè)位

  P2=0xFE;

  delay(300);

  }

}

/********************************/

/*      定時(shí)中斷                */

/********************************/

void tim(void) interrupt 1 using 1

{

TH0=0xd8;//重新賦值

TL0=0xf0;

msecond++;

if (msecond==100)

    {

    msecond=0;

    second++;//秒加1

if(second==100)

    second=0;

S_Dis_Shiwei=tab[second/10];//十位顯示值處理

    S_Dis_Gewei=tab[second%10]; //個(gè)位顯示處理

        }

    Dis_Shiwei=tab[msecond/10];//十位顯示值處理

    Dis_Gewei=tab[msecond%10]; //個(gè)位顯示處理

}

void ISR_INT0(void) interrupt 0 using 1

{

TR0=!TR0; //利用外部中斷打開(kāi)和關(guān)閉定時(shí)器0 用于開(kāi)始和停止計(jì)時(shí)

}

void ISR_INT1(void) interrupt 2 using 1

{

if(TR0==0)//停止時(shí)才可以清零

   CLR();

}

void CLR(void)

{

second=0; //利用外部中斷清零

msecond=0;

Dis_Shiwei=tab[msecond/10];//十位顯示值處理

Dis_Gewei=tab[msecond%10]; //個(gè)位顯示處理

S_Dis_Shiwei=tab[second/10];//十位顯示值處理

S_Dis_Gewei=tab[second%10]; //個(gè)位顯示處理

}

作者: zl2168    時(shí)間: 2018-6-19 15:32
本帖最后由 zl2168 于 2018-6-19 21:44 編輯

實(shí)例93  99.9秒秒表,有啟動(dòng)、暫停、清零功能,自己去看。。
Proteus仿真一下,確認(rèn)有效。
實(shí)例95 99.9秒秒表.rar (38.86 KB, 下載次數(shù): 43)

以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1,內(nèi)有常用的單片機(jī)應(yīng)用100案例,用于仿真實(shí)驗(yàn)操作,書(shū)中電路和程序設(shè)計(jì)有詳細(xì)說(shuō)明,電路與程序真實(shí)可靠可信可行,程序語(yǔ)句條條有注解。

作者: akm666    時(shí)間: 2018-6-22 19:48
zl2168 發(fā)表于 2018-6-19 15:32
實(shí)例93  99.9秒秒表,有啟動(dòng)、暫停、清零功能,自己去看。。
先Proteus仿真一下,確認(rèn)有效。
以上摘自 ...

謝謝   很有幫助





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1