关于单片机80C51keil编码错误的问题

2025-03-06 12:16:05
推荐回答(3个)
回答1:

#include //52系列单片机头文件
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6; //申明U1锁存器的锁存端
sbit wela=P2^7; //申明U2锁存器的锁存端
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint ms) ;
void main()
{
uchar temp=0;
unsigned char shi;
uchar ge; //分离两个分别要显示的数
shi=temp/10;
ge=temp%10;
}

回答2:

与C++不一样,C语言中,必须把所有变量都申明完毕后,才能开始逻辑语句的编写,换句话说,你必须把
unsigned char shi;
uchar ge;
这两句放在 temp=0;之前。
当然,你可以在申明时直接赋初值,这也是允许的。
uchar temp=0;
unsigned char shi;
uchar ge;

回答3:

uchar temp;
unsigned char shi;
uchar ge;         //分离两个分别要显示的数
temp=0;
shi=temp/10;
ge=temp%10;

局部变量定义不能再赋值语句之后,只能在之前