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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機制作媚眼激活儀的c代碼

作者:佚名   來源:本站原創   點擊數:  更新時間:2009年09月01日   【字體:

這是一個完整的用51系列單片機做的媚眼激活儀的代碼,有這方面需要的朋友可以看看,代碼已經測試成功。
/*
項目名稱:單片機媚眼激活儀器
相關知識點:單片機驅動發熱器件,數碼管顯示,按鍵操作等。
程序開發:http://www.zg4o1577.cn單片機教程網。
*/
#include < reg51.H>
#define uint unsigned int
#define uchar unsigned char
#define duan P0  //將P1口段顯示定義為duan標號
#define keyio P3 //將P3口設為按鍵檢測的端口

uchar time,guannum,guantime1,guantime2;//time為分鐘值,光顯示時間值
uint b;     //50MS為1次,則1分鐘為1200次即可
bit xsd,onandoff;  //小數點閃爍位變量,開關機變量標志位

sbit xuanled=P2^3;
sbit guanled=P2^5;
sbit rfled=P2^7;//三個指示燈位控制
sbit xsdbit=P0^6;// 小數點實際硬件輸出引腳定義
sbit gewela=P2^0;//個位數碼管位控制
sbit shiwela=P2^1;//十位數碼管鎖定位控制
sbit guanout=P1^0;//光譜輸出
sbit rfout=P1^1;    //RF發熱頭輸驅動
sbit xuanout=P1^2;  //旋磁輸出
sbit fmqout=P1^3;


uchar code tab[]={0x48,0xee,0x54,0x64,0xe2,0x61,0x41,0xec,0x40,0x60,0xf7};//數碼管段顯示編碼0~9,待編寫
void chushi(void);   //進入主函數時初始化
void key(void);      //按鍵檢測
void display(uchar time);//數碼管顯示處理程序
void chushi1(void);  //進行大循環函數初始化處理

void delay(uchar num)//延時模塊程序
{
  uchar c,d;
   for(c=num;c>0;c--)
     for(d=40;d>0;d--);
}


void main()           //主函數程序體
{
  uchar a;
  chushi();
 
  while(1)
   {
     chushi1();
     key();      //按鍵檢測
  if(keyio!=0xff)
  fmqout=0;
  else fmqout=1;
  if(onandoff!=0)
   {
     for(a=100;a>0;a--)
     {
      duan=tab[10];  //開段顯示,顯示中間筆段
      gewela=0;
      shiwela=0;
      delay(10);
      gewela=1;
      shiwela=1;
     }
    
           while(onandoff!=0)
         {
           display(time);
           key();
        if(time==0&&b>=1000)
       fmqout=xsd;
        else if(keyio==0xff)
         fmqout=1;
          else fmqout=0;
    
          }
      for(a=200;a>0;a--)
      display(time);
   }
   }
   
}

void time0() interrupt 1
{
  TH0=0x3c;
  TL0=0xb0;
  b++;
  if(b==1200)
   {
   b=0;
   if(time!=0)
    time--;
   else onandoff=0;   //置零標志位
  }

     if(b%10==0)
  xsd=~xsd;        //小數點的位變量按1S的周期進行變化
  if(guannum==2||guannum==3)
   {
    guantime2--;
     if(guantime2==0)
      {
       guantime2=guantime1;
       guanout=~guanout;
      }
   }
}

void chushi(void) //進主MAIN函數體時直接初始化
{
  TMOD=0x01;  //定時器定時模式
  TH0=0x3c;
  TL0=0xb0;
  ET0=1;
  EA=1;
  TR0=1;
  xuanled=1;
  guanled=1;
  rfled=1;   
}

void chushi1(void) //對大循環的初始化
{
 time=30;    //開機時時間初值為30分鐘

  guanout=0;   //光譜輸出為低電平
 rfout=0;      //RF發熱頭輸驅動為低電平
 xuanout=0;    //旋磁輸出低電平
 guannum=0;   //待機時,光譜為0狀態

  xuanled=1;
  guanled=1;
  rfled=1;   

    
 duan=tab[10];  //開段顯示,顯示中間筆段
 gewela=0;
 shiwela=0;
 delay(2);
 gewela=1;
 shiwela=1;
}


void key(void)  //按鍵檢測模塊
{
 uchar a,num1;
 keyio=0xff;
 if(keyio!=0xff)
  {
 fmqout=0;
   if(onandoff!=0)
    {
     for(a=100;a>0;a--)
     display(time);
    }
   else
    {  for(a=20;a>0;a--)
        {
         duan=tab[10];  //開段顯示,顯示中間筆段
        gewela=0;
        shiwela=0;
        delay(2);
        gewela=1;
        shiwela=1;
        }
    }
   if(keyio!=0xff)
    {
     num1=keyio;
     switch(num1)
      {
       case 0xfe: onandoff=~onandoff;       //開關機
          break;

       case 0xfd: b=0;
          if((onandoff!=0)&&(time!=99)) //時間加
           time++;
          break;

       case 0xfb: b=0;
          if((onandoff!=0)&&(time!=0))  //時間減
           time--;
          break;
      
       case 0xf7: if(onandoff!=0)
           {
            xuanout=~xuanout;         //旋磁轉動變量變化
            if(xuanout!=0)
             xuanled=0;
            else xuanled=1;
           }
          break;

       case 0xef: if(onandoff!=0)      //光譜輸出變量變化
           {
            guannum++;
            if(guannum==4)
            guannum=0;

            if(guannum!=0)
             guanled=0;
            else guanled=1;
          
   if(guannum==1)
    guanout=1;
     else if(guannum==2)
      guantime1=guantime2=15;
       else if(guannum==3)
        guantime1=guantime2=8;
         else guanout=0;

   }
          break;
       case 0xdf: if(onandoff!=0)       //RF發熱變量變化
           {
            rfout=~rfout;
            if(rfout!=0)
             rfled=0;
             else rfled=1;
           }
          break;
       default:break;


      }    
    }
   
  }
}


void display(uchar min)//數碼管顯示模塊
{
 uchar ge,shi;
 shi=min/10;
 ge=min%10;

 duan=tab[shi];
 shiwela=0;
 delay(5);
 shiwela=1;

 duan=tab[ge];
 xsdbit=xsd;
 gewela=0;
 delay(5);
 gewela=1;  
}
 

關閉窗口

相關文章

主站蜘蛛池模板: www.久草.com| 国产免费一区二区 | 在线观看三级av | 成人自拍av | 中文字幕精品一区二区三区精品 | 中日av| 久久久久久久国产 | 久久不卡 | 婷婷综合 | 午夜精品视频 | 在线播放一区二区三区 | 日韩在线视频一区 | 久久久国产一区二区三区 | 国产在线视频三区 | 久久精品国产99国产精品亚洲 | 精品无码久久久久久国产 | 欧美日韩不卡 | 精品自拍视频在线观看 | 国产精品2 | 日韩久久网| 亚洲第一成人影院 | 国产一区久久 | 精品一二| 欧美日韩视频在线第一区 | 亚洲在线中文字幕 | 毛片一区| 日日夜夜天天综合 | 成人黄视频在线观看 | 精品视频久久久 | 日韩av黄色 | 亚洲视频一区在线观看 | 欧美又大粗又爽又黄大片视频 | 国产精品自在线 | 毛片久久久 | 亚洲精品九九 | 久久一 | 久久国产精品精品 | 不卡一区 | 97超碰人人 | 色黄网站 | 国产精品中文字幕在线 |