<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機工程實踐--第3章 74HC595+ULN200

          51單片機工程實踐--第3章 74HC595+ULN200

          作者: 時間:2016-11-25 來源:網絡 收藏
          首先上圖,有圖才有真相。實驗中的圖片。

          1、剛上電,繼電器不動作,很穩(wěn)定。這是工程上需要的結果。

          本文引用地址:http://www.ex-cimer.com/article/201611/321350.htm

          2、按下KEY1,繼電器1吸合,其它繼電器斷開。

          3、按下KEY2,繼電器2吸合,其它繼電器斷開。


          #include
          #include


          sbit KEY_IN1 = P2 ^ 4; // 輸入按鍵 接10K上拉電阻
          sbit KEY_IN2 = P2 ^ 5;
          sbit KEY_OUT1 = P2 ^ 3; // 輸出按鍵
          sbit KEY_OUT2 = P2 ^ 2;

          sbit BUZZER_OUT = P1 ^ 7; // 蜂鳴器
          sbit LED = P0 ^ 7; // LED


          sbit HC595_SCK_OUT = P1 ^ 0;// 74HC595數據輸入時鐘線
          sbit HC595_RCK_OUT = P1 ^ 1;// 74HC595輸出存儲器鎖存時鐘線
          sbit HC595_OE_OUT = P1 ^ 2;// 74HC595輸出使能端 接10K上拉電阻
          sbit HC595_SI_OUT = P1 ^ 3;// 74HC595數據線


          typedef unsigned char uint8;
          typedef unsigned int uint16;

          typedef unsigned char u8;
          typedef unsigned int u16;

          #define CNT_DELAY_CNT1 25 // 按鍵去抖動延時閥值
          #define CNT_DELAY_CNT2 5 // 按鍵列輸出信號穩(wěn)定的小延時

          #define CNT_BUZZER_TIME 40



          void interrupt_init(void);
          void key_scan(void);
          void key_service(void);
          void relay_status_clear(void);
          void relay_status_set_1(void);
          void relay_status_set_2(void);
          void relay_status_set_3(void);
          void relay_status_set_4(void);
          void relay_drive(void);
          void delay(void);


          u8 key_step = 1; // 按鍵掃描步驟變量,在switch()括號里面
          u8 key_lock1 = 0; // 按鍵自鎖標志
          u8 key_sec = 0; // 按鍵被觸發(fā)的變量
          u16 delay_cnt1 = 0; // 延時計數器的變量
          u16 delay_cnt2 = 0; // 延時計數器的變量
          u16 buzzer_time_cnt = 0; // 蜂鳴器聲音長短的計數延時
          u16 relay_status = 0;// 繼電器狀態(tài)寄存器

          int main(void)
          {
          interrupt_init();


          HC595_OE_OUT = 1;// 置1,595輸出口為高阻態(tài),ULN2003輸入口內部有下拉電阻,所以把595輸出口拉低了
          relay_status_clear();// 把relay_status清零
          relay_drive();// 繼電器驅動程序,relay_status映射繼電器的狀態(tài)
          HC595_OE_OUT = 0;// 輸出使能端拉低,595輸出口有效

          BUZZER_OUT = 1;// 上電關閉蜂鳴器

          while(1)
          {
          key_service();// 按鍵服務函數
          }


          return 0;
          }


          上一頁 1 2 下一頁

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();