欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

51單片機(jī):按動(dòng)按鍵,運(yùn)行不同的程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:103513 發(fā)表于 2016-1-17 01:08 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
//實(shí)現(xiàn)了:按下RD按鍵運(yùn)行流水燈,按下WR運(yùn)行數(shù)碼管靜態(tài)顯示,按下TD運(yùn)行計(jì)時(shí)(當(dāng)加到99時(shí)蜂鳴器響),按下TD運(yùn)行溫度傳感器顯示當(dāng)前溫度

#include<reg52.h>
#include <intrins.h>     //因?yàn)橐玫絚orol這一關(guān)鍵字
#define uint unsigned int
#define uchar unsigned char
const unsigned char table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
//------------------位定義
sbit d1=P1^0;   //LED燈
sbit d2=P1^1;
sbit d3=P1^2;
sbit d4=P1^4;
sbit FM=P2^3;
sbit dula=P2^5;  //數(shù)碼管
sbit wela=P2^6;
sbit pled=P3^7;     //按鍵
sbit psmg=P3^6;
sbit pjishi=P3^5;
//sbit pweibolu=P3^4;
//------------------------變量
uint XX=0,tt=0;
uchar temp,a,temp2;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void didi(uchar u)
{
uchar j;
for(j=u;j>0;j--)
{
  FM=0;delay(100);
  FM=1;delay(110);
}
}
//-------------------------函數(shù)聲明
void init();
void ledinit();
void smginit();
void jishiinit();
//void weiboluinit();
void jianche();
void led();
void smg();
void disp(uchar shi,uchar ge);
void dodo();
auto jishi();
//-----調(diào)試開(kāi)關(guān)-------------1
#define led1
#define smg1
#define jishi1
void jianche()   //檢測(cè)按鍵
{
  if(pled==0)  {delay(5);if(pled==0)  while(!pled);  didi(1);XX=1;}
if(psmg==0)  {delay(5);if(psmg==0)  while(!psmg);  didi(1);XX=2;}
if(pjishi==0) {delay(5);if(pjishi==0)  while(!pjishi);  didi(1);XX=3;tt=0;temp2=0;} //加上temp2=0清空,從0開(kāi)始計(jì),否則會(huì)記憶自動(dòng)繼續(xù)
// if(pweibolu==0) {delay(5);if(pweibolu==0) while(!pweibolu); didi(1);XX=4;}
}
//-----------------------------主函數(shù)
void main()
{
init();
while(1)
{
  jianche();
/*
if(XX==1)led();
if(XX==2)smg();
if(XX==3)jishi();
if(XX==4)weibolu();
*/
switch(XX)
  {
   case 1:led();break;
   case 2:smg();break;
   case 3:jishi();break;
  }
}
}




//-----------------------初始化
void init()
{
EA=1;      //開(kāi)總中斷
EX0=1;     //開(kāi)外部中斷0 INT0   
EX1=1;     //開(kāi)外部中斷1 INT1  手動(dòng)去中斷即外部中斷只有2個(gè)。T0和T1是定時(shí)器的中斷
TCON=0x01;     //設(shè)為跳變沿觸發(fā)方式,即IT0=1;
#ifdef jishi1
TMOD=0x01;   
TH0=(65536-50000)/256;  
TL0=(65536-50000)%256;
EA=1;      
ET0=1;   
TR0=1;
#endif
}
//----------------------
#ifdef led1
void led()
{
//uchar temp,a;
#endif
temp=0xfe;
  for (a=8;a>0;a--)     //循環(huán)8次
     {         
      P1=temp;
      temp=_crol_(temp,1);  //移動(dòng)
      delay(100);
   jianche();
   if(XX!=1)break;
     }
temp=0x7f;               //注意這一句,如果沒(méi)有這一句,下面的語(yǔ)句循環(huán)是循環(huán)了,卻沒(méi)東西出來(lái)
    for (a=8;a>0;a--)    //循環(huán)8次,即流水燈8個(gè)循環(huán)8次即可點(diǎn)亮8個(gè)
   {
     P1=temp;
     temp=_crol_(temp,-1); //移動(dòng)
     delay(100);
  jianche();
  if(XX!=1)break;
   }
}
#endif
#ifdef smg1
void smg()
{
uchar num;
wela=1;      
P0=0xea;   //11101010    只要1、3、5數(shù)碼管亮
wela=0;
  for(num=0;num<16;num++)
   {
  if(XX!=2)break;  //增加按鍵檢測(cè)靈敏度
    dula=1;
    P0=table[num];
  if(XX!=2)break;
    dula=0;
    delay(350);
jianche();
  if(XX!=2)break;
    delay(350);
   }
}
#endif

#ifdef jishi1
void disp(uchar shi,uchar ge)
{
  dula=1;
  P0=table[shi];
  dula=0;
  wela=1;
  P0=0x4;
  wela=0;
  delay(1);

  dula=1;
  P0=table[ge];
  dula=0;
  wela=1;
  P0=0x08;
  wela=0;
  delay(1);
}
void dodo()
{
  uchar shi,ge;
  if(tt==20)     
     {
    tt=0;   
    temp2++;
    shi=temp2/10;
    ge=temp2%10;
    }                      //帶參數(shù)bai,shi,ge給調(diào)用函數(shù)
  disp(shi,ge);    //這句放在上面的括號(hào)內(nèi)會(huì)出現(xiàn)只顯法個(gè)位,十位百位均顯不出耿
  if(temp2==99){delay(50);didi(1);temp2=0; }
}
auto jishi()
{
// if(INT1==0)TR0=1;  //51的很奇怪,程序是對(duì)的??,可運(yùn)行會(huì)出錯(cuò);中斷出錯(cuò)
//  if(INT0==0)TR0=0;
dodo();
}
#endif
#ifdef weibolu1
void weiboluinit()
{
}
#endif
//-----------------中斷---------------------------------------------
void tming0() interrupt 1
{
TH0=(65536-50000)/256;  
TL0=(65536-50000)%256;
tt++;   
}



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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表