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