发表于:2005-05-17 16:54:00
3楼
我的还是不行啊!我硬件插线已经插了好几次了,应该不是连线的问提.我又发现一个问题,我下面的3个if语句,不管他条件对错,程序总是执行第一个if语句,你说怎么回事呢?麻烦你帮我分析一下.另外你用的AD转换器是不是0809啊?能不能把你的这部分程序发到我邮箱让我参考参考,谢谢了!
我的Email:zhuyjsun@163.com
//a,b,c为译码器74138的选择通道
IO_0 output bit a;
IO_1 output bit b;
IO_2 output bit c;
//adin定义为从0809的数据
IO_0 input byte adin;
//start为启动0809的信号
IO_8 output bit start;
IO_9 output bit oe;
//g为74138的使能端
IO_10 output bit g;
when(1)
{
//产生脉冲信号驱动0809
io_out(start,0);
scaled_delay(1000);
io_out(start,1);
scaled_delay(1000);
io_out(start,0);
scaled_delay(1000);
//输出允许信号
io_out(oe,1);
//判断从0809采集来的数据,并执行相应的任务
io_set_direction(adin,IO_DIR_IN);
if(<0io_in(adin)<0x50)
{io_out(g,1);
io_set_direction(a,IO_DIR_OUT);
io_out(a,1);
io_set_direction(b,IO_DIR_OUT);
io_out(b,1);
io_set_direction(c,IO_DIR_OUT);
io_out(c,1);
}
io_set_direction(adin,IO_DIR_IN);
else if(<0x05io_in(adin)<0x80)
{io_out(g,1);
io_set_direction(a,IO_DIR_OUT);
io_out(a,0);
io_set_direction(b,IO_DIR_OUT);
io_out(b,1);
io_set_direction(c,IO_DIR_OUT);
io_out(c,1);
}
else if(0x80<io_in(adin)<0xff)
{io_out(g,1);
io_set_direction(a,IO_DIR_OUT);
io_out(a,0);
io_set_direction(b,IO_DIR_OUT);
io_out(b,1);
io_set_direction(c,IO_DIR_OUT);
io_out(c,1);
}}