标题: 8位数字钟走时函数(at89c51单片机) [打印本页]

作者: xuqiang    时间: 2019-6-4 19:41
标题: 8位数字钟走时函数(at89c51单片机)
#include <reg51.h>
//-------函数声明-----------
void delay_nms(unsigned char t);
unsigned char miao=55,counter=0,fen=59,shi=23;
unsigned char LED[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
void csh();
void zoushi();
void xianshi();
bit flagls=0;

void main()
{
                csh();
                while (1)
                {
                zoushi();
                xianshi();
                }       
}
//---------走时函数----------
void csh()
{       
        TMOD=0x01;
        TH0=15536/256;
        TL0=15536%256;
        TR0=1;
        EA=1;
        ET0=1;       
}
//---------中断函数-----------
void To_hs() interrupt 1
{
        TH0=15536/256;
        TL0=15536%256;
        counter++;
        if(counter==15)
        {
        flagls=1;counter=0;
        }
}
//---------走时函数-----------
void zoushi()
{
        if(flagls==1)
        {
        flagls=0;
        miao=miao+1;
                if(miao>=60)
                {
                miao=0,fen=fen+1;
                        if(fen>=60)
                        {
                        fen=0,shi=shi+1;
                                if(shi>=24)        shi=0;
                        }
                }  
        }
}
//---------显示函数         --------
void xianshi()
{
                P2=0X01;
                P0=LED[shi/10];
                delay_nms(1);
                P2=0X02;
                P0=LED[shi%10];
                delay_nms(1);

                P2=0X04;
                P0=LED[10];
                delay_nms(1);

                P2=0X08;
                P0=LED[fen/10];
                delay_nms(1);
                P2=0X10;
                P0=LED[fen%10];
                delay_nms(1);

                P2=0X20;
                P0=LED[10];
                delay_nms(1);

                P2=0X40;
                P0=LED[miao/10];
                delay_nms(1);
                P2=0X80;
                P0=LED[miao%10];
                delay_nms(1);
}
//-----------延时函数------------
void delay_nms(unsigned char t)
{
unsigned char us,usn;
        while(t!=0)
{
         usn=4;
                 while(usn!=0)
                {
                us=0xf0;
                        while(us!=0)
                                {        us--;
                                }
                usn--;
                }
        t--;
        }
}



作者: admin    时间: 2019-6-4 22:05
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
作者: xuqiang    时间: 2019-6-6 15:39
admin 发表于 2019-6-4 22:05
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)

哪个地方有编辑按钮




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1