搜索
bottom↓
回复: 0

定时器数码管电子钟程序,按键设置没有反应,哪位大虾帮忙看一下。

[复制链接]

出0入0汤圆

发表于 2012-2-21 01:11:44 | 显示全部楼层 |阅读模式
我写了一个定时器电子钟程序,调分,时按键没有反应,编译没有问题。哪位大虾帮我看一下是哪里出了问题。应该什么写。
/***************************************************************************
名称:用定时器定时做时钟
内容,自动从00-00-00开始,无按键功能
芯片型号:STC89C52RC
功能脚说明:P0为段选脚,P3为位选脚,所有引脚低电平有效.
程序员:玄溪
日期:2012.2.6
/***************************************************************************/
#include <reg52.h>
#define uchar unsigned char
#define uint  unsigned int

uchar code du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit K1=P1^0;                          //分+
sbit K2=P1^1;                          //分-
sbit K3=P1^2;                          //时+
sbit K4=P1^3;                          //时-

uchar time;                                   //定义中断时间次数
uchar second;                           //定义秒
uchar minute;                           //定义分
uchar hour;                                   //定义时
//===========延时函数============//
void delay()
{
        uchar j;
                for(j=0;j<200;j++);
}
//=========显示秒函数=======//
void displaysecond(uchar s)                         //带返回值
{
        P3=0xbf;
        P0=du[s/10];
        delay();
        P3=0x7f;
        P0=du[s%10];
        delay();
        P3=0xff;
        if(K2==0)
        {
                s++;
                if(s==60)
                {
                        s=0;
                }
        }
}
//========显示分函数=============//
void displayminute(uchar m)
{
        P3=0xf7;
        P0=du[m/10];
        delay();
        P3=0xef;
        P0=du[m%10];
        delay();
        P3=0xdf;
        P0=0xbf;
        delay();
        P3=0xff;
        if(!K1)
        {
                delay();
                if(!K1)
                {
                        TR0=0;
                        m++;
                        if(m==60)
                        m=0;
                }
        }
        if(!K2)
        {
                delay();
                if(!K2)
                {
                        TR0=0;
                        m--;
                        if(m==0)
                        m=59;
                }
        }
        TR0=1;
}
//========显示时函数==============//
void displayhour(uchar h)
{
        P3=0xfe;
        P0=du[h/10];
        delay();
        P3=0xfd;
        P0=du[h%10];
        delay();
        P3=0xfb;
        P0=0xbf;
        delay();
        P3=0xff;
        if(!K3)
        {
                delay();
                if(!K3)
                {
                        TR0=0;
                        h++;
                        if(h==24)
                        h=0;
                }
        }
        if(!K4)
        {
                TR0=0;
                delay();
                if(!K4)
                {
                        h--;
                        if(h==0)
                        h=23;
                }
        }
        TR0=1;
}

//=============主函数============//
void main(void)
{
        TMOD=0x01;
        EA=1;
        ET0=1;
        TH0=(65536-46083)/256;                          //赋初值
        TL0=(65536-46083)%256;       
        TR0=1;
        while(1)
        {
                displaysecond(second);
                delay();
                displayminute(minute);
                delay();
                displayhour(hour);
                delay();
        }
}
//=======定时器中断子函数=================//
void inter0()interrupt 1
{
        time++;
        if(time==20)
        {
                time=0;
                second++;
        }
        if(second==60)
        {
                second =0;
                minute++;
        }
        if(minute==60)
        {
                minute=0;
                hour++;
        }
        if(hour==24)
        {
                hour=0;
        }
        TH0=(65536-46083)/256;                          //赋初值
        TL0=(65536-46083)%256;       
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-29 12:18

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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