51单片机小程序C语言编译不通过,找不到原因

总是提示主程序中的J变量有问题,我找不到原因,编译不成功#include<STC12C2052AD.H>//采用P1直接驱动显示数字,不使用位定义P1各个接口,而是向P1... 总是提示主程序中的J变量有问题,我找不到原因,编译不成功
#include <STC12C2052AD.H>
//采用P1直接驱动显示数字,不使用位定义P1各个接口,而是向P1输入16进制数字来显示数字。
sbit h1 =P3 ^ 0; //设置LED点阵屏连接的I/O口
sbit h2 =P3 ^ 1; //设置LED点阵屏连接的I/O口
sbit h3 =P3 ^ 2; //设置LED点阵屏连接的I/O口
sbit h4 =P3 ^ 3; //设置LED点阵屏连接的I/O口
sbit key=P3 ^ 4; //设置按键

void init(void) //设置P3 I/O口为强推挽电阻,用意是:普通电流无法驱动数码管,因为电量不足,所以采用强推挽电阻设置,使用高电量驱动
{
P1M0 = 0x00;
P1M1 = 0x00;
P3M0 = 0x00;
P3M1 = 0xff;//0xff

}
void m(int a)
{
int i,j;
for(i=a;i>0;i++);
// for(j=1;j>=0;j--);
}

char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //这是数码管段位十个数字的16进制码
void main()
{
init();
int i;
int j=0;
while(1){

if (key==0)
{
P1=table[j];
j=j+1;
if (j==10)
{
j=0;
}

}
}
}
展开
 我来答
湛嫚侨飞鸾
2020-05-17 · TA获得超过3753个赞
知道大有可为答主
回答量:3118
采纳率:25%
帮助的人:178万
展开全部
code是一个定义的前缀,也就是告诉你现在定义的数据是放在程序存储区。
ckcon我在c8051f系列单片机里面见过,是定时器的时钟源的配置寄存器
至于你的第三个问题,我还是菜鸟,没有做过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kshixiang
2013-02-16 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:107万
展开全部
刚才利用VC6.0调试了一下 你主程序但没有 P1 和table变量 ,编译通过可能问题出现在 table这个数组上吧。自己仔细看看哪里的声明
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2013-02-16 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
void main()
{
int i;
int j = 0;//先定义变量
init(); //再调用函数
while(1){
if (key==0) {
P1=table[j];
j=j+1;
if (j==10) {
j=0;
}
}
}
}
追问
请问这是为什么?
我调用的函数与主函数之间没有数值传递啊,为什么我换个位置就好了?而且确实好了
追答
随时、随地的定义变量,这是C++的做法。

C,变量必须在最前面定义,之后,才能用。

只有高版本的 KEIL ,才支持 C++。

一般,都不行。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
幽林hecker
2013-02-16 · TA获得超过1058个赞
知道小有建树答主
回答量:1969
采纳率:0%
帮助的人:758万
展开全部
void m(int a)
{
int i,j;
for(i=a;i>0;i++);
// for(j=1;j>=0;j--);
}
好像错了。。int i=0;
int j=0;
追问
这里是做调试用的,我在主函数里面没有调用,把这个函数删除掉也同样编译不成功
追答
那就给main函数的int i = 0;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yangbo911224
2013-02-16 · TA获得超过144个赞
知道小有建树答主
回答量:225
采纳率:100%
帮助的人:198万
展开全部
编译提示的错误是什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式