单片机模块学习之LED
點Led就是高低電平的控制,整理一些用的到的知識吧
一些開發(fā)板上可能會把led連到鎖存器上,導致我們可能一開始就一臉蒙蔽,整理
一些鎖存器
74hc138
數(shù)電里學的38譯碼器
簡單來說就是三個輸入,8個輸出
這種寄存器的好處就是節(jié)省I/O口
真值表可以看出用法
ULN2003
這是個驅動器
輸出端可達500mA/50V.
需要注意它的輸入和輸出是反相的
74hc595
Q0~Q7: 并行數(shù)據(jù)數(shù)據(jù)輸出端;
GND: 接地引腳;
Q7S: 串行數(shù)據(jù)輸出(多芯片級聯(lián)時使用);
MR: 復位引腳,當引腳接低電平時芯片內部數(shù)據(jù)存儲寄存器數(shù)據(jù)清零復位.如不使用一般接高電平;
SHCP: 移位寄存器的時鐘輸入,當接收到上升沿時移位寄存器內部數(shù)據(jù)整體后移;
STCP: 數(shù)據(jù)存儲寄存器時鐘輸入,當檢測到上升沿時使能數(shù)據(jù)存儲寄存器,將芯片接收到的數(shù)據(jù)輸出到Q0~Q7 ,Q7S引腳.可以將其理解為鎖存信號,當數(shù)據(jù)發(fā)送給芯片完成后對該引腳發(fā)送上升沿;
OE: 輸出使能引腳,為高電平時芯片輸出引腳為高組態(tài),當為低電平時芯片輸出引腳為高(低)電平.該引腳可用于同時控制并行輸出引腳的電平,如控制LED閃爍等.當不使用該功能時通常接低電平;
DS: 串行數(shù)據(jù)輸入端
時序圖
驅動程序
sbit Shcp=P ;//定義移位引腳 sbit DS=P ;//定義數(shù)據(jù)引腳 sbit Stcp=P ;//定義輸出引腳 void SendByte_595(u8 dat) {u8 mask;for(mask=0x01;mask!=0;mask<<=1)//從低到高送數(shù)據(jù){if(dat&mask==0)DS=0;elseDS=1;Shcp=0;_nop_();_nop_();Shcp=1;//上升沿移位}Stcp=0;_nop_();_nop_();Stcp=1;//上升沿輸出 }還有一個關于移位的知識點
crol_和_cror,>>和<<
最常用的是<<和>>,但是他們一旦移到最邊緣比如0x80<<1就會變成0x00,這在流水燈里是要做個判斷然后重新賦值,但是_crol_和_cror_可以完美解決這個問題,頭文件是intrins.h
總結
以上是生活随笔為你收集整理的单片机模块学习之LED的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机模块学习
- 下一篇: 单片机模块学习之数码管