您的位置 首页 电子

外中止(按键)操控数码管显现

includeconfighdefineuintunsignedintdefineucharunsignedchardefineulongunsignedlongdefineSIGNALP3_5键盘初

#include “config.h”

#defineuintunsigned int
#defineucharunsignedchar
#defineulongunsignedlong

#defineSIGNALP3_5//键盘初始信号

#defineKEY6P3_2//KEY6口便是INT0口
#defineKEY2P3_3

int num;

// 延时约(0.001 * n)秒
void delay(unsigned char n)
{
ulong i;
do {
i = CPUCLK / 1000;
while(i–);
} while (–n != 0);
}

void int0() interrupt 0 // 也可不判别是否为KEY6按下,由于引发此中止的便是KEY6键
{
if(KEY6 == 0)
{
delay(10);//延时消除按键颤动
if (KEY6 == 0)//确认有键按下
{
num++;
if (num > 9)
num = 0;
P0 = num;
}
while (!KEY6);//等候KEY1松开
delay(10);//延时消除松键颤动
}
}

void int1() interrupt 2
{
if(KEY2 == 0)
{
delay(10);//延时消除按键颤动
if (KEY2 == 0)//确认有键按下
{
num–;
if (num < 0)
num = 9;
P0 = num;
}
while (!KEY2);//等候KEY1松开
delay(10);//延时消除松键颤动
}
}

//外中止初始化函数
void int_init()
{
EA = 1;//开总中止
EX0 = 1;//开外中止0
IT0 = 0;//外中止0低电平触发方法
EX1 = 1;
IT1 = 0;
}

//主程序进口
void main(void)
{
int_init();
SIGNAL = 0;//重要!!尽管SIGNAL和IT1是同一地址,但有必要初始化SIGNAL

num = 0;
P0 = num;

for (;;){
}
}

外中止程序设计过程:

1. 开总中止

2. 开外中止

3. 设置外中止触发方法

4. 中止处理程序

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/259941.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部