AT89C51外部中断实验实现8盏灯的同时亮灭(用外部开关控制)

本实验运用keil uvision4软件以及isis7 Professional仿真软件完成的。需事先安装好这两个软件,如果不会,可以评论下方询问,欢迎大家打扰!下面开始我们的实验:
我们先用isis7 绘制出如图所示的电路图:
在这里插入图片描述由于我对中间单片机芯片有些许移动,因此,线有点乱,望理解!(此处运用INT0)
接下来,我们开始在keil软件中编程输入以下代码:

#include<reg51.h>
sbit K=P3^3;
/*void delays()
{
  unsigned i,j,k;
  for(i=20;i>0;i--)
    for(j=20;j>0;j--)
	  for(k=248;k>0;k--);
}				*/
void main(void)
{
   EA=1;
   EX0=1;
   IT0=1;
   P1=0xff;
   while(1);
}
void int1(void) interrupt 1
{
   P1=~P1;
}

随后查错!点击在这里插入图片描述
观察下方,当提示没有错误时,我们右键Target 1如图:
在这里插入图片描述
随后,点击第一个选择output,勾选☑️Create HEX File ,随后点击ok!
在这里插入图片描述
最后点击build或rebuild,生成相应的.hex文件且显示无错误!如图:在这里插入图片描述
最后我们回到isis7,双击单片机,选择.hex文件,导入.hex文件即可!
在这里插入图片描述
点击ok,按下运行键!开关在这里!!!!
在这里插入图片描述
手势键哦!
按下后8个灯的状态会发生明显变化哦!就是这么神奇!
在这里插入图片描述
从图片中可以看到,开关闭合灯亮,抓拍的,拍了好几张才成功!希望大家支持!!!
大家也可以将控制端由INT0改为INT1口!电路图只需小小的改动,将原来接INT0转换接到INT1。
代码改为:

#include<reg51.h>
sbit K=P3^3;
/*void delays()
{
  unsigned i,j,k;
  for(i=20;i>0;i--)
    for(j=20;j>0;j--)
	  for(k=248;k>0;k--);
}				*/
void main(void)
{
   EA=1;
   EX1=1;
   IT1=1;
   P1=0xff;
   while(1);
}
void int1(void) interrupt 2
{
   P1=~P1;
}

即可!
小小萌新希望大家大力支持一下,谢谢谢谢🙏!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

L C H

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值