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

📄 优先级.txt

📁 验证单片机的中断优先级。外部中断的优先级高于定时器中断。
💻 TXT
字号:
#include<reg51.h>
#include<absacc.h>

#define uint  unsigned int
#define uchar unsigned char

uint i,j,m,n;

//延时函数,闪烁时间间隔约0.5s
void delay500ms(void)
{
	unsigned char i,j,k;
	for(i=15;i>0;i--)
		for(j=202;j>0;j--)
			for(k=81;k>0;k--);
}	

//外部中断0子程序
//功能:中断发生后,P1口的灯闪烁八次,闪烁时间间隔为0.5s
void shanshuo() interrupt 0 using 1  			//外部中断0子程序
{    
	for(j=0;j<8;j++)                                //闪烁次数
	{	      
		P1=0X00;	   			//灯全亮  
		delay500ms();
		P1=0Xff;	   			//灯全灭 
		delay500ms();
	}
}                 	

//主函数
//功能:使小灯每隔0.5秒向左移一位依次点亮P1口的灯
void main ()
{      		    
	EA=1;           				//开总中断
	EX0=1;IT0=1;     				//开外部中断0,设置外部中断为脉冲触发方式
	while(1)          
	{
		uchar a=0xfe;
         	for(i=0;i<8;i++)     			//设置移位次数
         	{		  
			for(j=0;j<20;j++)  		//50us循环次数
	      		{
	     			TMOD=0X01;              //设置定时器0工作于方式1
	     			TH0=(65536-50000)/256;  //50us计数初值
	     			TL0=(65536-50000)%256;
	     			TR0=1;                  //启动定时器
	    			while(!TF0)      	//计数未溢出循环显示
	    			{ 
		     			P1=a;   	//灯的状态送P1口显示
	     			}
               			TF0=0;
	    		} 
          		a=a<<1;        			//灯的状态左移一位
          	} 
	}
}
 


 

⌨️ 快捷键说明

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