“(SKU:RB-05L009)8*8點陣模塊”的版本間的差異

來自ALSROBOT WiKi
跳轉(zhuǎn)至: 導(dǎo)航、 搜索
(以“<br/> ==概述 == :還在為驅(qū)動點陣連接復(fù)雜的接線煩惱嗎?還在為 Arduino 控制器屈指可數(shù)的 I/O 資 源...”為內(nèi)容創(chuàng)建頁面)
 
?例子程序2
 
(未顯示3個用戶的13個中間版本)
第1行: 第1行:
 
<br/>
 
<br/>
 
[[文件:ewg1.jpg|500px|有框|右]]
 
[[文件:ewg1.jpg|500px|有框|右]]
?
==概述 ==
+
==產(chǎn)品概述 ==
?
:還在為驅(qū)動點陣連接復(fù)雜的接線煩惱嗎?還在為 Arduino 控制器屈指可數(shù)的 I/O
+
還在為驅(qū)動點陣連接復(fù)雜的接線煩惱嗎?還在為 Arduino 控制器屈指可數(shù)的 I/O 資源犯愁嗎?2013 最新推出的 8X8  LED  Matrix  Module  v1.0 點陣模塊是哈爾濱奧松機器人科技有限公司研發(fā)的一款易安裝、易連接、可拓展的 8X8 點陣模塊。此模塊采用高速的 74HC595 串并轉(zhuǎn)換芯片。SPI 接口,僅需要 3 根信號線即可驅(qū)動多塊 8x8 點陣屏,最大限度的節(jié)省您寶貴的 Arduino 控制器 I/O 資源。行列信號全部傳輸完畢后再更新顯示,顯示亮麗,可靠性高。適合于 Arduino 控制器、STC 單片機、AVR 單片機等。
?
源犯愁嗎?2013 最新推出的 8X8  LED  Matrix  Module  v1.0 點陣模塊是哈爾濱奧松機器
+
 
?
人科技有限公司研發(fā)的一款易安裝、易連接、可拓展的 8X8 點陣模塊。此模塊采用高
+
==規(guī)格參數(shù)==
?
速的 74HC595 串并轉(zhuǎn)換芯片。SPI 接口,僅需要 3 根信號線即可驅(qū)動多塊 8x8 點陣屏,
+
?
最大限度的節(jié)省您寶貴的 Arduino 控制器 I/O 資源。行列信號全部傳輸完畢后再更新顯
+
?
示,顯示亮麗,可靠性高。適合于 Arduino UNO328 控制器、STC 單片機、AVR 單片
+
?
機等。
+
?
==規(guī)格參 數(shù) ==
+
 
# 產(chǎn)品名稱:8*8點陣模塊  
 
# 產(chǎn)品名稱:8*8點陣模塊  
?
# 產(chǎn)品貨號:RB-05L009
+
# 產(chǎn)品貨號:RB - 05L009
?
# 工作電壓:DC5V
+
# 工作電壓:DC 5V
 +
# 接口類型:SPI
 
# 產(chǎn)品類型:顯示輸出  
 
# 產(chǎn)品類型:顯示輸出  
 
# 制作工藝:FR4雙面噴錫  
 
# 制作工藝:FR4雙面噴錫  
?
# 固定孔尺寸:3.2mm
+
# 固定孔尺寸:3.2 mm
?
# 對角固定孔間距:22.67mm
+
# 對角固定孔間距:22.67 mm
?
# 固定孔距板邊緣:7.93mm
+
# 固定孔距板邊緣:7.93 mm
 
# 人性化設(shè)計:可級聯(lián)應(yīng)用顯示
 
