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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機:按動按鍵,運行不同的程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:103513 發表于 2016-1-17 01:08 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
//實現了:按下RD按鍵運行流水燈,按下WR運行數碼管靜態顯示,按下TD運行計時(當加到99時蜂鳴器響),按下TD運行溫度傳感器顯示當前溫度

#include<reg52.h>
#include <intrins.h>     //因為要用到corol這一關鍵字
#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;  //數碼管
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);
}
}
//-------------------------函數聲明
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();
//-----調試開關-------------1
#define led1
#define smg1
#define jishi1
void jianche()   //檢測按鍵
{
  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開始計,否則會記憶自動繼續
// if(pweibolu==0) {delay(5);if(pweibolu==0) while(!pweibolu); didi(1);XX=4;}
}
//-----------------------------主函數
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;      //開總中斷
EX0=1;     //開外部中斷0 INT0   
EX1=1;     //開外部中斷1 INT1  手動去中斷即外部中斷只有2個。T0和T1是定時器的中斷
TCON=0x01;     //設為跳變沿觸發方式,即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--)     //循環8次
     {         
      P1=temp;
      temp=_crol_(temp,1);  //移動
      delay(100);
   jianche();
   if(XX!=1)break;
     }
temp=0x7f;               //注意這一句,如果沒有這一句,下面的語句循環是循環了,卻沒東西出來
    for (a=8;a>0;a--)    //循環8次,即流水燈8個循環8次即可點亮8個
   {
     P1=temp;
     temp=_crol_(temp,-1); //移動
     delay(100);
  jianche();
  if(XX!=1)break;
   }
}
#endif
#ifdef smg1
void smg()
{
uchar num;
wela=1;      
P0=0xea;   //11101010    只要1、3、5數碼管亮
wela=0;
  for(num=0;num<16;num++)
   {
  if(XX!=2)break;  //增加按鍵檢測靈敏度
    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;
    }                      //帶參數bai,shi,ge給調用函數
  disp(shi,ge);    //這句放在上面的括號內會出現只顯法個位,十位百位均顯不出耿
  if(temp2==99){delay(50);didi(1);temp2=0; }
}
auto jishi()
{
// if(INT1==0)TR0=1;  //51的很奇怪,程序是對的??,可運行會出錯;中斷出錯
//  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空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 韩日一区二区三区 | 欧美在线成人影院 | 国产在线观看一区二区 | 无码国模国产在线观看 | 91伊人| 亚洲综合色视频在线观看 | 日韩高清一区 | 亚洲精品久久久一区二区三区 | 99国产精品99久久久久久 | 国产精品欧美一区二区三区不卡 | 成人性生交a做片 | 亚州精品天堂中文字幕 | 欧美国产视频一区二区 | 精品一区二区三区电影 | 天堂色网| 九九热在线精品视频 | 精品免费| 国产成人a亚洲精品 | 中文字幕在线观看一区二区 | 伊人狠狠| 久久亚洲国产精品日日av夜夜 | 91精品国产99久久 | 色婷婷久久久久swag精品 | 色狠狠桃花综合 | 中文字幕精品视频在线观看 | 日韩电影一区 | 一区精品国产欧美在线 | av片在线观看网站 | 免费一区 | 国产在线精品一区二区三区 | 亚洲精品www久久久 www.蜜桃av | 欧美一级做性受免费大片免费 | 亚洲欧美一区二区在线观看 | 久久久不卡网国产精品一区 | 黄色大片在线免费观看 | 中文字幕综合 | 日韩精品一区二区三区 | 欧美日韩三级视频 | 成人在线电影在线观看 | 亚洲高清在线观看 | 操久久 |