STM8S208R8的第三个程序---外部中断

发布者:fengting最新更新时间:2016-10-12 来源: eefocus关键字:STM8S208R8  外部中断 手机看文章 扫描二维码
随时随地手机看文章
注意,下面的程序都没按键去抖

#include
#define LED PC_ODR_ODR1
/******************************************************
PD3按键中断控制LED亮灭
******************************************************/
void GPIO_INIT()//端口初始化
{
  //---------------------------LED---------------------
  PC_DDR_DDR1=1;
  PC_CR1_C11 =1;//LED推挽输出
  //---------------------------SW----------------------
  PD_CR1_C13 =1;//SW上拉输入
  PD_CR2_C23 =1;//使能外部中断
}
void EXTI_INIT()//外部中断初始化
{
  EXTI_CR1=0X80;//PD口下降沿触发中断
}
#pragma vector=0x08//GPIOD中断向量号是6,+2即可
__interrupt void EXTI_PD3()
{
  LED=~LED;//让LED1状态与按键之前状态相反
}
void main()
{
  GPIO_INIT();
  EXTI_INIT();
  asm("rim");//打开全局中断
  while(1);
}

**********************************************************分割一下*******************************************************************

这里再提供一个程序,引入延时程序,有了时间概念,下一篇日志我们来写STM8S的时钟方面的程序,要用到STLINK

#include
#define LED PC_ODR_ODR1
/******************************************************
PD3按键中断控制LED亮灭,因为没有时钟初始化,STM8S上电默认的Fmaster=Fcpu是2MHz
一旦PD3按下,LED就开始闪烁
******************************************************/
void delay()//延时函数
{
  unsigned int x,y;
  for(x=0;x<300;x++)
    for(y=0;y<400;y++);
}
void GPIO_INIT()//端口初始化
{
  //---------------------------LED------------------------------
  PC_DDR_DDR1=1;
  PC_CR1_C11 =1;//LED推挽输出
  //---------------------------SW-------------------------------
  PD_CR1_C13 =1;//SW上拉输入
  PD_CR2_C23 =1;//使能外部中断
}
void EXTI_INIT()//外部中断初始化
{
  EXTI_CR1=0X80;//PD口下降沿触发中断
}
#pragma vector=0x08//GPIOD中断向量号是6,+2即可
__interrupt void EXTI_PD3()
{
  while(!PD_IDR_IDR3);//判断是否按下
  while(1)//如果按下了,则执行循环内程序,闪烁LED
  {
    LED=1;
    delay();
    LED=0;
    delay();
  }
}
void main()
{
  GPIO_INIT();
  EXTI_INIT();
  asm("rim");//打开全局中断
  while(1);
}

关键字:STM8S208R8  外部中断 引用地址:STM8S208R8的第三个程序---外部中断

上一篇:STM8S208R8的第四个程序---外部晶振时钟源验证
下一篇:STM8S208R8的第二个程序---按键控制LED

推荐阅读最新更新时间:2024-03-16 15:15

