毕业设计用到一个外部中断,但我的设计是基于模块化的,所以中断和显示部分是分开的,然后我定义了一个全局变量,但是感觉不起作用,这是为什么呢?
我把中断单独用数码管显示是能显示的。但是和LCD1602组合在一起,就老是不显示
这是中断函数的代码:
#include<reg52.h>
#include"Input.h"
unsigned int n;
bit b;
extern void delay(unsigned int z);
/*------------------------------------------------
中断0初始化函数
------------------------------------------------*/
void Suspend0()
{
n=0;
EX0=1;
IT0=1;
EA=1;
}
void INT_0() interrupt 0
{
EX0=0;
n++;
delay(2);
b=1;
EX0=1;
}
这是LCD1602的显示代码://只贴了一小部分
#include<reg52.h>
#include"LCD_1602.h" //LCD的DB0~DB7接在单片机的P0口
//#include"STDIO.h"
#include"Input.h"
extern unsigned int n;
/*------------------------------------------------
动态显示函数
--------------------------------------------------
reentrant LCD_Printd(uint n)
{ if(n<0)
n=0;
if(n/10)
printd(n/10);
LCD_Write_Com(0x80+0x40+11);
LCD_Write_Datat(n%10+'0');
} */
void LCD_Printd()
{
unsigned int i=0,j=15;
LCD_Write_Com(0x04);
while(n>0)
{
i=n%10;
Gotoxy_P(j,0);
LCD_Write_Date(0x30+i);
n=n/10;
j--;
}
LCD_Write_Com(0x06);
}
谁能告诉我一下,为什么这么组合了,那个中断显示老是不出来呀?
同学在这儿万分感谢了 |