久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2877|回復: 3
打印 上一主題 下一主題
收起左側

數碼管 時鐘 幫我 改改 按鍵不管事

[復制鏈接]
跳轉到指定樓層
樓主
ID:75419 發表于 2015-4-11 20:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,aa,miao,fen,shi;
int  K1_FLAG=0;
sbit k1=P3^0;
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
sbit DELL=P1^5;
uchar code table[]={ //數碼管編碼表
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
void display(uchar miao,uchar fen,uchar shi);
void delay(uint z);
void tirm();
void init();
void  beep();
void main()
{
init();//初始化子程序
shi=23;
fen=58;
miao=30;
while(1)
{
   if(k1==0)
   {
     delay(10);
         if(k1==0)
         {
            beep();
                   K1_FLAG=1;
                delay(5);
         }
   }
   if(K1_FLAG==1)
   tirm();   
   display(miao,fen,shi);
}
}
void tirm()
{
  TR1=0;
  while(1)
  {
if(k2==0)  //  調分
{
  delay(2);
  if(k2==0)
  while(!k2);
  beep();
  fen++;
  if(fen==60) fen=0;   
}
if(k3==0)   // 調小時
{
  delay(2);
  if(k3==0)  
  while(!k3);
  beep();
  shi++;
  if(shi==24) shi=0;  
}
  if(k4==0)
  {
          delay(5);
        if(k3==0)
         while(!k4);
         TR1=1;K1_FLAG=0;
  }
  }
}
void beep()
{
  int j,y,m;
  m++;
  for(j=0;j<1000;j++)
  {
    DELL=~DELL;
        for(y=0;y<15;y++);
  }
   while(m<5);
   delay(200);
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void display(uchar miao,uchar fen,uchar shi)  //  顯示子函數
{  
  P0=0x00;
  P0=table[miao%10];
  P2=0xfe;
  delay(1);

  P0=0x00;
  P0=table[miao/10];
  P2=0xfd;
  delay(1);

  P0=0x40;
  P2=0xfb;                                        // 顯示--
  delay(1);

  P0=0x00;
  P0=table[fen%10];
  P2=0xf7;
  delay(1);  
  P0=0x00;
  P0=table[fen/10];
  P2=0xef;
  delay(1);

  P0=0x40;
  P2=0xdf;                           // 顯示--
  delay(1);

  P0=0x00;
  P0=table[shi%10];
  P2=0xbf;
  delay(1);        
  P0=0x00;
  P0=table[shi/10];
  P2=0x7f;
  delay(1);
}
void init()   // 初始化子函數
{
TMOD=0x11;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256; //定時器初值,定時50ms(12M晶振),由于考慮MCU指令處理時間,此處賦初值位45872
TH1=(65536-30000)/256;
TL1=(65536-30000)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
}
void timer0() interrupt 1 //定時計數器中斷
{
TH0=(65536-20000)/256;
TL0=(65536-20000)%256;                   //2ms
   display(miao,fen,shi);
}
void timer1() interrupt 3 //定時計數器中斷
{
TH1=(65536-30000)/256;
TL1=(65536-30000)%256;                            //10ms
aa++;
if(aa==30) //中斷2次位1S,秒加1     
{
  miao++;
  aa=0;
  if(miao==60)
   {
    fen++;  //  滿60S, 分加1,秒清0
    miao=0;
    if(fen==60)
     {
      shi++; // 小時加1
      fen=0;
      if(shi==24)
          miao=0;fen=0;shi=0; //小時滿
     }
   }
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:74245 發表于 2015-4-11 22:49 | 只看該作者
應該是按下K1進入tirm()之后,就一直死循環了,tirm里面的while(1)跳不出來

評分

參與人數 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:76471 發表于 2015-4-12 09:05 | 只看該作者
在beep()函數中,while(m<5);這句也很有問題

評分

參與人數 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

地板
ID:75419 發表于 2015-4-12 22:07 | 只看該作者
誰能幫我寫一個    我在此謝謝了    急急,,,
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产视频中文字幕在线观看 | 亚洲国产电影 | 亚洲国产日韩欧美 | 天天干夜夜操视频 | 成人在线免费视频 | 亚洲精品一区二区久 | 91色综合| 欧美福利在线 | 精品久久久久久久人人人人传媒 | 亚洲精品资源 | 日韩和的一区二在线 | 欧美日韩精品在线免费观看 | 欧美激情久久久 | 国产精品成人一区二区三区夜夜夜 | 9久久 | 欧美一区二区三区视频 | 日本不卡一区 | 免费a网| 国产精品久久久久久中文字 | 韩日免费视频 | 国产精品国产精品国产专区不卡 | 国产精品成人久久久久 | 亚洲午夜精品久久久久久app | 亚洲成人精品一区 | 日韩欧美二区 | 福利社午夜影院 | 久久综合久 | 三级高清| 精品久久久久久国产 | 免费观看黄 | 男女爱爱网站 | h视频在线免费 | 亚洲一二三区精品 | 色综合久 | 国产欧美日韩一区二区三区在线 | 日韩电影在线 | 中文字幕 在线观看 | 日韩成人免费中文字幕 | 亚洲色图插插插 | 国产精品高清在线 | 亚洲欧美在线观看 |