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

📄 hd7279a.c

📁 这是一个51单片机实现的控制器程序
💻 C
字号:
#include "REGX52.H"

//*** 函数定义 ***
void long_delay(void);							// 长延时
void short_delay(void);							// 短暂延时
void write7279(unsigned char, unsigned char,unsigned char);	// 写入到HD7279
unsigned char read7279(unsigned char);			// 从HD7279读出
//void send_byte(unsigned char);					// 发送一个字节
unsigned char receive_byte(void);
void send_byte(unsigned char,unsigned char);			// 发送一个字节

//*** 变量及I/O口定义 ***
sbit cs1 = P1^7;       /*片选1  */
sbit cs2 = P1^5;       /*片选2  */
sbit dat = P3^5;       /*数据 */
sbit clk = P3^4;       /*时钟  */

//****** HD7279A 指令 ******
/*#define CMD_RESET 0xa4
#define CMD_TEST 0xbf
#define DECODE0 0x80
#define DECODE1 0xc8
#define CMD_READ 0x15
#define UNDECODE 0x90
#define RTL_CYCLE 0xa3
#define RTR_CYCLE 0xa2
#define RTL_UNCYL 0xa1
#define RTR_UNCYL 0xa0
#define ACTCTL 0x98
#define SEGON 0xe0
#define SEGOFF 0xc0
#define BLINKCTL 0x88

*/
void write7279(unsigned char cmd, unsigned char dta,unsigned char chip)
{
	send_byte (cmd,chip);
	send_byte (dta,chip);
        cs1=cs2=1;
}
/*
unsigned char read7279(unsigned char command)
{
	send_byte(command,1);
	return(receive_byte());
        cs1=1;
        cs2=1;
}

  */

void send_byte(	unsigned char out_byte, unsigned char chip)
{
	unsigned char i;
	if (chip==0)
            {
              cs1=0;
              cs2=1;
             }
             else
             {
              cs1=1;
              cs2=0;
              }
	short_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=0;
        //cs1=cs2=1;
}

  /*
unsigned char receive_byte(void)
{
	unsigned char i, in_byte;
        cs1=1;
        cs2=0;
	dat=1;				// set to input mode
	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;
	return (in_byte);
}
    */
void long_delay(void)
{
	unsigned char i;
	for (i=0;i<0x60;i++);
}

void short_delay(void)
{
	unsigned char i;
	for (i=0;i<8;i++);
}

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