找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1415|回复: 0
收起左侧

单片机时钟

[复制链接]
ID:933841 发表于 2021-6-6 18:35 | 显示全部楼层 |阅读模式
#include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
void Delayms(uint x);
sbit L=P2^0;
sbit LA=P2^1;
sbit LB=P2^2;
void Display();
sbit key1=P1^5;
sbit key2=P1^6;
sbit key3=P1^7;

/*位码*/uchar tablew[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
/*位选*/uchar shu[8]={0};
/*共阴极*/
uchar table6[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uint aa,bb,cc,dd;
void main()
{
TMOD=0x01;//设置工作方式
TH0=(65536-1000)/256;//设置定时器高八位
TL0=(65536-1000)%256;//设置定时器低八位
ET0=1;//打开定时器T0的中断开关
TR0=1;//启动定时器T0工作
EA=0;//打开总中断开关

while(1)
              {
     uchar mshi,mge,fshi,fge,sshi,sge;
     if(key1==0)
     {
                            EA=1;
     }
     else if(key2==0)
              {
                EA=0;
              }
     else if(key3==0)
     {
      bb=0;cc=0;dd=0;
      }
      else;

      mshi=bb/10;
      mge=bb%10;
      if(bb>59)
                 {
bb=0;
cc++;
}
fshi=cc/10;
fge=cc%10;
if(cc>59)
{
cc=0;
dd++;
}
sshi=dd/10;
sge=dd%10;
if(dd>23)
{
dd=0;
}

shu[7]=table6[mge];
shu[6]=table6[mshi];
shu[5]=0x40;
shu[4]=table6[fge];
shu[3]=table6[fshi];
shu[2]=0x40;
shu[1]=table6[sge];
shu[0]=table6[sshi];
Display();
}
}
void int0_0() interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
aa++;//1ms加一次
if(aa>1000)
{
aa=0;
bb++;//1S加一次
}

}
void Display()
{
uint i;
for(i=0;i<8;i++)
{
P2=tablew[i];
P0=shu[i];
Delayms(1);
}
}
void Delayms(uint x)
{
uchar j;
while(x--)
              {
                            for(j=0;j<125;j++);
              }
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表