點led就是高低電平的控制,整理一些用的到的知識吧一些開發板上可能會把led連到鎖存器上,導致我們可能一開始就一臉蒙蔽,整理
一些鎖存器
數電裡學的38解碼器
簡單來說就是三個輸入,8個輸出
這種暫存器的好處就是節省i/o口
真值表可以看出用法
這是個驅動器
輸出端可達500ma/50v.
需要注意它的輸入和輸出是反相的
q0~q7: 並行資料資料輸出端;
gnd: 接地引腳;
q7s: 序列資料輸出(多晶元級聯時使用);
mr: 復位引腳,當引腳接低電平時晶元內部資料儲存暫存器資料清零復位.如不使用一般接高電平;
shcp: 移位暫存器的時鐘輸入,當接收到上公升沿時移位暫存器內部資料整體後移;
stcp: 資料儲存暫存器時鐘輸入,當檢測到上公升沿時使能資料儲存暫存器,將晶元接收到的資料輸出到q0~q7 ,q7s引腳.可以將其理解為鎖存訊號,當資料傳送給晶元完成後對該引腳傳送上公升沿;
oe: 輸出使能引腳,為高電平時晶元輸出引腳為高組態,當為低電平時晶元輸出引腳為高(低)電平.該引腳可用於同時控制並行輸出引腳的電平,如控制led閃爍等.當不使用該功能時通常接低電平;
ds: 序列資料輸入端
時序圖
驅動程式
sbit shcp=p ;//定義移位引腳
sbit ds=p ;//定義資料引腳
sbit stcp=p ;//定義輸出引腳
void sendbyte_595(u8 dat)
stcp=0;
_nop_();
_nop_();
stcp=1;//上公升沿輸出
}
還有乙個關於移位的知識點
crol_和_cror,>>和<<
最常用的是《和》,但是他們一旦移到最邊緣比如0x80<<1就會變成0x00,這在流水燈裡是要做個判斷然後重新賦值,但是_crol_和_cror_可以完美解決這個問題,標頭檔案是intrins.h
微控制器 LED實驗
實 驗 報 告第頁 專業 軟體工程 班級 4 學號 123012005158 實驗日期 2007年11 月27 告退發 訂正 重做 課程微控制器程式設計 實驗名稱 led實驗 一 實驗目的 掌握 led工作原理和使用方法 二 實驗環境 pc,kc,51 板三 實驗內容 步驟和結果分析 編寫時鐘程式,...
微控制器LED燈
include void delay unsigned char i 使用迴圈語句,實現延時 void delay unsigned int i 延時函式,i最大取值65535 最大延時0.65535s void fun1 void 全部亮 void fun2 void 全部滅掉 void fun3...
微控制器模組化二 LED思考
實在是不好意思各位,我看了下,這個系統從第一篇到這一篇,快兩年時間了,反正 我也不指望這個系列能寫完,各位看客沒有指望這個系列去入門,我就隨心所欲的寫,你們就隨心所欲的看,喜歡就留個言交流下,不喜歡就飛過吧。按鍵我已經把它作為乙個功能模組,用到我的專案當中了,很是方便,最近我又遇 重寫led邏輯的 ...