📄 595.c
字号:
#include "Include.h"
//硬件连接
//595 RCK PA5
//595 CLK PA6
//595 DATA PA7
//Power PC0
#define SetCLK(); {PORTA|=0x40;}
#define ClrCLK(); {PORTA&=0xBF;}
#define SetRCK(); {PORTA|=0x20;}
#define ClrRCK(); {PORTA&=0xDF;}
#define SetData(); {PORTA|=0x80;}
#define ClrData(); {PORTA&=0x7F;}
unsigned char DisPlayWord[3]={0xFF,0xFF,0xFF};//595显示数组
void HC595On(void)
{
PORTC|=1<<PC0;
}
void HC595Off(void)
{
DisPlayWord[0]=0xFF;
DisPlayWord[1]=0xFF;
DisPlayWord[2]=0xFF;
Refresh595();
PORTC&=0xFE;
}
//595初始化
void HC595Init(void)
{
//设置PC0为输出
DDRC|=1<<PC0;
HC595On();//打开595
//设置PA5 PA6 PA7为输出
DDRA|=0xE0;
//设置PC0为输出
DDRC|=0x01;
Refresh595();//更新595
}
void CLKPulse(void)
{
ClrCLK();
SetCLK();
ClrCLK();
}
void RCKPulse(void)
{
ClrRCK();
SetRCK();
ClrRCK();
}
void SendCharTo595(unsigned char sdata)
{
unsigned char i;
unsigned char volatile t;
for(i=0;i<8;i++)
{
t=sdata<<i;
t=t>>7;
if(1==t)
{
SetData();
}
else
{
ClrData();
}
CLKPulse();
}
}
//更新595
void Refresh595(void)
{
SendCharTo595(DisPlayWord[0]);
SendCharTo595(DisPlayWord[1]);
SendCharTo595(DisPlayWord[2]);
RCKPulse();
}
void Test595(void)
{
HC595Init();
while(1) {;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -