STC8A2K08S2外部中断只有上升沿吗?
用STC8A2K08S2做了个低功耗的产品,用外部中断0(光控),外部中断1(按键)。两个中断管脚都有240K上拉电阻,并104电容。设置如下时,按下按键,或者遮住光敏三极管,不能触发中断,只有释放按键,或者去掉遮盖物,才能触发中断。说明只有上升沿中断?
IT0 = 0; //设置INT0的中断类型 (1:仅下降沿 0:上升沿和下降沿)
IT1 = 0; //设置INT1的中断类型 (1:仅下降沿 0:上升沿和下降沿)
EX0 = 1; //开外部中断0,光控
EX1 = 1; //开外部中断1,按键
EA = 1; //开总中断
用下面程序测试,按下两次按键,第2次按下能触发中断。遮盖,去掉遮盖物两次,才能触发中断。
IT0 = 1; //设置INT0的中断类型 (1:仅下降沿 0:上升沿和下降沿)
IT1 = 1; //设置INT1的中断类型 (1:仅下降沿 0:上升沿和下降沿)
EX0 = 1; //开外部中断0,光控
EX1 = 1; //开外部中断1,按键
EA = 1; //开总中断
啥原因,请版主看下,谢谢。 顶一下。 顶一下,请版主看下。谢谢。 中断管脚和光敏三极管之间是怎么连的 modbus 发表于 2019-3-22 13:02
中断管脚和光敏三极管之间是怎么连的
3.3V----244电阻-----INT0----3DU5 ---GND 国学芯用 发表于 2019-3-22 14:26
#include "reg51.h"
#include "intrins.h"
sbit P10 = P1^0;
sbit P11 = P1^1;
void INT0_Isr() interrupt 0
{
if (INT0) //判断上升沿和下降沿
{
P10 = !P10; //测试端口
}
else
{
P11 = !P11; //测试端口
}
}
void main()
{
IT0 = 0; //使能INT0上升沿和下降沿中断
EX0 = 1; //使能INT0中断
EA = 1;
while (1);
}
这个中,if (INT0) ,这个INT0不能理解。 jqfsjt 发表于 2019-3-22 22:15
3.3V----244电阻-----INT0----3DU5 ---GND
电阻是多大 modbus 发表于 2019-3-23 10:40
电阻是多大
240K,244
硬件消抖,244电阻太大,104电容太小。
软件也要有消抖。不要有问题就怪单片机。{:shocked:} jqfsjt 发表于 2019-3-22 22:16
#include "reg51.h"
#include "intrins.h"
#include "reg51.h"中定义了 INT0= P3^2; STC 确实有 外部 ,上升 及下降 沿触发,,,减少一个反相不错,,单有个奇怪 问题STC8A64S4A12LQPF48脚的 INI0 接外部中断就复位??换成 DIP40封装 的都没问题 ,,其他 INI1, INT2, INT3 都正常 ,LQPF48封装INT0 有问题白思不得其解, PCB改为INI1,INT2..
好有静功耗 8mA有CR230电池 是不可能的了,,今后期望有1~2mA 真正低功耗 ,,只是奢望{:lol:} INT0 INT1可以设置成上升、下降沿中断。也可以用PCA的捕捉功能当外部中断用,可以单独使用上升、下降沿中断,或同时允许。
页:
[1]