单片机错误求助sgbjq.c(58): error C267: ‘lcd_write_com‘: requires ANSI-style prototype

#include"reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define delay4us(){_nop_(); _nop_(); _nop_();_nop_();}

sbit cs=P2^0;
sbit clk=P1^4;
sbit dio=P1^5;
sbit  rs=P1^7;
sbit rw=P1^6;
sbit  e=P2^4;
sbit  k=P3^6;
sbit  sp=P3^7;
sbit led=P3^5;
int   temp=200;
char flag=0;
uchar display_buffer[]="000mg/L";
uchar code ine1[]="Current Value:";
uchar code line2[]="Waiting";
char c[];

void delayms(uint ms)
{
    uchar t;
    while(ms--)
        for(t=0;t<120;t++);
}

bit lcd_busy_check()
{
    bit result;
    rs=0;
    rw=1;
    e=1;
    delay4ms();
    result=(bit)(P0&0x80);
    e=0;
    return result;
}

void led_write_com(uchar cmd)
{
    while(lcd_busy_check());
    rs=0;
    rw=0;
    e=0;
    _nop_();_nop_();
    P0=cmd;
    delay4us();
    e=1;
    delay4us();
    e=0;
}

void set_disp_pos(uchar pos)
{
    lcd_write_com(pos|0x80);
}

void lcd_write_data(uchar dat)
{
while(lcd_busy_check());
    P0=dat;
    delay4us();
    e=1;
    delay4us();
    e=0;
}

void lcd_init()
{
    led_write_com(0x38);delayms(1);
    led_write_com(0x0c);delayms(1);    
    led_write_com(0x06);delayms(1);
    lcd_write_com(0x01);delayms(1);
}
uchar get_ad_result()
{
uchar i,dat1=0,dat2=0;
    cs=0;
    clk=0;
    dio=1;

    for(i=0;i<8;i++)
{
        dat2=dat2>>1;
        if(dio)dat2=dat2|0x80;
        clk=1;_nop();_nop_();
        clk=0;
    }
cs=1;
return (datl==dat2)?dat1:0;
}
void main()
{
    uchar i;
    uint d;
    lcd_init();
    set_disp_pos(0x03);
    led=0;
    sp=0;
    delayms(3000);
    led=1;
    sp=1;

    while(1)
    {
        if(k==0)
        {
            flag=~flag;
            while(!k);
}
d=get_ad_result()*500.0/255;
if(d>temp)
    {
if(flag==0)
    {
        sp=0;
        delayms(100);
        sp=1;
        delayms(100);
        led=0;
     }

else
{
    led=1;
    sp=1;
}
}
else
{
    led=1;
sp=1;
}

display_buffer[0]=d/100+’0’;
display_buffer[1]=d/10%10+'0';
display_buffer[2]=d%10+'0';
set_disp_pos(0x01);
i=0;

while(line1[i]!='\0')
lcd_write_data(line1[i++]);
set_disp_pos(0x45);
i=0;
while(display_buffer[i]!='\0')
lcd_write_data(display_buffer[i++];
delayms(500);
}
}老哥们,这个该怎么改啊

  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值