本帖最后由 xyz549040622 于 2014-1-7 10:31 编辑
比如我在定时器里让一个变量m,然后定时器每10ms执行一次m++;我在主函数中打印这个m的值,可是我发现打印出来的值是这个m初始化的值,而不会随着定时器而增加,到底这个m应该如何定义呢?定义这个m有几种方式可以实现呢?
51函数测试.rar
(92.45 KB)
main.c
#include "includes.h"
void main()
{
LCD_Initial();
Init_Timer0();
InitUART();
while(1)
{
SendByte(Key_Full_Value);
}
}
Timer.c
#include "Timer.h"
UINT8U Key_Full_Value = 0;
void Init_Timer0(void)//5ms
{
TMOD |= 0x01; //ʹÓÃģʽ1£¬16λ¶¨Ê±Æ÷£¬Ê¹ÓÃ"|"·ûºÅ¿ÉÒÔÔÚʹÓöà¸ö¶¨Ê±Æ÷ʱ²»ÊÜÓ°Ïì
EA=1; //×ÜÖжϴò¿ª
ET0=1; //¶¨Ê±Æ÷Öжϴò¿ª
TR0=1; //¶¨Ê±Æ÷¿ª¹Ø´ò¿ª
}
/*------------------------------------------------
¶¨Ê±Æ÷ÖжÏ×Ó³ÌÐò
------------------------------------------------*/
void Timer0_isr(void) interrupt 1 using 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
Key_Full_Value++;
}
timer.h
#ifndef _TIMER_H
#define _TIMER_H
#include "reg52.h"
//#include "KEY.h"
#include "Uart.h"
void Init_Timer0(void);
extern UINT8U Key_Full_Value;
#endif
|