各位大侠STC89C52单片机控制12864点阵液晶的程序,检测里面显示0处错误,但有34处警告,帮忙解决下,谢谢

//-------主函数模块-------#include<reg52.h>#include<intrins.h>#defineucunsignedchar#define... //-------主函数模块-------
#include <reg52.h>
#include <intrins.h>
#define uc unsigned char
#define ui unsigned int
//声明外部变量和外部函数
extern uc LCD_x;
extern uc LCD_y;
extern uc Neg_hang;//反色显示的行
extern void init_lcd(void);
extern void clr_lcd(uc hang);
extern void clr_lie(uc rl,uc lie_shu);//清若干列
extern void disp_vol(unsigned char vol);
extern void disp_str( char *p);
//定义时钟相关变量
uc time250us;
uc time50ms;
uc time1s;
uc min;
uc hour;
void time0(void) interrupt 1 using 1//To中断函数,使时钟自动计时
{ if(++time250us>199)
{time250us=0;
if(++time50ms>19)
{time50ms=0;
if(++time1s>59)
{time1s=0;
if(++min>59)
{min=0;hour++;}
}
}
}
}
//------CPU初始函数------
void init (void)
{
TMOD=0x2;
TH0=256-250;
TL0=256-250;
IE=0x82;
TR0=1;
time250us=0;
time50ms=0;
time1s=0;
min=0;
hour=0;
}
//------主函数------
void main(void)
{
init();
Neg_hang=6;//第四行反色显示的行
init_lcd();
LCD_x=0;
LCD_y=0;
clr_lcd(1);//清屏
clr_lcd(2);
clr_lcd(3);
clr_lcd(4);
P1=0xff;
LCD_x=0;
LCD_y=0;//从第一行第一列开始显示下面的字符串
disp_str("happy birthday!");
LCD_x=0;
LCD_y=2;//从第2行第一列开始显示下面的字符串
disp_str("love you forver");
LCD_x=127-(16*5);
LCD_y=4;//从第3行第37列开始显示下面的字符串
disp_str("jayant");
while(1)
{
if(!time50ms)
{
LCD_x=30;
LCD_y=6;
disp_vol(hour/10);
disp_vol(hour%10);
disp_str(":");
disp_vol(min/10);
disp_vol(min%10);
disp_str(":");
disp_vol(time1s/10);
disp_vol(time1s%10);
}
}
}
展开
 我来答
HWQ0757
推荐于2016-10-28 · TA获得超过639个赞
知道小有建树答主
回答量:310
采纳率:100%
帮助的人:323万
展开全部
您好:
我看了一下你的程序,有一部分警告是你用关键字extern声明外部函数和外部变量的问题。如果你打算就用一个用.c文件把程序写完,就建议把extern删除。因为extern是声明函数已经在外面定义的。另外一些警告是因为你只声明了函数没有详细定义函数,还有一个警告是你声明了一个函数,但你在程序中没有用到它。我帮你改了一下,经编译没有警告了。你可以参考一下。希望可以帮到您。
//-------主函数模块-------
#include <reg52.h>
#include <intrins.h>

#define uc unsigned char
#define ui unsigned int

/*
//声明外部变量和外部函数
extern uc LCD_x;
extern uc LCD_y;
extern uc Neg_hang;//反色显示的行

extern void init_lcd(void);
extern void clr_lcd(uc hang);
extern void clr_lie(uc rl,uc lie_shu);//清若干列
extern void disp_vol(unsigned char vol);
extern void disp_str( char *p);
*/

void init_lcd();
void clr_lcd(uc hang);
//void clr_lie(uc rl,uc lie_shu);//清若干列
void disp_vol(uc vol);
void disp_str(char *p);

uc LCD_x;
uc LCD_y;
uc Neg_hang;//反色显示的行

//定义时钟相关变量
uc time250us;
uc time50ms;
uc time1s;
uc min;
uc hour;

void time0(void) interrupt 1 using 1//To中断函数,使时钟自动计时
{
if(++time250us>199)
{
time250us=0;
if(++time50ms>19)
{
time50ms=0;
if(++time1s>59)
{
time1s=0;
if(++min>59)
{
min=0;
hour++;
}
}
}
}
}

//------CPU初始函数------

void init()
{
TMOD=0x20;
TH0=256-250;
TL0=256-250;

IE=0x82;
TR0=1;
time250us=0;
time50ms=0;
time1s=0;
min=0;
hour=0;
}

//------主函数------
void main()
{
init();
Neg_hang=6;//第四行反色显示的行
init_lcd();
LCD_x=0;
LCD_y=0;
clr_lcd(1);//清屏
clr_lcd(2);
clr_lcd(3);
clr_lcd(4);
P1=0xff;
LCD_x=0;
LCD_y=0;//从第一行第一列开始显示下面的字符串
disp_str("happy birthday!");
LCD_x=0;
LCD_y=2;//从第2行第一列开始显示下面的字符串
disp_str("love you forver");
LCD_x=127-(16*5);
LCD_y=4;//从第3行第37列开始显示下面的字符串
disp_str("jayant");
while(1)
{
if(!time50ms)
{
LCD_x=30;
LCD_y=6;
disp_vol(hour/10);
disp_vol(hour%10);
disp_str(":");
disp_vol(min/10);
disp_vol(min%10);
disp_str(":");
disp_vol(time1s/10);
disp_vol(time1s%10);
}
}
}

void init_lcd()
{;}

void clr_lcd(uc hang)
{
hang=hang;
}

/*
void clr_lie(uc rl,uc lie_shu)//清若干列
{
rl=rl;
lie_shu=lie_shu;
}
*/

void disp_vol(uc vol)
{
vol=vol;
}

void disp_str(char *p)
{
p=p;
}
w447452836
2010-12-11 · 超过18用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:51.2万
展开全部
警告没事的 你看你的能不能达到你的要求 要是能的话 就删了 不能 就把他们改下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
thsumam
2010-12-11 · TA获得超过136个赞
知道小有建树答主
回答量:191
采纳率:100%
帮助的人:174万
展开全部
extern void init_lcd(void);
extern void clr_lcd(uc hang);
extern void clr_lie(uc rl,uc lie_shu);//清若干列
extern void disp_vol(unsigned char vol);
extern void disp_str( char *p);

这些函数原型呢?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式