?? 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 + -