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

📄 ex.c

📁 AT89S51 红外程序 单片机学习板的程序 外部中断0程序
💻 C
字号:
//****************Copyright (c)*************
//         成都麟鑫科技有限责任公司
//         http://www.linxinpro.com
//******************************************
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar code tab1[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0~9字形代码
uint counter1=0,counter2=0,counter3=0,counter4=0;time=100; //计数器变量初始化
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2; 
sbit P1_3=P1^3;
void delay(uint tx);//延时程序
void show(uint tx1,uint tx2,uint tx3,uint tx4);
void main()
{
	P1_3=1;//初始化数码管控制位
	P1_2=1;
	P1_1=1;
	P1_0=1;
	EA=1;   //开中断
	IT0=1;	//外部中断0低电平触发
	EX0=1;	//外部中断0允许
	while(1)
		show(counter1,counter2,counter3,counter4);
}
/*中断服务程序*/
void interrupt0() interrupt 0 using 2
{
	counter1++;
	if(counter1>9)
	{ 
		counter1=0;
	    counter2++;
	};
	if(counter2>9)
	{
	    counter2=0;
		counter3++;
	};
	if(counter3>9)
	{
		counter3=0;
		counter4++;
	};
	if(counter4>9)
		counter4=0;
}
/*延时子程序*/
void delay(uint tx)
{
	uint x=tx;
	do
		x--;
	while(x>1);
}
/*显示计数次数*/
void show(uint tx1,uint tx2,uint tx3,uint tx4)
{
	P2=tab1[tx1];
	P1_0=0;
	delay(time);
	P1_0=1;
	P2=tab1[tx2];
	P1_1=0;
	delay(time);
	P1_1=1;
	P2=tab1[tx3];
	P1_2=0;
	delay(time);
	P1_2=1;
	P2=tab1[tx4];
	P1_3=0;
	delay(time);
	P1_3=1;
}

⌨️ 快捷键说明

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