本帖最后由 chenguor 于 2012-11-18 11:02 编辑
#include <reg52.h>
#include"anjian.h"
void delay()
{
uint16 n = 1000;
while(n--);
}
/*功能函数*/
led_1()
{ 。。。。。。。。。}
led_2()
{。。。。。。。。。。}
led_3()
{。。。。。。。。。。}
/*
键盘
*/
void key_board()
{
if(!KeyIn1)
{
delay();
if(!KeyIn1)
{
led_1();
while(!KeyIn1);
}
}
if(!KeyIn2)
{
delay();
if(!KeyIn2);
{
led_2();
while(!KeyIn2);
}
}
if(!KeyIn3)
{
delay();
if(!KeyIn3);
{
led_3();
while(!KeyIn3);
}
}
}
void int_init()
{
TMOD |= 0x10;
TMOD &= 0xdf;
TH1 = 0xFC;
TL1 = 0x67;
TR1 = 1;
EA = 1;
ET1 = 1;
}
/*主函数*/
main()
{
P0 = 0XFF;
KeyOut1 =0; //按键初始化
int_init();
while(1);
}
void interrupt_timer1() interrupt 3
{
TH1 = 0xFC;
TL1 = 0x67;
key_board();
}
这个程序的我想要的功能是:按KeyIn1键,显示功能函数led_1()的效果;按KeyIn2键,显示功能函数led_2()的效果;按KeyIn3键,显示功能函数led_3()的效果;但是按KeyIn1键,显示功能函数led_1()的效果,如果按KeyIn2键,显示功能函数led_1()的效果,就是没进入中断?请问各位这是什么原因?谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
void delay()
{
static uint16 n = 1000;
while(n--);
}
不过不建议这种办法
一周热门 更多>