51单片机C程序问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 07:30:38
书上程序:(光盘带的) 用UV2编译总是出错,说delay(LED_FLASH_T);处有错
请问为什么有错?是不是得用UV3版本??

#include <REGX51.h>
#define LED_FLASH_T 10000;

void LEDs_Move();
void LEDs_Error();
void LEDs_Snake();

void delay(unsigned int t)
{
for(;t>0;t--); // 延时循环
}

#ifndef true
#define true 1
#endif

#define TASK_1 1
#define TASK_2 2

void main()
{
unsigned char System_Status;
unsigned char System_Task;
while(1)
{
// 程序主任务区
// ............
// 程序主任务区
if(System_Status == true) // 当系统处于正常状态
{
if(System_Task == TASK_1) // 程序分支一
{
LEDs_Move(); // 跑马灯指示系统正常
}
else if(System_Task == TASK_2) // 程序分支二
{
LEDs_Dragon(); // 跑马灯蛇形花样指示
}
}
else // 当系统发生错误
{
LEDs_Error(); // 跑马灯

#include <REGX51.h> ,UV2中不支持这种写法 ,应写成 <REG51.h>

#define LED_FLASH_T 10000; 最后一个分号应去掉,

LEDs_Dragon(); 函数事先没声明

LED_FLASH_T 10000超出范围,设成100试试

unsigned int 最大是255,
换成long试试

你写函数方式很有问题。。。
首先是:应该是
声明
主函数
子函数
子函数最好写在下面。有层次感。还要声明。
如果你写在main函数前就不必啦。