㈠ C51单片机按键怎样实现中断检测
单片机有中断引脚,连到它们上面就行了,执行
返回值 函数名([参数]) interrupt n [using m]
如:void INT0_Interrupt (void) interrupt 0 using 0
{
xxxxxxxx
}
n对应中断源的编号,为0~15的常整数,不允许使用表达式
n对应中断源的编号查手册函数放在main外面,函数名任意命名。
㈡ 单片机按键一定要用中断吗
按键控制有查询和中断两种方式,中断必须借助中断引脚,而查询按键可用任何IO端口
按键较少时,一个按键占用一个IO口,而按键数量较多时,多采用矩阵形式,如常用
4个端口作为输出、4个端口作为输入的4*4矩阵来获得16个按键
还可以用单片机的AD转换功能一个引脚接多个按键,根据电阻分压原理判断是哪一个按键按下
㈢ 单片机 按键产生中断 控制显示 程序
不知道是怎样的显示方式,5位数码管扫描显示吗? 对应的原理图是什么,对应那些引脚,以下做参考
#include "reg51.h"
#include "intrins.h"
#include <absacc.h>
#define unit unsigned int
#define char unsigned char
sbit deng1=P0^1;
sbit deng2=P0^2;
sbit kong=P0^0;
char code dis_7[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00, 0xff };
/*共阴LED数码管段码 0 1 2 3 4 5 6 7 8 9 10 A B C D E F 灭 */
char data timedata[6]={0x00,0x00,0x00,0x00,0x00,0x00};//定义计数单元初值0,6个
char code weisao[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位扫描控制字
char data BUFFER[1]={0}; //定时器记数变量
char data wei=-1; //时间设置时选种位
char c=0; //闪烁次数变量
bit flag=0; //标志位
char j1,j; //计数标志
ledxian() //LED显示子程序
{
char k;
for(k=0;k<6;k++)
{
if(wei==-1) //当WEI为-1时正常显示
{
P1=dis_7[timedata[k]];//各位时间显示值转段码
}
else //WEI不为-1时再判断哪一位K闪
{
if(k==wei) //K=WEI时闪等扫过128次时闪
{
if(j==128)
{
//j1++;
//if(j1==1)
flag=~flag; //J到128时标志位取反
}
j++;
if(!flag)
{
P1=dis_7[16]; //灭LED灯
if(j==0)
{
if(c<15) //选种后闪烁次数
{
c++ ;
}
else //20次到了清WEI标志,清闪烁次数标志
{
wei=-1;
c=0;
ET0=1; //定时中断开
}
}
}
else
{
P1=dis_7[timedata[k]]; //FLAG=1时正常显示
}
}
else
{
P1=dis_7[timedata[k]]; //J不到128则正常显示
}
}
P2=~weisao[k]; //位扫描
delayxms(1); //1毫秒延时
P2=~0xff; //屏蔽
}
}
㈣ 单片机外部中断
定时百器中断是设定定时时间,到了该时间,就进行处理一次。
可以处理按度键扫描,动态显示,时钟累加等问。
外部中断,是与外答接接触,当中断引脚为低电平时,进入中断。
如果你的单片机没内有专门的键盘中断,可以使用外部中容断来做键盘中断。定时百器中断是设定定时时间,到了该时间,就进行处理一次。
可以处理按度键扫描,动态显示,时钟累加等问。
外部中断,是与外答接接触,当中断引脚为低电平时,进入中断。
如果你的单片机没内有专门的键盘中断,可以使用外部中容断来做键盘中断。定时百器中断是设定定时时间,到了该时间,就进行处理一次。
可以处理按度键扫描,动态显示,时钟累加等问。
外部中断,是与外答接接触,当中断引脚为低电平时,进入中断。
如果你的单片机没内有专门的键盘中断,可以使用外部中容断来做键盘中断。
㈤ 单片机外部中断与独立键盘问题
注意几点:
1, 外中断的触发需要用负跳变,而不要采用低电平
2, 读取独立键盘的时候,一定要消抖。
3, 在中断中,请在开始时关闭中断,等处理完当前中断,再开中断
请采纳。
㈥ 51单片机我需要使用按键中断,是不是要把按键接到外部中断的接口
51单片机需要使用按键中断,就要把按键接到外部中断的引脚上,用INT0中断,就把按键接在引脚P3.2上,用INT1,按键接P3.3上。
㈦ 51单片机按键中断控制流水灯
按键接在外中断脚上,外中断触发模式设为下降沿模式,即 IT0=1;或 IT1=1; ,在中断函数里调用流水灯函数或直接把代码写在中断函数里
㈧ 求个单片机矩阵键盘(4*4)中断(记得要中断)的C语言程序。。求高手自己写个啊
很简单的啊,不太清楚你的电路图,我把主要程序写一下:
#include<reg52.h>
unsigned char flag=0;//设置flag作为标志位,初值为0,一旦产生中断,将其置1
void main()
{
EA=1;//开总中断
EX0=1;//开外部中断0 ,假设是由P3.2产生的中断
IT0=1;//设置产生中断的方式,这是表示下降沿触发
P0=0X0F;//假设矩阵键盘接P0口,给所有列线低电平,所有行线高电平
while(1)
{
if(flag==1) //这个是表示,如果中断不产生,下面的程序不会运行,只有中断了,才会键盘扫描
{
按键扫描程序,这个我就不写了,写法有很多啦
}
数码管显示程序,这个我也不写了,不晓得你是什么电路图
}
}
void scan() interrupt 0
{
flag=1;//表示,一旦中断产生了,将flag置1
}
希望对你有用,呵呵
㈨ 有的单片机有外部中断,为什么还要专门弄什么键中断,专门的键中断有什么好处
键盘中断是对单片机中断资源的一种扩展,外部中断口一般都很少如果用于按键往往不够用,有了键盘中断就可以方便很多,很多情况下就不用软件循环按键扫描了。