89c51单片机的简单应用2——中断、定时器

一、蜂鸣器的应用

Lab--MCU51开发板上控制蜂鸣器的端口是P3^7,低电平有效,可利用它进行音阶发声

以下为简单的

 #include<reg52.h>
 #include<intrins.h>
 #define uint unsigned int
 #define uchar unsigned  char
 unsigned int i,a,k;
 unsigned char temp;
 void delay(uint z)
 {
     char j;
     for(z;z>0;z--)
	 for(j=110;j>0;j--);
 }
void main()
{  
 	 
	 
 		for(i=0;i<3;i++)
		{
			P1=0xaa;
			delay(2000);
			P1=0x55;
			delay(2000);
		 } 
		  
		 	 
		 for(k=0;k<3;k++)
   	 	 {
		    temp=0xfe;
			P1=temp;  	
     		for(i=0;i<8;i++)
			{  	P1=temp;
				temp=_crol_(temp,1);
					
				
				delay(520);
	 		}
		
	  		a=0x7f;
	  		P1=a; 
	 		for(i=0;i<8;i++)
		  	{	
				P1=a;
		    	a=_cror_(a,1);
			 	
			
				delay(520);
		 	}
			delay(520);	
			
	 	  }
		  
			for(i=0;i<3;i++)
		    {
				 P1=0x7e;
				 delay(1000);
				 P1=0xbd;
				 delay(1000);
				 P1=0xdb;
				 delay(1000);
				 P1=0xe7;
				 delay(1000);
			}
			for(i=0;i<3;i++)
		    {
				 P1=0xe7;
				 delay(1000);
				 P1=0xdb;
				 delay(1000);
				 P1=0xbd;
				 delay(1000);
				 P1=0x7e;
				 delay(1000);
			}
		 	for(i=0;i<3;i++)
			{
		          P1=0x0;
				  delay(1000);
				  P1=0xff;
				  delay(1000);		 
			}	
	 
}				   

二、中断和定时器、计数器

中断这部分对于单片机来说非常重要,是以后对于实现大型项目的基础,由于现在处于学习阶段,还不能很好的总结其具体的用途,本人觉得这块需要注意一下几点:

1、设置定时器的工作方式以及设置初值

2、打开中断进行的开关

 #include <reg52.h>
 #define uchar unsigned char
 #define uint unsigned int
 //sbit wela=P2^7;
// sbit dula=P2^6;
 uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x02,0xf8,0x00,0x10};
 uchar num;
 void delay(uint z)
 {
 	uint x,y;
	for(x=100;x>0;x--)
	    for(y=z;y>0;y--);
 }
 void main()
 {
//	wela=1;
	P2=0xf0;
//	wela=0;
	while(1)
	{
		for(num=0;num<10;num++)
		{
//			dula=1;
			P0=table[num];
//			dula=0;
			delay(500	);
		}	
	}
 }


 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值