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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7367|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

定時器的問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:4834 發(fā)表于 2008-9-9 20:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

要求定時器可以實現(xiàn)三個時間的顯示,而且每個時間的初始值可以改變,完成硬件電路設(shè)計和軟件程序設(shè)計,需要完成硬件仿真。(依據(jù)見習(xí)時間來決定,實物可以暫時不做)

設(shè)計指標(biāo)參數(shù):

(1)    定時時間1。1s-99s,可調(diào)。

(2)    定時時間2。1s-99s,可調(diào)。

(3)    定時時間3。1min-99min,可調(diào)。

(4)    所有時間數(shù)字均可調(diào)。

(5)    用數(shù)碼管顯示剩余時間。


#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit p1=P2^3;
void keyscan(uchar z);
void delay(uchar k);
void display(uchar i);
void shezhi();
void playon();
uchar nummiaoge,nummiaoshi,numfenge,numfenshi,numshige,numshishi,tt,num;
uchar code table1[]={0x3f,
0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77};
ding1h=keyscan(0);
ding1l=keyscan(1);
ding2h=keyscan(2);
ding2l=keyscan(3);
ding3h=keyscan(4);
ding3l=keyscan(5);
ding4h=keyscan(6);
ding4l=keyscan(7);
ding5h=keyscan(8);
ding5l=keyscan(9);
ding6h=keyscan(10);
ding6l=keyscan(11);
play=keyscan(12);
zanting=keyscan(13);
close=keyscan(14);
res=keyscan(15);
nummiaoge=P2^0;
nummiaoshi=P2^1;
numfenge=P2^2;
numfenshi=P2^3;
numshige=P2^4;
numshishi=P2^5;
void main()
{
 tt=0;
 TMOD=0x01;
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 EA=1;
 ET0=1;
 TR0=1;
 while(1)
 {
  shezhi();
  playon();
 }
}
void keyscan(uchar z)
{
 uchar n;
 P1=0xfe;
 n=P1;
 n&=0xf0;
 if(n!=0xf0)
 {
  delay();
  P1=0xfe;
  n=P1;
  n&=0xf0;
  if(n!=0xf0)
   {
     switch(n)
    {
        case(0xe0):display(0);break;
        case(0xd0):display(1);break;
        case(0xb0):display(2);break;
        case(0x70):display(3);break;
        }
      }
 }
 P1=0xfd;
 n=P1;
 n&=0xf0;
 if(n!=0xf0)
 {
  delay();
  P1=0xfd;
  n=P1;
  n&=0xf0;
  if(n!=0xf0)
   {
      switch(n)
       {
        case(0xe0):display(4);break;
        case(0xd0):display(5);break;
        case(0xb0):display(6);break;
        case(0x70):display(7);break;
       }
      }
 }
 P1=0xfb;
 n=P1;
 n&=0xf0;
 if(n!=0xf0)
  {
   delay();
   P1=0xfb;
   n=P1;
   n&=0xf0;
   if(n!=0xf0)
    {
       switch(n)
        {
         case(0xe0):display(8);break;
         case(0xd0):display(9);break;
         case(0xb0):display(10);break;
         case(0x70):display(11);break;
        }
       }
  }
 P1=0xf7;
 n=P1;
 n&=0xf0;
 if(n!=0xf0)
  {
   delay();
   P1=0xf7;
   n=P1;
   n&=0xf0;
   if(n!=0xf0)
    {
       switch(n)
       {
         case(0xe0):display(12);break;
         case(0xd0):display(13);break;
         case(0xb0):display(14);break;
         case(0x70):display(15);break;
        }
       }
  }
}
void display(uchar i)
{
 uchar table2[]={
 0xC0,0xF9,0xA4,0xB0,
 0x99,0x92,0x82,0xF8,
 0x80,0x90,0x88,0x83,
 0xC6,0xA1,0x86,0x8E};
 P2=0xfe;
 P0=table;
}
void delay(uchar k)
{
 uint x,y;
 for(x=100;x>0;x--)
  for(y=k;y>0;y--);
}
void shezhi()
{
 if(ding1h==0)
  {
   nummiaoge++;
   if(nummiaoge==10)
   {
    nummaioge=0;
   }
  }
 if(ding1l==0)
  {
   nummiaoge--;
   if(nummiaoshi==-1)
   {
    nummaioshi=9;
   }   
  }
 if(ding2h==0)
  {
   nummiaoshi++;
   if(nummiaoshi==10)
   {
    nummiaoshi=0;
   }   
  }
 if(ding2l==0)
  {
   nummiaoshi--;
   if(nummiaoshi==-1)
   {
    nummiaoshi=9;
   }   
  }
 if(ding3h==0)
  {
   numfensge++;
   if(numfenge==10)
   {
    numfenge=0;
   }   
  }
 if(ding3l==0)
  {
   numfenge--;
   if(numfenge==-1)
   {
    numfenge=9;
   }
  }
 if(ding4h==0)
  {
   numfenshi++;
   if(numfenshi==10)
   {
    numfenshi=0;
   }   
  }
 if(ding4l==0)
  {
   numfenshi--;
   if(numfenshi==-1)
   {
    numfenshi=9;
   }   
  }
 if(ding5h==0)
  {
   numshige++;
   if(numshige==10)
   {
    numshige=0;
   }   
  }
 if(ding5l==0)
  {
   numshige--;
   if(numshige=-1)
   {
    numshige=9;
   }   
  }
 if(ding6h==0)
  {
   numshishi++;
   if(numshishi==10)
   {
    numshishi=0;
   }   
  }
 if(ding6l==0)
  {
   numshishi--;
   if(numshishi==-1)
   {
    numshishi=9;
   }   
  }
}
void playon()
{
 while(1)
 {
  nummiaoge--;
  if(nummiaoge==0)
   {
    nummiaoshi=nummiaoshi-1;
    nummiaoge=9;
    if(nummiaoshi==0)
    {
     numfenge=numfenge-1;
     nummiaoshi=9;
     if(numfenge==0)
     {
      numfenshi=numfenshi-1;
      numfenge=9;
      if(numfenshi==0)
      {
       numshige=numshige-1;
       numfenshi=9;
       if(numshige=0)
       {
        numshishi=numshishi-1;
        numshige=9;
       }
      }
     }
    }
   }
  if(numshishi,numshige,numfenshi,numfenge,nummiaoshi,nummiaoge==0)
  {
   p1=1;
  }
 }
}
void exter0() interrupt 1
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 tt++;
}


