找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1081|回复: 6
打印 上一主题 下一主题
收起左侧

error C247: non-address/-constant initializer

[复制链接]
跳转到指定楼层
楼主
ID:1099861 发表于 2023-11-15 17:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#ifndef _lcd1602_h_
#define _lcd1602_h_
#include<reg51.h>
#define uchar unsigned char;
#define uint unsigned int;
uchar int_time;
uchar second;
uchar minute;
uchar hour;
uchar code date[]="        H.I.T. CHINA        ";
uchar code time[]=" TIME  23;59;55";
uchar second=55,minute=59,hour=23;
void clock_init()
{
   unsigned char i,j;
        for(i=0;i<16;i++)
        {
                write_data(date[ i]);
        }
        write_com(0x80+0x40);
        for(j=0;j<16;j++)
        {
                write_data(time{j});
                 }
        }
void clock_write(unit s,unit m,unit h)
{
        write_sfm(0x47,h);
        write_sfm(0x4a,m);
        write_sfm(0x4d,s);
}
void main()
{
        init1602();
        clock_init();
        TMOD=0x01;
        EA=1;
        ETO=1;
        THO=(65536-46483)/256;
        TLO=(65536-46483)%256;
        TRO=1;
        int_time=0;
        second=55;
        minute=59;
        hour=23;
        while(1)
        {
                clock_write(second,minute,hour);
                }
        }
void TO_intereserve(void) interrupt 1 using 1
         {int_time++;
                if(int_time==20)
                {
                        int_time=0;
                        second++;
                }
                if(second==60)
                {
                        second=0;
                        minute ++:
                }
                if (minute==60)
                {
                        minute=0;
                        hour ++;
                }
                if(hour==24)
                {
                        hour=0;
                }
                THO=(65536-46083)/256;
                TLO=(65536-46083)%256;
         }
        #endif
编译如下
compiling lcd1602.c...
lcd1602.c(10): error C247: non-address/-constant initializer
lcd1602.c - 1 Error(s), 0 Warning(s).
求大佬帮忙看一看
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1096212 发表于 2023-11-16 10:12 | 只看该作者
把inint1602();改成 init 1602();试试呢
回复

使用道具 举报

板凳
ID:123289 发表于 2023-11-16 11:05 | 只看该作者
先将编辑器语句行号勾选起来,即每句首显示第几行。
这样好说。
回复

使用道具 举报

地板
ID:1080867 发表于 2023-11-16 11:33 | 只看该作者
ETO=0;
THO=(65536-46483)/256;
TLO=(65536-46483)%256;
TRO=1;   
是0不是O,ET0,TH0,TL0  TR0 试试
回复

使用道具 举报

5#
ID:883242 发表于 2023-11-16 13:24 | 只看该作者
c语言数组不是c++的字符串。不能用第10行11行的赋值方法。
回复

使用道具 举报

6#
ID:155507 发表于 2023-11-16 13:45 | 只看该作者
#define 是宏定义 不用加分号

#define uchar unsigned char;
#define uint unsigned int;
回复

使用道具 举报

7#
ID:883242 发表于 2023-11-16 15:32 | 只看该作者
angmall 发表于 2023-11-16 13:45
#define 是宏定义 不用加分号

#define uchar unsigned char;

虽然你说得对,但是按你的说法第6行就错了,但是报错是第11行,不觉得很奇怪吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表