📄 int0.c
字号:
/******************************************/
//文件名:Int0.c
//功能: 外部中断的应用
//作者: young
//时间: 2006.10.1
//目标MCU:ATmega8
//晶振: 8MHZ
/******************************************/
#include <iom8v.h>
#include <macros.h>
#include "Delay.h"
unsigned char CountNum; //全局变量,用来计数
#pragma interrupt_handler int_fun:2
#pragma interrupt_handler int_fun:3
void int_fun(void)
{
if(++CountNum>=100)
CountNum=0;
}
//主函数,显示数据时先关中断,然后再打开
void main()
{
unsigned char temp,temp2;
unsigned char num[10]={0x3F, 0x06, 0x5B, 0x4F, 0x66,
0x6D, 0x7D, 0x07, 0x7F, 0x6F};
//初始化端口
DDRB=0xFF; //设置B口为输出模式
PORTB=0xFF; //置高电平
DDRC=0x03;
PORTC=0xFF;
DDRD=0xFF;
PORTD=0xFF;
MCUCR=0x02; //INT0下降沿触发,INT1低电平有效
GICR|=0xC0; //打开INT0,INT1中断
GIFR=0xC0; //清除INT0、INT1中断标志位
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 + -