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

📄 zhongduan.c

📁 自己写的 51单片机的中断程序
💻 C
字号:
#include <reg52.h>

//宏定义
#define uint unsigned int
#define uchar unsigned char
//特殊位定义
sbit P24=P2^4;
sbit P25=P2^5;
sbit P26=P2^6;
sbit P27=P2^7;//位选
//编码 共阳数码管
uchar code table[]=
{
0xC0,0xF9,0xA4,0xB0,
0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,
0xC6,0xA1,0x86,0x8E,0x00
};
/*uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};*/
//
uchar num1,tt;
void delay(uint m)//延时
{
	uint x,y;
	for(x=0;x<m;x++)
	for(y=0;y<100;y++);
}
void main()
{	

	tt=0;
	TMOD=0x01;//设置定时器0为方式1,16位定时器
	TH0=(65536-10000)/256;
	TL0=(65536-10000)%256;
	TH1=(65536-10000)/256;
	TL1=(65536-10000)%256;
	EA=1;//开总中断
	ET0=1;//开定时器0
	ET1=1;
	TR0=1;//启动定时器0
	TR1=1;
	
	while (1)
	{
	if(tt>100)
	{
		P24=0;
	P25=1;
	P26=0;
	P27=1;
	P0=table[2];
	P1=0xaa;//奇数位亮
	}

	if (num1==100)
	{
		num1=0;
		P1=0x55;//偶数位亮
		P24=1;
		P25=0;
		P26=1;
		P27=0;
		P0=table[3];
	}

	}	
}

//定时器0中断方式
void time0() interrupt 1
{
//	uchar i;
	TH0=(65536-10000)/256;//定时10ms
	TL0=(65536-10000)%256;
	tt++;
}
//定时器1
void time1() interrupt 3
{
	TH1=(65536-20000)/256;
	TL1=(65536-20000)%256;
	num1++;	
}

⌨️ 快捷键说明

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