LED指示灯的基本控制
生活随笔
收集整理的這篇文章主要介紹了
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指示灯的基本控制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 两市成交额在哪里看?
- 下一篇: 软件自动化测试工具之智能元素定位