找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 1678|回復(fù): 1
收起左側(cè)

89C51做的一個(gè)秒表(數(shù)碼管)

[復(fù)制鏈接]
ID:594178 發(fā)表于 2019-8-2 15:52 | 顯示全部樓層 |閱讀模式

#include "reg52.h"   
typedef unsigned int u16;   
typedef unsigned char u8;
sbit a1=P3^2;
sbit a2=P3^3;
sbit a3=P3^4;
sbit a4=P3^5;
u8 code smgduan[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
u8 sec,min,ssec;
u8 DisplayData[4];
void delay(u16 i)
{
while(i--);
}
void Timer0Init()
{
TMOD|=0X01;
TH0=0Xd8;
TL0=0Xf0;
ET0=1;
EA=1;
TR0=1;  
}
void DigDisplay()
{
u8 i;
for(i=0;i<4;i++)
{
  switch(i)  
  {
   case(0):
    a1=0;a2=0;a3=0;a4=1; break;
   case(1):
    a1=0;a2=0;a3=1;a4=0; break;
   case(2):
    a1=0;a2=1;a3=0;a4=0; break;
   case(3):
    a1=1;a2=0;a3=0;a4=0; break;
   
   
  }
  P2=DisplayData[i];
  delay(800);
  P2=0xff;
}
}
void datapros()
{
DisplayData[0]=smgduan[ssec/10];
DisplayData[1]=smgduan[sec%10]&0x7f;
DisplayData[2]=smgduan[sec/10];
DisplayData[3]=smgduan[min%10]&0x7f;
}
void main()
{
Timer0Init();  
while(1)
{
  datapros();
  DigDisplay();
}  
}

void Timer0() interrupt 1
{
TH0=0Xd8;
TL0=0Xf0;
ssec++;
if(ssec>=100)  
{
  ssec=0;
  sec++;   
  if(sec>=60)
  {
   sec=0;
   min++;
   if(min>=60)
   {
    min=0;
   }
  }
}
}
回復(fù)

使用道具 舉報(bào)

ID:594178 發(fā)表于 2019-8-2 15:55 | 顯示全部樓層
剛學(xué)51,有什么錯(cuò)望指出,謝謝
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表