|
兩個74hc595串聯(lián)的不是就有16個輸出腳了嗎?想讓它輸出10個0和6個1也就是0000000000111111我的程序如下,但是是錯的求大神指正。
單片機(jī)源程序如下:
- #include<reg52.h>
- #include <intrins.h>
- #define NOP() _nop_() /* 定義空指令 */
- //SPI IO
- sbit MOSIO =P3^4;
- sbit R_CLK =P3^5;
- sbit S_CLK =P3^6;
- void HC595SendData(unsigned char SendVal);//向595發(fā)送數(shù)據(jù)
- main()
- {
- HC595SendData(0x00);//初始化595使他為高電平 讓LED處于熄滅狀態(tài)
- HC595SendData(0xfc00);//1111110000000000
- }
- void HC595SendData(unsigned char SendVal)
- {
- unsigned char i;
- for(i=0;i<8;i++)
- {
- if((SendVal<<i)&0x80) MOSIO=1;
- else MOSIO=0;
- S_CLK=0;
- NOP();
- NOP();
- S_CLK=1;
- }
-
- R_CLK=0;
- NOP();
- NOP();
- R_CLK=1;
- }
復(fù)制代碼
像代碼中的藍(lán)字我把8改成16過,把80改成800和8080過都不起作用,請問要怎么改呢才能輸出本文開頭提的問題呢?注:這個程序在一片595中使用是可以的。
|
|