# 人性化設(shè)計:可級聯(lián)應(yīng)用顯示
?
# 作溫度:10℃-30℃
+
# 工作溫度:10℃-30℃
?
# 作濕度:10%~90% 無凝結(jié)
+
# 工作濕度:10%~90% 無凝結(jié)
?
# 量:12g
+
# 重量:12g
?
# 品尺寸:32mm x 32mm x 23mm  
+
# 產(chǎn)品尺寸:32mm x 32mm x 23mm
?
==使用方 法==
+
?
:通過 SPI 通信方式中的 DIN、CLK、LTH 對 LED 點陣進行控制。DIN 為數(shù)據(jù),CLK
+
?
為時鐘,LTH 為鎖存。
+
?
== 8X8 LED Ma trix  Module 8X8 點陣 模塊的測試 ==
+
?
:我們使用 Arduino 控制器來做個測試,要用到硬件設(shè)備如下:
+
?
#  Arduino 控制器×1
+
?
# Arduino 傳感器擴展板 v5.0×1
+
?
# 8X8 LED Matrix Module v1.0×1
+
?
#  3P 通用連接線×1
+
?
#  2P 電源線×1
+
?
# USB 數(shù)據(jù)通信線×1
+
?
:將 8X8 點陣模塊的 DIN、CLK、LTH 分別連接到 Arduino 傳感器擴展板的數(shù)字 4、
+
?
5、6 引腳,VCC、GND 分別連接到傳感器擴展板的任意一個 V、G 端口。最后連接
+
?
Arduino 控制器至計算機。
+
?
:Arduino 實驗代碼如下:
+
  
