|
- #include<reg52.h>
- #include<intrins.h>
- #define NOP() _nop_()
- #define ParIn P0//并行輸入,一次輸入8位
- sbit Rout=P1^7; //寄存器串行輸出
- sbit Mout=P1^1; //單片機(jī)輸出控制,通過(guò)Rout來(lái)控制
- sbit Rclk=P3^6; //寄存器時(shí)鐘信號(hào),本線(xiàn)與一致信號(hào)相連
- sbit Rload=P1^6;//寄存器并行輸入裝載信號(hào),低電平裝載
- void Delay10ms(unsigned int c);
- void main()
- {
- int i;
- while(1)
- {
- ParIn=0x1d;
- Rload=1;//準(zhǔn)備裝載
- NOP();//延時(shí)
- Rload=0;//裝載
- NOP();//延時(shí)
- Rload=1;//裝載結(jié)束
- for(i=0;i<8;i++)
- {
-
- if(Rout==1)
- {
- Mout=Rout;
- }
- else
- {
- Mout=0;
- }
- Rclk=1;//準(zhǔn)備移出
- NOP();
- Rclk=0;//移出一次
- NOP();
- Delay10ms(100);
- }
- }
- }
- void Delay10ms(unsigned int c) //誤差 0us
- {
- unsigned char a, b;
- //--c已經(jīng)在傳遞過(guò)來(lái)的時(shí)候已經(jīng)賦值了,所以在for語(yǔ)句第一句就不用賦值了--//
- for (;c>0;c--)
- {
- for (b=38;b>0;b--)
- {
- for (a=130;a>0;a--);
- }
-
- }
- }
復(fù)制代碼
|
|