找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求帮助error C267: 'Delay': requires ANSI-style prototype

[复制链接]
跳转到指定楼层
楼主
ID:944257 发表于 2021-6-24 21:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg51.h
#include <intrins.h>
sbit RS=P1^7;
sbit RW=P1^6;
sbit EN=P1^5;
#define uchar unsigned char
#define uint unsigned int

void Lcd1602_Init(void){
Delay(10);
Lcd1602_Write_Cmd(0x38);
Delay(5);
Lcd1602_Write_Cmd(0x38);
Lcd1602_Write_Cmd(0x01);
Lcd1602_Write_Cmd(0x06);
Lcd1602_Write_Cmd(0x0f);
}

void Lcd1602_Write_Cmd(char Cmd){
Delay(10);
RS = 0;
RW = 0;
EN = 0;
P0 = Cmd;
_nop_();
EN = 1;
_nop_();
EN = 0;
_nop_();
}

void Lcd1602_Write_Date(char Date){
Delay(10);
RS = 1;
RW = 0;
EN = 0;
P0 = Date;
_nop_();
EN = 1;
_nop_();
EN = 0;
_nop_();
}

void Delay(uint xms)
{
uint x, y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}

void main(void){  
        Lcd 1602_Init();
        Lcd 1602_Write_Cmd(0x85);
        Lcd 1602_Write_Date('x');
        Delay(100);
        Lcd 1602_Write_Date('u');
        Delay(100);
        Lcd 1602_Write_Date('e');
        Delay(100);
        Lcd 1602_Write_Date('i');
        Lcd 1602_Write_Date('h');
        Delay(100);
        Lcd 1602_Write_Date('e');
        Lcd 1602_Init();
}
        
keil环境下
dd.c(11): warning C206: 'Delay': missing function-prototype
dd.c(11): error C267: 'Delay': requires ANSI-style prototype



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:155507 发表于 2021-6-25 01:24 | 只看该作者
给你改了一下试试。

#include <reg51.h
#include <intrins.h>
sbit RS=P1^7;
sbit RW=P1^6;
sbit EN=P1^5;
#define uchar unsigned char
#define uint unsigned int

void Delay(uint xms)
{
uint x, y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}

void Lcd1602_Init(void){
Delay(10);
Lcd1602_Write_Cmd(0x38);
Delay(5);
Lcd1602_Write_Cmd(0x38);
Lcd1602_Write_Cmd(0x01);
Lcd1602_Write_Cmd(0x06);
Lcd1602_Write_Cmd(0x0f);
}

void Lcd1602_Write_Cmd(char Cmd){
Delay(10);
RS = 0;
RW = 0;
EN = 0;
P0 = Cmd;
_nop_();
EN = 1;
_nop_();
EN = 0;
_nop_();
}

void Lcd1602_Write_Date(char Date){
Delay(10);
RS = 1;
RW = 0;
EN = 0;
P0 = Date;
_nop_();
EN = 1;
_nop_();
EN = 0;
_nop_();
}


void main(void){  
        Lcd 1602_Init();
        Lcd 1602_Write_Cmd(0x85);
        Lcd 1602_Write_Date('x');
        Delay(100);
        Lcd 1602_Write_Date('u');
        Delay(100);
        Lcd 1602_Write_Date('e');
        Delay(100);
        Lcd 1602_Write_Date('i');
        Lcd 1602_Write_Date('h');
        Delay(100);
        Lcd 1602_Write_Date('e');
        Lcd 1602_Init();
}
  
回复

使用道具 举报

板凳
ID:920992 发表于 2021-6-25 07:58 | 只看该作者
应该把void delay(void)函数放在调用之前,或者在之前声明。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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