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

📄 timer.c

📁 这是一利用at892051+74hc595芯片的护栏管源程序,仅共参考,希望对大家有用
💻 C
字号:
#include<LED.h>
#include<timer.h>
 byte array = 0;
// word timeout = -1;
 byte code right_shift[MAX_MSG][MAX_PIX][6] = 
{	{	
		{0xa4,0xa4,0x24,0x24,0x24,0x24},
 		{0x34,0x34,0x24,0x24,0x24,0x24},
 		{0x24,0xA4,0xa4,0x24,0x24,0x24},
 		{0x24,0x34,0x34,0x24,0x24,0x24},
 		{0x24,0x24,0xA4,0xa4,0x24,0x24},
 		{0x24,0x24,0x34,0x34,0x24,0x24},
 		{0x24,0x24,0x24,0xA4,0xa4,0x24},
 		{0x24,0x24,0x24,0x34,0x34,0x24},
 		{0x24,0x24,0x24,0x24,0xA4,0xa4},
 		{0x24,0x24,0x24,0x24,0x34,0x34},
 		{0x24,0x24,0x24,0x24,0x24,0xA4},
 		{0x24,0x24,0x24,0x24,0x24,0x34},
	},
	{
		{0x38,0x48,0x48,0x48,0x48,0x48},
		{0x4c,0x48,0x48,0x48,0x48,0x48},
		{0x48,0x38,0x48,0x48,0x48,0x48},
		{0x48,0x4c,0x48,0x48,0x48,0x48},
		{0x48,0x48,0x38,0x48,0x48,0x48},
		{0x48,0x48,0x4c,0x48,0x48,0x48},
		{0x48,0x48,0x48,0x38,0x48,0x48},
		{0x48,0x48,0x48,0x4c,0x48,0x48},
		{0x48,0x48,0x48,0x48,0x38,0x48},
		{0x48,0x48,0x48,0x48,0x4c,0x48},
		{0x48,0x48,0x48,0x48,0x48,0x38},
		{0x48,0x48,0x48,0x48,0x48,0x4c},
	},
	{	
		{0x64,0x24,0x24,0x24,0x24,0x24},
 		{0x2C,0x24,0x24,0x24,0x24,0x24},
 		{0x24,0x64,0x24,0x24,0x24,0x24},
 		{0x24,0x2C,0x24,0x24,0x24,0x24},
 		{0x24,0x24,0x64,0x24,0x24,0x24},
 		{0x24,0x24,0x2C,0x24,0x24,0x24},
 		{0x24,0x24,0x24,0x64,0x24,0x24},
 		{0x24,0x24,0x24,0x2C,0x24,0x24},
 		{0x24,0x24,0x24,0x24,0x64,0x24},
 		{0x24,0x24,0x24,0x24,0x2C,0x24},
 		{0x24,0x24,0x24,0x24,0x24,0x64},
 		{0x24,0x24,0x24,0x24,0x24,0x2C},
	},
	{	
		{0x64,0x24,0x24,0x24,0x24,0x34},
 		{0x2C,0x24,0x24,0x24,0x24,0xa4},
 		{0x24,0x64,0x24,0x24,0x34,0x24},
 		{0x24,0x2C,0x24,0x24,0xa4,0x24},
 		{0x24,0x24,0x64,0x34,0x24,0x24},
 		{0x24,0x24,0x2C,0xa4,0x24,0x24},
 		{0x24,0x24,0x34,0x64,0x24,0x24},
 		{0x24,0x24,0xa4,0x2C,0x24,0x24},
 		{0x24,0x34,0x24,0x24,0x64,0x24},
 		{0x24,0xa4,0x24,0x24,0x2C,0x24},
 		{0x34,0x24,0x24,0x24,0x24,0x64},
 		{0xa4,0x24,0x24,0x24,0x24,0x2C},
	},
	{		
 		{0x24,0x24,0x34,0x64,0x24,0x24},
 		{0x24,0x24,0x2c,0xa4,0x24,0x24},
 		{0x24,0x24,0x64,0x34,0x24,0x24},
 		{0x24,0x2c,0x24,0x24,0xa4,0x24},
 		{0x24,0x64,0x24,0x24,0x34,0x24},
 		{0x2c,0x24,0x24,0x24,0x24,0xa4},
 		{0x64,0x24,0x24,0x24,0x24,0x34},
 		{0x2c,0x24,0x24,0x24,0x24,0xa4},
 		{0x24,0x64,0x24,0x24,0x34,0x24},
 		{0x24,0x2c,0x24,0x24,0xa4,0x24},
 		{0x24,0x24,0x64,0x34,0x24,0x24},
		{0x24,0x24,0x2c,0xa4,0x24,0x24},
	},
	{
		{0xc8,0x48,0x48,0x48,0x48,0x48},
		{0x58,0x48,0x48,0x48,0x48,0x48},
		{0x48,0xc8,0x48,0x48,0x48,0x48},
		{0x48,0x58,0x48,0x48,0x48,0x48},
		{0x48,0x48,0xc8,0x48,0x48,0x48},
		{0x48,0x48,0x58,0x48,0x48,0x48},
		{0x48,0x48,0x48,0xc8,0x48,0x48},
		{0x48,0x48,0x48,0x58,0x48,0x48},
		{0x48,0x48,0x48,0x48,0xc8,0x48},
		{0x48,0x48,0x48,0x48,0x58,0x48},
		{0x48,0x48,0x48,0x48,0x48,0xc8},
		{0x48,0x48,0x48,0x48,0x48,0x58},
	},
	{
		{0x80,0x00,0x00,0x00,0x00,0x00},
		{0x10,0x00,0x00,0x00,0x00,0x00},
		{0x80,0x80,0x00,0x00,0x00,0x00},
		{0x10,0x10,0x00,0x00,0x00,0x00},
		{0x80,0x80,0x80,0x00,0x00,0x00},
		{0x10,0x10,0x10,0x00,0x00,0x00},
		{0x80,0x80,0x80,0x80,0x00,0x00},
		{0x10,0x10,0x10,0x10,0x00,0x00},
		{0x80,0x80,0x80,0x80,0x80,0x00},
		{0x10,0x10,0x10,0x10,0x10,0x00},
		{0x80,0x80,0x80,0x80,0x80,0x80},
		{0x10,0x10,0x10,0x10,0x10,0x10},
	},
	{
		{0x60,0x00,0x00,0x00,0x00,0x00},
		{0xc0,0x00,0x00,0x00,0x00,0x00},
		{0x60,0x60,0x00,0x00,0x00,0x00},
		{0xc0,0xc0,0x00,0x00,0x00,0x00},
		{0x60,0x60,0x60,0x00,0x00,0x00},
		{0xc0,0xc0,0xc0,0x00,0x00,0x00},
		{0x60,0x60,0x60,0x60,0x00,0x00},
		{0xc0,0xc0,0xc0,0xc0,0x00,0x00},
		{0x60,0x60,0x60,0x60,0x60,0x00},
		{0xc0,0xc0,0xc0,0xc0,0xc0,0x00},
		{0x60,0x60,0x60,0x60,0x60,0x60},
		{0xc0,0xc0,0xc0,0xc0,0xc0,0xc0},
	},
	{
		{0xa0,0x00,0x00,0x00,0x00,0x00},
		{0x14,0x00,0x00,0x00,0x00,0x00},
		{0xa0,0xa0,0x00,0x00,0x00,0x00},
		{0x14,0x14,0x00,0x00,0x00,0x00},
		{0xa0,0xa0,0xa0,0x00,0x00,0x00},
		{0x14,0x14,0x10,0x00,0x00,0x00},
		{0xa0,0xa0,0xa0,0xa0,0x00,0x00},
		{0x14,0x14,0x14,0x14,0x00,0x00},
		{0xa0,0xa0,0xa0,0xa0,0xa0,0x00},
		{0x14,0x14,0x14,0x14,0x14,0x00},
		{0xa0,0xa0,0xa0,0xa0,0xa0,0xa0},
		{0x14,0x14,0x14,0x14,0x14,0x14},
	},
	{
		{0x00,0x00,0x00,0x00,0x00,0xc0},
		{0x00,0x00,0x00,0x00,0x00,0x18},
		{0x00,0x00,0x00,0x00,0xc0,0xc0},
		{0x00,0x00,0x00,0x00,0x18,0x18},
		{0x00,0x00,0x00,0xc0,0xc0,0xc0},
		{0x00,0x00,0x00,0x18,0x18,0x18},
		{0x00,0x00,0xc0,0xc0,0xc0,0xc0},
		{0x00,0x00,0x18,0x18,0x18,0x18},
		{0x00,0xc0,0xc0,0xc0,0xc0,0xc0},
		{0x00,0x18,0x18,0x18,0x18,0x18},
		{0xc0,0xc0,0xc0,0xc0,0xc0,0xc0},
		{0x18,0x18,0x18,0x18,0x18,0x18},
	},
	{
		{0x20,0x00,0x00,0x00,0x00,0x20},
		{0x40,0x00,0x00,0x00,0x00,0x40},
		{0x20,0x20,0x00,0x00,0x20,0x20},
		{0x40,0x40,0x00,0x00,0x40,0x40},
		{0x20,0x20,0x20,0x20,0x20,0x20},
		{0x40,0x40,0x40,0x40,0x40,0x40},
		{0x00,0x00,0x20,0x20,0x00,0x00},
		{0x00,0x00,0x40,0x40,0x00,0x00},
		{0x00,0x20,0x20,0x20,0x20,0x00},
		{0x00,0x40,0x40,0x40,0x40,0x00},
		{0x20,0x20,0x20,0x20,0x20,0x20},
		{0x40,0x40,0x40,0x40,0x40,0x40},
	},
	{
		{0x80,0x00,0x60,0xc0,0x00,0x20},
		{0x10,0x00,0x00,0x40,0x00,0x40},
		{0x00,0x80,0x00,0x00,0x00,0x00},
		{0x00,0x10,0x18,0x00,0x00,0x00},
		{0x00,0x00,0x80,0x00,0xc0,0x00},
		{0x00,0x00,0x10,0x18,0x00,0x00},
		{0x00,0x00,0x00,0x80,0x00,0x00},
		{0x40,0x00,0x00,0x10,0x00,0x00},
		{0x20,0x00,0x00,0x00,0x80,0x00},
		{0x40,0x00,0x00,0x10,0x10,0x00},
		{0x00,0x00,0x00,0x00,0x00,0x80},
		{0x18,0x00,0x00,0x1c,0x00,0x10},
	},
	{
		{0x80,0x00,0x00,0x00,0x00,0x00},
		{0x10,0x00,0x00,0x00,0x00,0x00},
		{0x00,0x80,0x00,0x00,0x00,0x00},
		{0x00,0x10,0x00,0x00,0x00,0x00},
		{0x00,0x00,0x80,0x00,0x00,0x00},
		{0x00,0x00,0x10,0x00,0x00,0x00},
		{0x00,0x00,0x00,0x80,0x00,0x00},
		{0x00,0x00,0x00,0x10,0x00,0x00},
		{0x00,0x00,0x00,0x00,0x80,0x00},
		{0x00,0x00,0x00,0x00,0x10,0x00},
		{0x00,0x00,0x00,0x00,0x00,0x80},
		{0x00,0x00,0x00,0x00,0x00,0x10},
	},

	{
		{0xb4,0x90,0x90,0x90,0x90,0x90},
		{0x94,0xb0,0x90,0x90,0x90,0x90},
		{0x90,0xb4,0x90,0x90,0x90,0x90},
		{0x90,0x94,0xb0,0x90,0x90,0x90},
		{0x90,0x90,0xb4,0x90,0x90,0x90},
		{0x90,0x90,0x94,0xb0,0x90,0x90},
		{0x90,0x90,0x90,0xb4,0x90,0x90},
		{0x90,0x90,0x90,0x94,0xb0,0x90},
		{0x90,0x90,0x90,0x90,0xb4,0x90},
		{0x90,0x90,0x90,0x90,0x94,0xb0},
		{0x90,0x90,0x90,0x90,0x90,0xb4},
		{0x90,0x90,0x90,0x90,0x90,0x94},
	},
};

