不知名的有DIO、SCK、RCK引脚的四位LED数码管模块
誤買了這貨,賣家說沒有Arduino的代碼。我看了下,核心部件是兩片74HC595做了級聯,感覺還是自己折騰一把試試看吧,于是開始折騰,參考外文網站的一些算法和解釋,最后還真有了眉目。
過程就不多說了,直接上結論。在某個位置上顯示某個值的代碼為:
digitalWrite(rck, LOW);
shiftOut(dio, sck, MSBFIRST, 數字);
shiftOut(dio, sck, MSBFIRST, 位置);
digitalWrite(rck, HIGH);
因為是兩片74HC595做級聯,所以相當于變成了16位的移位寄存。其中,前8位用來顯示7段碼(和小數點),后8位用來指示由哪個位置上的數碼單元顯示。
DIO相當于位輸入,RCK相當于各位輸入確認的時鐘,SCK相當于整體輸入確認的時鐘。
對于每個數碼單元,a-g的排列是:8字中間那一橫是a,然后從左上那一豎開始順時針畫圈數,分別是b-g。DIO輸入次序是:第一位是小數點,第二位到第八位是a-g。需要亮的段寫1,反之則寫0。
所以0-9十個數字的二進制值是:
byte num[10] = {
??????????????? B00111111, B00000110, B01011011, B01001111, B01100110,
??????????????? B01101101, B01111101, B00000111, B01111111, B01101111
?????????????? };
小數點和負號分別是:
byte dot = B10000000;
byte neg = B01000000;
對于位選,規律是:從左到右,選中第一位的代碼是 B11111110,第二位是B11111101,以此類推。所以位置代碼為:
byte pos[4] = {0xFE, 0xFD, 0xFB, 0xF7};
有了這些基礎,剩下的就好辦了,順手又焊了個18B20做溫度計。
總結
以上是生活随笔為你收集整理的不知名的有DIO、SCK、RCK引脚的四位LED数码管模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: alpha测试和beta测试的区别是什么
- 下一篇: 串行外设接口(Serial Periph