51单片机,用外部中断0和外部中断1实现:1个七段LED数码管显示值加1和减1。程序怎么编?

如题所述

给你讲思路吧,先设置外部中段,打开中断开关。主程序可以利用一个for循环,每有一次中断就操作一次数组(数组元素加一或减一(其中数组对应的是数码管1~9的显示))
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-09
简单。。。。。。。。。。追问

能编个出来给我参考下吗?我不懂那个中断怎么弄,麻烦你了。

追答

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

uchar num;

 

uchar code tab[]={0x3F,0x06,0x5B,0x4F,0x66,

                0x6D,0x7D,0x07,0x7F,0x6F};

void EXINTinit()

{

 EA=1;

 EX0=1;

 EX1=1;

 IT0=1;

 IT1=1;

}

 

void disp()

{

 P0=tab[num];

}

 

void main()

{

 EXINTinit();

 while(1)

 {

  disp();

 

 }

}

 

void EX0INT() interrupt 0

{

 num++;

 if(num==10)

 num=0;

}

 

void EX1INT() interrupt 2

{

 num--;

 if(num==0xff)

 num=9;

}     

 

 

本回答被提问者采纳
相似回答