51单片机作业

#include<STC12C5A60S2.h>
#include<intrins.h>

#define uchar unsigned char 
#define uint unsigned int 
#define L P0
sbit 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值