?
<pre style='color:blue'>const int DINPin = 4;            // 數(shù)據(jù)引腳  連接到數(shù)字 4 口
+
==使用方法==
?
const int CLKPin = 5;             // 時鐘引腳 連接到數(shù)字 5 口
+
===工作原理===
?
const int LTHP in = 6;             //鎖存引腳  連接到數(shù)字 6 口
+
通過 74HC595 移位寄存器連接 8*8 點陣液晶模塊,模塊與單片機之間使用 SPI 進行通信,只需要占用三個IO接口,兩片 74HC595 模塊使用級聯(lián)的方式連接,實現(xiàn)串行輸入并行輸出,來控制點陣液晶。
?
byte LieScan[16] = {                                    //列掃描,點陣只點亮一行
+
===編程原理===
?
0xFE,0xFD,0xFB,0xF 7,0xEF,0xDF,0xBF,0x7F
+
本例子程序中需要使用一個擴展程序語句,介紹如下:<br/>
?
};  
+
* shiftOut()語句
?
byte HanZi_1[] = {
+
描述:將一個數(shù)據(jù)的一個字節(jié)一位一位的移出。從最高有效位(最左邊)或最低有效位(最右邊)開始。依次向數(shù)據(jù)腳寫入每一位,之后時鐘腳被拉高或拉低,指示剛才的數(shù)據(jù)有效。<br/>
?
0x1c,0x3e,0x7e,0xfc,0xfc,0x7e,0x3e,0x1c            //心形圖案
+
語法:<br/>
?
};
+
shiftOut(dataPin, clockPin, bitOrder, value)<br/>
?
byte HanZi_2[] = {
+
參數(shù):<br/>
?
0x1c,0x3e,0x7e,0xfc,0xfc,0x7e,0x3e,0x1c            //心形圖案
+
* dataPin:輸出每一位數(shù)據(jù)的引腳(int)
?
};  
+
* clockPin:時鐘腳,當dataPin有值時此引腳電平變化(int)
?
byte HanZi_3[] = {  
+
* bitOrder:輸出位的順序,最高位優(yōu)先或最低位優(yōu)先
?
0x1c,0x3e,0x7e,0xfc,0xfc,0x7e,0x3e,0x1c            //心形圖案
+
* value: 要移位輸出的數(shù)據(jù)(byte)
?
};  
+
注意:<br/>
?
void setup() {  
+
dataPin和clockPin要用pinMode()配置為輸出。 shiftOut目前只能輸出1個字節(jié)(8位),所以如果輸出值大于255需要分兩步。<br/>
?
pinMode(DINPin,OUTPUT);         //設(shè)置數(shù)據(jù)引腳為輸出
+
<pre style='color:blue'>
?
pinMode(CLKPin,OUTPUT);         //設(shè)置鎖存引腳為輸出
+
//最高有效位優(yōu)先串行輸出
?
pinMode(LTHPin,OUTPUT);         //設(shè)置時鐘引腳為輸出
+
int 數(shù)據(jù)= 500;
?
}  
+
//移位輸出高字節(jié)
?
void loop() {  
+
shiftOut(dataPin, clock, MSBFIRST, (data >> 8));  
?
for(unsigned char times_1 = 0;times_1 <250;t imes_1++) {   //持續(xù)刷新 250 次
+
//移位輸出低字節(jié)
?
for(char x = 0;x <9;x++) {
+
shiftOut(data, clock, MSBFIRST, data);
 +
//最低有效位優(yōu)先串行輸出
 +
data = 500;
 +
//移位輸出低字節(jié)
 +
shiftOut(dataPin, clock, LSBFIRST, data); 
 +
//移位輸出高字節(jié)
 +
shiftOut(dataPin, clock, LSBFIRST, (data >> 8));  
 +
</pre>
 +
===實驗例程===
 +
====使用硬件====
 +
* [http://gharee.com/goods-546.html Carduino UNO R3 控制器] * 1個
 +
* [http://gharee.com/goods-147.html Carduino UNO 傳感器擴展板 v5.0] * 1個
 +
* [http://gharee.com/goods-107.html 8 * 8 LED Matrix Module v1.0] * 1個
 +
* [http://gharee.com/goods-107.html 3P 通用連接線] * 1條
 +
* 2P 電源線 * 1組
 +
* [http://gharee.com/goods-90.html USB 數(shù)據(jù)通信線] * 1條
 +
====接線方法====
 +
通過 SPI 通信方式中的 DIN、CLK、LTH 對 LED 點陣進行控制。DIN 為數(shù)據(jù),CLK為時鐘,LTH 為鎖存。
 +
將 8 * 8 點陣模塊的 DIN、CLK、LTH 分別連接到 Arduino 傳感器擴展板的數(shù)字 4、5、6 引腳,VCC、GND 分別連接到傳感器擴展板的任意一個 V、G 端口。最后連接Arduino 控制器至計算機。 如下圖所示:
 +
整體連接圖:
 +
[[文件:02L00901.png|500px|有框|居中]]
 +
接線細節(jié)圖:
 +
[[文件:02L00902.png|700px|有框|居中]]
 +
 
 +
====例子程序1====
 +
<pre style='color:blue'>
 +
//Pin connected to ST_CP of 74HC595
 +
int latchPin = 6;//定義LTH引腳為D6
 +
//Pin connected to SH_CP of 74HC595
 +
int clockPin = 5;//定義CLK引腳為D5
 +
//Pin connected to DS of 74HC595
 +
int dataPin = 4;//定義DIN引腳為D4
 +
int tab[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
 +
void setup() {
 +
  //set pins to output because they are addressed in the main loop
 +
  pinMode(latchPin, OUTPUT);
 +
  pinMode(clockPin, OUTPUT);
 +
  pinMode(dataPin, OUTPUT);
 +
}
 +
 
 +
void loop() {
 +
  for(int i = 0; i < 8; i++){
 +
    for(int j = 0; j < 8; j++){
 +
      digitalWrite(latchPin, LOW);
 +
      shiftOut(dataPin, clockPin, LSBFIRST, tab[i]);//掃描顯示每一列
 +
      shiftOut(dataPin, clockPin, LSBFIRST, 0xff); //將行顯示設(shè)置為低電平
 +
      digitalWrite(latchPin, HIGH);
 +
      delay(50); 
 +
    }
 +
  }
 +
    for(int i = 0; i < 8; i++){
 +
    for(int j = 0; j < 8; j++){
 +
      digitalWrite(latchPin, LOW);
 +
      shiftOut(dataPin, clockPin, LSBFIRST, 0x00);//將列顯示設(shè)置為高電平
 +
      shiftOut(dataPin, clockPin, LSBFIRST, tab[i]); //掃描顯示每一行
 +
      digitalWrite(latchPin, HIGH);
 +
      delay(50); 
 +
    }
 +
  }
 
}  
 
}  
?
shiftOut( DI NP in, CLKP in, MSBFIRST, LieScan[x]);    // 先選擇列
+
</pre>
?
shiftOut( DI NP in, CLKP in, MSBFIRST, HanZi_1[x]);  // 再送行數(shù)據(jù)
+
====程序1效果====
?
digit alWr ite(LTHP in, LOW);      //刷新顯示
+
點陣液晶分別以行掃描和列掃描顯示
?
digit alWr ite(LTHP in, HIGH); 
+
  
 +
====例子程序2====
 +
<pre style='color:blue'>
 +
const int DINPin = 4;        //數(shù)據(jù)引腳 連接到數(shù)字P4口
 +
const int CLKPin = 5;        //時鐘引腳 連接到數(shù)字P5口
 +
const int LTHPin = 6;        //鎖存引腳 連接到數(shù)字P6口
  
 +
byte LieScan[16] = {                        //列掃描,點陣只點亮一列
 +
  0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F
 +
};
 +
byte HanZi_1[] = {
 +
  0x1c,0x7c,0x7e,0x3f,0x3f,0x7e,0x7c,0x1c    //顯示心形圖案
 +
};
 +
void setup() {
 +
  pinMode(DINPin,OUTPUT);      //設(shè)置數(shù)據(jù)引腳為輸出
 +
  pinMode(CLKPin,OUTPUT);      //設(shè)置鎖存引腳為輸出
 +
  pinMode(LTHPin,OUTPUT);      //設(shè)置時鐘引腳為輸出
 +
}
 +
void loop() {
 +
  for(unsigned char times_1 = 0;times_1 <250;times_1++) {  //持續(xù)刷新250次
 +
    for(char x = 0;x <8;x++) {
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_1[x]);  //再送行數(shù)據(jù)
 +
      digitalWrite(LTHPin, LOW);    //刷新顯示
 +
      digitalWrite(LTHPin, HIGH);
 +
    }
 +
  }
 +
}
 +
</pre>
  
?
}
+
====程序2效果====
?
for(unsigned char times_2 = 0;times_2 <250;t imes_2++) {  //持續(xù)刷新 250 次
+
點陣液晶屏顯示為心形圖案
?
for(char x = 0;x <8;x++) {
+
?
shiftOut( DI NP in, CLKP in, MSBFIRST, LieScan[x]);    // 先選擇列
+
?
shiftOut( DI NP in, CLKPin, MSBFIRST, HanZi_2[x]);    // 再送行數(shù)據(jù)
+
?
digit alWr ite(LTHP in, LOW);      //刷新顯示
+
?
digit alWr ite(LTHP in, HIGH); 
+
?
}
+
?
}
+
?
for(unsigned char times_3 = 0;times_3 <250;t imes_3++) {  //持續(xù)刷新 250 次
+
?
for(char x = 0;x <8;x++) {
+
?
shiftOut( DI NP in, CLKP in, MSBF IRST, LieS can[x]);    //先選擇列
+
?
shiftOut( DI NP in, CLKP in, MSBFIRST, HanZi_3[x]);  // 再送行數(shù)據(jù)
+
?
digit alWr ite(LTHP in, LOW);      //刷新顯示
+
?
digit alWr ite(LTHP in, HIGH); 
+
?
}
+
?
}
+
  
 +
====例子程序3====
 +
<pre style='color:blue'>
 +
const int DINPin = 4;        //數(shù)據(jù)引腳 連接到數(shù)字P4口
 +
const int CLKPin = 5;        //時鐘引腳 連接到數(shù)字P5口
 +
const int LTHPin = 6;        //鎖存引腳 連接到數(shù)字P6口
 +
 +
byte LieScan[16] = {                        //列掃描,點陣只點亮一行
 +
  0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F
 +
};
 +
byte HanZi_1[] = {
 +
  0x04,0xFA,0x89,0xBA,0xC0,0x1C,0x40,0xFF    //創(chuàng)
 +
};
 +
byte HanZi_2[] = {
 +
  0x4A,0xAE,0xFB,0x2E,0x4A,0xFC,0x0A,0xF9    //新
 +
};
 +
byte HanZi_3[] = {
 +
  0x04,0x02,0x24,0x40,0x40,0x24,0x02,0x04    //^_^
 +
};
 +
void setup() {
 +
  pinMode(DINPin,OUTPUT);      //設(shè)置數(shù)據(jù)引腳為輸出
 +
  pinMode(CLKPin,OUTPUT);      //設(shè)置鎖存引腳為輸出
 +
  pinMode(LTHPin,OUTPUT);      //設(shè)置時鐘引腳為輸出
 +
}
 +
void loop() {
 +
  for(unsigned char times_1 = 0;times_1 <250;times_1++) {  //持續(xù)刷新250次
 +
    for(char x = 0;x <8;x++) {
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_1[x]);  //再送行數(shù)據(jù)
 +
      digitalWrite(LTHPin, LOW);    //刷新顯示
 +
      digitalWrite(LTHPin, HIGH);
 +
    }
 +
  }
 +
  for(unsigned char times_2 = 0;times_2 <250;times_2++) {  //持續(xù)刷新250次
 +
    for(char x = 0;x <8;x++) {
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_2[x]);  //再送行數(shù)據(jù)
 +
      digitalWrite(LTHPin, LOW);    //刷新顯示
 +
      digitalWrite(LTHPin, HIGH);
 +
    }
 +
  }
 +
  for(unsigned char times_3 = 0;times_3 <250;times_3++) {  //持續(xù)刷新250次
 +
    for(char x = 0;x <8;x++) {
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
 +
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_3[x]);  //再送行數(shù)據(jù)
 +
      digitalWrite(LTHPin, LOW);    //刷新顯示
 +
      digitalWrite(LTHPin, HIGH);
 +
    }
 +
  }
 +
}
 
</pre>
 
</pre>
?
[[文件:ewg2.jpg|500px|有框|居中]]
+
====程序3效果====
 +
在 8 * 8 LED Martix Module模塊上輪流顯示“創(chuàng) 新 ^_^”
 +
 
 +
==產(chǎn)品相關(guān)推薦==
 +
[[文件:erweima.png|230px|無框|]]
 +
===購買地址===
 +
[http://gharee.com/goods-107.html 8*8點陣模塊]
 +
===周邊產(chǎn)品推薦===
 +
[http://gharee.com/goods-128.html Arduino LCD12864 點陣液晶擴展板 12864液晶屏]
 +
<br/>
 +
[http://gharee.com/goods-127.html Arduino 12864點陣液晶 51單片機]
 +
===相關(guān)問題解答===
 +
[http://www.makerspace.cn/forum.php?mod=viewthread&tid=3052&highlight=%E7%82%B9%E9%98%B5 8*8點陣模塊桃心呼吸燈效果 求助]<br/>
 +
[http://www.makerspace.cn/forum.php?mod=viewthread&tid=2762&highlight=%E7%82%B9%E9%98%B5 8x8點陣程序燒進去,顯示的圖案沒有規(guī)律]
 +
===相關(guān)學(xué)習(xí)資料===
 +
[http://pan.baidu.com/s/13jrx3 用戶手冊]<br/>
 +
[http://www.makerspace.cn/portal.php 奧松機器人技術(shù)論壇]

2016年4月5日 (二) 16:47的最后版本


Ewg1.jpg

目錄

產(chǎn)品概述

還在為驅(qū)動點陣連接復(fù)雜的接線煩惱嗎?還在為 Arduino 控制器屈指可數(shù)的 I/O 資源犯愁嗎?2013 最新推出的 8X8 LED Matrix Module v1.0 點陣模塊是哈爾濱奧松機器人科技有限公司研發(fā)的一款易安裝、易連接、可拓展的 8X8 點陣模塊。此模塊采用高速的 74HC595 串并轉(zhuǎn)換芯片。SPI 接口,僅需要 3 根信號線即可驅(qū)動多塊 8x8 點陣屏,最大限度的節(jié)省您寶貴的 Arduino 控制器 I/O 資源。行列信號全部傳輸完畢后再更新顯示,顯示亮麗,可靠性高。適合于 Arduino 控制器、STC 單片機、AVR 單片機等。

規(guī)格參數(shù)

  1. 產(chǎn)品名稱:8*8點陣模塊
  2. 產(chǎn)品貨號:RB - 05L009
  3. 工作電壓:DC 5V
  4. 接口類型:SPI
  5. 產(chǎn)品類型:顯示輸出
  6. 制作工藝:FR4雙面噴錫
  7. 固定孔尺寸:3.2 mm
  8. 對角固定孔間距:22.67 mm
  9. 固定孔距板邊緣:7.93 mm
  10. 人性化設(shè)計:可級聯(lián)應(yīng)用顯示
  11. 工作溫度:10℃-30℃
  12. 工作濕度:10%~90% 無凝結(jié)
  13. 重量:12g
  14. 產(chǎn)品尺寸:32mm x 32mm x 23mm

使用方法

工作原理

通過 74HC595 移位寄存器連接 8*8 點陣液晶模塊,模塊與單片機之間使用 SPI 進行通信,只需要占用三個IO接口,兩片 74HC595 模塊使用級聯(lián)的方式連接,實現(xiàn)串行輸入并行輸出,來控制點陣液晶。

編程原理

本例子程序中需要使用一個擴展程序語句,介紹如下:

  • shiftOut()語句

描述:將一個數(shù)據(jù)的一個字節(jié)一位一位的移出。從最高有效位(最左邊)或最低有效位(最右邊)開始。依次向數(shù)據(jù)腳寫入每一位,之后時鐘腳被拉高或拉低,指示剛才的數(shù)據(jù)有效。
語法:
shiftOut(dataPin, clockPin, bitOrder, value)
參數(shù):

  • dataPin:輸出每一位數(shù)據(jù)的引腳(int)
  • clockPin:時鐘腳,當dataPin有值時此引腳電平變化(int)
  • bitOrder:輸出位的順序,最高位優(yōu)先或最低位優(yōu)先
  • value: 要移位輸出的數(shù)據(jù)(byte)

注意:
dataPin和clockPin要用pinMode()配置為輸出。 shiftOut目前只能輸出1個字節(jié)(8位),所以如果輸出值大于255需要分兩步。

//最高有效位優(yōu)先串行輸出
int 數(shù)據(jù)= 500;
//移位輸出高字節(jié)
shiftOut(dataPin, clock, MSBFIRST, (data >> 8));  
//移位輸出低字節(jié)
shiftOut(data, clock, MSBFIRST, data);
//最低有效位優(yōu)先串行輸出
data = 500;
//移位輸出低字節(jié)
shiftOut(dataPin, clock, LSBFIRST, data);  
//移位輸出高字節(jié)
shiftOut(dataPin, clock, LSBFIRST, (data >> 8)); 

實驗例程

使用硬件

接線方法

通過 SPI 通信方式中的 DIN、CLK、LTH 對 LED 點陣進行控制。DIN 為數(shù)據(jù),CLK為時鐘,LTH 為鎖存。 將 8 * 8 點陣模塊的 DIN、CLK、LTH 分別連接到 Arduino 傳感器擴展板的數(shù)字 4、5、6 引腳,VCC、GND 分別連接到傳感器擴展板的任意一個 V、G 端口。最后連接Arduino 控制器至計算機。 如下圖所示: 整體連接圖:

02L00901.png

接線細節(jié)圖:

02L00902.png

例子程序1

//Pin connected to ST_CP of 74HC595
int latchPin = 6;//定義LTH引腳為D6
//Pin connected to SH_CP of 74HC595
int clockPin = 5;//定義CLK引腳為D5
//Pin connected to DS of 74HC595
int dataPin = 4;//定義DIN引腳為D4
int tab[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
void setup() {
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}

void loop() {
  for(int i = 0; i < 8; i++){
    for(int j = 0; j < 8; j++){
      digitalWrite(latchPin, LOW); 
      shiftOut(dataPin, clockPin, LSBFIRST, tab[i]);//掃描顯示每一列
      shiftOut(dataPin, clockPin, LSBFIRST, 0xff); //將行顯示設(shè)置為低電平
      digitalWrite(latchPin, HIGH); 
      delay(50);  
    }
  }
    for(int i = 0; i < 8; i++){
    for(int j = 0; j < 8; j++){
      digitalWrite(latchPin, LOW);
      shiftOut(dataPin, clockPin, LSBFIRST, 0x00);//將列顯示設(shè)置為高電平
      shiftOut(dataPin, clockPin, LSBFIRST, tab[i]); //掃描顯示每一行
      digitalWrite(latchPin, HIGH); 
      delay(50);  
    }
  }
} 

程序1效果

點陣液晶分別以行掃描和列掃描顯示

例子程序2

const int DINPin = 4;         //數(shù)據(jù)引腳 連接到數(shù)字P4口
const int CLKPin = 5;         //時鐘引腳 連接到數(shù)字P5口
const int LTHPin = 6;         //鎖存引腳 連接到數(shù)字P6口

byte LieScan[16] = {                         //列掃描,點陣只點亮一列
  0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F
};
byte HanZi_1[] = {
  0x1c,0x7c,0x7e,0x3f,0x3f,0x7e,0x7c,0x1c    //顯示心形圖案
};
void setup() {
  pinMode(DINPin,OUTPUT);      //設(shè)置數(shù)據(jù)引腳為輸出
  pinMode(CLKPin,OUTPUT);      //設(shè)置鎖存引腳為輸出
  pinMode(LTHPin,OUTPUT);      //設(shè)置時鐘引腳為輸出
}
void loop() {
  for(unsigned char times_1 = 0;times_1 <250;times_1++) {  //持續(xù)刷新250次
    for(char x = 0;x <8;x++) {
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_1[x]);  //再送行數(shù)據(jù)
      digitalWrite(LTHPin, LOW);    //刷新顯示
      digitalWrite(LTHPin, HIGH);
    }
  }
}

程序2效果

點陣液晶屏顯示為心形圖案

例子程序3

const int DINPin = 4;         //數(shù)據(jù)引腳 連接到數(shù)字P4口
const int CLKPin = 5;         //時鐘引腳 連接到數(shù)字P5口
const int LTHPin = 6;         //鎖存引腳 連接到數(shù)字P6口

byte LieScan[16] = {                         //列掃描,點陣只點亮一行
  0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F
};
byte HanZi_1[] = {
  0x04,0xFA,0x89,0xBA,0xC0,0x1C,0x40,0xFF    //創(chuàng)
};
byte HanZi_2[] = {
  0x4A,0xAE,0xFB,0x2E,0x4A,0xFC,0x0A,0xF9    //新
};
byte HanZi_3[] = {
  0x04,0x02,0x24,0x40,0x40,0x24,0x02,0x04    //^_^
};
void setup() {
  pinMode(DINPin,OUTPUT);      //設(shè)置數(shù)據(jù)引腳為輸出
  pinMode(CLKPin,OUTPUT);      //設(shè)置鎖存引腳為輸出
  pinMode(LTHPin,OUTPUT);      //設(shè)置時鐘引腳為輸出
}
void loop() {
  for(unsigned char times_1 = 0;times_1 <250;times_1++) {  //持續(xù)刷新250次
    for(char x = 0;x <8;x++) {
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_1[x]);  //再送行數(shù)據(jù)
      digitalWrite(LTHPin, LOW);    //刷新顯示
      digitalWrite(LTHPin, HIGH);
    }
  }
  for(unsigned char times_2 = 0;times_2 <250;times_2++) {  //持續(xù)刷新250次
    for(char x = 0;x <8;x++) {
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_2[x]);  //再送行數(shù)據(jù)
      digitalWrite(LTHPin, LOW);    //刷新顯示
      digitalWrite(LTHPin, HIGH);
    }
  }
  for(unsigned char times_3 = 0;times_3 <250;times_3++) {  //持續(xù)刷新250次
    for(char x = 0;x <8;x++) {
      shiftOut(DINPin, CLKPin, MSBFIRST, LieScan[x]);  //先選擇列
      shiftOut(DINPin, CLKPin, MSBFIRST, HanZi_3[x]);  //再送行數(shù)據(jù)
      digitalWrite(LTHPin, LOW);    //刷新顯示
      digitalWrite(LTHPin, HIGH);
    }
  }
}

程序3效果

在 8 * 8 LED Martix Module模塊上輪流顯示“創(chuàng) 新 ^_^”

產(chǎn)品相關(guān)推薦

Erweima.png

購買地址

8*8點陣模塊

周邊產(chǎn)品推薦

Arduino LCD12864 點陣液晶擴展板 12864液晶屏
Arduino 12864點陣液晶 51單片機

相關(guān)問題解答

8*8點陣模塊桃心呼吸燈效果 求助
8x8點陣程序燒進去,顯示的圖案沒有規(guī)律

相關(guān)學(xué)習(xí)資料

用戶手冊
奧松機器人技術(shù)論壇