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

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

基于51單片機之74HC165實驗例程

作者:未知   來源:CaKen的空間   點擊數(shù):  更新時間:2014年08月17日   【字體:

 **************************  Copyright(C)CaKe  *****************************************

========================================================================================
==============**文件名    : main.c              ==============
==============**作者      : CaKen              ==============
==============**版本號    : V1.0               ==============
==============**時間      : 2014.08.16               ==============
==============**功能描述  : 74HC165實驗測試          ==============
========================================================================================
****************************************************************************************
 
#include <reg52.h>
#include <intrins.h>
 
//SPI 接口
sbit    CLK    = P3^6;    //串行時鐘
sbit    IN_PL  = P1^6;     //把數(shù)據(jù)加載到鎖存器中
sbit    IN_Dat = P1^7;     //數(shù)據(jù)通過P1.7腳移進單片機內(nèi)處理
 
sbit    RELAY  = P1^4;    //繼電器
sbit    BEEP   = P1^5;    //蜂鳴器
 
unsigned char bdata Key;
sbit    K0=Key^0;        //位定義
sbit    K1=Key^1;        //位定義
sbit    K2=Key^2;        //位定義
sbit    K3=Key^3;        //位定義
sbit    K4=Key^4;        //位定義
sbit    K5=Key^5;        //位定義
sbit    K6=Key^6;        //位定義
sbit    K7=Key^7;        //位定義
 
bit  M0 ,K0J;  //位定義
 
*****************************************************************************************
函數(shù)名:
調(diào)  用:beep();
參  數(shù):
返回值:
結(jié)  果:
備  注:蜂鳴器 (讓蜂鳴器發(fā)出動聽聲音)
*****************************************************************************************
 
void beep()
{
  unsigned char i,j;
  for (i=0;i<2;i++)
   {
     for (j = 0; j<255; j++)
   {_nop_();}
       BEEP=!BEEP;    //BEEP取反
   }
       BEEP=1;        //關(guān)閉蜂鳴器
}
 
****************************************************************************************
函數(shù)名:74HC165函數(shù)初始化
調(diào)  用:HC165_Init();
參  數(shù):
返回值:
結(jié)  果:
備  注:IN_PL上升沿,CLK上升沿
****************************************************************************************
 
unsigned long HC165_Init(void)
  unsigned char i;
  unsigned int indata;
  
   IN_PL=0;      //上升沿
   _nop_();                  //短暫延時 產(chǎn)生一定寬度的脈沖
   IN_PL=1;                  //將外部信號全部讀入鎖存器中
   _nop_();
             
   indata=0;                 //保存數(shù)據(jù)的變量清0 
   for(i=0; i<8; i++)
    {
   indata=indata<<1;      //左移一位
      if(IN_Dat==1)
     indata=indata+1;  //如果IN_Dat檢測到高電平 保存數(shù)據(jù)的變量加1
      CLK=0;               //時鐘置0
        _nop_();    //上升沿
        CLK=1;               //時鐘置1  
 }  
   return(~indata);          //將保存數(shù)據(jù)的變量取反后返回
}
 
 
*****************************************************************************************
函數(shù)名:主函數(shù)
調(diào)  用:main
參  數(shù):
返回值:
結(jié)  果:
備  注:74HC165控制八個按鍵
*****************************************************************************************
 main()
{  
 
  while(1)
  {
    unsigned long Input=HC165_Init();    //調(diào)用165驅(qū)動程序
  Key=Input&0xff;                     //將數(shù)據(jù)傳給位變量
  RELAY = 1;
     P2 = 0xff;                          //清除
 
    if(K0&K0J)
    M0=~M0;               //實現(xiàn)脈沖輸入  大家仔細體會
    K0J=~K0;        
 
 if(M0) {RELAY = 0; P2 = 0x7f; }    //實現(xiàn)脈沖輸入
 if(K1) {beep();    P2 = 0xbf;   }    //K1 為1時開啟蜂鳴器和2個燈
 if(K2) {beep();    P2 = 0xdf;   }
    if(K3) {beep();    P2 = 0xef;   }
 if(K4) {beep();    P2 = 0xf7;   }
 if(K5) {beep();    P2 = 0xfb;   }
 if(K6) {beep();    P2 = 0xfd;   }
 if(K7) {beep();    P2 = 0xfe;   }
   }     
}
 
 
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 亚洲视频在线一区 | 婷婷久久综合 | 亚洲精品二区 | 久久久久一区 | 综合中文字幕 | 欧美一级精品片在线看 | 91色在线| 欧美日韩精品专区 | 天天操操 | 久久伊人亚洲 | 婷婷久久网 | 狠狠躁躁夜夜躁波多野结依 | 欧美一区永久视频免费观看 | 国产成人精品网站 | 久久久久综合 | 国产亚洲精品久久19p | 亚洲视频免费 | 亚洲成av| 在线不卡| 天天操天天射综合网 | 日韩在线一区二区 | 蜜桃日韩| 午夜小电影| 色综合久久天天综合网 | 女人毛片a毛片久久人人 | 91精品国产色综合久久 | 在线看91| 成人高清网站 | 亚洲成人久久久 | 亚洲欧美一区在线 | 成人免费av | 激情亚洲| 久久久性| 国产片网站| 91一区二区在线观看 | 欧美精品一区二区三区在线 | 成人字幕网zmw | 在线91| 日韩在线看片 | 亚洲视频免费在线看 | 国产一级免费在线观看 |