单片机源程序如下:
- #include "reg51.h"
- #include "intrins.h"
- typedef unsigned int u16;
- typedef unsigned char u8;
- sbit SRCLK=P3^6;
- sbit RCLK=P3^5;
- sbit SER=P3^4;
- //0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01
- //0xff,0xc3,0xfb,0xfb,0xf7,0xf7,0xf7,0xf7
- //0x
- //0xf7,0xf7,0xf7,0xf7,0xfb,0xfb,0xc3,0xff
- //0x01,0x02,0x04,0x08,0x08,0x10,0x20,0x40
- ledduan[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
- ledwei[]={0xff,0xc9,0xb6,0xbe,0xdd,0xeb,0xf7,0xff};
-
- void delay(u16 i)
- {
- while(i--);
- }
- void LED1(u8 dat1)
- {
- P0=dat1;
- }
- void Hc595SendByte(u8 dat)
- {
- u8 a;
- SRCLK = 1;
- RCLK = 1;
- for(a=0;a<8;a++)
- {
- SER = dat >> 7; //
- dat <<= 1;
- SRCLK = 0; //
- _nop_();
- _nop_();
- SRCLK = 1;
- }
- RCLK = 0;
- _nop_();
- _nop_();
- RCLK = 1;
- }
- void main()
- {
- u8 i=0;
- while(1)
- {
- for(i=8;i>0;i--)
- {
- LED1(~ledduan[i]);
- Hc595SendByte(~ledwei[i]);
- delay(100) ;
-
- Hc595SendByte (0x00);
-
- }
- break;
- }
- while(1)
- for(i=0;i<8;i++)
- {
- LED1(~ledduan[i]);
- Hc595SendByte(~ledwei[i]);
- delay(100) ;
-
- Hc595SendByte (0x00);
- // break;
- }
- }
复制代码
所有资料51hei提供下载:
51单片机-心型.rar
(2.31 MB, 下载次数: 6)
|