#include <reg52.h>
sbit la=P2^6;
sbit wela=P2^7; ///////////////
void main()
{
wela=1;//锁存器打开
P0=0xfe;
wela=0;
la=1;
P0=0x06;
la=0;//前三行是段选,后三行是位选
while(1);
}
在编译的时候就会显示
LESSON.c(3):error c231:'al':redefinition
LESSON.c(8):erroe c202:'wela': undefined identifier
LESSON.c(10):error c202:'wela': undefined identifier
Target not created
‘贰’ Keil无法编译
帮你改了下! 自己在改改吧!
#include
#include
#define uint unsigned int
#define uchar unsigned char
#define BLKN 2 /*列存贮器数8*8行数*/
sbit E1 =P3^4; //E1为0开列(col)输出显示允许控制信号端口
sbit ST_CP =P3^2; //ST_CP 上升沿--移位寄存器的数据进入数据存储寄存器 输出锁存器的时钟信号端口
sbit MR =P3^3;//MR 为0将移位寄存器的数据清0
sbit key1 =P0^0;
sbit key2 =P0^1;
sbit soundring=P0^7;
uchar songndring=0;//add by mrli
uchar Soundring=0;//add by mrli
uchar t1;
uint key,spd;
void delay(unsigned int);
uchar data dispram[32];
uchar code table[]={ 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF};
uchar code donghua[][1]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F };//change by mrli
void delay(uint dt);
void main( )
{
uchar num,cur,tmp,nums=sizeof(donghua)/32;
SCON = 0x01;
TMOD = 0x01;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR0 = 1;
TR1=1;
EA=1;
ET0=1;
ET1=1;
IT0=1;
P1= 0xc0;
key=1;
songndring=1;
P2=table[1];
while (1)
{
delay(2000);
spd=100-key*10;
for(tmp=0;tmp<1;tmp++)
{
for(num=0;num<nums;num++)
{
for(cur=0;cur<32;cur++) //显示
{
dispram[cur]=donghua[num][cur];
delay(spd);
}
}
}
}
}
void delay(uint dt)
{
uchar it,jt;
for(it=dt;it>0;it--)
for(jt=110;jt>0;jt--);
}
void leddisplay(void) interrupt 1 using 1
{
static uchar col=0;
TH0 = 0xf8;
TL0 = 0x30;
MR=0; //清理行输出,将移位寄存器的数据清0
MR=1;
SBUF = dispram[col*2]; //串行发送显示数据
while(TI==0); //等待发送完毕
T1 = 0;
SBUF = dispram[col*2+1]; //送显示数据
while(TI==0); //等待发送完毕
T1 = 0;
E1 = 1; //消隐
P1 = 0x00; //行号端口清0
P1 = 0x00; //行号端口清0
E1 = 0; //打开显示
ST_CP =1; //显示数据打入输出锁存器
ST_CP = 0; //锁存显示数据
P1 = col; //写入行号
col=(col+1)%16;
}
void keys() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
t1++;
if(t1==10)
{
t1=0;
if(key1==0)
{
delay(2);
if(key1==0)
key--;
if(key<2)
key=1;
while(!key1);
delay(2);
while(!key1);
soundring=0;
delay(450);
};
if(key2==0)
{
delay(2);
if(key2==0)
key++;
if(key>8)
key=9;
while(!key2);
delay(2);
while(!key2);
soundring=0;
delay(450);
};
Soundring=1;
P2=table[key];
}
}
‘叁’ 我用keil打开现有工程时出现了这个东西,然后工程可以打开,但是编译不了,怎么解决
你是不是在安装KEIL的时候没有安装到它的默认目录啊,建议你装KEIL的时候就使用默认的C:\Keil。KEIL就这个脾气,不装老地方,指不定就会冒出些莫名其妙的问题。
‘肆’ 为什么我的keil uvision4编译不了,一直都出现下图,但是别人的电脑就可以编译。
这是因为你的文件没有添加到工程,编译器没有发现main函数,所以报错,你按照下图将你写的代码添加到工程:
‘伍’ keil编译没有错误为什么烧进单片机不运行
Keil没有报错只能说明逻辑没有错误,但是不能运行有两方面原因:
第一是你的程序设计有问题。
第二是单片机硬件电路的问题。
请在单片机可以正常工作的情况下,检查程序中各个子程序,引脚定义等等。
‘陆’ keil软件怎么编译程序无结果显示
你的两个文件中可能都有main函数。
在keil编译器中,main函数是C函数的入口点,有且只有一个。所以你的程序在链接阶段发现了两个同名函数定义,所以给出了一个警告,又发现这两个同名函数还是main函数,所以错误提示。删掉一个就可以了。
‘柒’ 为什么我的keil不能编译
首先新建一个项目文件,后缀名为.uV2,然后再新建一个文本文档,再上面写好程序后保存为后缀名为.c的文件(注意文件名最后用英文),然后再右击窗口左边的source group1,再选择add file to‘source group ’,最后,按快捷键F7就可以了
‘捌’ 我编了一段51单片机程序,在keil中运行,然后一直处于编译状态,等了半天也没有编译好,请问是什么原因
那就是程序没有编好