找回密码
 立即注册

QQ登录

只需一步,快速开始

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

源代码编译问题

[复制链接]
跳转到指定楼层
楼主
#include<reg52.h>
sbit k1=P3^0;
sbit k2=P3^3;
sbit fengmingqi =P2^0;
unsigned char code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
                                        0xf8,0x80,0x90};  
unsigned char code pos[]={0x01,0x02,0x04,0x08};                                             
unsigned char k[4]={0,0,0,0};      //0123

unsigned char second;
unsigned char minite;
unsigned char hour;
unsigned char num;          

////////////////////////////////////////////////////////////////////////////////////
void naozhong(void)
{
        unsigned char i;
        if(minite==0)
        {
                if(hour>=7)
                {
                        if(hour<=21)
                        {
                                for(i=0;i<hour;i++)
                                {
                                        fengmingqi=~fengmingqi;//fengmingqi 当  7<=时间<=21整点报时
                                }
                        }
                }
        }                         
}




//////////////// //延时程序///////////////////////////////
void delay_5ms(void)         
{
    unsigned char a,b;
    for(b=15;b>0;b--)
        for(a=152;a>0;a--);
}

//////////////////////////////////////
void disp(unsigned char m,unsigned char n)     
{
P1=pos[n];                          
P0=seg[m];               
delay_5ms();
P1=0x00;
}




////////////////////主程序//////////////////////////////
void main (void)
{
  unsigned char j;
  TMOD=0x01;
  TH0=0x0EE;
  TL0=0x00;
  TR0=1;
  ET0=1;
  EA=1;
  second=0;
  minite=0;
  hour=0;

  while(1)
   {

          naozhong();
     if(k1==0)                //判断按键是否按下
        {
          delay_5ms();
          if(k1==0)
            {
              minite++;
              if(minite==60)
                                {
                                        minite=0;
                                }
                          while(k1==0);
            }
        }
     if(k2==0)                    //判断按键是否按下
        {
          delay_5ms();
          if(k2==0)
            {
              hour++;
              if(hour==24)  hour=0;
                        while(k2==0)
                                {
                                        for(j=0;j<4;j++)            
                                        disp(k[j],j);           
                                }                           
            }
        }
        }
}

////////////////*定时器工作方式*/ /////////////////////////////////
void t0(void) interrupt 1 using 0   
{
  num++;

  if(num==20)
    {
      num=0;
      second++;
      if(second==60)
        {
          second=0;
          minite++;
          if(minite==60)
            {
              minite=0;
              hour++;                                  
              if(hour==24)
                {
                  hour=0;
                }
             }
         }

     k[0]= minite%10;        //各位
     k[1]= minite/10;      //各十位
     k[2]= hour%10;        //各位
     k[3]= hour/10;        //各十位

    }

   TH0=0x0EE;
   TL0=0x00;

}







求解  求解  

FT)~PZ93A[UZDP402YX$B04.png (6.96 KB, 下载次数: 150)

FT)~PZ93A[UZDP402YX$B04.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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