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

📄 avr_ds__.c

📁 触摸屏打地鼠小游戏 AVR控制
💻 C
📖 第 1 页 / 共 2 页
字号:
0x1F,0x90,0x9F,0x88,0x88,0x89,0x88,0x91,0xA0,0xB1,0x59,0x49,0xC9,0x0F,0x00,0x3F,
0x40,0x40,0x4C,0x40,0x40,0x4C,0x40,0x4C,0x4C,0x8C,0x94,0x97,0x60,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x18,0x24,0xE7,0x00,0x80,0xE7,0x80,0xFF,0x81,0x81,0xB9,0xB9,0x81,0x81,0xFF,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0xFF,0x01,0xBF,0x02,0x02,0x12,0x02,0x11,0x00,0xF1,0x43,0x42,0x42,0x7E,0x00,0xF8,
0x04,0x04,0x64,0x04,0x04,0x64,0x04,0xE4,0xE4,0x84,0xC4,0xF8,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x3F,0xA0,0xA0,0xBE,0x20,0xA2,0xA0,0x20,0x1C,0x30,0x40,0x43,0x3D,0x01,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x19,0x26,0x22,0x11,0x0A,0x04,0x07,0x09,0x91,0xA2,0x24,0x28,0x1C,0x03,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xC0,0x3F,0x01,0x01,0x3E,0x02,0x32,0x02,0x02,0x0E,0x06,0x21,0x33,0x2E,0xE0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,
0x20,0x3F,0x01,0x01,0x51,0x92,0x8C,0x08,0x04,0x22,0x21,0x51,0x89,0x06,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};	//over



#include <stdlib.h>
#define peng PINA.4 
#define fengming PORTA.5

flash unsigned char SOUNDLONG[]= 
{
14,5,18,18,18,36, 
14,5,18,18,18,36, 
14,5,18,18,18,18,18,
14,5,18,18,18,36,
0, //
18,18,18,18,18,
18,18,18,18,18,
18,18,18,18,18,
0 //
}; 

flash unsigned char SOUNDTONE[]= 
{ 
141,141,127,141,106,113,
141,141,127,141,95,106,
141,141,71,84,106,113,127,
79,79,84,106,95,106,
0, //
141,127,113,106,95,
84,79,71,79,84,
95,106,113,127,141,
0 //
}; 

int randx,randy;
long int i,j,delay;
int hit; 
int flag;

unsigned char checkinterrupt( Uchar x, Uchar y)
{
   delay_ms(5);
   if (peng==0)
   {
   	Yaddress=TouchReadAddress(0xdc); 
        Xaddress=TouchReadAddress(0x9c); 
        Xaddress=Xaddress*14/10-15;
	Yaddress=Yaddress*24/21-21;
	if(Xaddress>=320) Xaddress=319;
        if(Yaddress>=240) Yaddress=239;
        if(Xaddress<0) Xaddress=0;
        if(Yaddress<0) Yaddress=0;
   	if (Xaddress>=x*80&&Xaddress<=(x+1)*80&&Yaddress>=80*y&&Yaddress<=80*(y+1))	
   	{
   		fengming=0;
   		delay_ms(1);
   		fengming=1;
   		delay_ms(1);
   		fengming=0;
   		return 1;
   	}
   }
   else
   	return 0;                       
}



void Music(unsigned char number) 
{ 
unsigned int k,n;
unsigned int SoundLong,SoundTone; 
unsigned int ii=0,jj=0,m; 


for(k=0;k<number-1;k++) 
{ 
   while(SOUNDLONG[ii] !=0){ii++;} 
   ii++; 
   if(ii>=43) ii=0; 
} 
for(k=0;k<number-1;k++) 
{ 
   while(SOUNDTONE[jj] !=0){jj++;} 
   jj++; 
   if(jj>=43) jj=0; 
}

do 
{  
   if (ii>=43) ii=0; 
   if (jj>=43) jj=0; 
   SoundLong=SOUNDLONG[ii]; 
   SoundTone=SOUNDTONE[jj]; 
   ii++; 
   jj++; 

   for(n=0;n<SoundLong;n++) 
   { 
    for(k=0;k<18;k++) 
    { 
     PORTA.5=0; 
     for(m=0;m<SoundTone/2;m++) 
      ;  
     PORTA.5=1; 
     for(m=0;m<SoundTone/2;m++) 
      ; 
    } 
   } 
   delay_us(300); 
}while((SOUNDLONG[ii] !=0) || (SOUNDTONE[jj] !=0)); 
PORTA.5=0;
} 
	 
void main(void)
{

PORTA=0x10;
DDRA=0x2d;

PORTC=0x00;
DDRC=0xff;


PORTD=0x00;
DDRD=0xff;

// External Interrupt(s) initialization
// INT0: On
// INT0 Mode: Falling Edge
// INT1: Off
// INT2: Off
GICR|=0x40;
MCUCR=0x02;
MCUCSR=0x00;
GIFR=0x40;   

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 8000.000 kHz
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x01;
TCNT0=0x00;
OCR0=0x00;

// Global enable interrupts
#asm("sei")

LcmInition();
disp_clear(0x00); 
sed1335_Dispon(0b01010100);
delay=100000;
fengming=0;
while (1)
      {
        	flag=0;
        	disp_word( 1, 1, pic , 0);//显示开始图像
      		disp_word( 2, 1, pic , 1);
      		while((checkinterrupt(1,1))) //点击开始
      		{
      			disp_clear(0x00);
      			while(1)
      			{
      				hit=0;
      				for(j=0;j<10;j++)
      				{
        				srand(TCNT0);    //产生随机数
        				randx=rand()%4;
       	 				srand(TCNT0);    //产生随机数
        				randy=rand()%3;	
        				disp_word( randx, randy, pic , 1); 
        				for(i=0;i<delay;i++)
					{
						if (peng==0) 
							if(checkinterrupt(randx,randy)) 
							{
								hit++;
								//disp_clear(0x00);
								disp_word(randx,randy,pic,2);
								delay_ms(100);
								disp_clear(0x00);
								break;
							}
	  				}
					disp_clear(0x00);
				}
				if(hit>8) 
				{
					disp_word( 1, 1, pic , 3);delay-=20000; 
					Music(2);   
					while(!(checkinterrupt(1,1)));
	       				disp_clear(0x00);
		   		}
				else {disp_word( 1, 1, pic , 4);Music(1);while(!(checkinterrupt(1,1)));disp_clear(0x00);flag=1;delay=100000;break;}
			}
	       		if(flag) break;
		}	 	
      };
}

⌨️ 快捷键说明

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