anjianzhongduan.c
来自「通过C语言实现的基于AVR单片机的按键中断程序」· C语言 代码 · 共 68 行
C
68 行
#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 + =
减小字号Ctrl + -
显示快捷键?