我有些東西還是不大懂,我不知道怎么樣去把鍵盤的16個鍵如何去控制6歌數(shù)碼管的加減!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品久久久久 | 91精品久久久久久久久 | 国产精品视频一二三区 | 日韩欧美一区二区三区免费观看 | 成人久久18免费网站图片 | 久久久久久久av麻豆果冻 | 精品久久一区二区 | 国产精品一区三区 | 99re国产| 国产999精品久久久 精品三级在线观看 | 久草视频网站 | 91精品久久| 国产精品爱久久久久久久 | h在线看 | 亚洲电影一区二区三区 | 美女三区 | 日韩在线一区二区 | 国产精品久久国产精品 | 国产一区二区三区四区 | 国产九九精品 | 国产亚洲精品久久yy50 | 一级特黄视频 | 全免费a级毛片免费看视频免 | www.一区二区 | 日韩中文字幕高清 | 亚洲一区 中文字幕 | 欧美视频中文字幕 | 日韩欧美在线播放 | ww 255hh 在线观看 | 99热热热热 | 欧美精品乱码久久久久久按摩 | 最新高清无码专区 | 欧美一二区| 久久免费国产视频 | 中文字幕不卡视频在线观看 | 精品免费在线 | 国产成人免费视频 | 久久久中文 | 亚洲国产精品一区二区三区 | 日韩欧美三级 | 国产日韩欧美一区二区 |