|
各位好:
我用EB0037多功能板附送的例程學(xué)習(xí)一下Arduino 的shiftOut()函數(shù)程序如下:
int latchPin = 4; // 定義74HC595的 LCHCLK接 4端口
int clockPin = 7; // 定義74HC595的 SFICLK接 7端口
int dataPin = 8; // 定義74HC595的 SDI接 8端口
unsigned char Display[] = {
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0X80,0X90,0x00}; // 共陽(yáng)數(shù)碼管0~9的顯示數(shù)值 0x00表示全亮 0xFF表示全熄
unsigned char SMGWei[] = {
0xF1,0xF2,0xF4,0xF8}; // 四個(gè)數(shù)碼管的位數(shù)值, 1為顯示, 0為熄滅
void setup () {
pinMode(latchPin,OUTPUT); // 定義 4端口為輸出模式
pinMode(clockPin,OUTPUT); // 定義 7端口為輸出模式
pinMode(dataPin,OUTPUT); } // 定義 8端口為輸出模式
void loop() {
for(unsigned char j=0; j<=9; j++){ // 第1個(gè)循環(huán)是把 0~9數(shù)字顯示出來(lái)
for(unsigned char k=0; k<=100; k++) { // 第2個(gè)循環(huán)是把 顯示的數(shù)字顯示一段時(shí)間才轉(zhuǎn)變
for(unsigned char i=0; i<=3; i++) { // 第3個(gè)循環(huán)是 四個(gè)數(shù)碼管的4個(gè)位動(dòng)態(tài)顯示出來(lái)
digitalWrite(latchPin, LOW); // 將ST_CP口上面加低電平讓芯片準(zhǔn)備好接收數(shù)據(jù)
shiftOut(dataPin,clockPin,MSBFIRST,Display[j]); // 發(fā)送顯示碼 0-9
shiftOut(dataPin,clockPin,MSBFIRST,SMGWei); // 發(fā)送數(shù)碼管位
digitalWrite(latchPin,HIGH); // 將ST_CP這個(gè)針腳恢復(fù)到高電平
delay(2); } } // 動(dòng)態(tài)數(shù)碼管顯示的延時(shí)2ms
} }
完成後, 顯示的是 0000->1111->2222->3333->4444->9999->8888->7777->8888->9999
我看了很久都發(fā)現(xiàn)不到什么問(wèn)題
請(qǐng)教一下各位
|
-
-
原理圖.pdf
2025-3-1 22:56 上傳
點(diǎn)擊文件名下載附件
18.22 KB, 下載次數(shù): 0
|