用两按键控制51单片机的2个外部中断怎么编

用两按键控制51单片机的2个外部中断怎么编,第1张

按键控制中断你这里的描述是不规范的,我想应该是两个按键接外部中断吧。

#include<reg51h>

#define uchar unsigned char

uchar dat;

void ext0() interrupt 0

{

dat++;

P0=dat;

}

void ext1() interrupt 2

{

dat--;

P0=dat;

}

main()

{

EX0=1;

EX1=1;

IT0=1;

IT1=1;

EA=1;

while(1);

}

实现流水灯的方式有很多种(中断,定时器,延时等等),看用哪种方式,最简单的是延时做流水灯,那么在死循环里面增加按键检测,判断出有按键按下来时,再进入死循环,程序不往下走就可以暂停,再按跌出死循环。

#include //51系列单片机定义文件

#define uchar unsigned char //定义无符号字符

#define uint unsigned int //定义无符号整数

void delay(uint); //声明延时函数

void main(void)

{

uint i;

uchar temp;

uint Flag1=0;  按键标志位bai

uint Flag2=0;

while(1)

{

Flag1 = keyscan();

if(Flag1==1)(Flag2=~Flag2); //如果一旦检测到一次按键扫描就把标志位2 打开;再次就关闭;

if(Flag2==1)// 如果标志位打开就开始流水灯

{

temp=0x01;

for(i=0;i<8;i++) //8个流水灯逐个闪动

{

P1=~temp;

delay(100); //调用延时函数

temp<<=1;

}

}

扩展资料:

单片机编程就是硬件是单片机,基于单片机进行的程序开发,在有周围外设支持的情况下,用软件来控制的部分通过单片机编程来实现。单片机能识别的语言是硬件语言即汇编,因此编程就是围绕汇编来实现,有直接用汇编程序来编写的,但是较难调试的编写,特别是一上规模就更不易实现,因此常用高级语言来写然后通过编译器转化成汇编。

参考资料来源:百度百科-单片机C语言编程

很简单的啊,不太清楚你的电路图,我把主要程序写一下:

#include<reg52h>

unsigned char flag=0;//设置flag作为标志位,初值为0,一旦产生中断,将其置1

void main()

{

EA=1;//开总中断

EX0=1;//开外部中断0 ,假设是由P32产生的中断

IT0=1;//设置产生中断的方式,这是表示下降沿触发

P0=0X0F;//假设矩阵键盘接P0口,给所有列线低电平,所有行线高电平

while(1)

{

if(flag==1) //这个是表示,如果中断不产生,下面的程序不会运行,只有中断了,才会键盘扫描

{

按键扫描程序,这个我就不写了,写法有很多啦

}

数码管显示程序,这个我也不写了,不晓得你是什么电路图

}

}

void scan() interrupt 0

{

flag=1;//表示,一旦中断产生了,将flag置1

}

希望对你有用,呵呵

语句分号后为你原先指令,前面为修改后指令。

主要是标号错误和输入时输入法错误,要英文模式。

修改后编译通过。

但没有 按8次后重复开始状态,你自己加入该功能。

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP iINT0 ;LJMP INT0

ORG 0013H

LJMP iINT1 ;LJMP INT1

ORG 0030H

MAIN:SETB EA

SETB EX0

SETB EX1

SETB IT0

SETB IT1

MOV B,#0FFH

HERE:SJMP HERE

iINT0:MOV A,B ;INT30:MOV A,B

RL A

DEC A

MOV B,A

MOV P1,A ;MOV P1,A

RETI

iINT1:MOV A,B ;INT1:MOV A,B

RR A

ADD A,#80H

MOV B,A

MOV P1,A ;MOV P1,A

RETI

end

以上就是关于用两按键控制51单片机的2个外部中断怎么编全部的内容,包括:用两按键控制51单片机的2个外部中断怎么编、单片机c语言编了个流水灯,用按键怎么实现它暂停。、求个单片机矩阵键盘(4*4)中断(记得要中断)的C语言程序。。求高手自己写个啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9769051.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存