是不是哪里配置不对。程序应该额米有问题吧。
#include<pic.h>
__CONFIG(0X00A);
#define uchar unsigned char
#define uint unsigned int
#define LED GP2
#define Key GP1
volatile uchar Flag,Flag1,Flag2;
volatile uint Count=0,sum=0;
void Delay_ms(uchar a)
{
uint i,j;
for(i=0;i<a;i++)
for(j=0;j<1000;j++);
}
void Register_Init() // 配置定时器
{
TMR0 = 0X00; // 4m ,64分频,T0 =255-50ms/((4/4*64)us/1000)
}
void GPIO_Port_Init() //配置I/O口
{
TRIS =0X02 ; //GP2S 输出,GP1输入;
}
void main()
{
Delay_ms(5000);
LED = 1;
GPIO_Port_Init();
OPTION = 0X16;
Register_Init();
Flag1 = 0;
Flag = 0;
while(1)
{
if(Key==0)
{
Flag = 1;
}
if(TMR0 >= 0XEA) // 查询是否到达时间
{
OPTION = 0X16;
TMR0 = 0X00; // 定时器初值,定时10MS
if(Flag ==1)
{
switch (Flag1)
{
case 0: LED = 0;Count++;
if(Count==18930)
{
Count=0;
Flag1 = 1;
LED = 1;
} break;
case 1: Count++;
if(Count==469)
{
Count=0;
Flag = 0;
Flag1 = 0;
} break;
default : break;
}
}
}
}
} |