1、 编 程 软 件:keil5版本。
2、仿 真 软 件:Proteus8.12
3、单片机选型:STC15W4K32S4
4、学 习 目 标: 1、学习外部中断INT0
5、程 序 文 件 :
/**********************************************************************
项目名称:基于STC15W4K32S4单片机仿真《外部中断INT0控制LED亮灭》
项目作者:LCY
项目版本:V1.0
项目说明:通过外部中断来控制LED灯亮灭,通过按键来模拟下降沿信号。
仿真图中P3.2接的按键,未定义。是因为P3.2端口INT0产生下降沿信号后,
即可实现按键效果
学习目标:1、学习外部中断INT0
起止日期:2022年12月13号-2022年12月13号
**********************************************************************/
#include <stc15.h> //头文件,必须包含此文件。
#define uchar unsigned char
#define uint unsigned int
sbit LED = P0^0; //定义LED端口为P0.0;
/**********************************************************************
函 数 名:主函数
函数功能:
**********************************************************************/
void main(void)
{
P0M0 = 0x00; P0M1 = 0x00; //GPIO初始化,设置为准双向口
P1M0 = 0x00; P1M1 = 0x00; //GPIO初始化,设置为准双向口
P2M0 = 0x00; P2M1 = 0x00; //GPIO初始化,设置为准双向口
P3M0 = 0x00; P3M1 = 0x00; //GPIO初始化,设置为准双向口
P4M0 = 0x00; P4M1 = 0x00; //GPIO初始化,设置为准双向口
P5M0 = 0x00; P5M1 = 0x00; //GPIO初始化,设置为准双向口
P6M0 = 0x00; P6M1 = 0x00; //GPIO初始化,设置为准双向口
P7M0 = 0x00; P7M1 = 0x00; //GPIO初始化,设置为准双向口
IT0 = 1; //设置 INT0为下降沿触发
EX0 = 1; //INT0中断打开
EA = 1; //打开总中断
LED=1;
while(1)
{
}
}
/**********************************************************************
函 数 名:INT0中断,中断号为0,每个中断对应相应的中断号,中断号不能改变
函数功能:
**********************************************************************/
void INT0() interrupt 0 //INT0可以随意命名,interrupt不能变,也不能缺少
{
LED=!LED; //LED状态取反
}
6、仿真电路