STM32 EXTI外部中断小结
本文为野火教程学习笔记。 EXTI原理解释 EXTI 简介   EXTI (External interrupt/event controller) ——外部中断/事件控制器,其用于管理外设中GPIO和一些其他外设的中断。可以实现单独对某一线配置中断触发方式等操作。 EXTI原理框图解释   边沿检测器检测外部的信号,上升沿和下降沿触发选择寄存器具体的配置会决定边沿检测电路检测何种边沿。   检测到对应边沿后,检测电路输出1,软件中断事件寄存器的配置决定是否产生中断或事件,相当于小开关。   若配置响应这个边沿,则小开关输出1。下面由请求挂起寄存器和事件屏蔽寄存器确定产生中断还是事件。这两个相当于选择开关。  
[单片机]
STM32 <font color='red'>EXTI</font><font color='red'>外部中断</font>小结
51单片机之外部中断应用实例(电平触发、边沿触发)
硬件:STC89C52RC 开发工具:Keil uVision4 前言:8051是一款很经典的、历史悠久的单片机,作为一款入门级的单片机8051受到很多初学者的欢迎。89c52是8051系列的成员之一,拥有8K字节程序存储空间,512字节随机数据存储空间;I/O口控制端口、中断功能、定时器及串行接口。下面详细讲述外部中断功能的使用。 外部中断:单片机提供的系统紧急事件的输入控制。事件触发的方式包括输入信号的下降沿触发、低电平触发。当触发中断后,单片机会跳到某一个固定的地址去执行中断服务程序。 外部中断信号由INT0、INT1引脚传送进来,如图所示: 有关中断处理的相关控制寄存器如下: 计时计数器控制寄存器 TCO
[单片机]
51单片机之<font color='red'>外部中断</font>应用实例(电平触发、边沿触发)
秉火429笔记之十 EXTI-外部中断/事件
1. EXTI 简介 外部中断/事件控制器(EXTI)管理了控制器的23个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。 EXTI 控制器的主要特性如下: 每个中断/事件线上都具有独立的触发和屏蔽 每个中断线都具有专用的状态位 支持多达 23 个软件事件/中断请求 检测脉冲宽度低于 APB2 时钟宽度的外部信号。 2. EXTI 功能框图 3. 功能点 要产生中断,必须先配置好并使能中断线。 要产生事件,必须先配置好并使能事件线。 通过在软件中对软件中断/事件
[单片机]
秉火429笔记之十 <font color='red'>EXTI</font>-<font color='red'>外部中断</font>/事件
PIC 外部中断RB0/INT试验
/******************************* PORTB的RB0可以作为一个外部中断信号输入,可以对输入信号的上升沿或下降沿跳变产生一个中断响应。 要实现RB0/INT中断源,软件初始化设定步骤如下: 1,RB0/INT引脚为输入模式,TRISB0 = 1; 2,INTEDG = 1,RB0上输入信号上升沿产生中断;INTEDG = 0,下降沿中断 3,清除INTF = 0,确识有效中断发生前中断标志为0; 4,INTE = 1,允许RB0/INT中断响应。 5,GIE = 1,打开总中断使能 6,中断发生后,查询INTF位; 7,若INTF = 1,有中断,处理完毕后,软件必须清除INTF中断标志位。 ***
[单片机]
STM32F103单片机学习笔记(2):外部中断
对于STM32的中断首先需要用到的文件是startup_stm32f10x_hd.s和stm32f10x_it.c这两个文件,其中startup_stm32f10x_hd.s是启动文件,stm32f10x_it.c是中断响应函数。对于外部中断,它的过程是外部的IO口监测到电平的变化,触发外部中断,所以它又涉及到3个库文件,stm32f10x_gpio.c、stm32f10x_exti.c和misc.c,misc.c包含中断库,stm32f10x_exti.c是外部的IO口中断,stm32f10x_gpio.c是IO口的配置。还有一个我们上一篇中说的所有的外设都要用到的库文件时钟stm32f10x_rcc.c。 一、启动文件 说
[单片机]
STM32F103单片机学习笔记(2):<font color='red'>外部中断</font>
STM32F103 GPIO的外部中断的使用例子
STM32的GPIO可以作为中断输入使用,这样增强了实时检测性,可以用于外部按键或是触控等使用。如果使用,其实不难,这里使用标准的固件库,加入外部中断的库文件: 在stm32f10x_conf.h 中,打开 #include stm32f10x_exti.h 这里通过外部触控的方式,点亮或是关闭一个LED灯的例子,熟悉一下STM32F103 系列外部中断的使用。 我这里使用的GPIO为:PC11,头文件的GPIO宏定义为: /**** EXTI Control ****/ void EXTI_GPIO_Init(void); #define RCC_TOUCHOUT RCC_APB2
[单片机]
【stm32f407】外部中断实现按键中断方式
.外部中断 STM32F4的每个IO都可以作为外部中断的中断输入口,这点也是STM32F4的强大之处。STM32F407的中断控制器支持22个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。 STM32F407的22个外部中断为: EXTI线0~15:对应外部IO口的输入中断。 EXTI线16:连接到PVD输出。 EXTI线17:连接到RTC闹钟事件。 EXTI线18:连接到USB OTG FS唤醒事件。 EXTI线19:连接到以太网唤醒事件。 EXTI线20:连接到USB OTG HS(在FS中配置)唤醒事件。 EXTI线21:连接到RTC入侵和时间戳事件。
[单片机]
【stm32f407】<font color='red'>外部中断</font>实现按键中断方式
外部中断控制
#include reg51.h unsigned char flag=0; sbit p33=P3^3; unsigned char code port3 = { 0x28,0x28,0x28,0x28, 0x29,0x29,0x29,0x29, 0x29,0x29,0x29,0x29, 0x29,0x29,0x29,0x29, }; unsigned char code port1 = { 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00, 0x20,0x20,0x20,0x20, 0x24,0x24,0x24,0x24, }; main() { unsigned char i; u
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved