標(biāo)題: 簡(jiǎn)單的數(shù)碼管時(shí)鐘顯示程序 [打印本頁(yè)]

作者: rubiks    時(shí)間: 2015-11-16 23:28
標(biāo)題: 簡(jiǎn)單的數(shù)碼管時(shí)鐘顯示程序
沒(méi)有開(kāi)發(fā)板,用慧凈四驅(qū)的主控板四位數(shù)碼管顯示時(shí)間,運(yùn)行準(zhǔn)確,電路圖大家可以搜一下。小數(shù)點(diǎn)隔一秒閃爍一下,按鈕3和4分別調(diào)制時(shí)和分。附上源程序:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit KEY1=P2^5;//調(diào)制時(shí)
sbit KEY2=P2^4;//調(diào)制分
uchar num,fen,miao,shi,flag;
uint disnum;
uchar code table_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code table_we[]={0xfe,0xfd,0xfb,0xf7};//P2口,控制數(shù)碼管的位選

delay(uchar x)
{
        uchar a,b;
        for(a=x;a>0;a--)
                for(b=200;b>0;b--);
}

void display()
{
//P2=0xFF;
P0=table_du[shi/10];
P2=table_we[0];
delay(10);

P0=table_du[shi%10]-flag*(0x80);//小數(shù)點(diǎn)間隔1s閃爍
P2=table_we[1];
delay(10);

P0=table_du[fen/10];
P2=table_we[2];
delay(10);

P0=table_du[fen%10];
P2=table_we[3];
delay(10);
}

void revise()//調(diào)制時(shí),分
{
                if(KEY1==0)
                {
                        delay(10);
                        if(KEY1==0)
                        {
                                shi++;


                        }

                        while(!KEY1);
                        delay(10);
                        while(!KEY1);
               
                }
                if(KEY2==0)
                {
                        delay(10);
                        if(KEY2==0)
                        {
                                fen++;


                        }

                        while(!KEY2);
                        delay(10);
                        while(!KEY2);
               
                }
}
void main()
{
        EA=1;
        ET0=1;
        TMOD=0X01;
        TH0=0xB8;
        TL0=0x00;
        TR0=1;
        while(1)
        {
                revise();
                display();
        }
}


void time0() interrupt 1
{
        TH0=0xB8; //對(duì)應(yīng)11.0592M晶振計(jì)算得到,20ms
        TL0=0x00;
        num++;
        if(num==50)
        {
        num=0;
        miao++;
        flag=miao%2;
        if(miao==60)
        {
                        miao=0;
                        fen++;
        if(fen==60)
        {
                        fen=0;
                        shi++;
        if(shi==24)
        {
                        shi=0;
        }
}
}
}
}




作者: hoanghajery    時(shí)間: 2017-5-1 16:24
please give me schematic diagram
thanks!




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