柚子快報(bào)邀請(qǐng)碼778899分享:51藍(lán)橋杯LED模塊
柚子快報(bào)邀請(qǐng)碼778899分享:51藍(lán)橋杯LED模塊
目錄
一、M74HC573M1R鎖存器
1.1 RS鎖存器(RS latch)
1.2 D鎖存器(D latch)
1.3 M74HC573M1R鎖存器基本原理
1.4?74HC138譯碼器
1.5 思路梳理
二、LED閃爍代碼
2.1 main函數(shù)
2.2 初始化函數(shù)
2.3 LED控制函數(shù)
2.4 時(shí)間延時(shí)函數(shù)
三、單片機(jī)實(shí)現(xiàn)
一、M74HC573M1R鎖存器
1.1 RS鎖存器(RS latch)
電路圖:
真值表:
RSQ 0 0Q01110011X
當(dāng)R=1時(shí),輸出為0,故R又稱為直接置“0”端,或“復(fù)位”端(reset)當(dāng)S=1時(shí),輸出也為1,故S又稱為直接置“1”端,或“置位”端當(dāng)R=S=0時(shí),輸出保持不變(很重要的特征!保證了RS同時(shí)為0(斷電)后,電路輸出能夠保持不變)
———————————————————————————————————————————
R和S不能同時(shí)為1
1.2 D鎖存器(D latch)
電路圖:
EN為0時(shí),輸出狀態(tài)保持不變;
? ? ? ?E為0時(shí),R和S都為0
EN=1時(shí),輸出狀態(tài)隨輸入狀態(tài)而改變?!?當(dāng)D=0,Q=0;當(dāng)D=1,Q=1
? ? ? ?E為1時(shí):D=0,R=1,即Q=0;D=1,S=1,即Q=0
1.3 M74HC573M1R鎖存器基本原理
邏輯圖:
74HC573的八個(gè)鎖存器都是透明的D型鎖存器,當(dāng)使能(LE)為高時(shí),Q輸出將隨數(shù)據(jù)(D)輸入而變。當(dāng)使能(LE)為低時(shí),輸出將鎖存在已建立的數(shù)據(jù)電平上。即當(dāng)LE為低時(shí),輸出保持原來狀態(tài)。74HC573的OE引腳在使用時(shí)通常與GND鏈接在一起
?LE又由Y4C決定是高還是低
74HC02電路圖:
74HC02輸出的Y4C由Y4和WR決定
1.4?74HC138譯碼器
電路圖:
? ? ??
真值表:
結(jié)合電路圖和真值表可知G1為高,G2為低時(shí)輸入才有效。輸出由C、B、A(P27、P26、P25)來決定——>將CBA想象成二進(jìn)制,高為1低為0
P27P26 P25 輸出000Y0001Y1010Y2011Y3100Y4101Y5110Y6111Y7
1.5 思路梳理
單片機(jī)接電后LED正向流入高電平,要點(diǎn)亮LED需要M74HC573M1R鎖存器透過的數(shù)據(jù)(P0控制)為低電平M74HC573M1R鎖存器打開需要LE(Y4C)給高電平Y(jié)4C的輸出需要經(jīng)過74HC02(或非門),所以74HC02的輸入需要為低電平74HC02的兩個(gè)輸入WR和Y4。WR由J13套帽GND為低電平,Y4故需要為低電壓Y4由74HC138譯碼器輸出,根據(jù)74HC138譯碼器的真值表,可知輸出Y4為低電平需要P27、P26、P25為1、0、0
二、LED閃爍代碼
2.1 main函數(shù)
#include
#include "bsp_init.h"
#include "delay.h"
#include "bsp_led.h"
void main(void)
{
unsigned char i,j;
Cls_Peripheral(); //關(guān)閉外設(shè)
while(1)
{
for(i=0;i<9;i++)
{
for(j=0;j<50;j++)
{
Led_Disp(0xFF);
Delay(i+1);
Led_Disp(0);
Delay(9-i);
}
}
}
}
2.2 初始化函數(shù)
#include "bsp_init.h"
/**
* @brief 關(guān)閉外設(shè)的初始化函數(shù)
* @param 無
* @retval 無
* @functon 將LED、蜂鳴器、繼電器關(guān)閉
*/
void Cls_Peripheral(void)
{
P0 = 0xFF; //使鎖存器輸入數(shù)據(jù)設(shè)為1
P2 = P2 &0x1F | 0x80; //定位到Y(jié)4,打開LED鎖存器,將1透過鎖存器,使LED關(guān)閉
P2 &= 0x1F; //將所有鎖存器關(guān)閉
P0 = 0; //使鎖存器輸入數(shù)據(jù)設(shè)為0
P2 = P2 & 0x1F | 0XA0; //定位到Y(jié)5,打開外設(shè)鎖存器,將0透過鎖存器,使外設(shè)關(guān)閉
P2 &= 0x1F; //將所有鎖存器關(guān)閉
}
2.3 LED控制函數(shù)
#include "bsp_led.h"
/**
* @brief LED顯示函數(shù)
* @param 要顯示LED的十六進(jìn)制數(shù)據(jù)(從右往左看,1為亮、0為滅)
* @retval 無
* @functon 將LED點(diǎn)亮
*/
void Led_Disp(unsigned char ucled)
{
P0 = ~ucled; //將輸入數(shù)據(jù)取反
P2 = P2 & 0x1F |0x80; //定位Y4,打開LED鎖存器,將輸入數(shù)據(jù)ucled透?jìng)?/p>
P2 &= 0x1F; //關(guān)閉所有鎖存器
}
2.4 時(shí)間延時(shí)函數(shù)
#include "delay.h"
/**
* @brief 延時(shí)毫秒函數(shù)
* @param 延時(shí)的數(shù)值,2字節(jié),16位,0~65535
* @retval 無
* @functon 延時(shí)一定的毫秒數(shù)據(jù)
*/
void Delay(unsigned int num)
{
unsigned int i;
while(num--)
{
for(i=0; i<628; i++);
}
}
三、單片機(jī)實(shí)現(xiàn)
視頻傳不進(jìn)來QAQ
柚子快報(bào)邀請(qǐng)碼778899分享:51藍(lán)橋杯LED模塊
推薦閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。