51单片机做的74HC595驱动控制LED
单片机代码如下:
- #include<reg51.h>
- #include<intrins.h>
- sbit SRCLK=P3^6;
- sbit RCLK=P3^5;
- sbit SER=P3^4;
- void Hc595SendByte(unsigned char dat);
- void Delay10ms(unsigned int ) ;
- void main()
- {
- unsigned char ledNum;
- ledNum=0xfe;
- while(1)
- {
- Hc595SendByte(ledNum);
- ledNum=_cror_(ledNum,1);
- Delay10ms(50);
- }
- }
- /*******************************************************************************
- * 函数名 : Hc595SendByte(unsigned char dat)
- * 函数功能 : 想74H595发送一个字节的数据
- * 输入 : 无
- * 输出 : 无
- *******************************************************************************/
- void Hc595SendByte(unsigned char dat)
- {
- unsigned char a;
- SRCLK=0;
- RCLK=0;
- for(a=0;a<8;a++)
- {
- SER=dat>>7;
- dat<<=1;
- SRCLK=1;
- _nop_();
- _nop_();
- SRCLK=0;
- }
- RCLK=1;
- _nop_();
- _nop_();
- RCLK=0;
- }
- /*******************************************************************************
- * 函数名 : Delay10ms
- * 函数功能 : 延时函数,延时10ms
- * 输入 : c
- * 输出 : 无
- *******************************************************************************/
- void Delay10ms(unsigned int c) //误差 0us
- {
- unsigned char a,b;
- for(;c>0;c--)
- for(b=38;b>0;b--)
- for(a=130;a>0;a--);
- }
复制代码
下载:
595LED.rar
(18.28 KB, 下载次数: 43)
|