📄 595led.c
字号:
#include <REG51.h>
//#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code bseg[16]={0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff};//列驱动选码(低位)
/*uchar SEGx[32]={0x08,0x24,0x88,0x33,0x78,0x2C,0x0F,0x23,
0xC8,0x28,0x08,0x70,0x20,0x00,0xF8,0xFF,
0x4F,0x22,0x48,0x22,0x49,0x22,0xFE,0x3F,
0x48,0x22,0x48,0x22,0x08,0x20,0x00,0x00};/*"雄",0*/
uchar SEGx[32]={0x00,0x00,0xFC,0x07,0x44,0x04,0x44,0x04,
0x44,0x04,0xFC,0x07,0x10,0x00,0x90,0x00,
0x10,0x03,0x10,0x40,0x10,0x80,0xFF,0x7F,
0x10,0x00,0x10,0x00,0x10,0x00,0x00,0x00};/*"时",0*/
sbit LEDshclk=P2^0;
sbit LEDdata=P2^1;
sbit LEDstclk=P2^2;
void delay(void)
{
unsigned int i,j;
for(i=0;i<1;i++)
{
for(j=0;j<5;j++)
{;}
}
}
void hc164send(uchar c)
{
uchar temp;
for(temp=0;temp<8;temp++)
{
if(c &0x80)
LEDdata = 1;
else LEDdata = 0;
LEDshclk=0;
delay();
LEDshclk=1;
delay();
c<<=1;
}
}
void hc595out(void )
{LEDstclk=0;
delay();
LEDstclk=1;
delay();
}
void main(void)
{uchar n;
while(1)
{
for(n=0;n<16;n++)
{
P1=bseg[n];
hc164send(SEGx[2*n+1]);
hc164send(SEGx[2*n]);
hc595out();
delay(); //delay(); delay(); // delay(); delay();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -