📄 hd7279.h
字号:
/*******************函数声明************/
void long_delay();
void short_delay();
void delay1ms(unsigned int);
void send_byte(unsigned char);
unsigned char receive_byte();
unsigned char read7279(unsigned char );
void write7279(unsigned char ,unsigned char );
/******************HD7279A指令*********/
//纯指令
#define CMD_RESET 0XA4
#define CMD_TEST 0XBF
#define RTR_UNCYL 0XA0
#define RTL_UNCYL 0XA1
#define RTR_CYCLE 0XA2
#define RTL_CYCLE 0XA3
//数据指令
#define DECODER0 0X80
#define DECODER1 0XC8
#define UNDECODER 0X90
#define FLASH 0X88
#define SEG_ON 0XE0
#define SEG_OFF 0XC0
#define BLINK 0X98//消隐
#define CMD_READ 0X15
/******************宏定义**************/
#define uchar unsigned char
#define uint unsigned int
/******************I/O定义*************/
sbit dat=P1^2;
sbit key=P1^3;
sbit cs=P1^4;
sbit clk=P1^5;
sbit reset=P1^6;
//发送指令
void send_byte(unsigned char out_byte)
{
//先放入数据,待数据稳定时,时钟上升沿
uchar i;
cs=0;
long_delay();//延时T1时间
for(i=0;i<8;i++)
{
//从高位到低位
if(out_byte&0x80)
{
dat=1;
}
else
{
dat=0;
}
clk=1;
short_delay();//延时T2
clk=0;
short_delay();//延时T3
out_byte=out_byte*2;//左移一位
}
dat=0;//输出
}
//接收数据
unsigned char receive_byte(void)
{
//先放入数据,待数据稳定时,时钟上升沿
uchar i,in_byte;
dat=1;//输入
long_delay();//延时T5
for(i=0;i<8;i++)
{
if(dat)
{
in_byte=in_byte|0x01;
}
clk=1;
short_delay(); //延时T7
clk=0;
short_delay(); //延时T7
in_byte=in_byte*2;
}
dat=0;
return(in_byte);
}
//数据指令的读取
unsigned char read7279(unsigned char command)
{
send_byte(command);
return(receive_byte());
}
//数据指令的写入
void write7279(unsigned char cmd,unsigned char da)
{
send_byte(cmd);
send_byte(da);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -