找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2133|回复: 0
收起左侧

帮我看看这个51时钟程序有没有错误,新手一枚

[复制链接]
ID:154242 发表于 2016-12-12 20:52 | 显示全部楼层 |阅读模式
#include<reg51.h>
#include<intrins.h>
#define INT8U  unsigned char
#define INT16U unsigned int
INT8U T_Count = 0;
INT8U code SEG[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf};
INT8U code Scan_BITs[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
//待显示数据
INT8U data disp_buff[]={0,0,0,0,0,0,0,0};
INT8U Count_S = 0; Count_F = 0; Count_H = 0;
void delay_ms(INT16U x)
{
   INT8U t;while(x--) for(t = 0;t < 120;t++);
}
//数据显示处理
void Show_Count()
{
    INT8U i;
    //分解秒计数值Count_S
    disp_buff[0] = Count_S % 10;
    disp_buff[1] = Count_S / 10;
    if(disp_buff[1] == 0)
    {
       disp_buff[1] = 11;
    }
    disp_buff[2] = 10;
    //分解分Count_F
    disp_buff[3] = Count_F % 10;
    disp_buff[4] = Count_F / 10;
    if(disp_buff[4] == 0)
    {
      disp_buff[4] = 11;
    }
    disp_buff[5] = 10;
    //分解时Count_H   
    disp_buff[6] = Count_H % 10;
    disp_buff[7] = Count_H / 10;
    //数码管显示
    for(i = 0;i < 8;i++)
    {   P0 = 0xff;  //关闭段码
        P2 = Scan_BITs[i];
        P0 = SEG[disp_buff[i]];
        delay_ms(1);
    }
}
//主程序
void main()
{
   TMOD= 0x01;
   TH0 = (65536-45872)/256;   // 11.0592MHz晶振50ms定时
   TL0 = (65536-45872)%256;
   EA = 1;                //开启中断
   PT0=1;PT1=0;                //T0设为高优先级
   TR0=0;                    //启动T0
   TR1=0;
   while(1);
}
//中断处理
//T0中断
void T0_INT() interrupt 1
{
   TH0 = (65536-45872)/256;   
   TL0 = (65536-45872)%256;
   if(++T_Count == 20)
   {
      Count_S++;
      T_Count = 0;
      if(Count_S ==60)
      {
         Count_S = 0;
      }

   }
}
//T1中断
void T1_INT() interrupt 3
{
   TH0 = (65536-45872)/256;  
   TL0 = (65536-45872)%256;
   if(++T_Count == 1200)
   {
      T_Count = 0;
      Count_F++;
      if(Count_F ==60)
      {
        Count_F = 0;
        Count_H++;
        if(Count_H ==24)
        {
           Count_H = 0;
        }
      }
   }

}

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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