打印

帮忙看看这是什么错误?

[复制链接]
1738|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaohq|  楼主 | 2008-12-31 14:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
linking...
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
    SYMBOL:  MAIN
    MODULE:  .\1602时间显示.obj (1602时糭_允_)


程序如下
#include <reg51.h>
#include <intrins.h>

typedef unsigned char BYTE;
typedef unsigned int WORD;
typedef bit BOOL ; 
sbit rs    = P2^0;        
sbit rw = P2^1;
sbit ep = P2^2;
BYTE code dis1[] = {"welcome!"};
BYTE code dis2[] = {"xingyan de EMAIL:gzxingyan@163.COM"};

delay(BYTE ms)
{                            // 延时子程序
    BYTE i;
    while(ms--)
    {
        for(i = 0; i< 250; i++)
        {
            _nop_();
            _nop_();
            _nop_();
            _nop_();
        }
    }
}

BOOL lcd_bz()
{                            // 测试LCD忙碌状态
    BOOL result;
    rs = 0;
    rw = 1;
    ep = 1;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    result = (BOOL)(P0 & 0x80);
    ep = 0;
    return result;    
}
lcd_wcmd(BYTE cmd)
{                            // 写入指令数据到LCD
    while(lcd_bz());
    rs = 0;
    rw = 0;
    ep = 0;
    _nop_();
    _nop_();    
    P0 = cmd;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    ep = 1;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    ep = 0;        
}

lcd_pos(BYTE pos)
{                            //设定显示位置
    lcd_wcmd(pos | 0x80);
}

lcd_wdat(BYTE dat)    
{                            //写入字符显示数据到LCD
    while(lcd_bz());
    rs = 1;
    rw = 0;
    ep = 0;
    P0 = dat;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    ep = 1;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    ep = 0;    
}

lcd_init()
{                            //LCD初始化设定
    lcd_wcmd(0x38);            //
    delay(1);
    lcd_wcmd(0x0c);            //
    delay(1);
    lcd_wcmd(0x06);            //
    delay(1);
    lcd_wcmd(0x01);            //清除LCD的显示内容
    delay(1);
}
main( )
{
    BYTE i;
    lcd_init();                // 初始化LCD            
    delay(10);
    lcd_pos(0);                // 设置显示位置为第一行的第1个字符
    i = 0;
        while(dis1 != '\0')
    {                        // 显示字符"welcome!"
        lcd_wdat(dis1);
        i++;
    }
    lcd_pos(0x40);
    i=0;
        while(dis2  !=  '\0')
    {
       lcd_wdat(dis2);
       i++;
    }
}

相关帖子

沙发
dld2| | 2008-12-31 14:29 | 只看该作者

会不会其他源文件里还有个main

文件名居然用中文。晕!@

使用特权

评论回复
板凳
stycx| | 2008-12-31 17:10 | 只看该作者

我编译过 没问题

使用特权

评论回复
地板
gaohq|  楼主 | 2008-12-31 17:13 | 只看该作者

谢谢楼上两位!

搞定了,如2楼所说,还有个文件也有MAIN()  我删掉就没事了.

使用特权

评论回复
5
stycx| | 2008-12-31 17:14 | 只看该作者

工程文件再这里

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

378

主题

3763

帖子

5

粉丝