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

QQ登錄

只需一步,快速開始

搜索
查看: 6263|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)數(shù)碼管設(shè)計(jì)時(shí)鐘的程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:332416 發(fā)表于 2018-5-19 08:34 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar aa,num1,num2,num3;          /*num1Îaê±£¬num2Îa·Ö,num3ÎaÃë*/
uchar shi1,ge1,shi2,ge2,shi3,ge3;
void inint()
{
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
}

void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}

void display(uchar shi1,uchar ge1,uchar shi2,uchar ge2,uchar shi3,uchar ge3)
{
        dula=1;
        P0=table[shi1];
        dula=0;
        P0=0xff;
        wela=1;
        P0=0xfe;
        wela=0;
        delay(2);

        dula=1;
        P0=table[ge1];
        dula=0;
        P0=0xff;
        wela=1;
        P0=0xfd;
        wela=0;
        delay(2);

        dula=1;
        P0=table[shi2];
        dula=0;
        P0=0xff;
        wela=1;
        P0=0xfb;
        wela=0;
        delay(2);

        dula=1;
        P0=table[ge2];
        dula=0;
        P0=0xff;
        wela=1;
        P0=0xf7;
        wela=0;
        delay(2);

        dula=1;
        P0=table[shi3];
        dula=0;
        P0=0xef;
        wela=1;
        P0=0xef;
        wela=0;
        delay(2);

        dula=1;
        P0=table[ge3];
        dula=0;
        P0=0xdf;
        wela=1;
        P0=0xdf;
        wela=0;
        delay(2);
}
       
void main()
{
        inint();
        while(1)
        {
                display(shi1,ge1,shi2,ge2,shi3,ge3);
        }
}
void zhongduan() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        aa++;
        if(aa==20)
        {
                aa=0;
                num3++;
                if(num3==60)
                {
                        num3=0;
                        num2++;
                        if(num2==60)
                        {
                                num2=0;
                                num1++;
                        }
                }
                if(num1==24 && num3==1)
                {
                        num1=0;
                        num2=0;
                        num3=0;                                                                                                                                 
                }                       
                shi1=num1/10;
                ge1=num1%10;
                shi2=num2/10;
                ge2=num2%10;
                shi3=num3/10;
                ge3=num3%10;
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:431386 發(fā)表于 2019-4-2 21:10 | 只看該作者
大佬,能不能寫注釋
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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