📄 164.h
字号:
//定义LS164管脚和led控制脚
#define DDR_CLK DDRA
#define DDR_DATA DDRA
#define DDR_CLEAR DDRA
#define DDR_SEL DDRC
#define PORT_CLK PORTA
#define PORT_DATA PORTA
#define PORT_CLEAR PORTA
#define PORT_SEL PORTC
#define CLK PA2
#define DATA PA4
#define CLEAR PA3
#define SEL 0x3C
unsigned char Table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void Init_164()
{
DDR_CLK|=(1<<CLK); //164的时钟,数据,清零
DDR_DATA|=(1<<DATA);
DDR_CLEAR|=(1<<CLEAR);
DDR_SEL|=SEL; //4位数码管选通端
}
void Clear_164()
{
PORT_CLEAR|=(1<<CLEAR);
}
void write_164(unsigned char i)
{
char n;
for(n=8;n>0;n--)
{
if(i&0x80) PORT_DATA|=(1<<DATA);
else PORT_DATA&=~(1<<DATA);
NOP();
PORT_CLK|=(1<<CLK);
NOP();
PORT_CLK&=~(1<<CLK);
i=(i<<1);
}
}
void write_LED(unsigned char *p)
{
unsigned char i,sel=0x04;
for(i=0;i<4;i++)
{
write_164(Table[p[i]]);
PORT_SEL&=(~sel);
delay_ms(2);
PORT_SEL|=SEL;
sel=sel<<1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -