永发信息网

【求单片机C语言程序】STC89C52通过两个外部中断P3.2和P3.3,来控制P1.0和P1.1的数码管亮和灭,一定keil C

答案:4  悬赏:70  手机版
解决时间 2021-11-15 01:43
  • 提问者网友:凉末
  • 2021-11-14 18:57
【求单片机C语言程序】STC89C52通过两个外部中断P3.2和P3.3,来控制P1.0和P1.1的数码管亮和灭,一定keil C
最佳答案
  • 五星知识达人网友:往事隔山水
  • 2021-11-14 20:10
#include
sbit D1=P1^0;
sbit D2=P1^1;
void main()
{
D1=1;
D2=1;
EA=1;
EX0=1;
EX1=1;
while(1); //死循环一定要加上.....
}
void exter() interrupt 0
{
D1=!D1;
}

void exter() interrupt 1
{
D2=!D2;
}
全部回答
  • 1楼网友:独钓一江月
  • 2021-11-14 22:55
#include

tpyedef unsigned int uint;
typedef unsigned char uchar;

#define mLedStatusOn 0
#define mLedStatusOff 1

sbit ledFirstCom = P1^0;
sbit ledSecondCom = P1^1;

void InitSys(void) {
ledFirstCom = mLedStatusOff;
ledSecondCom = mLedStatusOff;

IT0 = 0; //低电平有效,模拟按键效果
IT1 = 0;
EA = 1;
EX0 = 1;
EX1 = 1;
}

void IsrEx0(void) interrupt 0 using 1{
ledFirstCom ~= ledFirstCom;
IE0 = 0; // 防止按键误抖动重新挂起中断
}

void IsrEx1(void) interrupt 2 using 2{
ledSecondCom ~= ledSecondCom;
IE1 = 0; // 防止按键误抖动重新挂起中断
}

void main(void) {
InitSys(); //初始化系统,配置外部中断寄存器,初始化LED为灭
while(1);
}
  • 2楼网友:舍身薄凉客
  • 2021-11-14 21:36

#include "reg52.h"
void delay( char i)
{
unsigned char t;
while(i--)
{
for(t=0;t<108;t++);
}
}
void INT0_ROUTING() interrupt 0//外部中断0子程序
{
P0=0xfe;//LED0点亮
while((P3|0xfb)==0xff);//等待外部中断0口(P3^2松开)
delay(10);//延时去抖动
P0=0xff;//LED0熄灭
}
void INT0_ROUTING() interrupt 2
{
P0=0xfd;//LED1点亮
while((P3|0xf7)==0xff);//等待外部中断1口(P3^3松开)
delay(10);//延时去抖动
P0=0xff;//LED1熄灭
}

void main()
{
EA=1;//中断总开关
EX0=1;//外部中断0开
EX1=1;//外部中断1开

while(1);//死循环 防止跑飞
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