找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3863|回复: 1
收起左侧

单片机六位数字时钟(可调)含proteus仿真图和源码

[复制链接]
ID:588331 发表于 2019-11-23 17:32 | 显示全部楼层 |阅读模式
#include <reg51.h>               

sbit key_hour=P1^0;
sbit key_min=P1^2;
sbit key_sec=P1^4;
sbit key_rst=P1^6;

unsigned char code tag[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int hour,min,sec,num;

void delay(unsigned int xms);
void display();

int main()
{
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        TR0=1;
        EA=1;
        ET0=1;
        while(1)
        {
                display();
                if(num==20)
                {
                        sec++;
                        num=0;
                }
                if(sec==60)
                {
                        min++;
                        sec=0;
                }
                if(min==60)
                {
                        hour++;
                        min=0;
                }
                if(hour==24)
                {
                        hour=0;
                        min=0;
                        sec=0;
                }
                if(key_hour==0)
                {
                        delay(10);
                        if(key_hour==0)
                        {
                                hour++;
                                if(hour==24)        hour=0;
                        }
                        while(!key_hour);
                }
                if(key_min==0)
                {
                        delay(10);
                        if(key_min==0)
                        {
                                min++;
                                if(min==60)        min=0;
                        }
                        while(!key_min);
                }
                if(key_sec==0)
                {
                        delay(10);
                        if(key_sec==0)
                        {
                                sec++;
                                if(sec==24)        sec=0;
                        }
                        while(!key_sec);
                }
                if(key_rst==0)
                {
                        delay(10);
                        if(key_rst==0)
                        {
                                hour=0;
                                min=0;
                                sec=0;
                        }
                        while(!key_rst);
                }
        }
        return 0;
}

void display()
{
        P0=tag[hour/10];
        P3=0xfe;
        delay(1);
        P3=0xff;
        
        P0=tag[hour%10];
        P3=0xfd;
        delay(1);
        P3=0xff;
        
        P0=0x40;
        P3=0xfb;
        delay(1);
        P3=0xff;
        
        P0=tag[min/10];
        P3=0xf7;
        delay(1);
        P3=0xff;
        
        P0=tag[min%10];
        P3=0xef;
        delay(1);
        P3=0xff;
        
        P0=0x40;
        P3=0xdf;
        delay(1);
        P3=0xff;
        
        P0=tag[sec/10];
        P3=0xbf;
        delay(1);
        P3=0xff;
        
        P0=tag[sec%10];
        P3=0x7f;
        delay(1);
        P3=0xff;
}

void delay(unsigned int xms)
{
        unsigned int i,j;
        for(i=xms;i>0;i--)
                for(j=100;j>0;j--);
}

void show() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        num++;
}

2019-11-23_173143.png

六位数字时钟(可调).zip

85.88 KB, 下载次数: 75, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:778419 发表于 2020-6-18 14:56 | 显示全部楼层
这个叫什么
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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