EDA365电子论坛网

标题: 一个简单的IO程序问题! [打印本页]

作者: weixiao8776    时间: 2012-7-29 12:47
标题: 一个简单的IO程序问题!
各位大侠帮忙看一下这个程序,为何我无法对单片机的IO口进行单独的位操作。即使按键没有按下,也就是PIND0为高电平的状态下,程序依然进入到了if里面去执行语句。按正常情况的话,它是不应该执行if里面的语句的。这是怎么回事?程序和仿真图片如下:
8 y+ \5 z* M/ k6 r) g( P6 O6 N#include<stdio.h>3 g; r0 m: F% M3 S+ [' v
#include<iom128v.h>" G7 Z7 N5 |* ^4 s. v0 m
void delayns(void)! d/ O3 ^# d; X6 K3 h
{6 E9 T4 q+ n3 H/ o/ P. I. X$ j7 j
   unsigned int i;+ b8 w% W! @4 i2 C$ x) s, H
  for(i=0;i<50;i++);
: f# U2 q  b$ Z! S6 f# y4 W& W}
0 V- I7 X, f: Y* y. v- w  ?4 {
7 c' _6 _2 q: _2 }$ h. |void main(void)* l4 v" n) Z5 F
{* M, Y, d2 B% n) A, l
   DDRD=0X00;* C0 r+ @- o7 p0 {% m7 M
  DDRA=0XFF;
3 S0 m- [3 c( ?; b/ I4 X. H  DDRE=0X04;$ `3 Q4 {8 |: {4 b
  PORTD=0XFF;0 X' R5 S( e) R' g
  PORTA=0XFF;
  R, ]: ?7 R  O: q, w9 N  PORTE=0X04;( E, r5 {7 D9 z
  while(1)1 A  f6 R! v8 D" e) D* T0 r+ U
  {
, L5 |* }7 j" r( P    if(PIND0==0)* I9 L! f8 O! ]# m1 K
  {
# N6 Q2 E$ z, J    delayns();5 T9 L- c, R& w2 }+ g" ?3 Q
     if(PIND0==0)  g, J' p8 g2 C- }5 D, o* v
    {PORTA=0XFE;}
0 g! y. m" t5 L  }
! Q  K" T/ u' L& L6 x8 ]) J4 j( \8 E  }: E& b9 u3 v( J, H0 Q- x* i* U
}; K/ [% c& |  x1 U3 F' W4 t/ p

1111111111.jpg (31.18 KB, 下载次数: 7)

1111111111.jpg

作者: 陈豪俊    时间: 2012-7-29 15:56
我不知道您用的是不是51单片机,我依稀记得51单片机读取端口时,先要输出高电平,然后再读




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2