adc0808的c语言编程51,51单片机+ADC0808电压采集proteus仿真及源程序

#include "at89x51.h"

#define uchar unsigned char

#define uint unsigned int

uint a_100;

uchar bai,shi,ge;

sbit RS=P3^0;

sbit RW=P3^1;

sbit E=P3^5;

sbit P17=P1^7;

sbit P27=P2^7;

sbit start=P3^6;

sbit OE=P3^7;

sbit EOC=P3^2;

sbit P20=P2^0;

uchar code disp[]={"welcome to use"};

delay ()

{

uchar i,j;

for (i=0;i<5;i++)

for (j=0;j<50;j++);

}

wr_order (uchar h)

{

E=0;

RS=0;

RW=0;

P1=h;

E=1;

E=0;

}

wr_data (uchar h)

{

E=0;

RS=1;

RW=0;

P1=h;

E=1;

E=0;

}

busy ()

{

flag:

E=0;

RS=0;

RW=1;

P1=0xff;

E=1;

if (P17==0)

return;

else goto flag;

}

LCD_start()

{

busy ();

wr_order (0x01);

busy ();

wr_order (0x0c);

busy ();

wr_order (0x38);

}

wlcome ()

{

uchar i;

busy ();

wr_order (0x00+0x80);

for (i=0;i<50;i++)

{

busy ();

wr_data (disp[i]);

if (disp[i]=='\0')

break;

}

}

BCD_data()

{

uchar j;

a_100=a_100*100;

a_100=a_100/51;

j=a_100/100;

bai=j+48;

j=a_100%100/10;

shi=j+48;

j=a_100%10;

ge= j+48;

}

uchar BCD ()

{

uchar ad;

OE=1;

start=1;

start=0;

start=1;

while(EOC);

OE=0;

ad=P0;

OE=1;

delay ();

return ad;

}

xianshi ()

{

busy ();

wr_order (0x40+0x80);

busy ();

wr_data (bai);

busy ();

wr_data ('.');

busy ();

wr_data (shi);

busy ();

wr_data (ge);

busy ();

wr_data ('v');

}

main ()

{

LCD_start ();

wlcome ();

while(1)

{

a_100=BCD ();

BCD_data ();

xianshi ();

}

}

数值不匹配

请问我那出错了

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值