日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

LED指示灯的基本控制

發布時間:2023/12/24 综合教程 39 生活家
生活随笔 收集整理的這篇文章主要介紹了 LED指示灯的基本控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

LED原理圖(CT107D開發板)

硬件實現原理

1.三八譯碼器

實現通過LED點亮首先要驅動74H138譯碼器(三八譯碼器)輸出,根據P2^5,P2^6,P2^7輸入不同的電平,可以不同的輸出口

備注:(H—高電平 L—低電平 X—任意電平  E3、E2、E1 為輸入使能端  

    A2(C)、A1(B)、A0(A)為二進制數據輸入端  字母上面的“—”號說明該輸入/輸出為低電平有效)

2.鎖存器

74HC573鎖存器是八路3態輸出的非反轉透明鎖存器,當鎖存使能端LE為高時,數據就會同步輸出,當鎖存使能變低是,數據就會被鎖存。

3.LED電路原理

當74HC573鎖存器導通時候需要Y4C電平有效,Y4C有Y4和WR端通過或門輸出,WR接地為低電平0,,那么就需要Y4輸出低電平,Y4由74H138譯碼器控制輸出。只要通過對CBA三端對應輸出100即可。

代碼實現

#include "reg52.h"

typedef unsigned int u16;
typedef unsigned char u8;

sbit HC138_A = P2^5;
sbit HC138_B = P2^6;
sbit HC138_C = P2^7;

void delay(u16 i)
{
    while(i--);
}

void LED()
{
    u16 i;
    HC138_A = 0;
    HC138_B = 0;
    HC138_C = 1;
    
    for(i =0;i <3;i++)
    {
        P0 = 0x00;
        delay(60000);
        P0 = 0xff;
        delay(60000);
    }
    
    for(i=0;i<=7;i++)
    {
        P0=0xff<<i;
        delay(60000);
    }
    
    for(i=0;i<=7;i++)
    {
        P0=~(0xff<<i);
        delay(60000);
    }
    /*
    #include "intrins.h"
    for(i=0;i<7;i++)
   {
        led=_crol_(led,1);
     delay(50000);
   }
   for(i=0;i<7;i++)
   {
       led=_cror_(led,1);
    delay(50000);
   }//左移右移函數,也是可以跑馬燈的。
    */
}

void main()
{
    while(1)
    {
        LED();
    }
}

總結

以上是生活随笔為你收集整理的LED指示灯的基本控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。