标题: 求帮助error C267: 'Delay': requires ANSI-style prototype [打印本页]

作者: 不会编程的码农    时间: 2021-6-24 21:06
标题: 求帮助error C267: 'Delay': requires ANSI-style prototype
#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




作者: angmall    时间: 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();
}
  
作者: ljq180    时间: 2021-6-25 07:58
应该把void delay(void)函数放在调用之前,或者在之前声明。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1