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

📄 main.c

📁 avr常用功能程序中包含了pwm、adc、中断、定时、i2c等各程序可供开发者直接使用
💻 C
字号:

#include <avr/io.h>
//#include <avr/delay.h>
//宏定义
#define uchar unsigned char
#define uint unsigned int
void delay(int x)
{	int xx=100;
	while(x-->0)
	while(xx-->0);
}

//SPI初始化
void spi_init(void)
{
	//OSCCAL=0x9d;                        // 8M系统内部时钟校准    
	DDRB|=0Xf8;
	SPSR =_BV(SPI2X);                 // 设置SPI时钟倍速
    SPCR =_BV(SPE) |_BV(MSTR);		// 使能SPI接口,主机模式,4M时钟	0X50
}


int main()
{
	spi_init();
	DDRC=0XFF;
	PORTC=0XFF;
	uchar jtd1,jtd2,jtd_row,init_jtd1=0xfe,init_jtd2=0xff;	
	int jtd_x=0;
while(1)
{
	//0x0f  0xff空      0xf0 0xff黄    0xff 0xf0 红         0xff 0x0f  绿
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	
	SPDR=jtd1;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	SPDR=jtd2;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	PORTB&=~_BV(PB6);//锁存595数据
	PORTB|=_BV(PB6);
	PORTB&=~_BV(PB6);
	
	delay(20);
	
	jtd_row++;
	jtd1=(jtd1<<1)|0x01;
	jtd2=(jtd2<<1)|0x01;
	if(jtd_row>=4)
	{
		jtd_row=0;
		jtd1=init_jtd1;
		jtd2=init_jtd2;
		jtd_x++;
	}
	if(jtd_x==200)
	{
		init_jtd1=0xff;
		init_jtd2=0xfe;
	}
	if(jtd_x==400)
	{
		init_jtd1=0xff;
		init_jtd2=0xef;

	}
	if(jtd_x==600)
	{
		init_jtd1=0xfe;
		init_jtd2=0xff;
		jtd_x=0;
	}
}
}
/*
	_delay_ms(1000);
	_delay_ms(1000);
	_delay_ms(1000);
	_delay_ms(1000);
*/
/*
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一

	
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	SPDR=0xf0;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	PORTB&=~_BV(PB6);//锁存595数据
	PORTB|=_BV(PB6);
	PORTB&=~_BV(PB6);
delay(1000);
	PORTC=0X00;	
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
delay(1000);
	SPDR=0xf0;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	SPDR=0xff;
	while((SPSR&0x80)==0);  		//等待数据传送完毕,置一
	PORTB&=~_BV(PB6);//锁存595数据
	PORTB|=_BV(PB6);
	PORTB&=~_BV(PB6);
delay(1000);
	PORTC=0Xff;
	


}	
//	TCNT0=00;///////////////////////////////////////////////////////
//		delay(1);


}
/**/

⌨️ 快捷键说明

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