⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key-led-test0.c

📁 C语言写的
💻 C
字号:
#include <reg51.h>
sfr clock_divider=0xc7;
#define CMD_RESET  0xa4
#define CMD_TSET  0xbf
#define DECODE0  0x80
#define DECODE1  0xc8
#define CMD_READ  0x15
#define UNDECODE  0x90
#define RTL_CYCLE  0xa3
#define RTR_CYCLE  0xa2
#define RTL_UNCYCLE  0xa1
#define RTR_UNCYCLE  0xa0
#define ACTCTL  0x98
#define SEGON  0xe0
#define SEGOFF  0xc0
#define BLINKCTL  0x88

void long_delay(void);
void short_delay(void);
void delay10ms(unsigned char );
void write7279(unsigned char , unsigned char );
unsigned char read7279(unsigned char );
void send_byte( unsigned char );
unsigned char receive_byte(void);

sbit cs=P1^3;
sbit clk=P1^2;
sbit key=P1^1;
sbit dat=P1^0;
unsigned long kk,j,wait_cnter;
unsigned char key_number;


main()
{	clock_divider=4;
    key_number=0xff;
	kk=0x2000;
	//while(1)
	while(kk--)	;
	send_byte(CMD_RESET);
	cs=1;
	send_byte(CMD_TSET);
	cs=1;
	for(j=0;j<3;j++)
	{
		delay10ms(100);
	}
	send_byte(CMD_RESET);
	cs=1;
	write7279(BLINKCTL,0xfc);
	write7279(UNDECODE,0x08);
	write7279(UNDECODE+1,0x08);
    do
	{
		if(!key)
		{ 
		    key_number=read7279(CMD_READ);
			write7279(DECODE1+1,key_number/16);
			write7279(DECODE1,key_number&0x0f);
			while(!key);
			wait_cnter=0;
		}
	  wait_cnter++;
	}while(wait_cnter<0x30000);
//	for(j=0;j<3;j++)
	//{
	//	delay10ms(100);
	//}
}

void write7279(unsigned char cmd, unsigned char dat)
{
	send_byte (cmd);
	send_byte (dat);
	cs=1;
}
unsigned char read7279(unsigned char command)
{
	send_byte(command);
	//cs=1;
	return(receive_byte());
	
}
void send_byte( unsigned char out_byte)
{
	unsigned char i;
	cs=0;
	clk=0;
	long_delay();
	for (i=0;i<8;i++)
	{
		if (out_byte&0x80)
		{
		dat=1;
		}
		else
		{
		dat=0;
		}
		clk=1;
		short_delay();
		clk=0;
		short_delay();
		out_byte=out_byte*2;
	}

	dat=1;
}

unsigned char receive_byte(void)
{
unsigned char i, in_byte;
dat=1; 
long_delay();
for (i=0;i<8;i++)
{
clk=1;
short_delay();
in_byte=in_byte*2;
if (dat)
{
in_byte=in_byte|0x01;
}
clk=0;
short_delay();
}
dat=0;
cs=1
return (in_byte);
}

void long_delay(void)
{
	unsigned int i;
	//unsigned char ii;
	for (i=0;i<0x30;i++);
}

void short_delay(void)
{
	unsigned char i;
	for (i=0;i<8;i++);
}
// ********************* .1 n*10ms **********************
void delay10ms(unsigned char time)
{
	unsigned char i;
	unsigned int j;
	
	for (i=0;i<time;i++)
	{
		for(j=0;j<0x390;j++) ;

	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -