📄 iintrrupt.c
字号:
#include <REG52.H>
#include<stdio.h>
/*=============================================================================
=============================================================================*/
unsigned int ex0_isr_counter = 0,final_count = 0;
void ex0_isr (void) interrupt 0
{
final_count++; // Increment the count
}
/*=============================================================================
=============================================================================*/
void InitUART()
{
SCON = 0x50;
// TMOD = TMOD &0x0F;
TMOD = 0x21;
TH1 = 0xFA;
TR1 = 1;
TI = 1;
PCON |= 0x80;
}
void Delay_1s()
{
TMOD = 0x51;
TH0=0x4c;
TL0=0x00;
TR0=1;
while(!TF0);
TF0 =0;
}
void main (void)
{
unsigned char i;
/*-----------------------------------------------
Configure INT0 (external interrupt 0) to generate
an interrupt on the falling-edge of /INT0 (P3.2).
Enable the EX0 interrupt and then enable the
global interrupt flag.
-----------------------------------------------*/
IT0 = 1; // Configure interrupt 0 for falling edge on /INT0 (P3.2)
EX0 = 1; // Enable EX0 Interrupt
EA = 1; // Enable Global Interrupt Flag
/*-----------------------------------------------
Wait forever.
-----------------------------------------------*/
while (1)
{
for(i=0;i<200;i++)
{
Delay_1s();
}
TR0 = 0;
InitUART();
printf("count = %u\n", final_count);
final_count = 0;
}
}
/*=============================================================================
=============================================================================*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -