AVR单片机问题求解 第四行和第五行是啥意思?
#include<iom16v.h>#defineucharunsignedchar#defineuintunsignedint#defineBZ_0(PORTD=POR...
#include<iom16v.h>
#define uchar unsigned char
#define uint unsigned int
#define BZ_0 (PORTD=PORTD&0xdf)
#define BZ_1 (PORTD=PORTD|0x20)
uint cnt;
//=============================
void delay_ms(uint k)
{
uint i,j;
for(i=0;i<k;i++)
{
for(j=0;j<1140;j++)
;
}
}
//=============================
void main(void)
{
PORTB=0xff;
DDRB=0xff;
PORTD=0xff;
DDRD = 0xf3;
MCUCR = 0x0A;
GICR = 0xC0;
SREG=0x80;
while(1)
{
PORTB=0x00;
delay_ms(500);
PORTB=0xff;
delay_ms(500);
}
}
//***************************************************
#pragma interrupt_handler int0_isr:2
void int0_isr(void)
{
PORTB=0x0f;
delay_ms(2000);
}
//****************************************
#pragma interrupt_handler int1_isr:3
void int1_isr(void)
{
SREG=0x80;
for(cnt=0;cnt<5000;cnt++)
{BZ_1;delay_ms(2); BZ_0;}
}
D1-D8 8个LED灯闪烁,点亮/熄灭时间约500ms,一旦INT1触发中断,蜂鸣器发出10s警报 展开
#define uchar unsigned char
#define uint unsigned int
#define BZ_0 (PORTD=PORTD&0xdf)
#define BZ_1 (PORTD=PORTD|0x20)
uint cnt;
//=============================
void delay_ms(uint k)
{
uint i,j;
for(i=0;i<k;i++)
{
for(j=0;j<1140;j++)
;
}
}
//=============================
void main(void)
{
PORTB=0xff;
DDRB=0xff;
PORTD=0xff;
DDRD = 0xf3;
MCUCR = 0x0A;
GICR = 0xC0;
SREG=0x80;
while(1)
{
PORTB=0x00;
delay_ms(500);
PORTB=0xff;
delay_ms(500);
}
}
//***************************************************
#pragma interrupt_handler int0_isr:2
void int0_isr(void)
{
PORTB=0x0f;
delay_ms(2000);
}
//****************************************
#pragma interrupt_handler int1_isr:3
void int1_isr(void)
{
SREG=0x80;
for(cnt=0;cnt<5000;cnt++)
{BZ_1;delay_ms(2); BZ_0;}
}
D1-D8 8个LED灯闪烁,点亮/熄灭时间约500ms,一旦INT1触发中断,蜂鸣器发出10s警报 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询