程序如下:仅仅是调换下面这两句的 就会出错了!不知道什么原因!
int i =300;
Timer0_init();
换为:
Timer0_init();
int i =300;
就会出错!
总体程序:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define N 3100
sbit CLK=P2^0;
sbit EN=P2^2 ;
sbit KEY_en=P2^3;
sbit LED_en=P2^6;
void Timer0_init(void)
{
TMOD=0x01;
EA=1 ;
ET0=1;
TR0=1;
TH0=(65536-N)/256;
TL0=(655636-N)%256;
}
void Timer0(void) interrupt 1
{
TH0=(65536-N)/256;
TL0=(655636-N)%256;
CLK=~CLK;
}
void main(void)
{
int i =300;
Timer0_init();
EN = 0;
LED_en=1;
while(1)
{
if(KEY_en==0)
{
while(i--);
if(KEY_en==0)
{
EN=!EN;
LED_en=!LED_en;
}
}
}
}