本实验运用keil uvision4软件以及isis7 Professional仿真软件完成的。需事先安装好这两个软件,下面开始我们的实验:
我们先用isis7 绘制出如图所示的电路图:
由于我对中间单片机芯片有些许移动,因此,线有点乱,望理解!(此处运用INT0)
接下来,我们开始在keil软件中编程输入以下代码:
#includesbit 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。
代码改为:
#includesbit 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;
}
关键字:AT89C51 外部中断 8盏灯 同时亮灭
引用地址:
AT89C51外部中断实验实现8盏灯的同时亮灭(用外部开关控制)
推荐阅读最新更新时间:2024-11-04 01:39
基于AT89C51的CAN-RS232通信转换设计
1 引言 RS232作为标准的计算机串行接口已被广泛使用,与此同时,随着现场总线技术的飞速发展,具有实时性好、可靠性高、结构简单等优点的CAN总线在测控系统中也越来越多地被采用,但由于两者的总线结构、通信协议及传输特点各不相同,因而给不同设备之间的连接带来诸多不便。因此,如何以最简单的方式实现CAN节点与RS232串行口的通信就成为工程实践中一个不可回避的问题。 本文采用典型的不具备CAN通信能力的AT89C51单片机作为微处理器,设计了一个简单、实用的通信转换模块。该通信转换模块具有体积小、结构简单、通用性好、使用方便等特点。 2 工作原理 CAN-RS232通信转换模块通过硬件电路的电平标准转换和软件编程的通信协议转换实
[单片机]
基于单片机AT89C51的时间/位移换向控制器设计
引言 在实际生产过程中,常常要用到具有自动换向功能的控制部件,如机械加工中的往返运行(位移),直流电源的正反向输出,电动机的正反转运行等现象,都是当正向(或反向)运行到一定时间或一定位置时,自动换为反向(或正向)运行,周而复始的过程。实现这一过程的自动化,就是设计一套控制电路,再配以位移传感器或时间继电器。目前市场现有的时间继电器虽然可以用多个组合来满足一些使用场合的要求,但仍存在着重复计时误差大,稳定可靠运行性不高,使用不方便灵活等问题。为此,笔者研发了以单片机为核心组成的时间/位移换向控制器SWHX-1,该系统具有成本低等特点,可完全且克服以上不足。 电路组成及工作原理 SWHX-1的内部电路如图1所示。该系统分为输入输
[应用]
89C51中断系统介绍(外部中断)
0、89C51中断系统分类: 分为三种: 1)、外部中断 2)、定时器中断 3)、串口中断 1、中断的概念 中断触发后,CPU会从主函数调到中断函数中。 外部中断1: 低电平触发:P3.2 是0 下降沿触发:p3.2电平:1变为0则触发。 外部中断2同1。 2、中断允许控制 EA是总开关;EX0、ET0、EX1、ET1、ES为分开关。 3、中断请求标志 4、中断优先级 2个优先级,故可实现2级嵌套。 INT0和INT1两个外部中断,T0、T1两个定时器中断,RX和TX为一个串口中断。 硬件中断优先级最高,串口优先级最低。 5、中断响应条件 6、中断
[单片机]
STM32学习—外部中断EXTI
外部中断配置步骤 要使用外部中断我们就需要先配置它,通常都需经过这几步: (EXTI相关库函数在stm32f10x_exti.c和stm32f10x_exti.h文件中) (1)使能IO口时钟,配置IO口模式为输入 (2)开启 AFIO 时钟,设置 IO 口与中断线的映射关系 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource); GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_
[单片机]
键盘接口程序设计之加减运算
/* 程序效果:1、开机时显示899 2、按键key0一次数字加1,按键key1一次数字减1。 加到999时再加1归零,减到000时再减1得999。 3、按住键key2不放实现连加功能,前3s每0.2s加1,以后每0.1s加1. 4、按住键key3不放实现连减功能,前3s每0.2s减1,以后每0.1s减1. 5、版权所有:http://www.51hei.com/ 转帖须保留 */ ORG 0000H LJMP START ORG 0013H //外部中断1 LJMP IN1 ORG 0030H START:SETB IT1 //设置为下降沿触发 SETB EX1 //打开外部中断1 SE
[单片机]
51单片机-----------四向交通灯
一 实验目的: 实验4:运用AT89C51芯片实现四向交通灯: (1) 掌握C语言编程单片机控制程序的方法。 (2) 掌握使用Keil4软件编写、编译、调试程序的方法。 (3) 掌握使用Proteus软件绘制电路原理图、硬件仿真和程序调试。 (4) 理解和掌握共阴极数码管的显示原理和编码(记忆)。 (5) 熟悉使用51单片机I/O端口实现对外部用电器和电路的控制。 二、实验硬件和软件: 计算机1台、并安装Proteus8.6软件和Keil4软件。 Proteus8.6中会运用的部件:7SEG-MPX2-CC、AT89C51、BUTTON、LED-GREENREDYELLOW、RESPACK-8d 三、试验任务: 1.
[单片机]
STM32_外部中断线/事件线理解
这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志19字样的注释,表示这样的线路共有19套。图中的蓝色虚线箭头,标出了外部中断信号的传输路径。 首先外部信号从编号1的芯片管脚进入,经过编号2的边沿检测电路,通过编号3的或门进入中断挂起请求寄存器,最后经过编号4的与门输出到NVIC中断检测电路,这个边沿检测电路受上升沿或下降沿选择寄存器控制,用户可以使用这两个寄存器控制需要哪一个边沿产生中断,因为选择上升沿或下降沿是分别受2个平行的寄存器控制,所以用户可以同时选择上升沿或下降沿,而如果只有一个寄存器控制,那么只能选择一个边沿了。 接下来是编号3的或门,这个或门的另一个输入是软件中断/事件寄存器
[单片机]
基于AT89C51和DS18B20的最简温度测量系统
l引 言 温度的测量和控制在激光器、光纤光栅的使用及其他的工农业生产和科学研究中应用广泛。温度检测的传统方法是使用诸如热电偶、热电阻、半导体PN结之类的模拟温度传感器。信号经取样、放大后通过模数转换,再交自单片机处理。被测温度信号从温敏元件到单片机,经过众多器件,易受干扰、不易控制且精度不高。因此,本文介绍一种新型的可编程温度传感器DS18B20,他能代替模拟温度传感器和信号处理电路,直接与单片机沟通,完成温度采集和数据处理。DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。 2温度测量系统硬件 系统结构图如图1所示 。这里通过上拉电阻直
[应用]