51单片机作业

来源:互联网 发布:u盘ubuntu分区教程 编辑:程序博客网 时间:2024/06/06 00:03
#include<STC12C5A60S2.h>#include<intrins.h>#define uchar unsigned char #define uint unsigned int #define L P0sbit L1=P0^0;sbit L2=P0^1;sbit L3=P0^2;sbit L4=P0^3;sbit L5=P0^4;sbit L6=P0^5;sbit L7=P0^6;sbit L8=P0^7;sbit BEE=P1^4;void delayms(uint time){  uint i,j;for(i=0;i<time;i++) for(j=0;j<930;j++);}void Delay(uint time){uint i;for(i = time;i> 0;i --);}void Playmusic(){   uint a=0,b,c; uchar code SONG_TONE[]=  {212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,119,119,126,159,142,159,0};uchar code SONG_LONG[]=  {90,30,120,120,120,240,90,30,120,120,120,240, 90,30,120,120,120,120,120,90,30,120,120,120,240,0};  while(SONG_LONG[a]!=0||SONG_TONE[a]!=0){for(b=0;b<SONG_LONG[a]*20;b++)   {BEE=~BEE; for(c=0;c<SONG_TONE[a]/3;c++); }delayms(10);a++;}}void main(){  uchar key;uchar temp = 0xFE,i = 0,flag = 0;uint j,k;uint g=1;uchar code SONG_TONE[]=  {212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,119,119,126,159,142,159,0};uchar code SONG_LONG[]=  {9,3,12,12,12,24,9,3,12,12,12,24, 9,3,12,12,12,12,12,9,3,12,12,12,24,0};   while(1){P3=0xf0;if(key!=0xf0)  {delayms(50); if(key!=0xf0)    {   key=P3&0xf0; P3=0x0f;   key|=P3;      }  }switch(key)   {case 0xe7:L=0x00;delayms(1);L=0xff;delayms(1);BEE=0;delayms(100);BEE=1;break;  case 0xd7:L=0x7e;delayms(100);L=0xff;L1=0;L8=0;delayms(100);L1=1;L8=1;delayms(100);L2=0;L7=0;delayms(100);L2=1;L7=1;delayms(100);L3=0;L6=0;delayms(100);L3=1;L6=1;delayms(100);L4=0;L5=0;delayms(100);L4=1;L5=1;delayms(100);L3=0;L6=0;delayms(100);L3=1;L6=1;delayms(100);L2=0;L7=0;delayms(100);L2=1;L7=1;delayms(100);L1=0;L8=0;delayms(100);L1=1;L8=1;delayms(50);//对撞之后改变的开始L8=0;delayms(50);L7=0;delayms(50);L2=0;delayms(100);L8=1;delayms(50);L7=1;delayms(50);L2=1;delayms(50);L6=0;delayms(50);L5=0;delayms(50);L3=0;delayms(100);L6=1;delayms(50);L5=1;delayms(50);L3=1;delayms(100);L4=0;delayms(50);L3=0;delayms(50);L5=0;delayms(100);L4=1;delayms(50);L3=1;delayms(50);L5=1;delayms(50);L5=0;delayms(50);L6=0;delayms(50);L2=0;delayms(100);L5=1;delayms(50);L6=1;delayms(50);L2=1;delayms(50);L7=0;delayms(50);L8=0;delayms(50);L1=0;delayms(100);L7=1;delayms(50);L8=1;delayms(50);L1=1;delayms(50);//第二次开始L8=0;delayms(50);L7=0;delayms(50);L6=0;delayms(50);L1=0;delayms(50);L8=1;delayms(50);L7=1;delayms(50);L6=1;delayms(50);L1=1;delayms(50);L5=0;delayms(50);L4=0;delayms(50);L3=0;delayms(50);L2=0;delayms(50);L5=1;delayms(50);L4=1;delayms(50);L3=1;delayms(50);L2=1;delayms(50);L1=0;delayms(50);L2=0;delayms(50);L3=0;delayms(50);L4=0;delayms(50);L5=0;delayms(50);L6=0;delayms(50);L7=0;delayms(50);L8=0;delayms(50);L=0xff;delayms(1);BEE=0;delayms(50);BEE=1;break;case 0xb7:if(key==0xb7)              {               if(flag == 0)               {              L = temp;              delayms(500);                    temp=_crol_(temp,1);              i++;              if(i == 7){flag = 1;BEE=0;delayms(100);BEE=1;};                }else  {                 L = temp;                 delayms(500);temp=_cror_(temp,1);                 i--;                if(i == 0){flag = 0;BEE=0;delayms(100);BEE=1;};  }  };break; case 0x77: if(key==0x77) {                    for(j = 0;j <300;j ++)                   {                   for(k=0;k<10;k++){  L = 0xaa;                       Delay(j);                        L = 0x55;                       Delay(300-j);} }for(j =300;j > 0;j--) {                    for(k=0;k<10;k++)                   {                     L = 0xaa;                     Delay(j);                     L = 0x55;                     Delay(300-j);                    }                    } };break;case 0xc3: if(key=0xc3){for(j = 0;j <300;j ++)                   {                   for(k=0;k<10;k++){  L = 0xff;                       Delay(j);                        L = 0x7e;                       Delay(300-j);} }for(j =300;j > 0;j--) {                    for(k=0;k<10;k++)                   {                     L = 0xff;                     Delay(j);                     L = 0x7e;                     Delay(300-j);                    }}for(j = 0;j <300;j ++)                   {                   for(k=0;k<10;k++){  L = 0xff;                       Delay(j);                        L = 0xbd;                       Delay(300-j);} }for(j =300;j > 0;j--) {                    for(k=0;k<10;k++)                   {                     L = 0xff;                     Delay(j);                     L = 0xbd;                     Delay(300-j);                    }}for(j = 0;j <300;j ++)                   {                   for(k=0;k<10;k++){  L = 0xff;                       Delay(j);                        L = 0xdb;                       Delay(300-j);} }for(j =300;j > 0;j--) {                    for(k=0;k<10;k++)                   {                     L = 0xff;                     Delay(j);                     L = 0xdb;                     Delay(300-j);                    }}for(j = 0;j <300;j ++)                   {                   for(k=0;k<10;k++){  L = 0xff;                       Delay(j);                        L = 0xe7;                       Delay(300-j);} }for(j =300;j > 0;j--) {                    for(k=0;k<10;k++)                   {                     L = 0xff;                     Delay(j);                     L = 0xe7;                     Delay(300-j);                    }}for(j = 0;j <300;j ++)                   {                   for(k=0;k<10;k++){  L = 0xff;                       Delay(j);                        L = 0xdb;                       Delay(300-j);} }for(j =300;j > 0;j--) {                    for(k=0;k<10;k++)                   {                     L = 0xff;                     Delay(j);                     L = 0xdb;                     Delay(300-j);                    }}for(j = 0;j <300;j ++)                   {                   for(k=0;k<10;k++){  L = 0xff;                       Delay(j);                        L = 0x7e;                       Delay(300-j);} }for(j =300;j > 0;j--) {                    for(k=0;k<10;k++)                   {                     L = 0xff;                     Delay(j);                     L = 0xbd;                     Delay(300-j);                    }}for(j = 0;j <300;j ++)                   {                   for(k=0;k<10;k++){  L = 0xff;                       Delay(j);                        L = 0x7e;                       Delay(300-j);} }for(j =300;j > 0;j--) {                    for(k=0;k<10;k++)                   {                     L = 0xff;                     Delay(j);                     L = 0x7e;                     Delay(300-j);                    }}};break;case0xa5: if(key==0xa5)             {BEE=0;Playmusic();delayms(500);BEE=1;  }}}}


1 0
原创粉丝点击