找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1262|回复: 2
打印 上一主题 下一主题
收起左侧

8位数字钟走时函数(at89c51单片机)

[复制链接]
跳转到指定楼层
楼主
ID:554990 发表于 2019-6-4 19:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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--;
        }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2019-6-4 22:05 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

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

哪个地方有编辑按钮
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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