#pragma save
#pragma optimize (7,SPEED)

static void isr_time0(void) interrupt ISR_T0 using 3 
{
	byte i;
	TH0 = DELAYMS(TM0_CYCLE)>>8;					//Reload value
	TL0 = DELAYMS(TM0_CYCLE)&0XFF;
	TF0 = 0;										//clear int flag
	LATCH = 0;
	EN = 0;
//	pt = present_data;
		for(i=6;i>0;i--) 
		{
			if(master != 0)
				scan_data = com_receive_data[i-1];
			else
				scan_data = right_shift[array][offset][i-1];//*pt;
			DCLK = 0;
			DOUT = bit0;
			DCLK = 1;
			DCLK = 0;
			DOUT = bit1;
			DCLK = 1;
			DCLK = 0;
			DOUT = bit2;
			DCLK = 1;
			DCLK = 0;
			DOUT = bit3;
			DCLK = 1;
			DCLK = 0;
			DOUT = bit4;
			DCLK = 1;
			DCLK = 0;
			DOUT = bit5;
			DCLK = 1;
			DCLK = 0;
			DOUT = bit6;
			DCLK = 1;
			DCLK = 0;
			DOUT = bit7;
			DCLK = 1;
//			send_char_com(0x55);
//			send_char_com(0xaa);
//			send_char_com(scan_data);
		//	pt++;
		}
	LATCH = 1;

	frame_cnt++;
	send_flag = -1;
//	speed_ctrl(5);
//	if(frame_cnt>SPEED(SPEED_GRADE))
	if(frame_cnt>speed_ctrl)
	{
		offset = offset+1;
		frame_cnt = 0;
		refresh_flag = -1;
	}
	if(offset>=MAX_PIX)
	{
		offset = 0;
		frame_cnt = 0;
		array = array + 1;
	}
	if(array>=MAX_MSG)
	{
		array = 0;
	}
}

#pragma restore


void tmr0_init(void)
{
//	TMOD |= 0X01;				//TIMER0 MODE 1
	bitset(TMOD,0);
	bitclr(TMOD,1);
	bitclr(TMOD,2);
	bitclr(TMOD,3);
	TH0 = DELAYMS(TM0_CYCLE)>>8;					//Reload value
	TL0 = DELAYMS(TM0_CYCLE)&0XFF;
	TR0 = 1;						//RUN TIMER0
	EA = 1;
	ET0 = 1;					//TIMER0 INT ENABLE	
}

⌨️ 快捷键说明

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