C语言如何定义p1口,求助C51里如何实现P1口输入?置1了还没行哦。

我在做AD实验时,用C语言的程序里,把P1置1了,发现还是不能当做输入,具体该怎么做呢?下面是我写的程序:

硬件:AD输出接到P1,同时也接到8个LED。led可以显示不同的灯亮。我想把这些值从P1输入,然后从P0输出,从P0口输出后面的也解决了。只是P1=1后,还是没有 能 把AD的值从P1输入(这就是问题)。请问程序里有什么问题?

该怎么修改?不胜感激!

#include

sbit wr=P3^6;

sbit rd=P3^7;

sbit dula=P2^6;

sbit wela=P2^7;

#define uchar unsigned char

#define uint unsigned int

uchar disnum,count,bai,shi,ge;

uint m,n;

display(uchar,uchar,uchar);

delay(uchar);

uchar code tabledu[]=

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

void init();

void start();

void main()

{

P1=0xFF; //P1 gao?

delay(500);

while(1)

{

init();

start();

delay(2);

rd=0;

delay(2);

rd=1;

delay(2);

//P0=P1;

disnum=P1;//?????P1??

bai=disnum/100;

shi=disnum%100/10;

ge=disnum%100%10;

display(bai,shi,ge);

}

}

void init()//

{

P0=0x7f;

dula=0;//

wela=0;

}

void start()

{

wr=1;

wr=0;

wr=1;

}

delay(uchar x)

{

for(m=10;m>0;m--)

for(n=x;n>0;n--);

}

display(uchar bai,uchar shi,uchar ge)

{

P0=0x7f;//0111 1111,make ADC's CS low.

wela=1;

wela=0;

P0=tabledu[bai];

dula=1;

dula=0;

P0=0x7e;//0111 1111,make ADC's CS low.

wela=1;

wela=0;

delay(1);

P0=0x7f;

wela=1;

wela=0;//

P0=tabledu[shi];//

dula=1;

dula=0;

P0=0x7d;

wela=1;

wela=0;

delay(1);//lesson4_5

P0=0x7f;

wela=1;

wela=0;//

P0=tabledu[ge];//

dula=1;

dula=0;

P0=0x7b;

wela=1;

wela=0;

//delay(1);

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值