加载中
加载中
表情图片
评为精选
鼓励
加载中...
分享
加载中...
文件下载
加载中...
修改排序
加载中...
哪位大侠能帮我解决编程问题!
控制爆破专家2006/01/17电子技术 IP:广西

#include<reg51.h>
#include<absacc.h>
sbit XIAOSHI_0=P3^0;
sbit XIAOSHI_1=P3^1;
sbit FEN_0=P3^2;
sbit FEN_1=P3^3;
sbit setd=P3^4;
sbit movd=P3^5;
void XIANSHI();
void TJ_FEN();
void TJ_XIAOSHI();
void main(void)
{
unsigned char i;
i=0;
SP=0x70[s:9]1=0xff[s:9]3=0xff;
DBYTE[0x6f]=0;DBYTE[0x6e]=0;
DBYTE[0x6d]=0;DBYTE[0x6C]=0;
TH0=0x3c;TL0=0xaf;
ET0=1;EA=1;TR0=1;
while(1)
{
while(setd==0)
{
i++;TR0=0; while(setd==0);
}
XIANSHI()
if (i=1)
TJ_XIANSHI();
else if (i=2)
TJ_FEN();
}
}
void timer0() interrupt 1
{
unsigned char j,w;
j++;
while(j==20)
{
j=0;
DBYTE[0x6f]++;
if (DBYTE[0x6f]==10)
{DBYTE[0x6f]=0;DBYTE[0x6e]++;}
else if (DBYTE[0x6e]==6)
{DBYTE[0x6e]=0;DBYTE[0x6d]++;while((DBYTE[0x6c]*10+DBYTE[0x6d])>=24){DBYTE[0x6c]=0;DBYTE[0x6d]=0;}
else if (DBYTE[0x6d]==10)
{DBYTE[0x6d]=0;DBYTE[0x6c]++;}
TH0=0x3c;TL0=0xaf;
}

}
void XIANSHI()
{
unsigned char p;
p=DBYTE[0x6c];
XIAOSHI_0=0;
P1=SHUZI[p];
XIAOSHI_0=1;
p=DBYTE[0x6d];
XIAOSHI_1=0;
P1=SHUZI[p]
XIAOSHI_1=1;
p=DBYTE[0x6e];
FEN_0=0;
P1=SHUZI[p];
FEN_0=1;
p=DBYTE[0x6f];
FEN_1=0;
P1=SHUZI[p];
FEN_1=1;
}
unsigned char code SHUZI[10]={0x05,0xdd,0x46,0x54,0x9c,0x34,0x24,0x5d,0x04,0x14}
void TJ_FEN()
{}
void TJ_XIAOSHI()
{}

问题我在第一个if处出错,我现在可找不出错在哪!

来自:电子信息 / 电子技术
14
新版本公告
~~空空如也
LED
19年10个月前 IP:未同步
30548

不知道,顶一下,盼望高手出现。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
hackerboygn
19年10个月前 IP:未同步
30549
我只略动一点汇编,还没涉及C。回去在好好看看!
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
LiuNianqiu
19年10个月前 IP:未同步
30550

你的问题具体是什么?

还有这里

XIANSHI() 〈----- 这里是不是忘了一个分号
if (i=1)
TJ_XIANSHI();
else if (i=2)

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
J_Chan
19年9个月前 IP:未同步
30551

不是的,C不用分号;
是不是”i\"的类型不符啊?

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
一个凡人
19年9个月前 IP:未同步
30552

谁给你说的不用分号啊?

你把分号加上就可以了哈,你得好好多练练

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
阿丕
19年8个月前 IP:未同步
30553

原:

if (i=1)
TJ_XIANSHI();
else if (i=2)
TJ_FEN();
}

更改为:

if (i==1)
TJ_XIANSHI();
else if (i==2)
TJ_FEN();
}

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
mass_lynnxy
19年8个月前 IP:未同步
30554

原:

if (i=1)
TJ_XIANSHI();
else if (i=2)
TJ_FEN();
}

更改为:

if (1==i)
TJ_XIANSHI();
else if (2==i)
TJ_FEN();
}

这样如果只写一个“=”,编译器认为你给常量赋值,肯定通不过编译。
在判断语句都可以这样写,可以让编译器为你查错。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
gaolf_2000
19年5个月前 IP:未同步
30555
我来晚了

第28行少了;

:),这种错误最低级,建议写代码时小心;免得遭罪!

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
rabbit
19年5个月前 IP:未同步
30556
我也不懂C
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
ldc
19年4个月前 IP:未同步
30557
我QBASIC还可以(不过过时了)C已经完全忘了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jedininja
19年4个月前 IP:未同步
30558

i++;TR0=0; while(setd==0); //这个分号是多的吧?
}
XIANSHI() //这个分号少了吧?
if (i=1) //这个显然错了,有时我们也这么写,但绝不会拿常量赋给变量,因为一点意义都没有,用变量赋变量的时候倒有
TJ_XIANSHI();
else if (i=2) //这个显然也是错的
TJ_FEN();
}

总的来说,编程习惯太差,还要多学一些提高编程风格的知识——无论做软件还是硬件,有一个整洁、有条理的环境,对提高工作效率、减少错误都是有帮助的。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jedininja
19年4个月前 IP:未同步
30559
编译错误的原因是XIANSHI()函数后少了分号,其它错误只是引起执行结果不对,不会在编译时出错。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
jedininja
19年4个月前 IP:未同步
30560
这个问题居然放了半年?没人会C语言?
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
上级专业
同级专业
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的