百度了很久, 擴展IO的貼子說的都不是很詳細
現在把我測試出來的程序詳細標注
方便新人理解
電路原理圖如下:
74HC595.png (48.14 KB, 下載次數: 91)
下載附件
2019-3-28 14:23 上傳
IMG_20190328_140631.jpg (100.3 KB, 下載次數: 84)
下載附件
2019-3-28 14:23 上傳
IMG_20190328_140540.jpg (92.86 KB, 下載次數: 75)
下載附件
2019-3-28 14:23 上傳
IMG_20190328_140544.jpg (70.29 KB, 下載次數: 76)
下載附件
2019-3-28 14:23 上傳
單片機源程序如下:
- /*************************************************
- * 單片機: STC89C52
- 芯 片: 74HC595
- 功 能: 擴展單片機IO口
- 實 現: 可自由控制74HC595(QA~QH高低電平)
- *************************************************/
- #include <reg51.h>
- #include <intrins.h>
- #define NOP() _nop_() /* 定義空指令 */
- //SPI IO
- sbit MOSIO =P3^4;
- sbit R_CLK =P3^5;
- sbit S_CLK =P3^6;
- //0xff 全滅
- //0xfe 1111 1110 (二進制八位,從左到右代表QH-QA, 0代表高電平,1代表低電平,所以這一組只亮QA)
- //0xfd 1111 1101 (二進制八位,從左到右代表QH-QA, 0代表高電平,1代表低電平,所以這一組只亮QB)
- //0xfb 1111 1011 (二進制八位,從左到右代表QH-QA, 0代表高電平,1代表低電平,所以這一組只亮QC)
- //0xf7 1111 0111 (二進制八位,從左到右代表QH-QA, 0代表高電平,1代表低電平,所以這一組只亮QD)
- //0xef 1110 1111 (二進制八位,從左到右代表QH-QA, 0代表高電平,1代表低電平,所以這一組只亮QE)
- //0xdf 1101 1111 (二進制八位,從左到右代表QH-QA, 0代表高電平,1代表低電平,所以這一組只亮QF)
- //0xbf 1011 1111 (二進制八位,從左到右代表QH-QA, 0代表高電平,1代表低電平,所以這一組只亮QG)
- //0x7f 0111 1111 (二進制八位,從左到右代表QH-QA, 0代表高電平,1代表低電平,所以這一組只亮QH)
- unsigned char LED_HL[9]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
- unsigned int i1;
- void delay(unsigned int i); //函數聲名
- void HC595SendData(unsigned char SendVal);
- main()
- {
- HC595SendData(0xff); //初始化595使他為高電平 讓LED處于熄滅狀態
- while(1)
- {
- //循環9次,先全滅,在從QA亮到QH
- for(i1=0;i1<9;i1++) {
- HC595SendData(LED_HL[i1]); //調用595驅動程序 把LED的數據送到595
- delay(200);
- }
- //只亮QC
- HC595SendData(LED_HL[3]); //調用595驅動程序 把LED的數據送到595
- delay(500);
- //只亮QD和QH 0x77=01110111
- HC595SendData(0x77); //調用595驅動程序 把LED的數據送到595
- delay(500);
- //循環8次,讓QF高低電平
- for(i1=0;i1<8;i1++) {
- HC595SendData(LED_HL[0]); //調用595驅動程序 把LED的數據送到595
- delay(200);
- HC595SendData(LED_HL[6]); //調用595驅動程序 把LED的數據送到595
- delay(200);
- }
- //需要更多玩法可自行用"進制轉換工具"手動輸入想要的二進制自己轉換成十六進制
- }
- }
- //未完, 請下載附件
復制代碼
全部資料51hei下載地址:
STC89C52 74HC595擴展IO口.zip
(62.36 KB, 下載次數: 184)
2019-3-28 14:27 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|