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

📄 anjianzhongduan.c

📁 通过C语言实现的基于AVR单片机的按键中断程序
💻 C
字号:
#include<iom8v.h>
#include<macros.h>

unsigned char CountNum;  //全局变量,用来计数
#pragma interrupt_handler int_fun1:2
#pragma interrupt_handler int_fun2:3

void int_fun1(void)
{
  if(++CountNum>=100)
  CountNum=0;
  }
void int_fun2(void)
{
  if(--CountNum<=0)
  CountNum=99;
  
 }
  void delay_1ms(void)
{
   unsigned int i;
   for(i=1;i<(unsigned int)(1144-2);i++);
   }
   void  delay_ms(unsigned int n)
   { 
      unsigned int i=0;
	  while(i<n)
	  {
	    delay_1ms();
		i++;
		}
		}
  void main()
  {
  unsigned char temp,temp2;
  unsigned char num[10]={0x3F,0x06,0x5B,0X4F,0X66, 
                         0X6D,0X7D,0X07,0X7F,0X6F};
  DDRB=0XFF;
  PORTB=0XFF;
  DDRC=0X03;
  PORTC=0XFF;
  DDRD=0XFF;
  PORTD=0XFF;
  MCUCR=0X0f;
  GICR|=0XC0;
  GIFR=0X00;
  CountNum=0;
  SEI();     //打开全局中断
  while (1)
  {
  //CLI();     //关闭全局中断
  temp=CountNum/10;
  PORTC&=~(1);
  PORTB=num[temp];
  
  delay_ms(1);
  PORTC|=0XFF;
  
  temp=CountNum%10;
 // SEI();
  PORTC&=~(2);
  PORTB=num[temp];
  delay_ms(1);
  PORTC|=0xff;
  //SEI();
  delay_ms(1);
  }
}

⌨️ 快捷键说明

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