?? main.c
字號:
/*
實驗六:
INT0中斷實驗。
1、按鍵中斷實驗。低電平中斷,在中斷中改變PB1電平狀態。
2、內部1 M晶振,程序采用單任務方式,軟件延時。
3、進行此實驗請插上JP1的所有8個短路塊,JP7(LED_EN)短路塊。
AVR mega16學習板
www.iccavr.com
2006-03-23
*/
#include "iom16v.h"
#include <macros.h>
/*延時函數*/
void delay_ms(unsigned char i) {
unsigned char a, b;
for (a = 1; a < i; a++) {
for (b = 1; b; b++) {
;
}
}
}
void main(void) {
DDRA = 0x00; /*方向輸入*/
PORTA = 0xFF; /*打開上拉*/
DDRB = 0xFF; /*方向輸出*/
PORTB = 0xFF; /*電平設置*/
DDRC = 0x00;
PORTC = 0xFF;
DDRD = 0x00;
PORTD = 0xFF;
GICR |= (1 << INT0);
SEI();
while (1) {
delay_ms(200);
PORTB ^= (1 << 0); /*PB0電平取反*/
}
}
#pragma interrupt_handler Int0: 2 /*外部中斷INT0*/
void Int0(void) {
unsigned int i;
PORTB ^= (1 << 1); /*PB1電平取反*/
i = 1000; /*加入廷時防按鍵顫動*/
while (--i);
while ((PIND & (1 << PD2)) == 0); /*等待按鍵松開*/
i = 1000; /*加入廷時防按鍵顫動*/
while (--i);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -