📄 ex4-5.c
字号:
/*
标题:范例 4-5
版本:1.0
Target:89S51
程序描述:Port B 在正常状况下会输出跑马灯,
当INT0 引脚有+5V的脉冲出现时,8颗LED会一闪一灭4次。 */
/* ***************************************************** */
#include <REGX51.H>
void delay (void) { /* delay 函数 */
unsigned char i,j; /* 这个函数执行时间的延迟 */
for (i=0;i<255;i++)
for(j=0;j<255;j++)
;
}
void delay_4isr (void) { /* delay_4isr 函数 */
unsigned char i,j; /* 这个函数执行时间的延迟 */
for (i=0;i<255;i++)
for(j=0;j<255;j++)
;
}
static void xint0_isr(void) interrupt IE0_VECTOR
{
unsigned char i,j=0XFF; /* 变量 j */
for(i=0;i<16;i++)
{
j=~j;
P1 = j; /* 将数值输出到 LED 输出埠 */
delay_4isr ();
}
}
void main (void) {
unsigned char j=0XFF; /* 变量 j */
EA=0; /* 设定系统不接受所有的中断 */
EX0=1; /* 设定接受INT0的中断 */
PX0=1;
EA=1; /* 设定系统接受中断 */
while (1) /* 无穷循环 */
/* 依次让LED 0,1,2,3,4,5,6,7闪烁 */
{
j=(j<<1) | 0x01;
if(j==0XFF) j=0XFE;
P1 = j; /* 将数值输出到 LED 输出端口 */
delay(); /* 调用 delay 函数*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -