;;内容:按下PA3接的按键进中断LED灯左移一位
;LED接法PD口
;源码下载:http://www.51hei.com/f/htwzd.rar
;1.开中断
;2.中断中防抖
include HT66F50.inc
ORG 0000H
JMP A1
ORG 04H ;外部中断0入口地址
JMP ZD01 ;
ORG 30H ;
A1:
MOV A,00000000B ;
MOV PRM1,A ;设置外部中断0的管脚为PA.3
MOV A,00000010B ;
MOV INTEG,A ;设置外部中断0为下降沿触发
CLR ACERL ;设置PA口不为AD输入口
SET PAPU.3 ;设置PA.3上拉
SET PAC.3 ;设置PA.3为输入口
MOV A,08H ;
MOV CP0C,A ;设置PA3不为比较器输入口
CLR PDC ;设置PD口为输出口
MOV A,01H ;设置PD口初始状态
MOV PD,A ;PD口显示初始状态
CLR INT0F ;清中断0标志
SET INT0E ;使能外部0中断
SET EMI ;使能总中断
JMP $
;*************************************************
; 外部中断0服务子程序
;*************************************************
ZD01:
RL PD ;左移PD口显示
SNZ PA.3 ;判断PA3是否为高电平(去抖)
JMP $-1 ;是低电平则返回判断
CALL M001 ;延时防止抖动
SNZ PA.3 ;
JMP $-4 ;
CLR INT0F ;清中断标志
RETI ;中断返回
;**************************************
; 延时子程序
;**************************************
M001:
MOV A,1
MOV [85H],A
M002:
MOV A,10
MOV [86H],A
M003:
MOV A,250
MOV [87H],A
M004:
SDZ [87H]
JMP M004
SDZ [86H]
JMP M003
SDZ [85H]
JMP M002
RET
END
关键字:合泰单片机 外部中断
引用地址:
合泰单片机外部中断程序
推荐阅读最新更新时间:2024-03-16 14:01
裸奔程序之外部中断检测按键
开发环境:ADS1.2 实验实验功能:在TQ2440开发板上,利用外部中断模式检测按键是否按下, 如果某按键被按下则点亮对应某个LED。 #include 2440addr.h #include option.h //这个文件中定义了中断服务程序的起始地址 #define LED1_ON (rGPBDAT &=~(1 5)) #define LED1_OFF (rGPBDAT |=(1 5) ) #define LED2_ON (rGPBDAT &=~(1 6)) #define LED2_OFF (rGPBDAT |=(1 6)) #defin
[单片机]
AVR128单片机最小系统串口,外部中断,跑马灯,uCOS-II移植
实验名称:串口通信实验 功能描述:计算机通过串口向开发板发送数据,开发板将数据原样送回。 实验目的:学习串口通信 实验说明:MCU--M128 内部8M晶振 连接方式:利用串口线将开发板和计算机相连。 单片机源程序如下: /************************************************ 文件:sio.c 用途:结构化串口通信程序 ************************************************/ #include config.h #if USEUART0 siocirqueue RTbuf_UART0; #endif #if USEUART1
[单片机]
STM32进不了外部中断的一个可能原因
近期在使用一块STM32的板子的时候,用库函数和外部中断来接收霍尔传感器信号,配置了很久,就是进不去外部中断。 IO口的初始化函数如下: void Hall_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//使能PORTA,PORTC时钟 RCC_APB2PeriphClockCmd(RCC_A
[单片机]
重构外部中断回调函数来区分外部中断具体引脚做具体对应的任务
1.STM32CubeMX配置如下: 这里GPIO mode一共有六种分别是: (1)上升沿触发外部中断 (2)下降沿触发外部中断 (3)边沿触发外部中断 (4)上升沿触发外部事件 (5)下降沿触发外部事件 (6)边沿触发外部事件 2.CubeMX生成的代码: /** Configure pins as * EXTI */ void MX_GPIO_Init(void) { __HAL_RCC_GPIOD_CLK_ENABLE(); //使能GPIO时钟 GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = DATA_4
[单片机]
stm32f407之EXTI(操作寄存器)
六、EXTI 外部中断/事件控制器包括用于生成高达23个事件/中断的请求。每条中断线可独立配置选择类型(响应或挂起)和相应的触发事件(上升或下降或两者)。每一中断线可以独立屏蔽。有一个挂起寄存器维持中断线的状态请求。 EXTI线0~15连接到PX0~15(可编程配置) EXTI线16连接到PVD的输出事件 EXTI线17连接到RTC报警事件 EXTI线18连接的USB OTG FS唤醒事件 EXTI线19连接到以太网唤醒事件 EXTI线20连接的USB OTG HS(在FS配置)唤醒事件 EXTI线21连接到RTC的篡改和TimeStamp事件 EXTI线22连接到RTC唤醒事件 设置步骤: 1.
[单片机]
ARM7与FPGA相结合的应用
ARM7与FPGA相结合在工业控制和故障检测中的应用 工业控制中往往需要完成多通道故障检测及多通道命令控制(这种多任务设置非常普遍),单独的CPU芯片由于其外部控制接口数量有限而难以直接完成多路检控任务,故利用ARM芯片与FPGA相结合来扩展检控通道是一个非常好的选择。这里介绍用Atmel公司ARM7处理器(AT91FR40162)和ALTERA公司的低成本FPGA芯片(cyclone2)结合使用完成多通道检控任务的一种实现方法。 各部分功能简介 图1为此系统的结构连接框图。如图所示,ARM芯片与FPGA芯片之间通过数据总线、地址总线及读写控制线相连,而与终端PC则通过串口通信;FPGA与目标设备通过命令控
[嵌入式]
STM32之中断与事件一个使用GPIO作为外部中断的示例
1.GPIO 的正确设置 GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIOD clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); /* Configure PD.03, PC.04, as input floating */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 ; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOD, &GPIO_InitStru
[单片机]
FPGA与DSP的高速通信接口设计与实现
在雷达信号处理、数字图像处理等领域中,信号处理的实时性至关重要。由于FPGA芯片在大数据量的底层算法处理上的优势及DSP芯片在复杂算法处理上的优势,DSP+FPGA的实时信号处理系统的应用越来越广泛。ADI公司的TigerSHARC系列DSP芯片浮点处理性能优越,故基于这类。DSP的DSP+FPGA处理系统正广泛应用于复杂的信号处理领域。同时在这类实时处理系统中,FPGA与DSP芯片之间数据的实时通信至关重要。 TigerSHARC系列DSP芯片与外部进行数据通信主要有两种方式:总线方式和链路口方式。链路口方式更适合于FPGA与DSP之间的实时通信。随着实时信号处理运算量的日益增加,多DSP并行处理的方式被普遍采用,它们
[工业控制]