📄 led7279.c
字号:
********************************************************************************************************/
#include <iom128v.h>
#include <macros.h>
#include <MATH.H>
/*--------------------------------------------
调用方式:自行I/O 口定义﹫2001/05/12
函数说明:私有函数,各接口定义
--------------------------------------------*/
#define HD7279_CS_SEL DDRE |= BIT2
#define HD7279_CS_CLR PORTE &=~BIT2 //低电平输出
#define HD7279_CS_SET PORTE |= BIT2
#define HD7279_CLK_SEL DDRE |= BIT3
#define HD7279_CLK_CLR PORTE &=~BIT3
#define HD7279_CLK_SET PORTE |= BIT3
#define HD7279_DATA_OUTSEL DDRE |= BIT4
#define HD7279_DATA_CLR PORTE &=~BIT4
#define HD7279_DATA_SET PORTE |= BIT4
#define HD7279_DATA_INSEL DDRE &= ~ BIT4
#define HD7279_DATA_IN (PINE>>4)&0x01
#ifdef HD7279
/*--------------------------------------------
调用方式:自定义函数﹫2001/05/12
函数说明:私有函数,自行定义
--------------------------------------------*/
#define RunKey 0x02
#define StopKey 0x04
#define HD7279_KEY_SEL
#define HD7279_KEY_CLR
#define HD7279_KEY_SET
#define HD7279_KEY_IN
/*--------------------------------------------
调用方式: HD7279A 各指令定义﹫2001/05/12
函数说明:私有函数,接口定义
--------------------------------------------*/
void HD7279_Init(void)
{
HD7279_CS_SEL;
HD7279_CLK_SEL;
HD7279_DATA_OUTSEL;
HD7279_KEY_SEL;
}
/*--------------------------------------------
调用方式: void HD7279_LongDelay(void) 等侍函数﹫2001/05/12
函数说明 私有函数,>500ms
--------------------------------------------*/
void HD7279_LongDelay(void)
{
unsigned char i;
for (i=0;i<136;i++);
}
void HD7279_ShortDelay(void)
{
unsigned char i;
for (i=0;i<116;i++);
}
/*--------------------------------------------
调用方式:void HD7279_ShortDelay(void) 等侍函数﹫2001/05/12
函数说明:私有函数,=500ms
--------------------------------------------*
/void HD7279_ShortDelay(void)
{;}
/*--------------------------------------------
调用方式:void Delay10ms(unsigned char time) 等侍函数﹫2001/05/12
函数说明:私有函数, 6M晶振
--------------------------------------------*/
void Delay10ms(unsigned char time)
{
unsigned char i;
unsigned int j;
for(i=0;i<time;i++)
{
for(j=0;j<931;j++)
{;}
}
}
/*--------------------------------------------
调用方式:void HD7279_ShortDelay(void) 函数﹫2001/05/12
函数说明:私有函数,送指令
--------------------------------------------*/
void HD7279_SendByte( unsigned char out_byte)
{
unsigned char i;
HD7279_CS_CLR;
HD7279_DATA_OUTSEL;
HD7279_LongDelay();
for(i=0;i<8;i++)
{
if(out_byte&0x80)
{
HD7279_DATA_SET;
}
else
{
HD7279_DATA_CLR;
}
HD7279_CLK_SET;
HD7279_ShortDelay();
HD7279_CLK_CLR;
HD7279_ShortDelay();
out_byte=out_byte<<1;
}
HD7279_DATA_CLR;
}
/*--------------------------------------------
调用方式:void Write7279(unsigned char command, unsigned char dta) 函数﹫2001/05/12
函数说明:私有函数,写函数
--------------------------------------------*/
void Write7279(unsigned char command, unsigned char dta)
{
HD7279_SendByte( command );
HD7279_SendByte( dta );
}
/*--------------------------------------------
调用方式:unsigned char HD7279_ReceiveByte(void)函数﹫2001/05/12
函数说明:私有函数,接受一个BYTE函数
--------------------------------------------*/
unsigned char HD7279_ReceiveByte(void)
{
unsigned char i, in_byte;
HD7279_DATA_SET;
HD7279_LongDelay();
for(i=0;i<8;i++)
{
HD7279_CLK_SET;
HD7279_ShortDelay();
in_byte=in_byte<<1;
HD7279_DATA_INSEL;
if(HD7279_DATA_IN)
{
in_byte=in_byte|0x01;
}
HD7279_CLK_CLR;
HD7279_ShortDelay();
}
HD7279_DATA_OUTSEL;
HD7279_DATA_CLR;
return (in_byte);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -