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

📄 test.c

📁 通过中断控制led闪烁规律
💻 C
字号:
/*----------------------------------www.00IC.com-----------------------------------------
                      ╔=======================================╗
                      ┆     00IC-51开发板配套实验学习例程     ┆
                      ┆             Version 2.0.1             ┆
                      ┆                                       ┆
                      ┆               零零电子                ┆
                      ┆                                       ┆
                      ┆          http://www.00IC.com          ┆
                      ┆         E-mail:sales@00IC.com         ┆
                      ╚=======================================╝
************************* ********* 程序功能说明 ********************************************
                   按下S1按键产生中断,单片机对中断次数从0到9进行计数,同时在数码管上显示
				   注意:做本试验时请将ISP下载线拔掉,不然数码管无法显示
********************************************************************************************/
#include<reg52.h>
sbit s1 = P2^0;
sbit s2 = P2^1;
sbit s3 = P2^2;
sbit s4 = P2^3;
sbit en = P2^5;
int dispcount = 0;

void Delay(int m)
{
	while(--m);
}

void ext_int0() interrupt 0    //中断服务程序
{  
	EA = 0;
	Delay(4000);
	dispcount++;	          //每按一次中断按键,计数加一
    if(dispcount==10)     
  		dispcount=0;
	EA = 1;
}

void display(void)            //数码管显示函数
{
	s1 = 0;
	s2 = 0;
	s3 = 0;
	s4 = 0;
	en = 1;
	switch(dispcount)
	{							
		case 0:
			P0 = 0xC0; 		  	 //display  0	 
			Delay(60000);    
			break;
		case 1:
			P0 = 0xF9;        	 //display  1
			Delay(60000);
			break;
		case 2:	
			P0 = 0xA4;	
			Delay(60000);     	 //display  2
			break;
		case 3:
			P0 = 0xB0;        	 //display  3	 
			Delay(60000);     
			break;
		case 4:
			P0 = 0x99;	       	//display  4
			break;
		case 5:
			P0 = 0x92;          //display  5
			Delay(60000);
			break;
		case 6:
			P0 = 0x82;        	//display  6
			Delay(60000);
			break;
		case 7:
			P0 = 0xF8;			//display  7
			Delay(60000);
			break;
		case 8:
			P0 = 0x80;         //display  8
			Delay(60000);
			break;
		case 9:
			P0 = 0x90;         //display  9
			Delay(60000);
			break;
		default:
			P0 = 0x88;         //display  A 
			Delay(60000);
			break;
	}
}
void main()
{
	TCON=0x01;  //中断设置
	IE=0x81;
	while(1)   //循环执行
 	{
    	display();     //只须调用显示函数
    }
}

⌨️ 快捷键说明

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