找回密码
 注册
关于网站域名变更的通知
查看: 1407|回复: 1
打印 上一主题 下一主题

一个简单的IO程序问题!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-7-29 12:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
各位大侠帮忙看一下这个程序,为何我无法对单片机的IO口进行单独的位操作。即使按键没有按下,也就是PIND0为高电平的状态下,程序依然进入到了if里面去执行语句。按正常情况的话,它是不应该执行if里面的语句的。这是怎么回事?程序和仿真图片如下:7 j9 U! }/ L' v$ }: v& G
#include<stdio.h>/ g0 K* f5 s- Y8 ^$ D" c8 r5 l
#include<iom128v.h>( Y( M# K* [5 z! v: g: A- z
void delayns(void)
# ?& d  Q8 l8 y0 j{/ ?$ T) V2 U% U+ E3 h  `& d8 K: N
   unsigned int i;
6 F0 F1 g  K  H) c7 X* q2 B  for(i=0;i<50;i++);
8 A! Q1 ^: S* x: G8 |}9 L" ~* A, d$ L2 C0 R& A3 |: u
* I, i8 L- H' n7 ]
void main(void)5 _9 S) v, i# ^/ ~. r
{
$ q) x0 n) r2 e! ]0 b/ `   DDRD=0X00;* O8 f) d; k9 {; r& x( f
  DDRA=0XFF;
% s9 w1 l3 m7 _/ b  DDRE=0X04;
3 @4 }0 T& k9 U& _  PORTD=0XFF;
, Q  k6 w( n4 v* `  ^' E  PORTA=0XFF;( t7 a$ D8 z, |  z5 C. m8 }
  PORTE=0X04;$ Y1 v. w2 _$ C8 w1 G8 n
  while(1)) R9 Q) |: i) x' ?+ R7 A* Y
  {0 N1 u- c) x* T/ Q9 ^9 j0 S
    if(PIND0==0)
3 D4 U0 N7 k0 u" I, P  {2 A2 t: B0 j6 H: E* q% Z4 r- i% W
    delayns();, D5 E7 R( p+ ~( [+ O; M. ~
     if(PIND0==0)
2 o" {; y0 e+ c6 i' g7 a    {PORTA=0XFE;}& |3 u. i4 J0 B5 y$ k, [6 ?9 o
  }1 g  T) Z0 l9 n, f0 t
  }2 p1 w& V& B1 c7 q6 I0 m! M+ e
}
3 Q3 D9 P% p) [$ z* z$ j, }- g' C

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

1111111111.jpg

该用户从未签到

2#
发表于 2012-7-29 15:56 | 只看该作者
我不知道您用的是不是51单片机,我依稀记得51单片机读取端口时,先要输出高电平,然后再读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-12 12:20 , Processed in 0.109375 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表