单片机C语言编程程序指出错误

#include <reg51.h>
unsigned char counter=0;
void delay1ms(int a)
{int i,j;
for(i=0;j<a;a++){for(j=0;j<255;j++);}}
void main(void)
{ TMOD=0X01;
IT0=1;
TH0=0XF0;TL0=0X0F;
TR0=1;ET0=1;EA=1;
while(1)
}
void inetop(void) interrupt1 using0
{TH0=0XF0;TL0=0X0F;counter++;
if(counter==10){counter=0;P1=~P1;}}
void inexop(void) interrupt0 using0
{while(1){P1=0XFF;delay1ms(2000);P1=0XF0;}
}

楼主:延迟程序有问题
原文:
for(i=0;j<a;a++){for(j=0;j<255;j++);}}

修改后:
for(i=0;i<a;i++){for(j=0;j<255;j++);}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-22
#include <reg51.h>
unsigned char counter=0;
void delay1ms(int a)
{int i,j;
for(i=0;j<a;a++){for(j=0;j<255;j++);}}
void main(void)
{ TMOD=0X01;
IT0=1;
TH0=0XF0;TL0=0X0F;
TR0=1;ET0=1;EA=1;
while(1);
}
void inetop(void) interrupt 1 using 0
{TH0=0XF0;TL0=0X0F;counter++;
if(counter==10){counter=0;P1=~P1;}}
void inexop(void) interrupt 0 using 0
{while(1){P1=0XFF;delay1ms(2000);P1=0XF0;}
}追问

按要求编写程序:1.P1口连接8个LED灯,程序开始工作后,8个LED按照低4位亮、高4位灭;间隔0.5秒交替闪烁;2.0.5秒定时用定时器0(方式一)完成;3.P3.2口连接一个按键,当按下按键时,8个LED灯全亮2S(软件延时),然后恢复到正常闪烁状态;4.P3.2口的按键处理用外部中断0(INT0)完成。 呵呵 帮帮忙吧 我实在是想不出来了。。

追答

#include
#define uchar unsigned char
uchar tick,led,num;
void ex0isr() interrupt 0
{
flag=1;
EX0=0;//关闭中断0两秒
}
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tick++;
if(tick>=10)//0.5秒到
{
tick=0;
if(flag)//如果键按下
{
P1=0x0;//全亮
num++;
if(num>=4)//4秒到
{
num=0;
flag=0;
EX0=1;//两秒到后开外部中断0
}
}
else {//没键按下闪烁
P1=led;
led=~led;
}
}
}
main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
flag=0;
tick=0;
num=0;
led=0xf0;
TR0=1;
ET0=1;
IT0=1;
EX0=1;
EA=1;
while(1);
}

本回答被网友采纳
第2个回答  2012-10-22
uint time = 0;
void main(){
...
while(1);
}
void inetiop() interrupt 1
{...
if(time > 0){time--;
if(time == 0){P1 = 0xf0;
}}
}
void inexop() interrupt 0
{
P1 = 0xff;
time = 2000;
}
//中断程序里,不要用延时,中断程序要求越简单越好。

单片机C语言编译错误: requiresAng- style prototype?
单片机C语言编译错误:requires ANSI-style prototype,是编译过程错误造成的,解决方法如下:1、编程前保存文件,单击文件菜单,下拉菜单中选择保存按钮。2、输入文件名,文件类型选择为.c类型。3、然后开编辑,首先,定义头文件,头文件一般为stdio.h。4、接着,定义主函数,主函数名为main。5、然后,...

单片机C语言编译错误:requires ANSI-style prototype
需要要把调用的子函数放到main前面,或者在main函数前面先把需要调用的子函数定义声明一下。requires ANSI-style prototype的意思是:需要ANSI样式原型。

单片机c语言用keil编译时出现如下的错误是什么原因?'=':illegal type...
下方错误提示显示的是,这个函数返回类型是 void 也就是没有设定返回值,所以使用 = 等号 就产生了语法错误。

能帮我看一下这个程序那里有语法错误(单片机 C语言)
编译器给出的是第29行附近存在一个语法错误。从你给出的程序代码来看,括号与分号用的比较混乱,25行和28行的括号是配对的,那么第26行的for语句没有循环体,应该使用分号结束。

单片机c语言错误,提示为FMQ.C(12): error C141: syntax error near...
少了一个分号;修改如下:#include <reg51.h> #include <intrins.h> #define uint unsigned int #define uchar unsigned charsbit s=P1^0; \/\/定义方波输出口\/***\/ void Delay_1ms(uint x) { uint i; uchar j; for(i = 0; i < x; i++) for(j = 0; j <= 148; j++); } ...

单片机编程时为什么总出现syntax error
我认为,单片机中的c语言和纯c还是有点差别的,有时你用的c语句或函数,在51中有可能不识别,就会产生这种错误的。个人拙见,仅供参考

multisim中单片机c语言运行出现错误
这不是错误,这个说明 project文件发生变化,要更新之后再仿真。直接点击那个绿色的三角形。而且multisim中的c语言,对于单片机编程的时候,头文件不一样,有一些语法也不一样

单片机C语言,为什么提示SRC\\main.c(67): error C202: 'i': undefined...
C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在...

C语言单片机程序 初学大家帮忙看看错在哪里了 #include <reg51.h...
也有可能是你烧写程序的时候 数据传输的过程中出错了,校验出错 一般是传输过程中某个或者某些bit或者byte出错 建议你重新编译 重新下载烧写试试, 单片机这东西就是经常出些小问题,有时候我们买的开发板或者有些数据线质量不过关也会导致一些莫名其妙的问题,多尝试尝试 相信你能解决的 ...

单片机编程时为什么总出现syntax error
这个error是 语法错误,一般来讲是不符合所用语言的语法,如C语言忘了分号,使用变量前未定义等等

相似回答