仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei截圖_20210628151530.png (119.58 KB, 下載次數: 63)
下載附件
2021-6-28 15:16 上傳
單片機源程序如下:
- #include "REG52.H"
- #define u8 unsigned char
- #define u16 unsigned int
-
- //74hc165
- sbit DIN=P1^0;
- sbit SH =P1^1;
- sbit CLK=P1^2;
- //74hc595
- sbit STCP=P1^3; //鎖存,上升沿有效
- sbit DAT =P1^4; //數據
- sbit SHCP=P1^5; //時鐘
- void delay(u16 x)
- {
- while(x--);
- }
- u8 Read_74HC165D()
- {
- u8 i,d=0;
-
- DIN=1;
- CLK=1;
- SH =0;
- SH =1;
- for(i=0;i<8;i++)
- {
- d<<=1;
- CLK=1;
- if(DIN)
- d++;
- delay(10);
- CLK=0;
- }
-
- return d;
- }
- void Send_74HC595(u8 byte)
- {
- u8 i;
- for(i=0;i<8;i++)
- {
- if(byte&0x80) //高位先發
- DAT=1;
- else
- DAT=0;
- delay(10);
- SHCP=0;
- delay(10);
- SHCP=1;
-
- byte<<=1;
- }
- STCP=0;
- delay(10);
- STCP=1;
- }
- void main()
- {
- u8 dat;
- //74hc165
- DIN=1;
- SH =1;
- CLK=1;
- //74hc595
- STCP=1; //鎖存,上升沿有效
- DAT =1; //數據
- SHCP=1; //時鐘
- while(1)
- {
- dat=Read_74HC165D();
- Send_74HC595(dat);
- P2=dat;
- delay(10000);
- }
- }
復制代碼
51hei.png (11.42 KB, 下載次數: 71)
下載附件
2021-6-28 15:35 上傳
所有資料51hei提供下載:
單片機IO口輸入輸出擴展.zip
(153.42 KB, 下載次數: 25)
2021-6-28 15:16 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|